Основное преимущество БИХ-фильтров по сравнению с КИХ-фильтрами состоит в том, что они обычно удовлетворяют заданному набору спецификаций с гораздо более низким порядком фильтров, чем соответствующий КИХ-фильтр. Хотя фильтры IIR имеют нелинейную фазу, обработка данных в программном обеспечении MATLAB ® обычно выполняется «в автономном режиме», то есть вся последовательность данных доступна до фильтрации. Это позволяет использовать некаузальный подход с нулевой фазой фильтрации (через filtfilt функция), которая исключает нелинейное фазовое искажение БИХ-фильтра.
Классические фильтры IIR, Butterworth, Chebyshev Type I и II, эллиптические и бесселевские, все по-разному аппроксимируют идеальный фильтр «кирпичной стены».
Эта панель инструментов предоставляет функции для создания всех этих типов классических IIR-фильтров как в аналоговых, так и в цифровых доменах (кроме Бесселя, для которого поддерживается только аналоговый корпус), и в конфигурациях нижних частот, верхних частот, полосы пропускания и полосы пропускания. Для большинства типов фильтров можно также найти наименьший порядок фильтрации, который соответствует данной спецификации фильтра с точки зрения полосы пропускания и затухания полосы останова, а также ширины (ей) перехода.
Функция проектирования прямого фильтра yulewalk находит фильтр с амплитудной характеристикой, аппроксимирующей заданную частотно-ответную функцию. Это один из способов создания многополосного полосного фильтра.
Для проектирования фильтров БИХ можно также использовать функции параметрического моделирования или идентификации системы. Эти функции рассматриваются в приложении Parametric Modeling.
Обобщенная функция конструирования Butterworth maxflat рассматривается в разделе Обобщенный дизайн фильтра бабочки.
В следующей таблице представлены различные методы фильтрации на панели инструментов и перечислены функции, доступные для реализации этих методов.
Фильтры панели инструментов Методы и доступные функции
| Метод фильтрации | Описание | Функции фильтра |
|---|---|---|
Аналоговое прототипирование | Используя полюса и нули классического фильтра-прототипа нижних частот в непрерывной области (Лапласа), получить цифровой фильтр посредством преобразования частоты и дискретизации фильтра. | Полные функции проектирования: besself, butter, cheby1, cheby2, ellipФункции оценки заказа: buttord, cheb1ord, cheb2ord, ellipordФункции низкочастотного аналогового прототипа: besselap, buttap, cheb1ap, cheb2ap, ellipapФункции преобразования частоты: lp2bp, lp2bs, lp2hp, lp2lpФункции дискретизации фильтра: bilinear, impinvar |
Прямое проектирование | Создание цифрового фильтра непосредственно в дискретной временной области путем аппроксимации кусочно-линейной амплитудной характеристики. | |
Обобщенный дизайн бабочки | Проектирование низкочастотных фильтров Butterworth с большим количеством нулей, чем полюсов. | |
Параметрическое моделирование | Найдите цифровой фильтр, который аппроксимирует заданный отклик временной или частотной области. (Обширную коллекцию инструментов параметрического моделирования см. в документации по Toolbox™ идентификации системы.) | Функции моделирования во временной области: lpc, prony, stmcbФункции моделирования частотной области: invfreqs, invfreqz |
Основная технология проектирования цифровых фильтров БИХ, которую предоставляет данная панель инструментов, основана на преобразовании классических аналоговых фильтров нижних частот в их цифровые эквиваленты. В следующих разделах описывается, как проектировать фильтры и обобщать характеристики поддерживаемых типов фильтров. Подробные сведения о процессе проектирования фильтров см. в разделе Специальные темы в разделе Проектирование фильтров IIR.
С помощью функций проектирования фильтров можно легко создать фильтр любого порядка с конфигурацией нижних, верхних, полосовых или полосовых частот.
Функции проектирования фильтров
Тип фильтра | Функция проектирования |
|---|---|
Бессель (только аналоговый) |
|
Баттерворт |
|
Чебышёв I типа |
|
Чебышёв II типа |
|
Овальный |
|
По умолчанию каждая из этих функций возвращает фильтр нижних частот; необходимо указать только нужную частоту отсечки, Wn, в нормированных единицах, так что частота Найквиста равна 1 Гц). Для фильтра верхних частот добавьте 'high' в список параметров функции. Для полосового или полосового фильтра укажите Wn в виде двухэлементного вектора, содержащего граничные частоты полосы пропускания. Приложить 'stop' для конфигурации bandstop.
Вот несколько примеров цифровых фильтров:
[b,a] = butter(5,0.4); % Lowpass Butterworth [b,a] = cheby1(4,1,[0.4 0.7]); % Bandpass Chebyshev Type I [b,a] = cheby2(6,60,0.8,'high'); % Highpass Chebyshev Type II [b,a] = ellip(3,1,60,[0.4 0.7],'stop'); % Bandstop elliptic
Для проектирования аналогового фильтра, возможно, для моделирования, используйте задний 's' и укажите частоты отсечения в рад/с:
[b,a] = butter(5,0.4,'s'); % Analog Butterworth filter
Все функции конструкции фильтра возвращают фильтр в представлении модели передаточной функции, усиления нулевого полюса или линейной системы состояния-пространства в зависимости от количества выходных аргументов. Как правило, следует избегать использования формы передаточной функции, поскольку могут возникать числовые проблемы, вызванные ошибками округления. Вместо этого используйте форму с нулевым коэффициентом усиления, которую можно преобразовать в форму секции второго порядка (SOS) с помощью zp2sos а затем используйте форму SOS для анализа или внедрения фильтра.
Примечание
Все классические фильтры нижних частот БИХ плохо приспособлены для крайне низких частот отсечки. Поэтому вместо конструирования БИХ-фильтра нижних частот с очень узкой полосой пропускания может быть лучше сконструировать более широкую полосу пропускания и прореживать входной сигнал.
Эта панель инструментов предоставляет функции выбора заказов, которые вычисляют минимальный порядок фильтрации, соответствующий заданному набору требований.
Тип фильтра | Функция оценки заказа |
|---|---|
Баттерворт |
|
Чебышёв I типа |
|
Чебышёв II типа |
|
Овальный |
|
Они полезны в сочетании с функциями проектирования фильтров. Предположим, вам нужен полосовой фильтр с полосой пропускания от 1000 до 2000 Гц, полосами останова, начинающимися с 500 Гц с обеих сторон, частотой дискретизации 10 кГц, максимум 1 дБ пульсации полосы пропускания и по крайней мере 60 дБ затухания полосы останова. Вы можете соответствовать этим спецификациям, используя butter функционируют следующим образом.
[n,Wn] = buttord([1000 2000]/5000,[500 2500]/5000,1,60) [b,a] = butter(n,Wn);
n =
12
Wn =
0.1951 0.4080Эллиптический фильтр, удовлетворяющий тем же требованиям, задается
[n,Wn] = ellipord([1000 2000]/5000,[500 2500]/5000,1,60) [b,a] = ellip(n,1,60,Wn);
n =
5
Wn =
0.2000 0.4000Эти функции также работают с другими стандартными конфигурациями диапазонов, а также для аналоговых фильтров.
Инструментарий предоставляет пять различных типов классических БИХ-фильтров, каждый из которых является оптимальным. В этом разделе показана основная форма аналогового прототипа для каждого и обобщены основные характеристики.
Фильтр Баттерворта обеспечивает наилучшее приближение серии Тейлора к идеальному отклику фильтра нижних частот на аналоговых частотах Λ = 0 и Λ = ∞; для любого порядка N квадратичный отклик по величине имеет 2N - 1 нулевых производных в этих местоположениях (максимально плоских при Λ = 0 и Λ = ∞). Отклик монотонный в целом, плавно уменьшающийся от Λ = 0 до Λ = ∞. | 1/2 при Λ = 1.

