exponenta event banner

cheby1

Конструкция фильтра типа I Чебышева

Описание

пример

[b,a] = cheby1(n,Rp,Wp) возвращает коэффициенты передаточной функции nцифровой фильтр Чебышева I-го порядка нижних частот с нормированной граничной частотой полосы пропускания Wp и Rp децибелы пульсации полосы пропускания от пика к пику.

пример

[b,a] = cheby1(n,Rp,Wp,ftype) проектирует низкочастотный, высокоскоростной, полосовой или полосовой фильтр Чебышева типа I, в зависимости от значения ftype и число элементов Wp. Полученные схемы полосы пропускания и полосы пропускания имеют порядок 2n.

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

пример

[z,p,k] = cheby1(___) создает низкочастотный, высокопроходный, полосовой или полосовой цифровой фильтр Чебышева типа I и возвращает его нули, полюса и коэффициент усиления. Этот синтаксис может включать любой из входных аргументов в предыдущих синтаксисах.

пример

[A,B,C,D] = cheby1(___) создает низкочастотный, высокоскоростной, полосовой или полосовой цифровой фильтр Чебышева типа I и возвращает матрицы, которые задают его представление состояния-пространства.

пример

[___] = cheby1(___,'s') конструирует низкочастотный, высокоскоростной, полосовой или полосовой аналоговый фильтр Чебышева типа I с угловой частотой края полосы пропускания Wp и Rp децибелы пульсации полосы пропускания.

Примеры

свернуть все

Сконструировать фильтр нижних частот Чебышева типа I 6-го порядка с пульсацией полосы пропускания 10 дБ и частотой края полосы пропускания 300 Гц, что для данных, отобранных на частоте 1000 Гц, соответствует 0,6δ рад/образец. Постройте график его величины и фазовых откликов. Используйте его для фильтрации случайного сигнала с 1000 выборками.

[b,a] = cheby1(6,10,0.6);
freqz(b,a)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

dataIn = randn(1000,1);
dataOut = filter(b,a,dataIn);

Сконструировать полосовой фильтр Чебышева типа I 6-го порядка с нормированными граничными частотами 0,2δ и 0,6δ рад/образец и 5 дБ пульсации полосы пропускания. Постройте график его величины и фазовых откликов. Используйте его для фильтрации случайных данных.

[b,a] = cheby1(3,5,[0.2 0.6],'stop');
freqz(b,a)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

dataIn = randn(1000,1);
dataOut = filter(b,a,dataIn);

Спроектируйте фильтр типа I Чебышева 9-го порядка с пульсацией полосы пропускания 0,5 дБ и частотой края полосы пропускания 300 Гц, что для данных, отобранных на частоте 1000 Гц, соответствует 0,6δ рад/образец. Постройте график величин и фазовых откликов. Преобразование нулей, полюсов и усиления в сечения второго порядка для использования fvtool.

[z,p,k] = cheby1(9,0.5,300/500,'high');
sos = zp2sos(z,p,k);
fvtool(sos,'Analysis','freq')

Figure Filter Visualization Tool - Magnitude Response (dB) and Phase Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) and Phase Response contains an object of type line.

Проектирование полосового фильтра типа I 20-го порядка с более низкой частотой полосы пропускания 500 Гц и более высокой частотой полосы пропускания 560 Гц. Укажите пульсацию полосы пропускания 3 дБ и частоту дискретизации 1500 Гц. Используйте представление state-space. Проектирование идентичного фильтра с использованием designfilt.

[A,B,C,D] = cheby1(10,3,[500 560]/750);
d = designfilt('bandpassiir','FilterOrder',20, ...
    'PassbandFrequency1',500,'PassbandFrequency2',560, ...
    'PassbandRipple',3,'SampleRate',1500);

Преобразование представления состояния-пространства в сечения второго порядка. Визуализация частотных характеристик с помощью fvtool.

sos = ss2sos(A,B,C,D);
fvt = fvtool(sos,d,'Fs',1500);
legend(fvt,'cheby1','designfilt')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line. These objects represent cheby1, designfilt.

