Навіщо використовувати швидке перетворення Фур'є для зменшення шуму замість класичного електронного фільтра?


17

Мені хотілося б знати, як видалити шум навколишнього середовища із запису мови.

Я провів деякі дослідження і помітив, що більшість запропонованих методів використовують швидку трансформацію Фур'є. Але чому ви не можете використовувати класичний електронний фільтр для видалення шумових частот? Навіщо турбуватися робити FFT?


Тому що Fft дають кращу якість продукції ??
Сонячний Майк

4
Порівняйте ціну системи DSP на 5GS / s з ціною ряду ревізорів і шапок ...
PlasmaHH

1
Можливо, ви можете зробити більш складну фільтрацію за допомогою fft. "класичні електронні фільтри" просто видаляють усі частоти в певному діапазоні. Також ось ваш студентський знак, подарунок від мене вам.
Андрій Пікуль

1
У мене є 2 проблеми з вашим питанням: (1) Що ви маєте на увазі під "класичним елетроновим фільтром"? (2) Те, що щось робиться в один бік (FFT), НЕ означає, що це НЕ МОЖЕ бути зробити іншим способом (фільтрувати); можуть бути просто деякі недоліки, щоб зробити це інакше. Ти ж припускаєш, що це неможливо зробити з класичним елетроновим фільтром (що б ти не мав на увазі під цим), що, мабуть, неправильно.
Сир

Який формат запису мовлення (аналоговий та цифровий)? Чи проблема із затримкою (реальна та після факту)? Як довго триває запис (пісня проти днів запису)?
мідь.ха

Відповіді:


25

Мені хотілося б знати, як видалити шум навколишнього середовища із запису мови.

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

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


Для того, щоб зробити фільтр більше ослабленим в меншому діапазоні частот, він також зробив криву частоти відгуку більш вертикальною, тоді вам просто потрібно збільшити порядок фільтра.

Це те, що досить легко зробити в Matlab. Це також можливо зробити після обробки. Йдеться також про повторюваність: якщо ви сьогодні застосуєте фільтр у сонячний день, тоді ви очікуєте, що він працює однаково до завтра, коли буде дощ. Ви очікуєте, що він спрацює саме так само, правда?

В аналогових схемах у вас є всі ці "5% резистор", "1% конденсатор" і всі інші речі. Отже, якщо ви хочете зробити щось точне, вам обов'язково потрібно буде потім обрізати схему, щоб вона повністю відповідала бажаному фільтру. Якщо ви хочете збільшити порядок фільтра ... то, на жаль, це зробить фільтр набагато більшим фізично. Замість того, щоб брати розмір кредитної картки, вона займе розмір, я не знаю, залежить від порядку фільтра та того, з чим у вас все в порядку.

Що стосується повторюваності, робимо щось сьогодні .. тепле .. завтра .. холодніше… опір буде змінюватися настільки незначно, частотна характеристика зміниться, пара Гц там, деякі там, тим більше компонентів, які ви отримали у своїх схемах , більше шансів на те, що ваші компоненти змінять свої значення. І тоді у вас є вологість, окислюється ...

І ось першокласна лінія, яку я мав би сказати спочатку, ви дійсно не можете її переробляти, якщо у вас немає касетних стрічок. Я не на 100% впевнений, який аналоговий музичний носій, який легко використовується для запису / видалення. LP-диски були б кошмаром ...

І не будемо забувати ціну. Одне - це програмне забезпечення, якщо ви пишете його самостійно, то воно по суті безкоштовно, інше потребує компонентів, фізичних частин.

Але не вважайте, що аналогові фільтри погані, вони отримали своє використання, наприклад, видалення неприємних гармонік у великих двигунах постійного струму або створення надшвидких крокових двигунів для 3D-принтерів, згладжуючи струм. І тонни іншого використання. - Крім того, якщо ви вирішите це за допомогою аналогового фільтра, ніхто не подумає, що це буде поганим рішенням.

Я вважаю, що я опосередковано відповідаю, чому FFT - це кращий спосіб піти з цим, обробляючи його. Суть полягає в тому, що це зробити набагато дешевше. Ви також можете просто застосувати фільтр для висічок, якщо знаєте, на якій частоті знаходиться шум. Або ширший, також фільтр діапазону.