Фильтр Чебышева типа I минимизирует абсолютную разницу между идеальной и фактической частотной характеристикой по всей полосе пропускания путем включения равной пульсации Rp дБ в полосе пропускания. Отклик стоп-полосы максимально плоский. Переход от полосы пропускания к полосе останова более быстрый, чем для фильтра Баттерворта. − Rp/20 при Λ = 1.

Фильтр Чебышева типа II минимизирует абсолютную разницу между идеальной и фактической частотной характеристикой по всей полосе останова за счет включения равной пульсации Rs дБ в полосе останова. Отклик полосы пропускания максимально плоский.
Полоса останова не приближается к нулю так же быстро, как фильтр типа I (и вообще не приближается к нулю для четного порядка n фильтра ). Отсутствие пульсации в полосе пропускания, однако, часто является важным преимуществом. − Rs/20 при Λ = 1.

Эллиптические фильтры равноудалены как в полосе пропускания, так и в полосе останова. Как правило, они соответствуют требованиям к фильтру с наименьшим порядком любого поддерживаемого типа фильтра. Учитывая порядок фильтра n, пульсация полосы пропускания Rp в децибелах и пульсации стоп-полосы Rs в децибелах эллиптические фильтры минимизируют ширину перехода. − Rp/20 при Λ = 1.

Аналоговые фильтры нижних частот Бесселя имеют максимально плоскую групповую задержку на нулевой частоте и сохраняют почти постоянную групповую задержку по всей полосе пропускания. Поэтому отфильтрованные сигналы сохраняют свои формы волн в диапазоне частот полосы пропускания. Когда аналоговый фильтр нижних частот Бесселя преобразуется в цифровой через частотное отображение, он больше не имеет этого максимально плоского свойства. Toolbox™ обработки сигналов поддерживает только аналоговый вариант для полной функции проектирования фильтра Бесселя.
Фильтры Бесселя обычно требуют более высокого порядка фильтрации, чем другие фильтры, для удовлетворительного затухания полосы останова. < 1/2 при Λ = 1 и уменьшается по мере увеличения порядка n фильтра.