Спроектируйте аналоговый фильтр нижних частот Баттерворта 5-го порядка с частотой отсечки 2 ГГц. Умножьте на , чтобы преобразовать частоту в радианы в секунду. Вычислите частотную характеристику фильтра в 4096 точках.

n = 5;
f = 2e9;

[zb,pb,kb] = butter(n,2*pi*f,'s');
[bb,ab] = zp2tf(zb,pb,kb);
[hb,wb] = freqs(bb,ab,4096);

Спроектируйте фильтр 5-го порядка Чебышева типа I с той же частотой кромки и 3 дБ пульсации полосы пропускания. Вычислите его частотную характеристику.

[z1,p1,k1] = cheby1(n,3,2*pi*f,'s');
[b1,a1] = zp2tf(z1,p1,k1);
[h1,w1] = freqs(b1,a1,4096);

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

[z2,p2,k2] = cheby2(n,30,2*pi*f,'s');
[b2,a2] = zp2tf(z2,p2,k2);
[h2,w2] = freqs(b2,a2,4096);

Сконструируйте эллиптический фильтр 5-го порядка с той же частотой краев, 3 дБ пульсации полосы пропускания и 30 дБ затухания полосы останова. Вычислите его частотную характеристику.

[ze,pe,ke] = ellip(n,3,30,2*pi*f,'s');
[be,ae] = zp2tf(ze,pe,ke);
[he,we] = freqs(be,ae,4096);

Постройте график затухания в децибелах. Выражайте частоту в гигагерцах. Сравните фильтры.

plot(wb/(2e9*pi),mag2db(abs(hb)))
hold on
plot(w1/(2e9*pi),mag2db(abs(h1)))
plot(w2/(2e9*pi),mag2db(abs(h2)))
plot(we/(2e9*pi),mag2db(abs(he)))
axis([0 4 -40 5])
grid
xlabel('Frequency (GHz)')
ylabel('Attenuation (dB)')
legend('butter','cheby1','cheby2','ellip')

Figure contains an axes. The axes contains 4 objects of type line. These objects represent butter, cheby1, cheby2, ellip.

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

Входные аргументы

свернуть все

Порядок фильтра, заданный как целочисленный скаляр. Для бандпасных и бандпостовых конструкций, n представляет половину порядка фильтра.

Типы данных: double

Пиковая пульсация полосы пропускания, заданная как положительный скаляр, выраженный в децибелах.

Если спецификация ℓ находится в линейных единицах, ее можно преобразовать в децибелы с помощью Rp = 40 log10 ((1+ℓ )/( 1-ℓ)).

Типы данных: double

Частота границ полосы пропускания, заданная как скаляр или двухэлементный вектор. Граничная частота полосы пропускания представляет собой частоту, при которой амплитудная характеристика фильтра равна -Rp децибелы. Меньшие значения пульсации полосы пропускания, Rp, что приводит к более широким переходным полосам.

  • Если Wp является скаляром, то cheby1 создает фильтр нижних или верхних частот с граничной частотой Wp.

    Если Wp - двухэлементный вектор [w1 w2], где w1 < w2, то cheby1 конструирует полосовой или полосовой фильтр с нижней граничной частотой w1 и более высокая граничная частота w2.

  • Для цифровых фильтров граничные частоты полосы пропускания должны лежать между 0 и 1, где 1 соответствует скорости Найквиста - половине частоты дискретизации или δ рад/выборка.

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

Типы данных: double

Тип фильтра, указанный как один из следующих:

  • 'low' задает фильтр нижних частот с частотой границ полосы пропускания Wp. 'low' является значением по умолчанию для скаляра Wp.

  • 'high' задает фильтр верхних частот с частотой границ полосы пропускания Wp.

  • 'bandpass' задает полосовой фильтр порядка 2n если Wp является двухэлементным вектором. 'bandpass' является значением по умолчанию, когда Wp имеет два элемента.

  • 'stop' задает полосовой фильтр порядка 2n если Wp является двухэлементным вектором.

Выходные аргументы

свернуть все

