Классическая методика проектирования БИХ-фильтров включает в себя следующие шаги.
Найдите аналоговый фильтр нижних частот с частотой отсечки 1 и переведите этот фильтр прототипа в указанную конфигурацию диапазона
Преобразование фильтра в цифровую область.
Дискретизируйте фильтр.
Панель инструментов содержит функции для каждого из этих шагов.
Задача проектирования | Доступные функции |
|---|---|
Аналоговый прототип нижних частот | |
Преобразование частоты | |
Дискретизация |
В качестве альтернативы, butter, cheby1, cheb2ord, ellip, и besself функции выполняют все этапы проектирования фильтра и buttord, cheb1ord, cheb2ord, и ellipord функции обеспечивают вычисление минимального порядка для фильтров БИХ. Этих функций достаточно для решения многих задач проектирования, и функции более низкого уровня, как правило, не требуются. Но если у вас есть приложение, где вам нужно преобразовать границы полосы аналогового фильтра или дискретизировать рациональную передаточную функцию, в этом разделе описаны инструменты, с помощью которых это сделать.
Эта панель инструментов предоставляет ряд функций для создания низкочастотных аналоговых фильтров-прототипов с частотой отсечения 1, что является первым шагом в классическом подходе к проектированию БИХ-фильтров.
В таблице ниже представлены функции проектирования аналоговых прототипов для каждого поддерживаемого типа фильтров. графики для каждого типа показаны в IIR Filter Design.
Второй шаг в технологии проектирования аналоговых прототипов - преобразование частоты прототипа нижних частот. Инструментарий предоставляет набор функций для преобразования аналоговых прототипов нижних частот (с частотой отсечения 1 рад/с) в полосовые, высокоскоростные, полосовые и низкочастотные фильтры с заданной частотой отсечения.
Преобразование частоты | Функция преобразования |
|---|---|
От нижних до нижних частот |
|
От нижних до верхних частот |
|
От нижних частот к полосам пропускания 1s/start0 |
|
От нижних частот к полосам пропускания + 1 |
|
Как показано, все функции преобразования частоты могут принимать две линейные модели системы: передаточную функцию и форму state-space. Для бандпаса и бандпоста
и
где λ 1 - нижняя кромка полосы, а start2 - верхняя кромка полосы.
Функции преобразования частоты выполняют подстановку частотных переменных. В случае lp2bp и lp2bs, это подстановка второго порядка, поэтому выходной фильтр в два раза больше входного. Для lp2lp и lp2hp, выходной фильтр имеет тот же порядок, что и входной.
Для начала проектирования полосового фильтра Чебышева типа I порядка 10 со значением 3 дБ для пульсации полосы пропускания введите
[z,p,k] = cheb1ap(10,3);
Продукция z, p, и k содержат нули, полюса и коэффициент усиления низкочастотного аналогового фильтра с частотой отсечки, равной 1 рад/с. Используйте функцию для преобразования этого прототипа нижних частот в полосовой аналоговый фильтр с полосовыми краями Ω1 = λ/5 и Ω2 = λ. Сначала преобразуйте фильтр в форму state-space, чтобы lp2bp функция может принять его:
[A,B,C,D] = zp2ss(z,p,k); % Convert to state-space form.Теперь найдите полосу пропускания и центральную частоту и позвоните lp2bp:
u1 = 0.1*2*pi;
u2 = 0.5*2*pi; % In radians per second
Bw = u2-u1;
Wo = sqrt(u1*u2);
[At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw);Наконец, вычислите частотную характеристику и постройте график ее величины:
[b,a] = ss2tf(At,Bt,Ct,Dt); % Convert to TF form w = linspace(0.01,1,500)*2*pi; % Generate frequency vector h = freqs(b,a,w); % Compute frequency response semilogy(w/2/pi,abs(h)) % Plot log magnitude vs. freq xlabel('Frequency (Hz)') grid

