cheby2

Создание фильтра Чебышева Типа II

Описание

пример

[b,a] = cheby2(n,Rs,Ws) возвращает коэффициенты передаточной функции nlowpass digital Chebyshev Type II фильтра I порядка с нормализованной частотой ребер стоп-полосы Ws и Rs децибелы затухания в полосе задерживания вниз от пикового значения полосы пропускания.

пример

[b,a] = cheby2(n,Rs,Ws,ftype) проектирует lowpass, highpass, bandpass, или полосно-заграждающий Chebyshev Type II фильтр, в зависимости от значения ftype и количество элементов Ws. Получившиеся полосно-пропускающая и полосно-заграждающие проекты имеют порядок 2 n.

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

пример

[z,p,k] = cheby2(___) проектирует lowpass, highpass, bandpass, или полосно-заграждающий цифровой чебышевский фильтр типа II и возвращает его нули, полюса и усиление. Этот синтаксис может включать любой из входных параметров в предыдущих синтаксисах.

пример

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

пример

[___] = cheby2(___,'s') проектирует lowpass, highpass, bandpass, или полосно-заграждающий аналоговый фильтр Чебышева типа II с угловой частотой ребра стопора Ws и Rs децибелы затухания в полосе задерживания.

Примеры

свернуть все

Спроектируйте lowpass Chebyshev Type II фильтра 6-го порядка с 40 дБ затухания в полосе задерживания и частотой ребра полосы упора 300 Гц, которая для данных, дискретизированных с частотой 1000 Гц, соответствует 0.6π рад/образец. Постройте график его величины и фазовых откликов. Используйте его для фильтрации 1000-выборочного случайного сигнала.

[b,a] = cheby2(6,40,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);

Проектирование полосно-заграждающего фильтра Чебышевского типа II 6-го порядка с нормированными ребрами частотами 0.2π и 0.6π рад/образец и 50 дБ затухания в полосе задерживания. Постройте график его величины и фазовых откликов. Используйте его для фильтрации случайных данных.

[b,a] = cheby2(3,50,[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);

Спроектируйте фильтр Chebyshev Type II 9-го порядка с 20 дБ затухания в полосе задерживания и частотой ребра полосы упора 300 Гц, которая для данных, дискретизированных с частотой дискретизации 1000 Гц, соответствует 0.6π рад/образец. Постройте график величины и фазовых откликов. Преобразуйте нули, полюсы и усиление в секции второго порядка для использования по fvtool.

[z,p,k] = cheby2(9,20,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.

Спроектировать полосно-полосовой фильтр Чебышёва 20-го порядка Type II с более низкой частотой стоп-полосы 500 Гц и более высокой частотой стоп-полосы 560 Гц. Задайте затухание в полосе задерживания 40 дБ и частоту дискретизации 1500 Гц. Используйте представление пространства состояний. Создайте идентичный фильтр с помощью designfilt.

[A,B,C,D] = cheby2(10,40,[500 560]/750);
d = designfilt('bandpassiir','FilterOrder',20, ...
    'StopbandFrequency1',500,'StopbandFrequency2',560, ...
    'StopbandAttenuation',40,'SampleRate',1500);

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

sos = ss2sos(A,B,C,D);
fvt = fvtool(sos,d,'Fs',1500);
legend(fvt,'cheby2','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 cheby2, designfilt.

Разработайте аналоговый lowpass Butterworth 5-го порядка с частотой отключения 2 ГГц. Умножьте на 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);

Проектируйте Фильтр Чебышевский Тип 1 5-го порядка с той же частотой ребер и 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.

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

Входные параметры

свернуть все

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

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

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

Если ваша спецификация, ℓ, указана в линейных модулях, можно преобразовать ее в децибелы с помощью Rs =  -20 log10 .

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

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

  • Если Ws является скаляром, тогда cheby2 проектирует lowpass или highpass фильтр с краевой частотой Ws.

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

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

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

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

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

  • 'low' задает lowpass с частотой ребер ограничительного диапазона Ws. 'low' является значением по умолчанию для скаляра Ws.

  • 'high' задает высокочастотный фильтр с частотой ребер стоповой полосы Ws.

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

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

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

свернуть все

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

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

    H(z)=B(z)A(z)=b (1)+b (2)z1++b (n + 1)znа (1)+а (2)z1++a (n + 1)zn.

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

    H(s)=B(s)A(s)=b (1)sn+b (2)sn1++b (n + 1)а (1)sn+а (2)sn1++a (n + 1).

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

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

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

    H(z)=k(1z (1)z1)(1z (2)z1)(1z (n)z1)(1p (1)z1)(1p (2)z1)(1p (n)z1).

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

    H(s)=k(sz (1))(sz (2))(sz (n))(sp (1))(sp (2))(sp (n)).

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

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

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

    x(k+1)=Ax(k)+Bu(k)y(k)=Cx(k)+Du(k).

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

    x˙=Ax+Buy=Cx+Du.

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

Подробнее о

свернуть все

Ограничения

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

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

n = 6; 
Rs = 80; 
Wn = [2.5e6 29e6]/500e6;
ftype = 'bandpass';

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

% Zero-pole-gain design
[z,p,k] = cheby2(n,Rs,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.

Алгоритмы

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

cheby2 использует пятиэтапный алгоритм:

  1. Он находит lowpass аналоговых полюсов прототипа, нули и усиление с помощью функции cheb2ap.

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

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

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

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

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

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