Зачем использовать быстрое преобразование Фурье для уменьшения шума вместо классического электронного фильтра?

17

Я хотел бы знать, как удалить шум окружающей среды из записи речи.

Я провел некоторые исследования и заметил, что большинство предложенных методов используют быстрое преобразование Фурье. Но почему вы не можете использовать классический электронный фильтр для удаления частот шума? Зачем заниматься БПФ?

Jazis
источник
Потому что FFT дают лучшее качество продукции?
Солнечный Майк
4
Сравните цену на систему DSP 5GS / s с ценой множества производителей и колпачков ...
PlasmaHH
1
Может быть, вы можете сделать более сложную фильтрацию с помощью FFT. «Классические электронные фильтры» просто удаляют все частоты в определенном диапазоне. Кроме того, вот ваш значок студента, подарок от меня вам.
Андрей Пикуль
1
У меня есть 2 проблемы с вашим вопросом: (1) Что вы подразумеваете под «классический электронный фильтр»? (2) Тот факт, что что-то сделано одним способом (БПФ), НЕ означает, что это НЕ МОЖЕТ быть сделано другим способом (фильтр); могут быть некоторые недостатки, чтобы сделать это по-другому. Однако вы предполагаете, что это невозможно сделать с классическим электронным фильтром (что бы вы ни имели в виду), что, вероятно, неправильно.
Творог
Какой формат записи вашей речи (аналоговый или цифровой)? Является ли задержка проблемой (вживую или после факта)? Как долго длится запись (песня против дней записи)?
медь. Что

Ответы:

25

Я хотел бы знать, как удалить шум окружающей среды из записи речи.

Ну, теперь он хранится в цифровом виде, верно? так вы планируете поставить микрофон рядом с динамиком после аналогового фильтра, чтобы перезаписать его?

Хватит возиться, я буду серьезен.


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

Это то, что довольно легко сделать в Matlab. Это также то, что целесообразно сделать пост-обработки. Это также касается повторяемости: если вы применяете фильтр сегодня в солнечный день, то ожидаете, что он будет работать так же, как и завтра, когда идет дождь. Вы ожидаете, что это будет работать точно так же, верно?

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

Что касается повторяемости, делая что-то сегодня ... тепло ... завтра ... холоднее ... сопротивления будут немного меняться, частотная характеристика будет меняться, пара Гц там, некоторые там, чем больше компонентов вы получили в своих цепях Более вероятно, что ваши компоненты изменят свои значения. И тогда у вас есть влажность, окислитель ...

И вот изюминка, о которой я должен был сказать в первую очередь, вы не сможете пост-обработать ее, если у вас нет кассет. Я не уверен на 100%, какой аналоговый музыкальный носитель используется для записи / удаления. LP диски были бы кошмаром ...

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

Но не думайте, что аналоговые фильтры плохие, они получили свое применение, например, для удаления неприятных гармоник в больших двигателях постоянного тока или создания сверхтихих шаговых двигателей для 3D-принтеров путем сглаживания тока. И тонны другого использования. - Также, если бы вы решили это с помощью аналогового фильтра, никто бы не подумал, что это будет плохое решение.

Я полагаю, что косвенно отвечаю, почему FFT - лучший способ сделать это с точки зрения постобработки. Суть в том, что это намного дешевле. Вы также можете просто применить режекторный фильтр, если знаете, на какой частоте присутствует шум. Или более широкий, иначе известный как полосовой фильтр.

И последнее, что я хочу добавить ... Вау, этот ответ такой длинный, извини. Но если вы используете аналоговый фильтр, и вы ... испортите свои расчеты, а затем подумаете, что все в порядке, и используйте его в каком-то серьезном событии, например, в интервью у короля Швеции (Кнуген). И вы испортили размер конденсатора, вместо того, чтобы фильтровать шум 16 кГц, вы фильтруете «шум» 4 кГц. Если вместо этого вы имеете дело с этим в цифровой форме, то это просто вопрос изменения некоторых переменных, вам не нужно припаять -> припаять другой компонент. Также интервью испорчено.

Гарри Свенссон
источник
4
Ханс Мажоннес Хонунг Карл XVI Густав
труба
@pipe Такар, дет Беховдес. (Спасибо, мне это было нужно.)
Гарри Свенссон,
Дополнительный вопрос (потому что этот ответ слишком сильно зависит от буквального определения аналога). Зачем выбирать БПФ для фильтрации шума вместо классических полиномиальных фильтров?
Slebetman
@ Slebetman не ждите, что я на это отвечу.
Гарри Свенссон
Это был довольно твердый ответ! Спасибо, брат, и спасибо всем, кто ответил, я не ожидал такой большой помощи! Я обязательно задам больше вопросов на этом форуме. Еще раз спасибо!
Джазис
7

Но почему вы не можете использовать классический электронный фильтр для удаления частот шума?

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

Для кассет и других аналоговых магнитофонных записей использовались такие системы, как DNL и Dolby, которые фильтруют только при слабом сигнале, что означает, что шум более слышен. Затем, когда сигнал становится сильнее, фильтр гаснет. Смотрите: статья в Википедии о снижении шума

Речь может быть ограничена узкой полосой частот, например, от 300 Гц до 3 кГц, но при этом она совершенно понятна. Вы можете сделать простой аналоговый фильтр для этой полосы, но это ограничит степень подавления шума. Для более эффективной фильтрации частот вне этой полосы потребуется сложный аналоговый фильтр. Такие фильтры сложно спроектировать, построить и изготовить.

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

