Як я можу створити дуже вузький фільтр?


15

Припустимо, у мене звуковий сигнал відібраний у Гц, і я хотів би розробити фільтр низьких частот, який ізолює все нижче 60 Гц. У цифровому світі це фільтр низьких частот із смугою пропускання при [ - π4800060. Крім того, смуга переходу також повинна бути розумною. Побудова фільтра FIR для цього може мати безліч дотиків, що з часом впливає на точність. IIR-фільтр занадто не ідеальний, тому що аудіо страждає для нелінійної фазової реакції у фільтрах, тому, якщо сигнал не фільтрується, не повертається назад і не фільтрується знову, це насправді не є можливим.[π400,π400]

Чи може вейвлет-перетворення бути кращим у цьому, ніж звичайна фільтрація в одному ході?


Чи є причина, яку ви не хочете різати?
Lorem Ipsum

Ні, декларування - це добре, поки я отримаю те, що хочу.
Phonon

1
Що таке "розумна" перехідна смуга? Це визначить порядок вашого фільтра. Якщо, наприклад, ваша зупинка починається від 300 Гц, ви, мабуть, у гарній формі. Якщо ви хочете отримати високе загасання на кшталт 60,1 Гц, це буде довго. Хоча довгі фільтри FIR не обов'язково погані,
Jason R

5
Вам потрібна реальна специфікація фільтра, інакше питання безглуздо. Зазначте прийнятне пульсацію прохідної смуги, відхилення зупинки, ширину смуги переходу тощо
Пол R

Має сенс. Зроблю.
Phonon

Відповіді:


20

Якщо ви оптимізуєте інженерний час і працюєте на платформі, яка добре підтримує великі FFT (я не є фіксованою точкою), то скористайтеся порадами hotpaw2 та скористайтеся швидкою згорткою . Це буде набагато краще, ніж наївне впровадження ПДВ, і його слід порівняно легко здійснити.

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

Я отримав доступ до надійних та високооптимізованих реалізацій як швидких згортків, так і багаторазових інструментів фільтрації. Швидка згортка займає приблизно 3 рази більше, щоб отримати еквівалентну продуктивність сигналу порівняно з багатосторонньою структурою. Крім того, це навіть на платформі з плаваючою точкою. Розрив значно розшириться за фіксованою точкою dsp.

Загалом:

Конверсія вниз:

Використовуйте 8 ступенів напівдіапазонного фільтра на десятковий для перетворення сигналу 48 кГц у сигнал 187,5 Гц. На першому етапі цього виходу з ладу може бути дуже широкий перехідний діапазон, що дає енергію псевдоніму до тих пір, поки він не буде псевдонімом до діапазону низьких 60 Гц. У міру прогресування етапів кількість кранів потребує збільшення, але вони застосовуватимуться з поступово меншими показниками вибірки, тому загальна вартість кожного етапу залишається невеликою.

Фільтрування:

Виконайте щільну фільтрацію навколо 60 Гц bw, щоб зберегти енергію, яку ви, зрештою, захочете відняти. Є подвійна перевага - робити щільну фільтрацію з низькою швидкістю:

  1. 1 Гц перехідної смуги частот у 256 разів більший за цифровою частотою при низькій швидкості порівняно з початковою швидкістю. Таким чином, кожен дотик вашого фільтра в 256 разів потужніший.
  2. Сам сигнал подається з меншою швидкістю, тому фільтру потрібно лише обробити 1/256 даних.

До конверсії:

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

Віднімайте:

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


Це фантастична відповідь. Чи можу я мати ваші коментарі до цього повідомлення? dsp.stackexchange.com/questions/29655/…
richieqianle

6

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

Якщо ви можете виконати FFT всю пісню або весь файл аудіосигналу в одному дуже довгому FFT + IFFT (є спеціальні алгоритми FFT для довгих векторів, які не вписуються в dcache або RAM), вам не потрібно буде робити жодного перекриття додавання / збереження обробки, і ви можете отримати дуже вузький діапазон переходу.


4

Очевидно два варіанти: FIR & IIR. Як вже було сказано, FIR вимагає ДУЖКО довгого (1000 тис. Дотиків) імпульсного реагування і є дорогим з точки зору пам’яті, MIPS та затримка з додаванням / збереженням перекриття, що є найбільш ефективним вибором. Однак затримка може бути справжньою проблемою. Якщо ви хочете використовувати це як високий пропуск для сабвуфера домашнього кінотеатру, затримка буде настільки високою, що ви втратите синхронізацію губ із відео.

IIR на кілька порядків менш дорогий і тому часто використовується. Він дійсно має неплоску фазову реакцію, але в багатьох випадках це не є проблемою, або її можна вирішити. Наприклад, якщо вам потрібен високочастотний фільтр для захисту драйверів у басовій коробці, фазова характеристика не дуже важлива, оскільки в загальній системній фазовій реакції переважають драйвер, корпус та акустика у приміщенні. Фільтр тут відіграє лише незначну роль. У багатьох випадках також потрібно підтримувати "відносну" фазу, а не абсолютну фазу. Скажімо, ви хочете застосувати магістральний сигнал на сигнал A, але не на сигнал B, ви можете просто поставити відповідний всеобхідний сигнал на сигнал B, щоб відносна фаза A і B залишалася однаковою. Загальна затримка та групова затримка такого підходу все ще набагато менша, ніж у методу FIR.

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