І останнє, що я хочу додати ... ось ця відповідь така тривала, мені дуже шкода. Але якщо ви використовуєте аналоговий фільтр, і ви ... зіпсуєте свої розрахунки, а потім подумаєте, що це все нормально і безглуздо, і використовуйте його в якихось серйозних заходах, як-от інтерв'ю з королем Швеції (Кнуген). І ви зіпсували розмір конденсатора, замість того, щоб фільтрувати 16 кГц шуму, ви фільтруєте 4 кГц "шум". Якщо ви замість цього попрацюєте з цим цифровим способом, це лише питання зміни деяких змінних, вам не потрібно знежирювати -> припаювати інший компонент. Також інтерв'ю розорене.


4
Hans Majonnäs Honung Carl XVI Gustaf
труба

@pipe Tackar, det behövdes. (Спасибі, мені це було потрібно.)
Гаррі Свенссон,

Подальше запитання (оскільки ця відповідь занадто сильно залежить від буквального визначення аналогового). Чому для фільтра шуму вибирають FFT замість класичних поліноміальних фільтрів?
slebetman

@slebetman не чекаю, що я відповім на це.
Гаррі Свенссон

Це була досить солідна відповідь! Дякую брате, і дякую всім, хто відповів, я не сподівався на стільки допомоги! Я обов'язково буду задавати більше питань на цьому форумі. Ще раз дякую вам!
Джазіс

7

Але чому ви не можете використовувати класичний електронний фільтр для видалення шумових частот?

Хто каже, що ви не можете? Так було зроблено за дні до цифрової обробки сигналів. Проблема полягає в тому, що фільтрація шуму - це завжди компроміс між тим, щоб не торкатися потрібного сигналу (мови, музики), знижуючи шум.

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

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

Тут відбувається цифрова обробка сигналів. У цифровій області набагато простіше реалізувати складні фільтри з безліччю полюсів і нулів. Оскільки розташування (в частотній області) цих полюсів і нулів пов'язане з тактовою частотою DSP (цифровий процесор сигналу), що є точним (кристалічним) годинником, фільтр буде набагато точнішим порівняно з аналоговою реалізацією .


+1 за згадування компромісу між збереженням розшукуваних сигналів та видаленням небажаних. Проблема полягає в тому, що мова і шум займають однакові частоти, тому FFT-фільтр може видаляти шум "базової лінії", тобто після аналізу амплітуди шуму на кожній частоті без мови , який можна видалити там, де є мова. Так працюють фільтри FFT-шуму в Audacity тощо, тощо, тощо.
Інженер, що

Я не впевнений, що особливо важко спроектувати та побудувати аналогові фільтри. Все, що вам потрібно, - це один-два opamps та кілька резисторів та конденсаторів. А оскільки opamps зазвичай постачається у подвійних пакетах, вам потрібна лише одна мікросхема. Зазвичай я використовую аналоговий фільтр, щоб зробити низькочастотну фільтрацію, щоб переконатися, що в сигналі є мало пошкоджений високочастотний сигнал. Ви не можете позбутися цього за допомогою FFT згодом. З іншого боку, без проблем робити FFT смуговий фільтр, коли у вас є чиста "запис" для обробки.
Barleyman

@Barleyman Я не впевнений, що робить аналогові фільтри особливо важкими для проектування та побудови. Я мав на увазі фільтри високого порядку, такі як четвертий і вище. Я згоден, що пара opamps. резистори та конденсатори можуть зробити майже будь-який фільтр замовлення, але ви ще намагалися спроектувати його? У мене є гаразд, в тренажері, але тоді ви вже натрапили на стандартні нестандартні конденсатори, які недостатньо точні . При більш високих замовленнях точне значення компонентів стає все більш важливим.
Bimpelrekkie

Крім того, згладжування вже не є такою проблемою, як це, оскільки зараз у нас є сигма-дельта АЦП та ЦАП з дуже високими частотами вибірки, тому простий RC - це все, що потрібно.
Bimpelrekkie

