Основні принципи дизайну цифрових фільтрів (IIR / FIR)


15

Хоча я маю великий досвід в розробці аудіо двигунів і подібних, я досить новачок у галузі цифрового фільтрування, зокрема IIR та FIR-фільтрів. Іншими словами, я намагаюся дізнатися якомога більше про те, як конструювати фільтри та отримувати їх різницеві рівняння. Я починаю з основ, тому, будь ласка, поводьтеся зі мною, як я вже сказав, я намагаюся навчитися.

Тут моє запитання:

Скажімо, я хочу сконструювати фільтр низьких частот із конкретним відсіканням - скажімо, 300 Гц. Який був би найкращий спосіб математичного виведення функції передачі, а потім отримання конкретного рівняння різниці для реалізації фільтра в прямій формі I та прямій формі II (або лише DF-1 на даний момент ...)?

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

Тож я в основному шукаю допомоги з розбиттям процесу, починаючи від вибору частоти обрізання і закінчуючи отриманням рівняння різниці.

Будь-яка допомога буде дуже вдячна. Я знайомий з багатьма поняттями - імпульсна реакція, DFT, математика за цим, я думаю, що мені потрібна додаткова допомога - це концепція z-перетворення та використання полюса / нуля для розробки функції передачі фільтра, а потім як відбувається частота відсічення. грати у всьому цьому, щоб остаточно вивести рівняння різниці.

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


2
Існує безліч методів проектування фільтрів. Ось кілька термінів, щоб розпочати: метод дизайну вікон, дизайн фільтра з найменшими квадратами та дизайн фільтрів в безпосередньому режимі (зазвичай, використовуючи алгоритм Паркс-Макклеллан). Вони здебільшого обмежені конструкціями фільтрів FIR. Один поширений спосіб проектування фільтрів IIR - це зіставлення аналогового прототипу (як фільтр Баттерворта) до відповідного цифрового фільтру наближення. Це можна зробити, наприклад, за допомогою білінеарного перетворення або імпульсної інваріантності.
Jason R

Відповіді:


20

Дизайн цифрових фільтрів - дуже велика і зріла тема, і - як ви вже згадували у своєму запитанні - є багато матеріалів. Я хочу спробувати тут, щоб розпочати роботу та зробити доступніший матеріал більш доступним. Замість цифрових фільтрів я фактично повинен говорити про фільтри дискретного часу, тому що тут я не буду розглядати коефіцієнт коефіцієнта та сигналу. Ви вже знаєте про фільтри FIR та IIR, а також знаєте деякі фільтруючі структури, такі як DF I та II. Тим не менш, дозвольте почати з деяких основ:

Нерекурсивний лінійний фільтр з інваріантом часу (LTI) може бути описаний наступним різницевим рівнянням

(1)у(н)=год0х(н)+год1х(н-1)++годN-1х(н-N+1)=к=0N-1годкх(н-к)

у(н)х(н)нгодкNгодкх(н)=δ(н)у(н)=годнгодк. Однією з важливих переваг фільтрів FIR є те, що вони завжди стабільні, тобто для обмеженої вхідної послідовності вихідна послідовність завжди обмежена. Ще одна перевага полягає в тому, що фільтри FIR завжди можна реалізувати з точно лінійною фазою, тобто вони не додаватимуть жодних фазових спотворень, крім чистої затримки. Крім того, проблема дизайну зазвичай легша, як ми побачимо пізніше.

Рекурсивний фільтр LTI описується наступним різницевим рівнянням:

(2)у(н)=б0х(н)+б1х(н-1)++бМх(н-М)--а1у(н-1)--аNу(н-N)

бкакак оскільки IIR-фільтр може бути нестабільним, тобто їх вихідна послідовність може бути необмеженою, навіть із обмеженою послідовністю введення.

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

(3)Н(еjθ)=к=0N-1годке-jкθ

θ

θ=2πffс

ffс

(4)Н(еjθ)=к=0Мбке-jθ1+к=1Nаке-jθ

ак=0к=1,,N

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

Для простих стандартних фільтрів, таких як ідеальні низькочастотні, високочастотні, смугові або смугові фільтри (та декілька інших), ви навіть можете аналітично обчислити точну імпульсну характеристику, взявши зворотне перетворення Фур'є ідеального бажаного відгуку:

годк=12π-ππН(еjθ)еjкθгθ

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

Звичайно, існує багато інших методів проектування фільтрів FIR. Одним із важливих чисельних методів є відомий алгоритм обміну Паркс-МакКлеллан, який розробляє оптимальні фільтри з постійними пульсаціями пропускання і зупинки. Це метод чисельного наближення, і є багато реалізацій програмного забезпечення, наприклад, у Matlab та Octave.

Найпоширенішим методом проектування IIR для частотно-селективних фільтрів є метод білінеарного перетворення. Цей метод просто використовує аналітичні формули для проектування оптимальних аналогових фільтрів (таких як фільтри Баттерворта, Чебишева, Кауера / еліптика та Бесселя) та перетворює їх у дискретний часовий простір, застосовуючи білінеарне перетворення до складної змінноїс (аналоговий домен), який відображає (уявну) частотну вісь комплексу с-площина до одиничного кола в комплексі z-план (домен дискретного часу). Не хвилюйтесь, якщо ви ще не знаєте багато про складні функції передачі в аналоговій або дискретно-часовій області, тому що існують хороші реалізації реалізованого методу білінеарного перетворення, наприклад в Matlab або Octave.

Звичайно, існує ще багато цікавих і корисних методів, залежно від типу технічних характеристик, але я сподіваюся, що це почне вам роботу і зробить будь-який матеріал, який ви зіткнетеся, більш зрозумілим. Дуже хорошою (і безкоштовною) книгою, яка охоплює деякі основні методи проектування фільтру (та багато іншого), є індукція на обробку сигналів Orfanidis. Тут ви можете знайти кілька прикладів дизайну. Ще одна чудова класична книга - « Дизайн цифрових фільтрів» від «Парки та Беррус».


Вау, Метт, дуже дякую за детальну та продуману відповідь. Я, безумовно, поглиблююсь цим і по-справжньому оціню ваш час. Спасибі!
побіжно

Чи є хороший підручник для дизайну вейвлет-фільтрів? Мені цікаво така тема: dsp.stackexchange.com/questions/29090/… . Спасибі!
LCFactorization

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