cheby1

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

Описание

пример

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

пример

[b,a] = cheby1(n,Rp,Wp,ftype) проектирует lowpass, highpass, bandpass, или полосно-заграждающий фильтр Чебышевский Тип 1, в зависимости от значения ftype и количество элементов Wp. Получившиеся полосно-пропускающая и полосно-заграждающие проекты имеют порядок 2 n.

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

пример

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

пример

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

пример

[___] = cheby1(___,'s') проектирует lowpass, highpass, bandpass, или полосно-заграждающий аналог Фильтра Чебышевский Тип 1 с угловой частотой ребра полосы пропускания Wp и Rp децибелы неравномерности в полосе пропускания.

Примеры

свернуть все

Разработайте lowpass- Фильтра Чебышевский Тип 1 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);

Разработайте высокочастотный Фильтр Чебышевский Тип 1 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.

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

Разработайте аналоговый 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Коэффициенты передаточной функции фильтра, возвращенные как векторы-строки длины 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; 
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.

Алгоритмы

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

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

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

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

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

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

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

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

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