tl;dr:


Учёные из Колумбийского университета во главе с Кеном Шепардом и Рафой Юсте заявили, что обошли столетнюю теорему отсчётов (теорема Найквиста — Шеннона, теорема дискретизации, в русскоязычной литературе — теорема Котельникова): 1, 2. Теперь фильтры защиты от наложения стали необязательными, ведь шум от наложения спектров можно восстановить после дискретизации. Звучит безумно? Да. Я предлагаю $1000 первому, кто докажет, что это не безумие. Чтобы получить награду, обязательно прочтите до конца.

«Фильтруй перед дискретизацией!»


Эта мантра насмерть вбита в головы поколений студентов-инженеров. Здесь под «дискретизацией» подразумевается преобразование непрерывной функции времени в серию дискретных значений. Такой процесс происходит везде, где компьютер оцифровывает сигнал из реального аналогового мира. «Фильтровать» — значит удалять из сигнала высокочастотные составляющие. Поскольку этот процесс происходит в аналоговом мире, то требует реального аналогового оборудования: цепей из резисторов, конденсаторов и усилителей. Создание такой цепи может стать утомительным и трудоёмким процессом, например, если на электронных микросхемах не хватает места. Научная группа Шепарда рассмотрела это ограничение в контексте устройства для записи сигналов от нервных клеток.

Теперь авторы заявляют, что изобрели «парадигму сбора данных, которая не требует фильтров для защиты от наложения для каждого канала, тем самым преодолевая ограничения масштабирования существующих систем». По сути они говорят, что вместо аппаратных цепей можно использовать программное обеспечение, которое работает на цифровой стороне уже после дискретизации. «Ещё одним преимуществом такого подхода к сбору данных является то, что все шаги обработки сигнала (разделение каналов и удаление) реализованы в цифровом виде», сказано в научной работе.

Если это правда, то стало бы важнейшим открытием. Оно не только опровергает общепринятое мнение, которого придерживались почти столетие. Ешё и куча аппаратуры становится ненужной. Фильтры для защиты от наложения повсеместно используются в электронном оборудовании. В вашем мобильнике несколько цифровых радиочипов и аналого-цифровой преобразователь звуковых сигналов, а между ними с полдюжины микросхем для фильтров для защиты от наложения. Если можно заменить все эти электронные компоненты несколькими строками кода, то производители с радостью сделают это. Так что это потенциально идея на миллиард долларов.

К сожалению, это большая ошибка. Я покажу, что эти документы не имеют ничего общего с теоремой дискретизации. Они не отменяют обработку. И не отменяют аналоговые фильтры перед оцифровкой. И даже близко не приближаются к лучшим системам по извлечению нейронных сигналов из шума.

Почему наложение — это плохо


[пропустите эту часть, если знаете ответ]

Дискретизация — важнейший этап сбора данных, когда непрерывный сигнал превращается в дискретную серию чисел. Чаще всего непрерывный сигнал — это сигнал напряжения. Его дискретизирует и оцифровывает через равные промежутки времени электронная схема, которая называется «аналого-цифровой преобразователь» (рис. 1). На первый взгляд, из-за дискретизации теряется информация. Ведь на непрерывной кривой напряжения «бесконечно много» точек, но после дискретизации мы оставляем только их часть. Следовательно, потеряно бесконечное число точек между выбранными. И вот здесь звучит важнейшее утверждение теоремы дискретизации: в соответствующих условиях отдельные образцы содержат всю информацию, необходимую для идеального восстановления непрерывной функции напряжения, которая их произвела. В этом случае нет потери информации из-за дискретизации.

Эти соответствующие условия просты: входной сигнал должен изменяться достаточно медленно, чтобы его форма хорошо зафиксировалась в последовательности дискретных образцов. В частности, сигнал не должен иметь синусоидальных составляющих на частотах выше так называемой частоты Найквиста, которая равна половине частоты дискретизации:

${{f}_{\text{Nyquist}}}=\frac{1}{2}{{f}_{\text{Sample}}}$


(1)

Например, если АЦП делает 10 000 измерений в секунду, то входной сигнал не должен превышать частоту 5000 Гц. Что произойдет, если входной сигнал будет меняться быстрее? Эти частотные компоненты нельзя будет реконструировать из образцов, поскольку их происхождение совершенно непонятно (рис. 1).


Рис. 1. Наложение. Синусоидальная волна с частотой 2 кГц (красная) дискретизируется с частотой 10 kS/s (синие точки). Другая синусоида с частотой 8 кГц производит точно такую же последовательность образцов. Таким образом, после дискретизации невозможно понять, исходный сигнал был на 2 кГц или на 8 кГц

Одинаковый набор образцов получается и из сигнала ниже частоты Найквиста, и из любого количества возможных сигналов выше частоты Найквиста. Это явление называется наложением (алиасинг), когда высокочастотный сигнал в дискретизированной форме может маскироваться под низкочастотный сигнал. Если для входящего сигнала не действует никаких ограничений, то наложение приводит к потере информации, потому что мы больше не можем восстановить исходный сигнал из дискретных образцов.

