cheby2

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

Описание

пример

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

пример

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

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

[b,a] = cheby2(6,40,0.6);
freqz(b,a)

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

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

[b,a] = cheby2(3,50,[0.2 0.6],'stop');
freqz(b,a)

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

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

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

Спроектируйте 20-й порядок полосовой фильтр Типа II Чебышева с более низкой частотой полосы задерживания 500 Гц и более высокой частотой полосы задерживания 560 Гц. Задайте затухание в полосе задерживания 40 дБ и частоты дискретизации 1 500 Гц. Используйте представление пространства состояний. Спроектируйте идентичный фильтр с помощью 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')

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

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')

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

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

свернуть все

Порядок фильтра в виде целочисленного скаляра. Для полосы пропускания и проектов bandstop, 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' задает фильтр highpass с частотой ребра полосы задерживания Ws.

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

Представление пространства состояний фильтра, возвращенного как матрицы. Если m = n для lowpass и проектов highpass и m = 2n для полосовых и заграждающих фильтров, затем 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')

Алгоритмы

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

cheby2 использование алгоритм с пятью шагами:

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

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

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

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

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

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

Смотрите также

| | | | | | | |

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