@ Bimpelrekkie Я створив декілька, нічого цього не зробив сьогодні. Ще в той день, коли ви будете використовувати книгу з деякими попередньо обчисленими параметрами вибору, з якими ви б витратили певний час, заплутуючись, щоб отримати деякі розумні значення компонентів. Точність не є великою проблемою, якщо ви не намагаєтеся бути занадто виборчими. RC насправді не виконує цю роботу, якщо ви намагаєтесь зробити, наприклад, аудіозапис. З -20 дБ / десятиліття вам доведеться поставити фільтр на 2,2 кГц, щоб отримати якусь фільтрацію на частоті Найквіста. Чербичівський третій порядок зробив би краще @ 12kHz fc. 5-е замовлення призведе до -46dB, що є "досить хорошим"
Barleyman

5

Ну, перший крок до розуміння того, для чого нам потрібен FFT - це зрозуміти, як працює цифрова фільтрація.

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

Ця ідея справна, коли у вас є швидкий реєстр, що робить швидке множення, і у вас є зразки, що надходять повільно, по черзі.

У реальному житті замість цього ви, швидше за все, отримаєте кадр, що складається з кількох зразків. Коли ви хочете відфільтрувати це, ви зведете зразки з коефіцієнтами фільтра. Це те саме, що робити попередній підхід, але просто виглядає трохи інакше.

Тепер приходить частина FFT. Виявляється, згортання зростає в числовій складності дуже швидко з кількістю зразків. З іншого боку, FFT на своєму початку чисельно складний, але кількість необхідних операцій зростає набагато повільніше зі збільшенням коефіцієнтів фільтра порівняно з згорткою.

Що вищезазначене означає, що вище певної кількості вибірок буде набагато швидше перетворити сигнал у частотну область за допомогою FFT, відфільтрувати сигнал у частотній області, а потім перетворити його назад за допомогою IFFT. Трюк, який ми використовуємо, - це одна з властивостей згортки, а саме те, що згортання у часовій області може в деяких випадках моделюватися як множення в частотній області.

Отже, підсумовуючи це, якщо кількість коефіцієнтів фільтра у вас достатньо велике, FFT швидше. "Великий" може бути таким же маленьким, як сотня або близько того.


3
Я думаю, що під "класичним електронним фільтром" він мав на увазі аналоговий фільтр, а не згортку.
джалаліпоп

1
@jalalipop Можливо, але я прямо хотів пояснити частину FFT. На той час у нас вже є відповідь, що пояснює, чому ми хотіли б мати цифрові фільтри замість аналогових.
AndrejaKo

2

Методи на основі FFT (вам все одно доведеться працювати з віконними змінами та модифікаціями перекриття, додавання або перемикання зсуву) є головною перевагою в тому, що конструкція суцільно знаходиться в частотній області, а також фільтр Вінера або спектральне віднімання або ряд інші системи, що спираються на статистику сигналів та модель, дійсно принципово працюють у частотній області.

На противагу цьому, ехо-скасування та різні варіанти не покладаються на модель шуму, а на недосконалу запис, яка сильно корелює із шумом. Це робиться за допомогою різних фільтрів (зазвичай FIR), щоб відняти оцінку шуму від сигналу та оновити фільтри, щоб мінімізація кореляції залишкового сигналу до каналу шуму була мінімальною. Для цих методів FFT не є таким корисним (коли значні затримки отриманого сигналу та оновлення фільтрів є дозволеними, вони можуть бути використані як компонент у FIR blackbox із затримкою з міркувань продуктивності, але насправді не корисні для їх можливість представлення частотної області).


твердо в частотній області . Не було б жодної особливої ​​переваги в цьому, якби це не було, тому що тони та ноти мають властивості основного тону та підтексту.
mathreadler

2

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

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


1

Лінійна інваріантна часова фільтрація, яку робить "класичний електронний фільтр" - це просто "німе" множення в області Фур'є. Але інформація, яку ви знайдете на FFT, розповідає вам більше деталей, ніж просто відповідь одного фільтра, що є лише лінійною комбінацією цих компонентів. Використовуючи цю інформацію, ви можете керувати обробкою даних та робити її адаптованою до даних. Шум має деякі характеристики, яких чітких вокалів та музичних тонів немає, наприклад, співвідношення між обертонами не є майже таким самим для шуму, як для голосу чи музики.

Отже, якщо ми можемо виявити співвідношення між частотними компонентами - тобто знайти "тон землі", то якимось чином можна керувати фільтрацією та зробити її більш пристосованою до даних.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.