Как избежать наложения? Просто нужно перед дискретизацией устранить из аналогового сигнала частотные составляющие выше частоты Найквиста. Чаще всего это делается электронным фильтром нижних частот, который пропускает нижние частоты, но отсекает высокие. Благодаря повсеместному применению таких фильтров на их совершенствование потрачено немало инженерных усилий. В итоге обычный подход к конструированию системы сбора данных выглядит таким образом (рис. 2):

1. Определите необходимую полосу пропускания сигнала, который нужно зарегистрировать, а именно самую высокую частоту, которую впоследствии нужно восстановить. Это частота Найквиста ${{f}_{\text{Nyquist}}}$ для вашей системы.

2. Пропустите сигнал через фильтр нижних частот, который отсекает все частоты выше ${{f}_{\text{Nyquist}}}$.

3. Запустите дискретизация сигнала после фильтра с частотой ${{f}_{\text{Sample}}}\ge 2{{f}_{\text{Nyquist}}}$.


Рис. 2. Сравнение обычного сбора данных с процедурой, описанной в научной работе Цая и др. Слева: синусоидальная волна на частоте 1 кГц с амплитудой от пика до пика 200 мкВ, как в тестовых записях из научной работы. Добавлен белый гауссовский шум с полосой пропускания 1 МГц и среднеквадратичной амплитудой 21,7 мкВ. Сверху: стандартный подход применения фильтра для защиты от наложения с частотой отсечения 5 кГц, которая исключает бoльшую часть шума и таким образом улучшает соотношение сигнала к шуму (SNR) в 200 раз. Этот сигнал затем дикретизируется на 10 kS/s. Снизу: в научной работе Цая и др. сигнал сразу дискретизируется с сохранением того же низкого SNR. Затем следует цифровая обработка, которая немного увеличивает SNR. Все данные и обработка смоделированы с помощью этого кода

Что утверждают Цай и др.


Теперь рассмотрим конкретную ситуацию из научной работы Дэвида Цая и др. Они хотят записывать электрические сигналы от нейронов, для чего требуется полоса пропускания

${{f}_{\text{Nyquist}}}= \text{5 kHz}$


Так что они выбрали частоту дискретизации 10 kS/s. К сожалению, требуемый нейронный сигнал искажён из-за широкополосного теплового шума, неизбежного побочного продукта при записи. Спектр шума достигает 1 МГц с типичной среднеквадратичной амплитудой (rms) 21,7 мкВ. Авторы аппроксимируют его как белый гауссовский шум, то есть шум с постоянной плотностью мощности до отсечения на 1 МГц. (Ссылки на эти цифры: стр. 5 и рис. 11 из первой статьи; стр. 2, 5, 9 и рис. 2е в приложении из второй статьи).

Стандартной процедурой стала бы передача сигнала и шума через аналоговый фильтр для защиты от наложения с отсечением частот выше 5 кГц (рис. 2). Это оставит нетронутым нейронный сигнал, в то же время снизив мощность шума в 200 раз, потому что спектр шума срезается с полосы пропускания 1 МГц до всего лишь 5 кГц. Таким образом, оставшийся шум ниже частоты Найквиста будет иметь среднеквадратичную амплитуду всего 21,7 мкВ/$\sqrt{200}$ = 1,53 мкВ. Такое количество теплового шума совершенно безобидно. Это меньше, чем от других источников шума в эксперименте. Затем сигнал дискретизируется на частоте дискретизации 10 kS/s.

Вместо этого авторы полностью исключают фильтр и напрямую дискретизируют широкополосный сигнал+шум. В своей статье они подробно объясняют технические ограничения, связанные с нехваткой места на кремниевых устройствах в этом методе записи, из-за которых пришлось отказаться от фильтра. Но в итоге вся мощность шума вплоть до 1 МГц теперь попала в дискретизированный сигнал через наложение. Фактически, каждый образец загрязнён гауссовским шумом со среднеквадратичной амплитудой 21,7 мкВ. Это недопустимый уровень шума, потому что мы хотим различать сигналы нейронов на той же или меньшей амплитуде. Для справки, в некоторых популярных системах для записи мультинейронной активности уровень шума не превышает 4 мкВ.

Здесь Цай с коллегами демонстрируют поразительную «инновацию»: они говорят что можно применить хитрый алгоритм преобразования данных после дискретизации для восстановления оригинального широкополосного шума, вычесть этот шум из дискретизированных данных — и таким образом оставить чистый сигнал. Вот соответствующие цитаты, в дополнение к вышеуказанным: «Мы можем в цифровом виде восстановить спектральный вклад от высокочастотного теплового шума, а затем удалить его из данных с разреженной выборкой, тем самым минимизируя эффекты наложения, без использования фильтров защиты от наложения на каждом канале». И ещё одна: «Мы представляем архитектуры мультиплексирования без фильтров защиты от наложения на каждом канале. Данные разреженной выборки восстанавливаются с помощью стратегии сжатого считывания, включающей в себя статистическую реконструкцию и удаление теплового шума с грубым шагом дискретизации».