Коэффициенты передаточной функции фильтра, возвращаемые в виде векторов строк длины n + 1 для фильтров нижних и верхних частот и 2n + 1 для полосовых и полосовых фильтров.

  • Для цифровых фильтров передаточная функция выражается в терминах b и a как

    H (z) = B (z) A (z) = b (1) + b (2) z−1+⋯+b (n + 1) z na (1) + a (2) z−1+⋯+a (n + 1) z − n.

  • Для аналоговых фильтров передаточная функция выражается в терминах b и a как

    H (s) = B (s) A (s) = b (1) sn + b (2) sn−1+⋯+b (n + 1) a (1) sn + a (2) sn−1+⋯+a (n + 1).

Типы данных: double

Нули, полюса и коэффициент усиления фильтра, возвращаемые в виде двух векторов-столбцов длины n (2n для полосовых и полосовых конструкций) и скаляр.

  • Для цифровых фильтров передаточная функция выражается в терминах z, p, и k как

    H (z) = k (1 z (1) z − 1) (1 z (2) z 1) (1 z (n) z − 1) (1 p (1) z 1) (1 − p (2) z − 1) ⋯ (1 − p (n) z − 1).

  • Для аналоговых фильтров передаточная функция выражается в терминах z, p, и k как

    H (s) = k (s z (1)) (s z (2)) (s z (n)) (s p (1)) (s − p (2)) ⋯ (s − p (n)).

Типы данных: double

Представление фильтра в пространстве состояний, возвращаемое в виде матриц. Если m = n для конструкций нижних и верхних частот и m = 2n для полосовых и полосовых фильтров, то A m  × m, B m  × 1, C равно 1 × m, и D равен 1 × 1.

  • Для цифровых фильтров матрицы состояния-пространства связывают вектор состояния x, вход u и выход y через

    x (k + 1) = A x (k) + B u (k) y (k) = C x (k) + D u (k).

  • Для аналоговых фильтров матрицы состояния-пространства связывают вектор состояния x, вход u и выход y через

    x˙=A x + B uy = C x + D u.

Типы данных: double

Подробнее

свернуть все

Ограничения

Числовая нестабильность синтаксиса передаточной функции

В общем, используйте [z,p,k] синтаксис для разработки фильтров IIR. Для анализа или внедрения фильтра можно использовать [z,p,k] выходные данные с zp2sos. При проектировании фильтра с помощью [b,a] синтаксис, вы можете столкнуться с числовыми проблемами. Эти проблемы связаны с ошибками округления и могут возникнуть для n всего 4. Следующий пример иллюстрирует это ограничение.

n = 6; 
Rp = 0.1;
Wn = [2.5e6 29e6]/500e6;
ftype = 'bandpass';

% Transfer function design
[b,a] = cheby1(n,Rp,Wn,ftype);      % This filter is unstable

% Zero-pole-gain design
[z,p,k] = cheby1(n,Rp,Wn,ftype);
sos = zp2sos(z,p,k);

% Plot and compare the results
hfvt = fvtool(b,a,sos,'FrequencyScale','log');
legend(hfvt,'TF Design','ZPK Design')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line. These objects represent TF Design, ZPK Design.

Алгоритмы

 Фильтры типа I Чебышева равноудалены в полосе пропускания и монотонны в полосе останова. Фильтры типа I сворачиваются быстрее, чем фильтры типа II, но за счет большего отклонения от единицы в полосе пропускания.

cheby1 использует пятишаговый алгоритм:

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

  2. Он преобразует полюса, нули и усиление в форму state-space.

  3. При необходимости он использует преобразование в пространство состояний для преобразования фильтра нижних частот в фильтр верхних частот, полосовых частот или полосовых частот с требуемыми ограничениями частоты.

  4. Для проектирования цифровых фильтров используется bilinear преобразование аналогового фильтра в цифровой фильтр посредством билинейного преобразования с превалированием частоты. Тщательная регулировка частоты позволяет аналоговым фильтрам и цифровым фильтрам иметь одинаковую величину частотной характеристики при Wp или w1 и w2.

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

Расширенные возможности

.
Представлен до R2006a