ellip

Создание эллиптического фильтра

Описание

пример

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

пример

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

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

Разработайте высокочастотный эллиптический фильтр 6-го порядка с частотой ребра полосы пропускания 300 Гц, которая для данных, дискретизированных с частотой 1000 Гц, соответствует 0.6π рад/образец. Укажите 3 дБ неравномерности в полосе пропускания и 50 дБ затухания в полосе задерживания. Постройте график величины и фазовых откликов. Преобразуйте нули, полюсы и усиление в секции второго порядка для использования по fvtool.

[z,p,k] = ellip(6,3,50,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 дБ, затухание в полосе задерживания 40 дБ и частоту дискретизации 1500 Гц. Используйте представление пространства состояний. Создайте идентичный фильтр с помощью designfilt.

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

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

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

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

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

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

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

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

    Если Wp - двухэлементный вектор  [w1 w2], где w1 < w2, затем ellip проектирует полосно-пропускающий или полосно-заграждающий фильтр с более низкой частотой ребра 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;
Rs = 80;
Wn = [2.5e6 29e6]/500e6; 
ftype = 'bandpass'; 

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

% Zero-Pole-Gain design 
[z,p,k] = ellip(n,Rp,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.

Алгоритмы

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

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

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

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

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

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

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

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

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