Дизайн цифрових фільтрів - дуже велика і зріла тема, і - як ви вже згадували у своєму запитанні - є багато матеріалів. Я хочу спробувати тут, щоб розпочати роботу та зробити доступніший матеріал більш доступним. Замість цифрових фільтрів я фактично повинен говорити про фільтри дискретного часу, тому що тут я не буду розглядати коефіцієнт коефіцієнта та сигналу. Ви вже знаєте про фільтри FIR та IIR, а також знаєте деякі фільтруючі структури, такі як DF I та II. Тим не менш, дозвольте почати з деяких основ:
Нерекурсивний лінійний фільтр з інваріантом часу (LTI) може бути описаний наступним різницевим рівнянням
у( n ) = h0x ( n ) + h1x ( n - 1 ) + … + hN- 1x ( n - N+ 1 ) = ∑k = 0N- 1годкx ( n - k )(1)
у( n )x ( n )нгодкNгодкx ( n ) = δ( n )у( n ) = hнгодк. Однією з важливих переваг фільтрів FIR є те, що вони завжди стабільні, тобто для обмеженої вхідної послідовності вихідна послідовність завжди обмежена. Ще одна перевага полягає в тому, що фільтри FIR завжди можна реалізувати з точно лінійною фазою, тобто вони не додаватимуть жодних фазових спотворень, крім чистої затримки. Крім того, проблема дизайну зазвичай легша, як ми побачимо пізніше.
Рекурсивний фільтр LTI описується наступним різницевим рівнянням:
у( n ) = b0x ( n ) + b1x ( n - 1 ) + … + bМx ( n - M) -- а1у( п - 1 ) - … - аNу( n - N)(2)
бкакак оскільки IIR-фільтр може бути нестабільним, тобто їх вихідна послідовність може бути необмеженою, навіть із обмеженою послідовністю введення.
Фільтри можуть бути розроблені відповідно до технічних характеристик або в часовій (зразкової) області, або в частотній області, або в обох. Оскільки ви згадали частоту відключення у своєму запитанні, я вважаю, що вас більше цікавлять характеристики в області частоти. У цьому випадку потрібно ознайомитися з частотними характеристиками систем FIR та IIR. Частотна характеристика системи - це перетворення Фур'є в її імпульсної відповіді, припускаючи, що вона існує (що стосується стабільних систем). Частотна характеристика фільтра FIR є
Н( еj θ) = ∑k = 0N- 1годке- j k θ(3)
θ
θ = 2 πffс
ffс
Н( еj θ) = ∑Мk = 0бке- j θ1 + ∑Nk = 1аке- j θ(4)
ак= 0k = 1 , … , N
Давайте зараз коротко розглянемо методи проектування фільтру. Для фільтрів FIR ви можете взяти зворотне перетворення Фур'є потрібної частотної характеристики, щоб отримати імпульсну характеристику фільтра, яка безпосередньо відповідає коефіцієнтам фільтра. Оскільки ви наближаєте бажану відповідь імпульсною характеристикою кінцевої довжини, вам слід застосувати плавне вікно до отриманої імпульсної відповіді, щоб мінімізувати коливання в реальній частотній характеристиці через явище Гіббса. Цей метод називається методом вибірки частоти.
Для простих стандартних фільтрів, таких як ідеальні низькочастотні, високочастотні, смугові або смугові фільтри (та декілька інших), ви навіть можете аналітично обчислити точну імпульсну характеристику, взявши зворотне перетворення Фур'є ідеального бажаного відгуку:
годк= 12 π∫π- πН( еj θ) еj k θгθ
Цей інтеграл легко оцінити для кусково-постійних бажаних відповідей, як це стосується ідеальних частотно-селективних фільтрів. Це дасть вам нескінченно довгий, безпричинний імпульсний відгук, який потрібно переглянути і змістити, щоб зробити його кінцевим і причинним. Цей метод відомий як дизайн вікон.
Звичайно, існує багато інших методів проектування фільтрів FIR. Одним із важливих чисельних методів є відомий алгоритм обміну Паркс-МакКлеллан, який розробляє оптимальні фільтри з постійними пульсаціями пропускання і зупинки. Це метод чисельного наближення, і є багато реалізацій програмного забезпечення, наприклад, у Matlab та Octave.
Найпоширенішим методом проектування IIR для частотно-селективних фільтрів є метод білінеарного перетворення. Цей метод просто використовує аналітичні формули для проектування оптимальних аналогових фільтрів (таких як фільтри Баттерворта, Чебишева, Кауера / еліптика та Бесселя) та перетворює їх у дискретний часовий простір, застосовуючи білінеарне перетворення до складної змінноїс (аналоговий домен), який відображає (уявну) частотну вісь комплексу с-площина до одиничного кола в комплексі z-план (домен дискретного часу). Не хвилюйтесь, якщо ви ще не знаєте багато про складні функції передачі в аналоговій або дискретно-часовій області, тому що існують хороші реалізації реалізованого методу білінеарного перетворення, наприклад в Matlab або Octave.
Звичайно, існує ще багато цікавих і корисних методів, залежно від типу технічних характеристик, але я сподіваюся, що це почне вам роботу і зробить будь-який матеріал, який ви зіткнетеся, більш зрозумілим. Дуже хорошою (і безкоштовною) книгою, яка охоплює деякі основні методи проектування фільтру (та багато іншого), є індукція на обробку сигналів Orfanidis. Тут ви можете знайти кілька прикладів дизайну. Ще одна чудова класична книга - « Дизайн цифрових фільтрів» від «Парки та Беррус».