Какие доказательства они предъявляют для этого утверждения? Проведён только один эксперимент, который проверяет уменьшение шума с использованием реальных данных. Авторы записали синусоидальный тестовый сигнал на частоте 1 кГц с амплитудой 200 мкВ от пика до пика. Затем применили свою схему обработки для «удаления теплового шума». Выходной сигнал выглядит чище входного (рис. 2e из статьи; см. также симуляцию на рис. 2). Количественно шум сократился со среднеквадратичной амплитуды 21,7 мкВ до 10,02 мкВ. Это довольно скромное улучшение соотношения сигнала к шуму (SNR) в 4,7 раза (подробнее об этом ниже). Правильный фильтр для защиты от наложений перед дискретизацией или заявленная система удаления наложенного шума после дискретизации должны бы увеличить SNR в 200 раз. (Ссылки на процитированные результаты см. на рис. 2e-f из второй статьи и на рис. 7 из первой статьи).

Почему схема Цая и др. не может работать в принципе


Прежде чем перейти к конкретному разбору схемы обработки данных, предложенной в этих научных статьях, стоит подумать, почему она не может работать в принципе. Самое главное: если она работает, то это отменяет теорему Котельникова, которую поколения студентов-инженеров изучали в институтах. Сигнал белого шума в этих экспериментах дискретизируется с частотой в 200 раз ниже той, которая позволяет восстановить этот сигнала по теореме Котельникова. Так почему Цай с коллегами вообще решили, что схема может работать?

Авторы утверждают, что наложенный высокочастотный шум сохраняет некий отпечаток, что позволяет затем удалить его: «Воспользовавшись приведёнными выше характеристиками, мы можем в цифровом виде восстановить спектральный вклад от высокочастотного теплового шума, а затем удалить его из данных с разреженной выборкой, тем самым минимизируя эффекты наложения». Трудно понять, какие это могут быть характеристики. Их проще всего оценить по временнoй шкале. Белый гауссовский шум на полосе 1 МГц можно восстановить по временным рядам независимых образцов из идентичного гауссового распределения с частотой 2 млн образцов в секунду. Теперь возьмите эти временные ряды и сделайте подвыборку на 10 тыс. образцов в секунду, т.е. каждый 200-й из оригинальных образцов. Вы снова получите независимо и одинаково распределённые образцы, т. е. белый гауссовский шум на 10 kS/s. Ничто в этой серии образцов не показывает, что её источником является высокочастотный шум. Он отлично дискретизирован.


Рис. 3. Выборка белого гауссовского шума. Слева: белый гауссовский шум (красная линия) со среднеквадратической амплитудой 21,7 мкВ и полосой пропускания 1 МГц дискретизируется с частотой 10 kS/s (синие точки). Справа: дискретизированный сигнал с расширенной в 200 раз временной шкалой. Это тоже белый гауссовский шум, с тем же распределением амплитуды (поля графика), но полосой пропускания 5 кГц

Авторы также утверждают, что их алгоритм для восстановления белого гауссовского шума «избегает наложения за счёт использования концепций сжатого считывания». Принцип сжатого считывания (compressed sensing) заключается в том, что если сигнал проявляет известные закономерности, то можно дискретизировать его без потерь с частотой меньше, чем частота Найквиста. В частности, такой сигнал проявляет разреженное распределение в пространстве данных по определённым направлениям, что открывает возможности для сжатия. Это относится ко многим естественным источникам сигнала, таким как фотографии. К сожалению, белый гауссовский шум представляет собой абсолютно несжимаемый сигнал без каких-либо закономерностей. Распределение вероятностей для этого сигнала является круглой гауссовой сферой, которая в пространстве данных выглядит одинаково со всех сторон и просто не предусматривает никаких возможностей сжатия. Конечно, нейронные сигналы поверх этого шума содержат некоторые статистические закономерности (подробнее об этом ниже). Но они не помогают восстановить шум.

Как схема Цая и др. терпит неудачу на практике


Я написал код для алгоритма, описанного в научной работе Цая и др. При обработке симуляции авторского теста (синусоидальная волна 200 мкВ с шумом 21,7 мкВ) он выдаёт очищенную синусоидальную волну с шумом всего 10,2 мкВ (рис. 2), что ужасно близко к результату из научной работы 10,02 мкВ. Значит, я правильно эмулировал схему.

