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

Hcas = cascade(H,G);
hfv2 = fvtool(Hcas);
legend(hfv2,'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

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

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

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

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

Функции

Введенный в R2011a