В этом примере показано, как спроектировать фильтры FIR и IIR на основе спецификаций частотной характеристики с использованием функции designfilt в продукте Signal Processing Toolbox®. В этом примере основное внимание уделяется фильтрам нижних частот, но большинство результатов применимы и к другим типам ответов.
В этом примере основное внимание уделяется дизайну цифровых фильтров, а не их применению. Если вы хотите узнать больше о применении цифровых фильтров, ознакомьтесь с примером "Практическое введение в цифровую фильтрацию".
Проектирование КИХ-фильтров
Технические характеристики фильтра нижних частот
Идеальный фильтр нижних частот - это тот, который оставляет неизменными все частотные составляющие сигнала ниже заданной частоты среза, w_c, и отклоняет все составляющие выше w_c. Поскольку импульсная характеристика, необходимая для реализации идеального фильтра нижних частот, бесконечно велика, невозможно спроектировать идеальный КИХ-фильтр нижних частот. Приближение конечной длины к идеальной импульсной характеристике приводит к наличию пульсаций как в полосе пропускания (w < w_c), так и в полосе пропускания (w> w_c) фильтра, а также к ненулевой ширине перехода между полоса пропускания и полоса пропускания.
Как пульсации (ripples) полосы пропускания (passband) / полосы заграждения (stopband), так и ширина перехода являются нежелательными, но неизбежными отклонениями от характеристик идеального фильтра нижних частот (lowpass), когда они аппроксимируются конечной импульсной характеристикой. Эти отклонения показаны на следующем рисунке:
Практические схемы КИХ-фильтров обычно состоят из фильтров, ширина перехода между которыми и максимальная полоса пропускания и пульсации полосы пропускания не превышают допустимых значений. В дополнение к этим конструктивным характеристикам необходимо выбрать порядок фильтрации или, что эквивалентно, длину усеченной импульсной характеристики.
Полезной метафорой для описания проектных спецификаций в разделе "Проектирование фильтров" является представление каждой спецификации как одного из углов треугольника, показанного на рисунке ниже.
Треугольник используется для определения степеней свободы, доступных при выборе проектных спецификаций. Поскольку сумма углов фиксирована, можно выбрать значения не более двух спецификаций. Третья спецификация будет определяться конкретным алгоритмом проектирования. Более того, как и в случае с углами в треугольнике, если мы увеличим / уменьшим одну из спецификаций, это повлияет на одну или обе другие спецификации.
КИХ-фильтры очень привлекательны, поскольку они по своей сути стабильны и могут быть сконструированы с линейной фазой. Тем не менее, эти фильтры могут иметь длительные переходные характеристики и могут оказаться дорогостоящими с точки зрения вычислений в определенных приложениях.
КИХ-фильтры минимального порядка (FIR)
Схемы фильтров минимального порядка получаются путем задания частот полосы пропускания и полосы заграждения, а также пульсаций в полосе пропускания и затухания в полосе заграждения. Затем алгоритм проектирования выбирает минимальную длину фильтра, соответствующую спецификациям.
Разработаем КИХ-фильтр нижних частот минимального порядка с частотой полосы пропускания 0,37 * Пи рад / выборка, частотой полосы пропускания 0,43 * Пи рад /выборка (следовательно, ширина перехода равна 0,06 * Пи рад /выборка), пульсацией полосы пропускания 1 дБ и ослаблением полосы заграждения 30 дБ.
Результирующий порядок фильтрации может быть запрошен с помощью функции filtord.
Вы можете использовать функцию info() для получения информации о параметрах, использованных при разработке фильтра
Функция designfilt по умолчанию выбирает алгоритм проектирования equiripple. Линейно-фазовые equiripple фильтры желательны, поскольку для данного порядка они имеют минимально возможное максимальное отклонение от идеального фильтра.
Однако обратите внимание, что проекты минимального порядка также могут быть получены с использованием метода Kaiser window. Несмотря на то, что метод окна Кайзера дает больший порядок фильтрации для тех же характеристик, алгоритм менее затратен в вычислительном отношении и с меньшей вероятностью будет иметь проблемы со сходимостью, когда проектные характеристики очень строгие. Это может произойти, если для применения требуется очень узкая ширина перехода или очень большое затухание полосы пропускания.
Разработаем фильтр с теми же характеристиками, что и выше, используя метод окна Кайзера, и сравним его реакцию с equiripple фильтром.
Задание частотных параметров в Герцах
Если вам известна частота дискретизации, с которой будет работать фильтр, вы можете указать частоту дискретизации и частоты в герцах. Измените конфигурацию equiripple фильтра минимального порядка для частоты дискретизации 2 кГц.
Фиксированный порядок, Фиксированная ширина перехода
Схемы с фиксированным порядком полезны для приложений, которые чувствительны к вычислительной нагрузке или накладывают ограничение на количество коэффициентов фильтрации. Одним из вариантов является фиксирование ширины перехода за счет контроля за ослаблением пульсаций полосы пропускания / затухания полосы заграждения.
Рассмотрим КИХ-фильтр нижних частот 30-го порядка с частотой полосы пропускания 370 Гц, частотой полоса заграждения 430 Гц и частотой дискретизации 2 кГц. Для данного конкретного набора характеристик доступны два метода расчета: равнодействующий и метод наименьших квадратов. Давайте разработаем по одному фильтру для каждого метода и сравним результаты.
Equiripple фильтры идеально подходят для задач, в которых должны соблюдаться определенные допуски, например, при проектировании фильтра с заданным минимальным затуханием в полосе заграждения или с заданным максимальным уровнем пульсаций в полосе полоса пропускания. С другой стороны, эти схемы могут оказаться нежелательными, если мы хотим минимизировать энергию ошибки (между идеальным и фактическим фильтром) в полосе пропускания / полосе заграждения.
- Если вы хотите максимально снизить энергию сигнала в определенной полосе частот, используйте метод наименьших квадратов.
В приведенных выше примерах разработанные фильтры имели одинаковую пульсацию в полосе пропускания и в полосе ограничения. Мы можем использовать веса, чтобы уменьшить пульсацию в одной из полос, сохраняя порядок фильтрации фиксированным. Например, если вы хотите, чтобы пульсация полосы затухания составляла десятую часть от пульсации полосы пропускания, вы должны задать вес полосы заграждения, в десять раз превышающий полосу пропускания. Переработайте equiripple фильтр , используя это условие:
Фиксированный порядок, Фиксированная частота среза
Вы можете создавать фильтры с фиксированным порядком фильтрации и частотой среза, используя оконный метод проектирования.
Вы можете использовать разные окна для управления ослаблением полосы заграждения, сохраняя при этом порядок фильтрации неизменным.
Например, рассмотрим КИХ-фильтр нижних частот 100-го порядка с частотой среза 60 Гц и частотой дискретизации 1 кГц. Сравните схемы, которые получаются в результате использования окна Хэмминга и окна Чебышева с ослаблением боковых лепестков на 90 дБ.
Существуют другие способы, с помощью которых вы можете указать фильтр с фиксированным порядком: фиксированная частота среза, пульсации в полосе пропускания и затухание в полосе заграждения; фиксированная ширина перехода и фиксированная полоса половинной мощности (3 дБ).
Проектирование БИХ-фильтров (IIR)
Одним из недостатков КИХ-фильтров является то, что для соответствия некоторым конструктивным спецификациям требуется большой порядок фильтрации. Если пульсация поддерживается постоянной, порядок фильтрации увеличивается обратно пропорционально ширине перехода. Используя обратную связь, можно выполнить набор проектных спецификаций при гораздо меньшем порядке фильтров. Именно эта идея лежит в основе проектирования БИХ-фильтров. Термин "бесконечная импульсная характеристика" (IIR) связан с тем фактом, что при подаче импульса на фильтр выходной сигнал никогда не спадает до нуля.
- БИХ-фильтры полезны, когда вычислительные ресурсы ограничены. Однако стабильные БИХ-фильтры с причинной зависимостью не могут иметь идеально линейную фазу. Избегайте конструкций БИХ-фильтров в случаях, когда требуется линейность фазы.
Другой важной причиной использования БИХ-фильтров является их небольшая групповая задержка по сравнению с КИХ-фильтрами, что приводит к более короткой переходной характеристике.
Фильтры Баттерворта
Фильтры Баттерворта - это максимально плоские БИХ-фильтры. Из-за плоскостности полосы пропускания и полосы заграждения, полоса перехода получается очень широкой. Для получения фильтров с узкой шириной перехода требуются большие порядки.
Разработаем фильтр Баттерворта минимального порядка с частотой полосы пропускания 100 Гц, частотой промежуточной полосы 300 Гц, максимальной пульсацией полосы пропускания 1 дБ и ослаблением промежуточной полосы 60 дБ. Частота дискретизации составляет 2 кГц.
Фильтры Чебышева I типа
Фильтры Чебышева I типа достигают меньшей ширины перехода, чем фильтры Баттерворта того же порядка, за счет учета пульсаций в полосе пропускания.
- Фильтры Баттерворта и Чебышева I типа имеют максимально плоские полосы пропускания и заграждения. Для данного порядка фильтрации выбирается компромисс между пульсацией полосы пропускания и шириной перехода.
Разработайте фильтр Чебышева I типа с теми же характеристиками, что и у описанного выше фильтра Баттерворта.
Фильтры Чебышева II типа
Фильтры Чебышева II типа имеют максимально плоские полосы заграждения и гладкие полосы пропускания.
Поскольку чрезвычайно большие затухания обычно не требуются, мы можем достичь требуемой ширины перехода с относительно небольшим порядком, допуская некоторую пульсацию полосы пропускания.
Разработайте фильтр Чебышева II типа минимального порядка с теми же характеристиками, что и в предыдущих примерах.
Эллиптические Фильтры
Эллиптические фильтры обобщают фильтры Чебышева и Баттерворта, допуская пульсации как в полосе пропускания, так и в полосе заграждения. Поскольку пульсации уменьшаются, эллиптические фильтры могут произвольно приближаться к величине и фазовой характеристике фильтров Чебышева или Баттерворта.
- Эллиптические фильтры достигают заданной ширины перехода с наименьшим порядком.
Сравните характеристики и порядок четырех БИХ-фильтров.
Для одинаковых ограничений по характеристикам проектирования метод Баттерворта дает наивысший порядок, а эллиптический метод - наименьший.
Увеличьте масштаб полосы пропускания, чтобы увидеть различия в пульсациях.
axis([0 150 -3 2]);
Точное соответствие спецификациям полосы пропускания или полосы заграждения
При проектировании фильтров минимального порядка идеальный порядок должен быть округлен до следующего целого числа. Этот дополнительный дробный порядок позволяет алгоритму фактически превосходить спецификации.
Используйте параметр 'MatchExactly', чтобы ограничить алгоритм проектирования точным соответствием одному диапазону. Другой диапазон превышает его спецификацию.
By default, Chebyshev Type I designs match the passband, Butterworth and Chebyshev Type II match the stopband, and elliptic designs match both the passband and the stopband (while the stopband edge frequency is exceeded):
По умолчанию схемы Фильтры Чебышева I типа соответствуют полосе пропускания, Фильтры Чебышева II типа соответствуют полосе заграждения, а эллиптические схемы соответствуют как полосе пропускания, так и полосе заграждения (при превышении граничной частоты полосы пропускания):
Согласованная по полосе пропускания и по обеим полосам конструкции имеют пульсацию ровно 1 дБ при значении частоты полосы пропускания 100 Гц.
Сравнение групповой задержки
With IIR filters, we need to consider not only the ripple/transition width tradeoff, but also the degree of phase distortion. We know that it is impossible to have linear-phase throughout the entire Nyquist interval. Thus we may want to see how far from linear the phase response is. A good way to do this is to look at the (ideally constant) group delay and see how flat it is.
При использовании БИХ-фильтров нам необходимо учитывать не только соотношение пульсации и ширины перехода, но и степень фазовых искажений. Мы знаем, что невозможно получить линейную фазу на протяжении всего интервала Найквиста. Таким образом, мы можем захотеть посмотреть, насколько далек от линейного отклик по фазе. Хороший способ сделать это - посмотреть на (идеально постоянную) групповую задержку и посмотреть, насколько она ровная.
Сравните групповую задержку четырех БИХ-фильтров, разработанных выше.
- Если проблема с фазой, имейте в виду, что конструкции типа II Баттерворта и Чебышева имеют наименьшую групповую задержку и, следовательно, вносят наименьшие искажения.
Выводы
В этом примере вы узнали, как использовать designfilt для получения различных низкочастотных фильтров КИХ и БИХ с различными ограничениями и методами проектирования. designfilt также можно использовать для получения схем с высокими частотами, полосой пропускания, ограничением полосы пропускания и др.