Bimpelrekkie
источник
+1 за упоминание компромисса между сохранением полезных сигналов и удалением нежелательных. Проблема состоит в том, что речь и шум занимают одни и те же частоты, поэтому фильтр FFT может удалить «базовый» шум, то есть после анализа амплитуды шума на каждой частоте без речи , который можно удалить там, где речь идет. Вот как работают фильтры FFT в Audacity и т. Д. И т. Д.
Обратный инженер
Я не уверен, что делает аналоговые фильтры особенно сложными при проектировании и сборке. Все, что вам в основном нужно, это один или два операционных усилителя и несколько резисторов и конденсаторов. А поскольку операционные усилители обычно поставляются в виде двух пакетов, вам нужен всего один чип. Я бы обычно использовал аналоговый фильтр для фильтрации нижних частот, чтобы убедиться, что в сигнале мало высокочастотного сигнала с наложением. Вы не можете избавиться от этого с помощью FFT впоследствии. С другой стороны, нет проблем с выполнением полосового фильтра БПФ, когда у вас есть чистая «запись» для обработки.
Барлиман
@Barleyman Я не уверен, что делает аналоговые фильтры особенно сложными для проектирования и сборки. Я имел в виду фильтры высокого порядка, такие как 4-й и выше. Я согласен, что пара операционных усилителей. резисторы и конденсаторы могут сделать фильтр практически любого порядка, но вы уже пытались его спроектировать? Я имею в виду, в симуляторе, но тогда вы уже столкнулись со стандартными стандартными конденсаторами, которые недостаточно точны . При более высоких заказах точное значение компонентов становится все более и более важным.
Bimpelrekkie
Кроме того, псевдонимы больше не являются проблемой, так как у нас теперь есть сигма-дельта АЦП и ЦАП с очень высокими частотами дискретизации, так что простой RC - это все, что нужно.
Bimpelrekkie
@Bimpelrekkie Я разработал несколько, ничего для этого в эти дни .. В те времена вы использовали книгу с некоторыми предварительно рассчитанными параметрами, с которыми вы бы потратили некоторое время, чтобы получить разумные значения компонентов. Точность не является большой проблемой, если вы не пытаетесь быть слишком избирательным. RC на самом деле не выполняет свою работу, если вы пытаетесь сделать, например, аудиозапись. С -20дБ / десятилетие вам придется установить фильтр на 2,2 кГц, чтобы получить какую-то фильтрацию на частоте Найквиста. 3-й порядок Cherbychew будет лучше при 12 кГц fc. 5-й заказ даст вам -46dB, что является "достаточно хорошим"
Барлиман
5

Итак, первый шаг к пониманию того, почему нам нужен FFT, - это понять, как работает цифровая фильтрация.

Итак, в основном, у вас есть структура, такая как регистр сдвига, с несколькими элементами памяти, входом и выходом. Значение выборки поступает на вход, сдвигается через регистр и перемещается на выход. На каждом этапе в регистре он умножается на число, называемое коэффициентом фильтра.

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

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

Теперь приходит часть БПФ. Оказывается, что свертка возрастает в численной сложности очень быстро с количеством образцов. С другой стороны, вначале БПФ численно усложняется, но число необходимых операций растет гораздо медленнее с увеличением коэффициентов фильтрации по сравнению со сверткой.

Вышеуказанное означает, что при превышении определенного количества выборок будет гораздо быстрее преобразовать сигнал в частотную область, используя FFT, отфильтровать сигнал в частотной области, а затем преобразовать его обратно, используя IFFT. Уловка, которую мы используем, является одним из свойств свертки, а именно то, что свертка во временной области может, в некоторых случаях, моделироваться как умножение в частотной области.

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

AndrejaKo
источник
3
Я думаю, что под «классическим электронным фильтром» он подразумевал аналоговый фильтр, а не свертку.
jalalipop
1
@jalalipop Может быть, но я явно хотел объяснить часть БПФ. В то время у нас уже был ответ, объясняющий, почему мы хотели бы иметь цифровые фильтры вместо аналоговых.
AndrejaKo
2

Основанные на БПФ методы (вам все равно придется работать с окнами и модификациями с наложением-добавлением или смещением-смещением) имеют основное преимущество, заключающееся в том, что проект полностью находится в частотной области, и фильтр Винера или спектральное вычитание или ряд другие системы, основанные на статистике сигналов и модели, в основном работают в частотной области.

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


источник
твердо в частотной области . Не было бы никакого особого преимущества в этом, если бы не было, потому что тоны и ноты имеют свойства основного тона и обертонов.
mathreadler
2

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

С практической точки зрения вам лучше всего будет использовать фильтр нижних частот 3-го порядка, который вы можете сделать с одним операционным усилителем, или, возможно, фильтр нижних частот пятого порядка, для которого требуется два. Используйте фильтр нижних частот для ослабления частот выше частоты Найквиста (1/2 частоты дискретизации) с некоторым запасом, и вы получите высококачественную цифровую выборку для последующей обработки. С такой чистой записью вы можете применять фильтры FFT для создания высокочастотных, полосовых и полосовых фильтров по мере необходимости.

Barleyman
источник
1

Линейно-временная инвариантная фильтрация, которую выполняет «классический электронный фильтр», является просто «немым» умножением в области Фурье. Но информация, которую вы найдете в FFT, говорит вам больше деталей, чем просто ответ одного фильтра, который представляет собой просто линейную комбинацию этих компонентов. Используя эту информацию, вы можете управлять обработкой данных и адаптировать ее к данным. Шум имеет некоторые характеристики, которых нет у чистых вокалов и музыкальных тонов, например, корреляция между обертонами для шума не такая же, как для голоса или музыки.

Поэтому, если мы сможем определить корреляции между частотными компонентами, то есть найти «основной тон», каким-то образом мы сможем управлять фильтрацией и сделать ее более адаптированной к данным.

mathreadler
источник