exponenta event banner

firlpnorm

Оптимальный фильтр FIR по наименьшей P-норме

Синтаксис

b = firlpnorm(n,f,edges,a)
b = firlpnorm(n,f,edges,a,w)
b = firlpnorm(n,f,edges,a,w,p)
b = firlpnorm(n,f,edges,a,w,p,dens)
b = firlpnorm(n,f,edges,a,w,p,dens,initnum)
b = firlpnorm(...,'minphase')
[b,err] = firlpnorm(...)

Описание

b = firlpnorm(n,f,edges,a) возвращает фильтр порядка числителя n которая представляет наилучшее приближение к частотной характеристике, описанной f и a в значении наименьшей нормы Pth. Значение P по умолчанию равно 128, что по существу эквивалентно норме бесконечности. Вектор edges задает граничные частоты для многополосных конструкций. firlpnorm использует неограниченный алгоритм квази-Ньютона для проектирования указанного фильтра.

f и a должно иметь одинаковое количество элементов, которое может превышать число элементов в edges. Это позволяет задать фильтры с любым контуром усиления в каждой полосе. Однако частоты в edges также должен быть в векторе f. Всегда использовать freqz для проверки результирующего фильтра.

Примечание

firlpnorm использует нелинейную процедуру оптимизации, которая может не сходиться в некоторых случаях конструкции фильтра. Кроме того, алгоритм плохо подходит для определенных конструкций фильтров большого порядка (порядка > 100).

b = firlpnorm(n,f,edges,a,w) использует веса в w для взвешивания ошибки. w имеет один вход на точку частоты (такая же длина, как f и a), который сообщает firlpnorm насколько большое внимание следует уделять минимизации ошибки вблизи каждой точки частоты относительно других точек. Например,

b = firlpnorm(20,[0 .15 .4 .5 1],[0 .4 .5 1],... 
[1 1.6 1 0 0],[1 1 1 10 10])

строит фильтр нижних частот с пиком 1,6 в пределах полосы пропускания и с акцентом на минимизацию ошибки в полосе останова.

b = firlpnorm(n,f,edges,a,w,p) где p является двухэлементным вектором [pmin pmax] позволяет указать минимальное и максимальное значения p используется в алгоритме наименьших pth. По умолчанию: [2 128] что по существу даёт L-бесконечность, или Чебышёв, норму. pmin и pmax должны быть четными числами. Алгоритм проектирования запускает оптимизацию фильтра с помощью pmin и движется к оптимальному фильтру в pmax чувство. Когда p имеет значение «»inspect', firlpnorm не оптимизирует результирующий фильтр. Эту функцию можно использовать для проверки начального размещения нуля.

b = firlpnorm(n,f,edges,a,w,p,dens) задание плотности сетки dens используется при оптимизации. Количество точек сетки составляет [dens*(n+1)]. Значение по умолчанию - 20. Можно указать dens в виде одноэлементного массива ячеек. Сетка расположена на равном расстоянии друг от друга.

b = firlpnorm(n,f,edges,a,w,p,dens,initnum) позволяет определить начальную оценку коэффициентов числителя фильтра в векторе initnum. Это может оказаться полезным для сложных задач оптимизации. Редактор полюсов-нулей в программном обеспечении Signal Processing Toolbox™ может использоваться для генерации initnum.

b = firlpnorm(...,'minphase') где "minphase'- последний аргумент в списке аргументов, генерирующий фильтр FIR минимальной фазы. По умолчанию firlpnorm создание фильтров смешанной фазы. Указание параметра ввода 'minphase«причины» firlpnorm использование другого метода оптимизации для проектирования фильтра минимальной фазы. В результате различной используемой оптимизации фильтр минимальной фазы может давать несколько иные результаты.

[b,err] = firlpnorm(...) возвращает ошибку аппроксимации наименьшего значения pth err.

Примеры

свернуть все

Фильтр нижних частот с пиком 1,4 в полосе пропускания.

b = firlpnorm(22,[0 .15 .4 .5 1],[0 .4 .5 1],[1 1.4 1 0 0],...
[1 1 1 2 2]);
fvtool(b)

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.

Результирующий фильтр является низкочастотным с требуемым пиком 1,4 в полосе пропускания (обратите внимание на значение 1,4, указанное в векторе а).

Высокоскоростной фильтр с минимальной фазой, оптимизированный для 4-х норм.

b = firlpnorm(44,[0 .4 .45 1],[0 .4 .45 1],[0 0 1 1],[5 1 1 1],...
[2 4],'minphase');
fvtool(b)

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.

Это фильтр с минимальной фазой и высоким коэффициентом пропускания.

График нулевого полюса более четко показывает минимальную фазовую природу.

fvtool(b,'polezero')

Figure Filter Visualization Tool - Pole-Zero Plot contains an axes and other objects of type uitoolbar, uimenu. The axes with title Pole-Zero Plot contains 5 objects of type line, text.

Ссылки

Saramaki, T, Finite Impulse Response Filter Design, Handbook for Digital Signal ProcessingMitra, S.K. и J.F. Kaiser Eds. Wiley-Interscience, N.Y., 1993, глава 4.

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

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