firlpnorm

Оптимальная конечная импульсная характеристика фильтр наименьшей 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])

проектирует lowpass с пиком 1,6 внутри полосы пропускания и с акцентом на минимизацию ошибки в полосе остановки.

b = firlpnorm(n,f,edges,a,w,p) где p является двухэлементным вектором [pmin pmax] позволяет вам задать минимальное и максимальное значения p используется в алгоритме наименьших чисел. По умолчанию это [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'- последний аргумент в списке аргументов, генерирующий фильтр КИХ минимальной фазы. По умолчанию firlpnorm проект фильтров смешанной фазы. Задание опции входа 'minphase'причины firlpnorm использовать другой метод оптимизации для разработки минимально-фазового фильтра. В результате различной используемой оптимизации фильтр с минимальной фазой может дать несколько другие результаты.

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

Примеры

свернуть все

Lowpass фильтр с пиком 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.

Полученный фильтр является lowpass с желаемым пиком 1,4 в полосе пропускания (заметьте 1,4, указанный в векторе а).

Фильтр минимальной фазы Highpass оптимизирован для 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. and J.F. Kaiser Eds. Wiley-Interscience, N.Y., 1993, глава 4.

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

.
Введенный в R2011a