По ходу дела я натолкнулся на нечто похожее на серьёзную математическую ошибку. Это относится к убеждению авторов в том, что шум с недостаточным шагом дискретизации сохраняет некую подпись в результате наложения. Ссылаясь на Фурье-представление белого гауссовского шума, они пишут (раздел III.G): «В пространстве Фурье у векторных углов теплового шума (бесконечной длины) равномерное распределение с нулевым средним. Опять же, любое отклонение от этого идеала в сигналах конечной длины усредняется наложением спектров, когда содержимое складывается в первую зону Найквиста (в результате чего углы сходятся к нулю)». И аналогично «спектральные углы сходятся к нулю в варианте наложения теплового шума» (стр. 9 слева внизу). Это неверно. Фазовые углы описываемых здесь векторов Фурье имеют равномерное круговое распределение; у этого распределения нет среднего угла. После усреднения из-за нормализации некоторых из этих векторов фаза среднего вектора снова приобретает равномерное круговое распределение. Это подтверждается в пространстве Фурье, что проще оценить в непосредственном пространстве: подвыборка из белого гауссовского шума снова выдаёт вам белый гауссовский шум (рис. 3). Обоснование алгоритма Цая основано на этой ошибочной концепции, что фазовые углы каким-то образом усредняются до нуля.

Итак, каким же образом алгоритм Цая очищает синусоидальный тестовый сигнал? Это не так уж сложно. Если вы знаете, что сигнал — чистая синусоида, то остаётся лишь три неизвестных: амплитуда, фаза и частота. Очевидно, вы можете извлечь эти три неизвестных из 10 000 образцов шума, которые получаете каждую секунду. Можно сделать и гораздо эффективнее: найти наибольшую Фурье-составляющую в сэмплированной записи и обнулить все остальные. Это почти полностью устраняет шум (подробнее см. здесь). Алгоритм Цая примерно так и делает: сильнее подавляет внепиковые частоты в преобразовании Фурье, чем пиковые — и получает некую сумму синусоиды и подавленного шума (см. также рис. 9 в работе). Как мы увидим дальше, заявленная производительность не распространяется на реалистичные сигналы.

Что стало бы разумной схемой обработки?


Пример синусоидальной волны показывает, как на самом деле следует подходить к постпроцессингу данных. Попытка восстановить оригинальный шум безнадёжна по всем описанным выше причинам — нужно просто смириться с уровнем шума, который является результатом всех наложений спектров. И сосредоточиться на свойствах сигнала, который мы хотим выделить. Если сигнал имеет статистические закономерности, то можно использовать этот факт в свою пользу. Естественно, синусоидальная волна чрезвычайно регулярна — значит, она извлекается из шума почти с бесконечной точностью. Обычно у нас есть некие частичные знания по статистике сигнала. Например, форма энергетического спектра. У нейронных потенциалов действия частотные составляющие до ~5 кГц, но спектр не плоский во всём диапазоне (рис. 4).


Рис. 4. Слева: усреднённые биоэлектрические потенциалы для 15 ганглиозных клеток сетчатки мыши [источник]. Справа: их энергетический спектр

Предположим, мы знаем энергетический спектр сигнала, и он отличается от спектра шума — как тогда обрабатывать данные выборки, чтобы оптимально восстановить сигнал? Это классическая задача, которую задают на курсе обработки сигналов. Оптимальный линейный фильтр для реконструкции c минимизацией средней квадратической ошибки называется фильтром Винера. По сути, он подавляет частотные компоненты, где шум относительно больше. Но алгоритм Цая — нелинейная операция (см. подробности здесь), так что теоретически он может превзойти фильтр Винера. Кроме того, из-за нелинейности невозможно предсказать эффективность алгоритма на более обычных сигналах по его производительности на синусоидальных сигналах (см. выше). Поэтому я сравнил алгоритм Цая с классическим фильтром Винера, используя различные предположения для спектра. В частности, сигнал был ограничен ниже частоты среза в диапазоне от 100 Гц до 5000 Гц, в то время как шум имел равномерный спектр в полосе 5 кГц:


Рис. 5. Энергетический спектр сигнала (цветные линии) и шума (чёрная), используемые в расчётах на рис. 6. Шум гауссов и белый во всём диапазоне. Сигнал получен из гауссовского белого процесса, пропущенного через однополюсный фильтр нижних частот с частотами отсечки при 5000, 2000, 1000, 500, 200, 100 Гц.

Для каждого из этих сочетаний сигнала и шума я применил фильтр Винера и алгоритм Цая — и измерил соотношение сигнала к шуму (SNR) в результате (рис. 6).


Рис. 6. Как алгоритм Цая и фильтр Винера изменяют SNR. Каждая панель соответствует различному энергетическому спектру сигнала (см. рис. 5). Сигнал и шум на разных SNR отложены по горизонтальной оси. Смешанный сигнал и шум пропустили через фильтр Винера или алгоритм Цая, а SNR выходного сигнала отложен по вертикальной оси. Красный — фильтр Винера; зеленый — алгоритм Цая; пунктир — подлинник.

Как и ожидалось, фильтр Винера всегда улучшает SNR (сравните красную кривую с точечным подлинником), и тем больше, чем сильнее отличие спектров сигнала и шума (панели от левой верхней к нижней правой). Во всех вариантах фильтр Винера превосходит алгоритм Цая в улучшении SNR (сравните красные и зелёные кривые). Кроме того, во многих случаях алгоритм Цая фактически ухудшает SNR (сравните зелёные и пунктирные кривые). Учитывая, что алгоритм основан на математических ошибках, это неудивительно.