Примечание
Фильтры нижних частот, показанные выше, были созданы с помощью функций аналогового прототипа besselap, buttap, cheb1ap, cheb2ap, и ellipap. Эти функции находят нули, полюса и усиление nаналоговый фильтр третьего порядка соответствующего типа с частотой отсечки 1 рад/с. Все функции проектирования фильтра (besself, butter, cheby1, cheby2, и ellip) вызовите функции прототипирования в качестве первого шага в процессе проектирования. Дополнительные сведения см. в разделе Специальные темы в разделе Проектирование фильтра IIR.
Для создания аналогичных графиков используйте n = 5 и, при необходимости, Rp = 0.5 и Rs = 20. Например, чтобы создать график эллиптического фильтра:
[z,p,k] = ellipap(5,0.5,20); w = logspace(-1,1,1000); h = freqs(k*poly(z),poly(p),w); semilogx(w,abs(h)), grid xlabel('Frequency (rad/s)') ylabel('Magnitude')
Эта панель инструментов использует термин прямые методы для описания методов проектирования IIR, которые находят фильтр на основе спецификаций в дискретной области. В отличие от аналогового метода прототипирования, методы прямого проектирования не ограничены стандартными конфигурациями нижних, верхних или полосовых частот. Скорее, эти функции конструируют фильтры с произвольной, возможно, многополосной частотной характеристикой. В этом разделе рассматривается yulewalk функция, предназначенная специально для проектирования фильтров; Параметрическое моделирование обсуждает другие методы, которые также могут считаться прямыми, такие как метод Прони, линейное прогнозирование, метод Стейглица-МакБрайда и обратное частотное проектирование.
yulewalk функция проектирует рекурсивные цифровые фильтры БИХ путем подгонки заданного частотного отклика. yulewalkНазвание отражает его метод нахождения коэффициентов знаменателя фильтра: он находит обратную БПФ идеального заданного квадратичного отклика и решает модифицированные уравнения Юле-Уокера с помощью результирующих выборок автокорреляционной функции. Заявление
[b,a] = yulewalk(n,f,m)
возвращает векторы строк b и a содержащий n+1 числитель и коэффициенты знаменателя nIIR-фильтр третьего порядка, частотно-амплитудные характеристики которого приближены к приведенным в векторах f и m. f - вектор частотных точек в диапазоне от 0 до 1, где 1 представляет частоту Найквиста. m - вектор, содержащий заданную амплитудную характеристику в точках в f. f и m может описывать любую кусочно-линейную амплитудную характеристику формы, включая многополосную характеристику. Аналогом FIR этой функции является fir2, который также конструирует фильтр на основе произвольной кусочно-линейной амплитудной характеристики. Дополнительные сведения см. в разделе Конструкция фильтра FIR.
Обратите внимание, что yulewalk не принимает информацию о фазе и не делает никаких утверждений об оптимальности результирующего фильтра.
Разработка многополосного фильтра с помощью yulewalk и постройте график заданной и фактической частотной характеристики:
m = [0 0 1 1 0 0 1 1 0 0]; f = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1]; [b,a] = yulewalk(10,f,m); [h,w] = freqz(b,a,128) plot(f,m,w/pi,abs(h))

Функция панели инструментов maxflat позволяет проектировать обобщенные фильтры Butterworth, то есть фильтры Butterworth с различным количеством нулей и полюсов. Это желательно в некоторых реализациях, где полюса более дороги в вычислительном отношении, чем нули. maxflat точно так же, как butter функция, за исключением того, что можно указать два порядка (один для числителя и один для знаменателя) вместо одного. Эти фильтры максимально плоские. Это означает, что результирующий фильтр является оптимальным для любого порядка числителя и знаменателя, при этом максимальное число производных на 0 и частота Найквиста λ = λ оба установлены на 0.
Например, когда два заказа одинаковы, maxflat является таким же, как butter:
[b,a] = maxflat(3,3,0.25)
b =
0.0317 0.0951 0.0951 0.0317
a =
1.0000 -1.4590 0.9104 -0.1978[b,a] = butter(3,0.25)
b =
0.0317 0.0951 0.0951 0.0317
a =
1.0000 -1.4590 0.9104 -0.1978Однако maxflat является более универсальным, поскольку позволяет проектировать фильтр с большим количеством нулей, чем полюса:
[b,a] = maxflat(3,1,0.25)
b =
0.0950 0.2849 0.2849 0.0950
a =
1.0000 -0.2402Третий вход в maxflat - частота половинной мощности, частота между 0 и 1 с амплитудной характеристикой .
Можно также проектировать линейные фильтры фаз, которые имеют максимально плоское свойство, используя 'sym' вариант:
maxflat(4,'sym',0.3)ans =
0.0331 0.2500 0.4337 0.2500 0.0331Для получения полной информации о maxflat алгоритм, см. Селесник и Беррус [2].