Третий шаг в методе аналогового прототипирования - преобразование фильтра в дискретно-временную область. Инструментарий предоставляет для этого два метода: импульсное инвариантное и билинейное преобразования. Функции проектирования фильтра butter, cheby1, cheby2, и ellip использовать билинейное преобразование для дискретизации на этом этапе.
Аналого-цифровое преобразование | Функция преобразования |
|---|---|
Импульсная инвариантность |
|
Билинейное преобразование |
|
Функция панели инструментов impinvar создает цифровой фильтр, импульсная характеристика которого является выборкой непрерывной импульсной характеристики аналогового фильтра. Эта функция работает только с фильтрами в форме передаточной функции. Для достижения наилучших результатов аналоговый фильтр должен иметь пренебрежимо малое частотное содержание, превышающее половину частоты дискретизации, поскольку такое высокочастотное содержимое при дискретизации преобразуется в более низкие полосы. Импульсная инвариантность работает для некоторых фильтров нижних частот и полосовых фильтров, но не подходит для фильтров верхних частот и полосовых фильтров.
Спроектируйте фильтр типа I Чебышева и постройте график его частотной и фазовой характеристики с использованием FVTool:
[bz,az] = impinvar(b,a,2); fvtool(bz,az)
Нажмите кнопку панели инструментов «Величина и фазовый отклик».

Инвариантность импульса сохраняет частоты отсечки 0,1 Гц и 0,5 Гц.
Билинейное преобразование представляет собой нелинейное отображение непрерывной области в дискретную область; он отображает s-плоскость в z-плоскость
kz − 1z + 1
Билинейное преобразование отображает ось jΛ непрерывной области в единичную окружность дискретной области в соответствии с
(Λ k)
Функция панели инструментов bilinear реализует эту операцию, где константа искажения частоты k равна удвоенной частоте дискретизации (2*fs) по умолчанию и равно ), если вы даетеbilinear конечный аргумент, который представляет частоту «совпадения» Fp. При совпадении частоты Fp (в герцах) присутствует, bilinear отображает частоту Λ = 2xeonfp (в рад/с) на ту же частоту в дискретной области, нормированную к частоте дискретизации: λ = 2xeonfp/fs (в рад/выборке).
bilinear функция может выполнять это преобразование в трех различных представлениях линейной системы: с нулевым коэффициентом усиления полюса, передаточной функцией и формой состояния-пространства. Попробуйте позвонить bilinear с матрицами состояния-пространства, которые описывают фильтр Чебышева типа I из предыдущего раздела, используя частоту дискретизации 2 Гц, и сохраняя нижний край полосы 0,1 Гц:
[Ad,Bd,Cd,Dd] = bilinear(At,Bt,Ct,Dt,2,0.1);
Частотная характеристика результирующего цифрового фильтра равна
[bz,az] = ss2tf(Ad,Bd,Cd,Dd); % Convert to TF
fvtool(bz,az)
Нажмите кнопку панели инструментов «Величина и фазовый отклик».

Нижний край полосы находится на частоте 0,1 Гц, как и ожидалось. Заметим, однако, что верхний край полосы немного меньше 0,5 Гц, хотя в аналоговой области он был ровно 0,5 Гц. Это иллюстрирует нелинейный характер билинейного преобразования. Чтобы противодействовать этой нелинейности, необходимо создать аналоговые доменные фильтры с «предварительно предупрежденными» краями полосы, которые отображаются в правильные местоположения при билинейном преобразовании. Здесь предварительно предупрежденные частоты u1 и u2 произвести Bw и Wo для lp2bp функция:
fs = 2; % Sampling frequency (hertz) u1 = 2*fs*tan(0.1*(2*pi/fs)/2); % Lower band edge (rad/s) u2 = 2*fs*tan(0.5*(2*pi/fs)/2); % Upper band edge (rad/s) Bw = u2 - u1; % Bandwidth Wo = sqrt(u1*u2); % Center frequency [At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw);
Цифровой полосовой фильтр с правильными краями диапазона в 0,1 и 0,5 раз больше частоты Найквиста.
[Ad,Bd,Cd,Dd] = bilinear(At,Bt,Ct,Dt,fs);
Примеры полосовых фильтров из двух последних разделов также могут быть созданы в одной инструкции с использованием полной функции проектирования БИХ cheby1. Например, аналоговой версией примера фильтра Чебышёва является
[b,a] = cheby1(5,3,[0.1 0.5]*2*pi,'s');
Следует отметить, что границы полосы находятся в рад/с для аналоговых фильтров, тогда как для цифрового случая частота нормируется:
[bz,az] = cheby1(5,3,[0.1 0.5]);
Все функции проектирования вызывают bilinear внутренне. Они подготавливают края полосы по мере необходимости для получения правильного цифрового фильтра.