Есть и более сложные схемы подавления шума, чем фильтр Винера. Например, мы знаем, что интересующие записи нейронной активности представляют собой наложение импульсоподобных событий — биоэлектрических потенциалов — чьи формы всплесков описываются всего несколькими параметрами. В рамках этой статистической модели можно разработать алгоритмы, которые определят среди шума оптимальные пиковые значения каждого из событий. Это активная область научных исследований.

Почему это важно для нейронауки


Исследователи из разных нейронаук активно стремятся увеличить число одновременно отслеживаемых нейронов. В этой области экспоненциальный прогресс, хотя довольно медленный, с удвоением каждые семь лет. Несколько проектов направлены на ускорение этого процесса путём создания крупномасштабных КМОП-микросхем с массивом из тысяч плотно расположенных электродов и мультиплексеров [в том числе работа Цая — примеч. пер.]. Это дорогие исследования. Чтобы довести электродные решётки до стадии прототипа, требуются миллионные вложения. Если успех подобного прибора основан на ошибочных представлениях о наложении и неоправданных ожиданиях от программного обеспечения, это может привести к дорогостоящим провалам и растрате ценных ресурсов.

Болезненным провалом такого рода стал массив Фромхерца. Сконструированный в сотрудничестве с Siemens за миллионы дойчмарок, он стал самым большим массивом биоэлектродов для своего времени, с 16 384 датчиками на площадке 7,8?7,8 мкм. Для экономии места и по другим причинам разработчики отказались от использования фильтров защиты от наложения. Наложение и прочие артефакты в итоге привели к уровню шума 250 мкВ, непригодному для каких-либо интересных экспериментов, так что инновационное устройство так никогда и не использовали в деле. А ведь такой исход можно было предсказать простым расчётом.

Если рационально предусматривать последствия наложения, то возможны полезные компромиссы. Например, в недавно созданном устройстве с кремниевыми штырьками тоже отсутствуют фильтры защиты от наложения в мультиплексерах. Но коэффициент субдискретизации всего 8:1, в результате чего избыточный шум не превышает критических значений. В сочетании с правильным восстановлением сигнала такая схема вполне жизнеспособна.

Кто проверял эту работу?


Как всегда, встаёт вопрос: эти драматические заявления Цая и др. прошли рецензирование? Неужели никого не удивило очевидное противоречие теореме отсчётов? Кто вообще рассматривал эти материалы? Ну, я их рассмотрел. Для другого журнала, где статью в итоге отклонили. До этого была длительная переписка с авторами, в том числе я дал им задачу удалить шум наложения из смоделированной записи (задача ниже, только без денежной награды). Авторы посчитали вызов обоснованной проверкой алгоритма, но полностью провалили тест. Каким-то образом это не поколебало их уверенности — и они представили точно такую же научную статью двум другим журналам. Эти журналы, видимо, после так называемого рецензирования, с радостью согласились на печать.

Как выиграть $1000


Конечно, есть вероятность, что я неправильно понял алгоритм Цая или, несмотря ни на что, существует иная схема восстановления наложенного белого шума после дискретизации. Чтобы поощрить творческую работу в этой области, предлагаю задачу: если вы можете сделать то, что утверждают Цай с коллегами, я дам вам $1000. Вот как это работает:

Сначала вы отправляете мне $10 на «почтовые расходы» (Paypal meister4@mac.com, спасибо). Взамен я высылаю файл данных, содержащий результат дискретизации сигнала и шума на 10 kS/s, где сигнал ограничен полосой ниже частоты Найквиста 5 кГц, а шум — это белый гауссовский шум с полосой 1 МГц. Вы используете алгоритм Цая или любую другую схему на ваш выбор, чтобы максимально удалить наложенный шум, и отправляете мне файл с вашей лучшей оценкой сигнала. Если вы сможете улучшить SNR в два или более раз, я заплачу вам 1000 долларов. Обратите внимание, что правильный фильтр защиты от наложений увеличивает SNR в 200 раз (рис. 2), а Цай утверждает, что увеличивает его более чем в четыре раза, поэтому я здесь немногого прошу. Для дополнительной технической информации см. код и комментарии в моём блокноте Jupyter.

Ещё несколько правил: предложение действует в течение 30 дней со дня публикации [20 марта 2018 года — примеч. пер.]. Выигрывает только первая квалификационная запись. Вы должны раскрыть используемый алгоритм, чтобы я мог воспроизвести его работу. После сражения с теоремой отсчётов вас может заинтересовать какая-нибудь другая задача, например, криптографическая атака на случайный seed, который я использовал для создания файла данных. Хотя мне было бы интересно узнать о таких альтернативных решениях, но я не буду платить за это 1000 долларов, а только верну ваши 10 долларов.

