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 object and other objects of type uitoolbar, uimenu. The axes object 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 object and other objects of type uitoolbar, uimenu. The axes object 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 object and other objects of type uitoolbar, uimenu. The axes object with title Pole-Zero Plot contains 4 objects of type line, text.

Ссылки

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

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

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

| | | | | | |

Введенный в R2011a