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 используемый в наименьшем-количестве-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'последний аргумент в списке аргументов, генерирует КИХ-фильтр минимальной фазы. По умолчанию, firlpnorm спроектируйте фильтры смешанной фазы. Определение входной опции 'minphase'причины firlpnorm использовать различный метод оптимизации, чтобы спроектировать фильтр минимальной фазы. В результате различной используемой оптимизации фильтр минимальной фазы может привести к немного отличающимся результатам.

[b,err] = firlpnorm(...) возвращает наименьшее-количество-pth ошибки приближения 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, заданные в векторе a).

Фильтр минимальной фазы 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.

Это - минимальная фаза, highpass фильтр.

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

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, конечное создание фильтра импульсной характеристики, руководство для цифрового сигнала ProcessingMitra, S.K. и J.F. Wiley-межнаука редакторов кайзера, Нью-Йорк, 1993, глава 4.

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

Смотрите также

| | | | | | |

Введенный в R2011a