Наконец, я не хочу брать деньги у новичков. Прежде чем Вы пришлете мне $10, обязательно тщательно протестируйте свой алгоритм с использованием кода в моём блокноте Jupyter: его я буду использовать для оценки алгоритма.

Итоги


Пока никто не получил 1000 долларов, выводы следующие:

  • Цай с коллегами разработали цифровой преобразователь без фильтра защиты от наложения, в результате чего получили примерно в 200 раз больше шума от термальных флуктуаций, чем можно было.
  • Их алгоритм постобработки не делает ничего, чтобы нивелировать эффект наложения. В лучшем случае это попытка отделить нужный сигнал от искажающего наложенного шума. К сожалению, алгоритм основан на математических ошибках.
  • Хорошо известны лучшие алгоритмы отделения сигнала от белого шума. Для синусоидальных сигналов (как приведённые авторами) такое отделение тривиально. Для ограниченных по полосе сигналов, спектральная мощность которых отличается от спектральной мощности шума, классическое решение — фильтр Винера. При всех проверенных условиях он показывает лучший результат, чем алгоритм Цая. При многих условиях алгоритм Цая ухудшает соотношение сигнала к шуму.
  • На данный момент я предлагаю, чтобы разработчики аппаратуры придерживались древней мудрости «фильтруй перед выборкой!»

