Оптимальная конечная импульсная характеристика фильтр наименьшей 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
.
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.
filter
| firgr
| freqz
| fvtool
| iirgrpdelay
| iirlpnorm
| iirlpnormc
| zplane