Я хотел бы знать, как удалить шум окружающей среды из записи речи.
Я провел некоторые исследования и заметил, что большинство предложенных методов используют быстрое преобразование Фурье. Но почему вы не можете использовать классический электронный фильтр для удаления частот шума? Зачем заниматься БПФ?
Ответы:
Ну, теперь он хранится в цифровом виде, верно? так вы планируете поставить микрофон рядом с динамиком после аналогового фильтра, чтобы перезаписать его?
Хватит возиться, я буду серьезен.
Чтобы сделать фильтр более ослабленным в меньшем диапазоне частот, то есть сделать кривую частотной характеристики более вертикальной, тогда вам просто нужно увеличить порядок фильтра.
Это то, что довольно легко сделать в Matlab. Это также то, что целесообразно сделать пост-обработки. Это также касается повторяемости: если вы применяете фильтр сегодня в солнечный день, то ожидаете, что он будет работать так же, как и завтра, когда идет дождь. Вы ожидаете, что это будет работать точно так же, верно?
В аналоговых цепях у вас есть все эти «5% резистор», «1% конденсатор» и все остальное. Так что, если вы хотите сделать что-то точное, вам обязательно нужно потом подрезать схему, чтобы она идеально соответствовала желаемому фильтру. Если вы хотите увеличить порядок фильтра ... тогда, к сожалению ... это сделает фильтр намного больше физически. Вместо того, чтобы брать размер кредитной карты, он принимает размер, я не знаю, зависит от порядка фильтра и того, с чем у вас все в порядке.
Что касается повторяемости, делая что-то сегодня ... тепло ... завтра ... холоднее ... сопротивления будут немного меняться, частотная характеристика будет меняться, пара Гц там, некоторые там, чем больше компонентов вы получили в своих цепях Более вероятно, что ваши компоненты изменят свои значения. И тогда у вас есть влажность, окислитель ...
И вот изюминка, о которой я должен был сказать в первую очередь, вы не сможете пост-обработать ее, если у вас нет кассет. Я не уверен на 100%, какой аналоговый музыкальный носитель используется для записи / удаления. LP диски были бы кошмаром ...
И давайте не будем забывать цену. Один из них - это программное обеспечение, если вы пишете его самостоятельно, то это по сути бесплатно, а другой требует компонентов, физических частей.
Но не думайте, что аналоговые фильтры плохие, они получили свое применение, например, для удаления неприятных гармоник в больших двигателях постоянного тока или создания сверхтихих шаговых двигателей для 3D-принтеров путем сглаживания тока. И тонны другого использования. - Также, если бы вы решили это с помощью аналогового фильтра, никто бы не подумал, что это будет плохое решение.
Я полагаю, что косвенно отвечаю, почему FFT - лучший способ сделать это с точки зрения постобработки. Суть в том, что это намного дешевле. Вы также можете просто применить режекторный фильтр, если знаете, на какой частоте присутствует шум. Или более широкий, иначе известный как полосовой фильтр.
И последнее, что я хочу добавить ... Вау, этот ответ такой длинный, извини. Но если вы используете аналоговый фильтр, и вы ... испортите свои расчеты, а затем подумаете, что все в порядке, и используйте его в каком-то серьезном событии, например, в интервью у короля Швеции (Кнуген). И вы испортили размер конденсатора, вместо того, чтобы фильтровать шум 16 кГц, вы фильтруете «шум» 4 кГц. Если вместо этого вы имеете дело с этим в цифровой форме, то это просто вопрос изменения некоторых переменных, вам не нужно припаять -> припаять другой компонент. Также интервью испорчено.
источник
Но почему вы не можете использовать классический электронный фильтр для удаления частот шума?
Кто сказал, что ты не можешь? Как это было сделано за несколько дней до цифровой обработки сигналов. Проблема в том, что фильтрация шума - это всегда компромисс между сохранением нужного сигнала (речь, музыка) без изменений при снижении шума.
Для кассет и других аналоговых магнитофонных записей использовались такие системы, как DNL и Dolby, которые фильтруют только при слабом сигнале, что означает, что шум более слышен. Затем, когда сигнал становится сильнее, фильтр гаснет. Смотрите: статья в Википедии о снижении шума
Речь может быть ограничена узкой полосой частот, например, от 300 Гц до 3 кГц, но при этом она совершенно понятна. Вы можете сделать простой аналоговый фильтр для этой полосы, но это ограничит степень подавления шума. Для более эффективной фильтрации частот вне этой полосы потребуется сложный аналоговый фильтр. Такие фильтры сложно спроектировать, построить и изготовить.
Именно здесь начинается цифровая обработка сигналов. В цифровой области гораздо проще реализовать сложные фильтры с множеством полюсов и нулей. Кроме того, поскольку расположение (в частотной области) этих полюсов и нулей связано с тактовым сигналом DSP (процессора цифровых сигналов), который является точным (кристаллическим) тактовым сигналом, фильтр будет намного более точным по сравнению с аналоговой реализацией. ,
источник
Итак, первый шаг к пониманию того, почему нам нужен FFT, - это понять, как работает цифровая фильтрация.
Итак, в основном, у вас есть структура, такая как регистр сдвига, с несколькими элементами памяти, входом и выходом. Значение выборки поступает на вход, сдвигается через регистр и перемещается на выход. На каждом этапе в регистре он умножается на число, называемое коэффициентом фильтра.
Эта идея работает хорошо, когда у вас есть быстрый регистр, делающий быстрые умножения, и у вас есть сэмплы, поступающие медленно один за другим.
В реальной жизни вместо этого вы, скорее всего, получите кадр, состоящий из нескольких семплов. Когда вы захотите отфильтровать это, вы свернете образцы с коэффициентами фильтра. Это похоже на предыдущий подход, но выглядит немного иначе.
Теперь приходит часть БПФ. Оказывается, что свертка возрастает в численной сложности очень быстро с количеством образцов. С другой стороны, вначале БПФ численно усложняется, но число необходимых операций растет гораздо медленнее с увеличением коэффициентов фильтрации по сравнению со сверткой.
Вышеуказанное означает, что при превышении определенного количества выборок будет гораздо быстрее преобразовать сигнал в частотную область, используя FFT, отфильтровать сигнал в частотной области, а затем преобразовать его обратно, используя IFFT. Уловка, которую мы используем, является одним из свойств свертки, а именно то, что свертка во временной области может, в некоторых случаях, моделироваться как умножение в частотной области.
Таким образом, если подвести итог, если число имеющихся у вас коэффициентов фильтра достаточно велико, FFT быстрее. «Большой» может быть как сто или около того.
источник
Основанные на БПФ методы (вам все равно придется работать с окнами и модификациями с наложением-добавлением или смещением-смещением) имеют основное преимущество, заключающееся в том, что проект полностью находится в частотной области, и фильтр Винера или спектральное вычитание или ряд другие системы, основанные на статистике сигналов и модели, в основном работают в частотной области.
Напротив, эхоподавление и различные варианты основаны не на модели шума, а на несовершенной записи, сильно коррелированной с шумом. Это делается с использованием изменяющихся фильтров (обычно КИХ), чтобы вычесть оценку шума из сигнала и обновить фильтры, чтобы сохранить корреляцию оставшегося сигнала с шумовым каналом минимальной. Для этих методов FFT не так уж и полезен (когда допустимы значительные задержки результирующего сигнала и обновлений фильтра, они могут использоваться в качестве компонента в FIR черного ящика с задержкой по соображениям производительности, но на самом деле они бесполезны для их использования. возможность представления в частотной области).
источник
Аналоговые фильтры достаточно просты в разработке, но ограничение заключается в том, что вам необходимо продолжать добавлять физические элементы фильтра для достижения полосовой фильтрации заданных частот. И вам нужно настроить значения компонентов, если вы хотите переместить метки. Одиночный операционный усилитель может выполнить одну полосу отсечки, поэтому вам нужно добавить еще один усилитель для каждой отметки, которую вы хотите. Для более избирательной засечки вам понадобится два усилителя на насечку.
С практической точки зрения вам лучше всего будет использовать фильтр нижних частот 3-го порядка, который вы можете сделать с одним операционным усилителем, или, возможно, фильтр нижних частот пятого порядка, для которого требуется два. Используйте фильтр нижних частот для ослабления частот выше частоты Найквиста (1/2 частоты дискретизации) с некоторым запасом, и вы получите высококачественную цифровую выборку для последующей обработки. С такой чистой записью вы можете применять фильтры FFT для создания высокочастотных, полосовых и полосовых фильтров по мере необходимости.
источник
Линейно-временная инвариантная фильтрация, которую выполняет «классический электронный фильтр», является просто «немым» умножением в области Фурье. Но информация, которую вы найдете в FFT, говорит вам больше деталей, чем просто ответ одного фильтра, который представляет собой просто линейную комбинацию этих компонентов. Используя эту информацию, вы можете управлять обработкой данных и адаптировать ее к данным. Шум имеет некоторые характеристики, которых нет у чистых вокалов и музыкальных тонов, например, корреляция между обертонами для шума не такая же, как для голоса или музыки.
Поэтому, если мы сможем определить корреляции между частотными компонентами, то есть найти «основной тон», каким-то образом мы сможем управлять фильтрацией и сделать ее более адаптированной к данным.
источник