exponenta event banner

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', конструкция фильтра является конструкцией нижних частот. Когда type имеет значение 'high', конструкция фильтра является конструкцией с высоким коэффициентом пропускания. f - двухэлементный вектор со значениями частоты границ полосы пропускания и полосы останова. Для узкополосных фильтров нижних частот и широкополосных фильтров верхних частот, l×f(2) меньше, чем 1. Для широкополосных фильтров нижних частот и узкополосных фильтров верхних частот укажите f чтобы l×(1–f(1)) меньше, чем 1.

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

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

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

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

Примеры

свернуть все

В этом примере показано, как использовать функцию ifir создание узкополосного фильтра нижних частот.

[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 and other objects of type uitoolbar, uimenu. The axes 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 and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line. This object represents Overall Filter.

В этом примере показано, как использовать ifir создание широкополосного фильтра верхних частот.

[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. The axes with title Overall Filter contains an object of type line.

В этом примере показано, как использовать fdesign.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 and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line.

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

.

См. также

Функции

Представлен в R2011a