ifir

Интерполированное КИХ-создание фильтра

Синтаксис

[h,g] = ifir(l,type,f,dev)
[h,g,d] = ifir(l,type,f,dev)
[...] = ifir(...,str)

Описание

[h,g] = ifir(l,type,f,dev) проектирует периодический фильтр h (zl), где l коэффициент интерполяции. Это также находит, что подавитель изображений фильтрует g(z), таким образом, что каскад двух фильтров представляет оптимальное минимаксное КИХ-приближение желаемого ответа. Этот ответ задан type, с частотами ребра полосы, содержавшимися в векторном f. Это сделано, не превышая максимальные отклонения или пульсации (линейные) заданный в векторном dev.

Когда type установлен в 'low', создание фильтра является проектом lowpass. Когда type установлен в 'high', создание фильтра является проектом highpass. f двухэлементный вектор с полосой пропускания и значениями частоты ребра полосы задерживания. Для узкополосных фильтров lowpass и широкополосных фильтров highpass, l×f(2) меньше 1. Для широкополосных фильтров lowpass и узкополосной связи highpass фильтры, задайте f так, чтобы l×(1–f(1)) меньше 1.

dev двухэлементный вектор, который содержит пиковую пульсацию или отклонение (в линейных модулях) допускавший и полоса пропускания и полоса задерживания.

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

[h,g,d] = ifir(l,type,f,dev) возвращает задержку d это соединяется параллельно с каскадом h (zl) и g(z) и для широкополосного lowpass и для фильтров highpass. Это необходимо, чтобы получить желаемый ответ.

[...] = ifir(...,str) использование str выбрать уровень алгоритма используемой оптимизации. Возможные значения для str 'simple', 'intermediate' (значение по умолчанию) или 'advanced'str предусматривает компромисс между оптимизацией порядка фильтра и расчетной скоростью. 'advanced' опция может привести к существенному сокращению порядка фильтра, особенно для g(z).

Примеры

свернуть все

В этом примере показано, как использовать функциональный ifir спроектировать узкополосный фильтр lowpass.

[h,g]=ifir(6,'low',[.12 .14],[.01 .001]);
H = dsp.FIRFilter('Numerator',h);
G = dsp.FIRFilter('Numerator',g);
hfv = fvtool(H,G);
legend(hfv,'Periodic Filter','Image Suppressor Filter');

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) contains 2 objects of type line. These objects represent Periodic Filter, Image Suppressor Filter.

Hcas = cascade(H,G);
hfv2 = fvtool(Hcas);
legend(hfv2,'Overall Filter');

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) contains an object of type line. This object represents Overall Filter.

В этом примере показано, как использовать ifir спроектировать широкополосный фильтр highpass.

[h,g,d]=ifir(6,'high',[.12 .14],[.001 .01]);
H = dsp.FIRFilter('Numerator',h); G = dsp.FIRFilter('Numerator',g);
b1 = cascade(H,G);                 % Branch 1
b2 = dsp.FIRFilter('Numerator',d); % Branch 2
Hoverall = freqz(b1) + freqz(b2); % Overall wideband highpass
plot(linspace(0,1,length(Hoverall)),20*log10(abs(Hoverall)))
xlabel('Normalized frequency (\times \pi) rad/s')
ylabel('Magnitude (dB)')
title('Overall Filter');
grid on

Figure contains an axes object. The axes object with title Overall Filter contains an object of type line.

В этом примере показано, как использовать fdesign.lowpass спроектировать каскад фильтров lowpass. После разработки фильтра используйте fvtool построить кривую отклика.

fpass = 0.2;
fstop = 0.24;
d1 = fdesign.lowpass(fpass, fstop);
lowpassCascade = design(d1,'ifir','Systemobject',true);
fvtool(lowpassCascade)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) contains 2 objects of type line.

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

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

Функции

Введенный в R2011a