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

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

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

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

[...] = ifir(...,str) использует str выбрать используемый уровень оптимизации алгоритма. Возможные значения для str являются 'simple', 'intermediate' (по умолчанию) или 'advanced'. str обеспечивает компромисс между расчетной скоростью и оптимизацией порядка фильтра. The '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 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 для разработки каскада 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