Комментарии (34)


  1. Xirexel
    02.04.2018 13:04
    +1

    Занимательная статья. Интересно было пробежаться по основам теории сигналов (или как её сейчас называют!?!), которую изучал давным давно. Согласен с автором. Но если частоту дискретизации выбрать большей чем частота Найквиста, то возможно создать цифровой БИХ фильтр или воспользоваться свойством автокорреляции белого шума (на подобном трюке строились гребенчатые фильтры для аналогового телевидения). Но это выходит за рамки исходной задачи.


  1. Vasyutka
    02.04.2018 13:40
    +1

    это довольно классическая история. Если есть априорные данные о входном сигнале (в их
    «работе» синус), то можно придумать какие-то варианты обработки (на практике, например, бывает, что скорость изменения сигнала ограничена — это поможет избавиться от шума). Есть еще забавная довольно история, что зная одну производную от сигнала, можно использовать половину полосы. А так, автор еще статьи по «сеточкам нейронным» не читывал. Там по итогу больше половины статей ни на чем не основаны, кроме экспериментов на датасете. А на другом датасете уже и не будет работать


  1. ilynxy
    02.04.2018 14:03
    +2

    Блин, теорема Котельникова ж математически доказывается. Она фундаментальна и проста, там нет физических допущений и даже вероятностей там нет. Как вообще может придти в голову идея о возможности «обхода» этой теоремы в случае алиасинга?!
    Понятно, если есть априорные знания о шуме и/или сигнале — то появляются некоторые варианты, позволяющие использовать эту информацию для улучшения характеристик системы обработки, но теорема Котельникова никуда не девается и не нарушается.


    1. SilverHorse
      02.04.2018 18:43
      +2

      У меня ощущение, что авторы просто попали в процессе исследования после этой математической ошибки на целую пачку убедительных когнитивных искажений, непонимание чего в итоге привело к «сенсации». Потому что я не хочу думать, что это просто компания безграмотных товарищей, не учивших теорию информации в университете…

      Если изложить это в понятиях криптографии, то обладая некоторыми сведениями об открытом тексте зашифрованного сообщения (форме сигнала) и имея шифрограммы (сигнал, скрытый в шуме), мы можем провести атаку на шифр на основе открытого текста и с хорошей вероятностью расшифровать сообщения (удалить шум). Так была взломана Энигма. Только это абсолютно не означает, что зная, о чем возможно было сообщение, мы можем расшифровать одноразовый блокнот — шум все равно останется шумом, просто с меньшим пространством вариантов исходного текста (полосой пропускания). А авторы исходной статьи, условно говоря, зашифровали сообщение о погоде одноразовым блокнотом, на основе этого сделали расшифровку и получили другое сообщение о погоде, после чего заявляют, что они произвели взлом века — сообщение-то реально оказалось о погоде! Что там написано про дождь вместо урагана — неважно.


      1. SilverHorse
        02.04.2018 18:59

        Хотя с одноразовым блокнотом я загнул немного. С учетом изложенного — они «взломали» поточный шифр, аналогичный блокноту, но статистические особенности которого позволяют выдавать тему открытого текста (скрытая шумом синусоида, по форме которой можно все-таки догадаться, что там примерно синусоида, черт его знает, правда, какая). Удаляя шум, «попадаем в тему» и на основе этого делаем вывод, что так можно ломать все поточные шифры, включая блокнот. В примере с блокнотом синусоиду надо было бы выделять на графике не из зашумленного сигнала, а вообще из равномерно закрашенного поля.


        1. crazyblu
          03.04.2018 09:49

          Поточный шифр перестает быть шифром после взлома одной из фаз. Требуется смена ключа. В требованиях регулятора всегда стоит ограничение по времени и объему шифруемого на одном ключе. Но до Энигмы тогда регуляторы еще не добрались :)


  1. IBAH_II
    02.04.2018 16:01

    Слишком много букв для доказательства того, что «вечный двигатель не работает». Хотя искать ошибки в логике изобретателей вечного двигателя гораздо интересней и полезней, чем отвечать на «актуальные вопросы и задачи от ведущих компаний». Респект и уважуха!


  1. Nick_Shl
    02.04.2018 17:36
    +2

    Почему бы не использовать простейший фильтр первого порядка из конденсатора и гораздо большую частоту дискретизации(на порядок/порядки), потом в цифре отфильтровать частоты выше необходимой и уменьшить частоту дискретизации до необходимой?


    1. avost
      03.04.2018 14:54

      Так тоже можно, только это очень сильно дороже обычных фильтров.


      1. LampTester
        03.04.2018 20:08

        В данном случае — не сказал бы. Там по условию задачи требуется полоса всего 5 кГц, при этом даже встроенные АЦП в популярных микроконтроллерах сегодня могут работать на скоростях до 1 MSPS. Тут не то что просто упростить аналоговую часть за счет увеличения частоты дискретизации, тут можно и передискретизацию устроить, чтобы поднять разрешение бита на два-три, а то и больше.


  1. sci_nov
    02.04.2018 18:51
    +1

    Обошли не значит отменили. Теорема отсчетов сама по себе является идеальной, потому что сигналы с ограниченным спектром бывают только в воображении… А что бывает в реальности — об этом говорить можно лишь с приближениями, ведь и сигнал на осциллографе и спектр на анализаторе являются лишь проекциями чего-то нам неведомого, и наши глаза, кстати, дают нам для анализа также лишь проекцию… А так, я считаю, что белый шум при "алиасинге" переходит в белый же шум — такой он, ...., хитрый. Такой штуковиной мы только лишь ухудшаем условия для работы, например, фильтра Винера.


    1. Namynnuz
      02.04.2018 19:05

      белый шум при «алиасинге» переходит в белый же шум
      А как тогда работает noise shaping?


      1. sci_nov
        02.04.2018 19:11

        Не знаю как он работает, но тут вы залезли в вопросы квантования… Теорема отсчетов здесь ни при чём, потому что она оперирует точными отсчетами.


      1. LampTester
        03.04.2018 20:00

        Noise Shaping работает в процессе квантования и связан с передискретизацией. По простому: если на более высокой частоте дискретизации отфильтровать шум, а после снизить частоту дискретизации (проредив данные), то можно получить увеличение разрядности за счет увеличения соотношения сигнал/шум. Так работают сигма-дельта АЦП.


      1. Sergei_Erjemin
        05.04.2018 11:22

        Если обработать сигнал несколькими ЦАП и некратной дискртизацией, и если известна амплитуда шума, то можно построить «коридор» в котором будет находится сигнал. За него можно принять среднюю линию (или мат.ождание). И сработает это толко если сигнал значительно больше шума.


  1. Namynnuz
    02.04.2018 19:01

    А что произойдёт с зашумлённым сигналом, если обработать его рекурсивным фильтром, по типу Калмана?


    1. LampTester
      03.04.2018 20:03

      Фильтру Калмана нужна модель процесса, а для недетерминированных сигналов с этим туго. :)


  1. UA3MQJ
    02.04.2018 20:50
    +1

    Да, странное утверждение о том, что шум можно восстановить и потом вычесть. Шум же случаен. Да, мы получим шум, который по средним показателям даст там круг или чего-то там, но это будет не такой же самый шум, чтобы его можно было бы вычесть.
    Может быть у них там был в тестах какой-то псевдо шум, который по формуле генерился, и они его «угадали» и вычли… но это как-то очень странно.


    1. RolexStrider
      02.04.2018 21:27
      +1

      Именно так, не восстановить, а довольно достоверно имитировать. Но никак не «восстановить»:
      en.wikipedia.org/wiki/Spectral_band_replication


  1. Korogodin
    02.04.2018 23:42
    +2

    Теорема Котельникова говорит об условиях, при которых аналоговый сигнал может быть взаимнооднозначно представлен дискретной выборкой. В приложении к данной работе под «аналоговым сигналом» следует понимать шум+синусоиду. Если вы хотите точно воспроизвести шум+синусоиду, деваться некуда, берите 2 МГц частоту семплирования.

    Но дальше происходит подмена понятий. Полезной нарекается только синусоида. А для её отображения вообще достаточна нулевая частота дискретизации (запишите на бумажке амплитуду и фазу и не мучайте АЦП). Да, когда мы вместо 2 МГц взяли частоту 10 кГц, шумы многократно наложились, мы не выжали потенциальный SNR. Но при расчете отношения сигнал/шум надо рассматривать шум не в полосе 5 кГц, а только в бине самой синусоиды. А там SNR может быть уже вполне достаточный (не максимальный, а достаточный!).

    Иными словами, если ваш полезный сигнал — синусоида, то поставьте фильтр на выходе процедуры дискретизации, а не на входе.

    Такие мысли возникли у меня при прочтении статьи по диагонали. Кто выиграет $1000, все деньги можете оставить себе, я не претендую ;-)


    1. sci_nov
      03.04.2018 06:47

      Да, это так.


  1. Lord_Ahriman
    03.04.2018 07:51
    +1

    Разумеется, все гораздо проще, если им известны параметры исходного сигнала — фактически, они говорят о пост-фильтрации, а не о предварительной фильтрации. К тому же, в теореме Котельникова нет ни слова о шуме и форме сигнала, а лишь об адекватном дискретном представлении аналогового сигнала. Не говорится ничего о полезном сигнале, SNR и других параметрах. Более того, теорема доказана математически, там вообще нет никакой физики. Интересно, какое у Цая базовое образование, если он не понимает этих весьма базовых вещей (я все же надеюсь, что это добросовестное заблуждение).
    PS: увидел, что мое мнение уже выразили в комментариях выше, так что присоединяюсь.


  1. ivlis
    03.04.2018 11:02

    И это прошло в Nat. Comm. :facepalm:


  1. Timpo
    03.04.2018 12:13

    Как выиграть $1000
    Сначала вы отправляете мне $10

    Где-то я это уже видел)


  1. dasalam
    03.04.2018 13:45

    Вы забыли сказать еще кое о чём: теорема Котельникова будет применима только в том случае если вы имеете АЦП бесконечной разрядности. Для реальных АЦП частота дискритезации должна быть выше чем удвоенная частота Найквиста.


    1. chersanya
      03.04.2018 16:13

      Не только бесконечной разрядности, а ещё и с мгновенным семплингом.


      1. Gryphon88
        03.04.2018 19:55

        кто-то её пересчитывал под sample and hold или интегратор по времени?


  1. diakin
    03.04.2018 18:02

    Какое вообще отношение имеет белый шум к антиалиасингу? Ну в смысле… Антиалиасинговый фильтр конечно увеличит отношение сигнал\шум в 2 раза( или в корень из 2?) за счет того, что предотвратит отзеркаливание ВЧ области спектра шума в НЧ область, где находится и спектр сигнала. Но не более того. Если полезный сигнал периодический и мы знаем его частоту, надо уж применять синхронное накопление. Это действительно даст эффект.


  1. AlexTOPMAN
    03.04.2018 20:56

    А что мешает для борьбы с алиасингом проводить дискретизацию изначально на удвоенной/учетверённой/(и т.д.) частоте, сохраняя потом лишь те высокочастотные участки, где встретился алиасинг и получая тем самым на выходе некое подобие VBR у MP3, только здесь будет VDR (что незначительно скажется на увеличении битрейта от базового низкочастотного варианта оцифровки)?


    1. V__C
      04.04.2018 03:24

      Более чем здравая мысль.
      Дискретизацию делать не единожды, а многократно. Используя каждый раз промежуточные результаты.
      Это, кстати, не отменяет тоерему Котельникова, а просто открывает ЕЩЕ ОДИН путь.
      Пока, впрочем, далекий от совершенства.


      1. AlexTOPMAN
        04.04.2018 11:37

        Можно делать единожды, но отбрасывая после промежуточные результаты и помечая блок, на какую частоту он «пере аттестован». Или делать оцифровки на разных частотах параллельно (не экономично, зато алгоритмически крайне просто и задержка вход-выход минимальная), оставляя потом нужный вариант исходя установленного настройками качества оцифровки числа встреченных в блоке алиасингов. С автоматической же подстройкой длины оцифровываемого блока — вообще будет красота. Добавить к какому-нибудь формату (flac, например) пару служебных байт на блок: 8 бит на указание частоты и по 4 на указание битности (ДД) и размера блока. Нужный размер буфера для воспроизведения без заикания легко вычисляется и по-хорошему, кладётся сразу в инфо.


        1. V__C
          04.04.2018 21:38

          Да, все можно сделать в один присест. Но плодотворность вашей идеи заключается именно в многократной дискретизации. Походе, что Топикстартеру придется раскошелиться.
          Тем более, что Вы представили свою идею в достаточно развернутом виде.


  1. nikolay_karelin
    04.04.2018 18:11

    Спросил у автора оригинального поста, получил ли он хотя бы 20-30 долларов...


  1. plyrvt
    05.04.2018 11:53

    Можно ли эти сложные математические выкладки сформулировать «на пальцах» как обработку сигналов на повышенной временной экспозиции, как применяется в GPS и радиоастрономии (пеленгация планет).
    Полагаясь на гипотезу о многократной повторяемости исходного сигнала (синусоида в эксперименте, многократная посылка одной и той же пачки данных в GPS и астропеленгации) его можно восстановить даже если SNR на входе <<1
    Для неповторяемого сигнала всё написанное в работе Шепарда — неприменимо?