exponenta event banner

freqsamp

Фильтр FIR с действительной или сложной частотной выборкой из объекта спецификации

Синтаксис

hd = design(d,'freqsamp','SystemObject',true)
hd = design(...,'filterstructure',structure,'SystemObject',true)
hd = design(...,'window',window,'SystemObject',true)

Описание

hd = design(d,'freqsamp','SystemObject',true) конструирует фильтр с частотной выборкой, заданный объектом спецификации фильтра d.

hd = design(...,'filterstructure',structure,'SystemObject',true) возвращает фильтр со структурой фильтра, указанной structure входной аргумент. structure является dffir по умолчанию и может быть любой из следующих структур фильтров.

Структура

Описание результирующей структуры фильтра

dffir

Прямой фильтр FIR

dffirt

Транспонированный фильтр прямой формы FIR

dfsymfir

Симметричный КИХ-фильтр прямой формы

dfasymfir

Асимметричный фильтр прямой формы FIR

hd = design(...,'window',window,'SystemObject',true) проектирует фильтры, используя окно, указанное window. Укажите входной аргумент window как

  • Символьный вектор для типа окна. Например, использовать 'bartlett', или 'hamming'. Посмотрите window для полного списка доступных окон.

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

  • Сам вектор окна.

Примеры

свернуть все

Эти примеры разрабатывают фильтры FIR, которые имеют произвольные амплитудные характеристики. В первом фильтре отклик имеет три отдельных раздела, и результирующий фильтр является реальным.

Во втором примере создается сложный фильтр.

b1 = 0:0.01:0.18;
b2 = [.2 .38 .4 .55 .562 .585 .6 .78];
b3 = 0.79:0.01:1;
a1 = .5+sin(2*pi*7.5*b1)/4;    % Sinusoidal response section.
a2 = [.5 2.3 1 1 -.2 -.2 1 1]; % Piecewise linear response section.
a3 = .2+18*(1-b3).^2;          % Quadratic response section.
f = [b1 b2 b3];
a = [a1 a2 a3];
n = 300;
d = fdesign.arbmag('n,f,a',n,f,a); % First specifications object.
hd = design(d,'freqsamp','window',{@kaiser,.5},...
    'SystemObject',true); % Filter.
fvtool(hd)

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.

Теперь сконструируйте комплексный КИХ-фильтр произвольной величины. Напомним, что вектор f содержит частотные местоположения, а вектор a содержит требуемые значения характеристики фильтра в местоположениях, указанных в f.

f = [-1 -.93443 -.86885 -.80328 -.7377 -.67213 -.60656 -.54098 ...
-.47541,-.40984 -.34426 -.27869 -.21311 -.14754 -.081967 ...
-.016393 .04918 .11475,.18033 .2459 .31148 .37705 .44262 ...
 .5082 .57377 .63934 .70492 .77049,.83607 .90164 1];
a = [.0095848 .021972 .047249 .099869 .23119 .57569 .94032 ...
.98084 .99707,.99565 .9958 .99899 .99402 .99978 .99995 .99733 ...
.99731 .96979 .94936,.8196 .28502 .065469 .0044517 .018164 ...
.023305 .02397 .023141 .021341,.019364 .017379 .016061];
n = 48;
d = fdesign.arbmag('n,f,a',n,f,a); % Second spec. object.
hdc = design(d,'freqsamp','window','rectwin','SystemObject',true); % Filter.
fvtool(hdc)

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.

fvtool показывает отклик для hdc от -1 до 1 в нормализованной частоте. design (d,...) возвращает комплексный фильтр для hdc, поскольку вектор частоты включает отрицательные значения частоты.

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