ellip

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

Описание

пример

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

пример

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

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

пример

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

пример

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

пример

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

Примеры

свернуть все

Спроектируйте 6-й порядок lowpass эллиптический фильтр с 5 дБ неравномерности в полосе пропускания, 40 дБ затухания в полосе задерживания и частотой ребра полосы пропускания 300 Гц, которая, для данных, произведенных на уровне 1 000 Гц, соответствует 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-й порядок highpass эллиптический фильтр с частотой ребра полосы пропускания 300 Гц, которая, для данных, произведенных на уровне 1 000 Гц, соответствует 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 дБ и частоту дискретизации 1 500 Гц. Используйте представление пространства состояний. Спроектируйте идентичный фильтр с помощью 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.

Спроектируйте аналог 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')

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

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

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

свернуть все

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

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

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

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

свернуть все

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

Алгоритмы

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

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

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

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

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

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

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

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

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

| | | | | | | |

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