exponenta event banner

Конструкция фильтра БИХ

IIR и фильтры FIR

Основное преимущество БИХ-фильтров по сравнению с КИХ-фильтрами состоит в том, что они обычно удовлетворяют заданному набору спецификаций с гораздо более низким порядком фильтров, чем соответствующий КИХ-фильтр. Хотя фильтры 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

Прямое проектирование

Создание цифрового фильтра непосредственно в дискретной временной области путем аппроксимации кусочно-линейной амплитудной характеристики.

yulewalk

Обобщенный дизайн бабочки

Проектирование низкочастотных фильтров Butterworth с большим количеством нулей, чем полюсов.

maxflat

Параметрическое моделирование

Найдите цифровой фильтр, который аппроксимирует заданный отклик временной или частотной области. (Обширную коллекцию инструментов параметрического моделирования см. в документации по Toolbox™ идентификации системы.)

Функции моделирования во временной области:

lpc, prony, stmcb

Функции моделирования частотной области:

invfreqs, invfreqz

Классическая конструкция фильтра IIR с использованием аналогового прототипирования

Основная технология проектирования цифровых фильтров БИХ, которую предоставляет данная панель инструментов, основана на преобразовании классических аналоговых фильтров нижних частот в их цифровые эквиваленты. В следующих разделах описывается, как проектировать фильтры и обобщать характеристики поддерживаемых типов фильтров. Подробные сведения о процессе проектирования фильтров см. в разделе Специальные темы в разделе Проектирование фильтров IIR.

Полная конструкция классического фильтра БИХ

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

Функции проектирования фильтров

Тип фильтра

Функция проектирования

Бессель (только аналоговый)

[b,a] = besself(n,Wn,options)

[z,p,k] = besself(n,Wn,options)

[A,B,C,D] = besself(n,Wn,options)

Баттерворт

[b,a] = butter(n,Wn,options)

[z,p,k] = butter(n,Wn,options)

[A,B,C,D] = butter(n,Wn,options)

Чебышёв I типа

[b,a] = cheby1(n,Rp,Wn,options)

[z,p,k] = cheby1(n,Rp,Wn,options)

[A,B,C,D] = cheby1(n,Rp,Wn,options)

Чебышёв II типа

[b,a] = cheby2(n,Rs,Wn,options)

[z,p,k] = cheby2(n,Rs,Wn,options)

[A,B,C,D] = cheby2(n,Rs,Wn,options)

Овальный

[b,a] = ellip(n,Rp,Rs,Wn,options)

[z,p,k] = ellip(n,Rp,Rs,Wn,options)

[A,B,C,D] = ellip(n,Rp,Rs,Wn,options)

По умолчанию каждая из этих функций возвращает фильтр нижних частот; необходимо указать только нужную частоту отсечки, 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 для анализа или внедрения фильтра.

Примечание

Все классические фильтры нижних частот БИХ плохо приспособлены для крайне низких частот отсечки. Поэтому вместо конструирования БИХ-фильтра нижних частот с очень узкой полосой пропускания может быть лучше сконструировать более широкую полосу пропускания и прореживать входной сигнал.

Проектирование фильтров БИХ в соответствии со спецификациями частотной области

Эта панель инструментов предоставляет функции выбора заказов, которые вычисляют минимальный порядок фильтрации, соответствующий заданному набору требований.

Тип фильтра

Функция оценки заказа

Баттерворт

[n,Wn] = buttord(Wp,Ws,Rp,Rs)

Чебышёв I типа

[n,Wn] = cheb1ord(Wp,Ws,Rp,Rs)

Чебышёв II типа

[n,Wn] = cheb2ord(Wp,Ws,Rp,Rs)

Овальный

[n,Wn] = ellipord(Wp,Ws,Rp,Rs)

Они полезны в сочетании с функциями проектирования фильтров. Предположим, вам нужен полосовой фильтр с полосой пропускания от 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 до Λ  = ∞. | H () | = 1/2  при Λ = 1.

Фильтр типа I Чебышева

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

Фильтр типа II Чебышева

 Фильтр Чебышева типа II минимизирует абсолютную разницу между идеальной и фактической частотной характеристикой по всей полосе останова за счет включения равной пульсации Rs дБ в полосе останова. Отклик полосы пропускания максимально плоский.

Полоса останова не приближается к нулю так же быстро, как фильтр типа I (и вообще не приближается к нулю для четного порядка n фильтра ). Отсутствие пульсации в полосе пропускания, однако, часто является важным преимуществом. | H () | = 10 Rs/20 при Λ = 1.

Эллиптический фильтр

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

Фильтр Бесселя

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

Фильтры Бесселя обычно требуют более высокого порядка фильтрации, чем другие фильтры, для удовлетворительного затухания полосы останова. | H () | < 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 с амплитудной характеристикой 1/2.

Можно также проектировать линейные фильтры фаз, которые имеют максимально плоское свойство, используя 'sym' вариант:

maxflat(4,'sym',0.3)
ans =
    0.0331    0.2500    0.4337    0.2500    0.0331

Для получения полной информации о maxflat алгоритм, см. Селесник и Беррус [2].