exponenta event banner

iirlpnorm

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

Синтаксис

[num,den] = iirlpnorm(n,d,f,edges,a)
[num,den] = iirlpnorm(n,d,f,edges,a,w)
[num,den] = iirlpnorm(n,d,f,edges,a,w,p)
[num,den] = iirlpnorm(n,d,f,edges,a,w,p,dens)
[num,den] = iirlpnorm(n,d,f,edges,a,w,p,dens,initnum,initden)
[num,den,err] = iirlpnorm(...)
[num,den,err,sos,g] = iirlpnorm(...)

Описание

[num,den] = iirlpnorm(n,d,f,edges,a) возвращает фильтр, имеющий порядок числителей n и порядок знаменателей d которая является наилучшим приближением к желаемой частотной характеристике, описанной f и a в наименьшем смысле. Вектор edges задает граничные частоты для многополосных конструкций. Используется алгоритм квази-Ньютона без ограничений, и любые полюса или нули, лежащие вне единичной окружности, отражаются обратно внутрь. n и d должны быть выбраны таким образом, чтобы нули и полюса использовались эффективно. См. раздел «Подсказки». Всегда использовать freqz для проверки результирующего фильтра.

[num,den] = iirlpnorm(n,d,f,edges,a,w) использует веса в w для взвешивания ошибки. w имеет один вход на точку частоты (такая же длина, как f и a), который сообщает iirlpnorm насколько большое внимание следует уделять минимизации ошибки вблизи каждой точки частоты относительно других точек. f и a должно иметь одинаковое количество элементов, которое может превышать число элементов в edges. Это позволяет определить фильтры, имеющие любой контур усиления в пределах каждой полосы. Частоты, указанные в edges также должен отображаться в векторе f. Например,

[num,den] = iirlpnorm(5,12,[0 .15 .4 .5 1],[0 .4 .5 1],... 
[1 1.6 1 0 0],[1 1 1 10 10])

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

[num,den] = iirlpnorm(n,d,f,edges,a,w,p) где p является двухэлементным вектором [pmin pmax] позволяет определить минимальное и максимальное значения p используется в алгоритме наименьших pth. Значение по умолчанию - [2 128], что по существу дает L-бесконечность, или Чебышев, норму. Pmin и pmax должно быть ровным. Если p является 'inspect', никакой оптимизации не будет. Это можно использовать для проверки исходного положения полюса/нуля.

[num,den] = iirlpnorm(n,d,f,edges,a,w,p,dens) задание плотности сетки dens используется при оптимизации. Количество точек сетки: (dens*(n+d+1)). Значение по умолчанию - 20. dens может быть указан как одноэлементный массив ячеек. Сетка не находится на равном расстоянии друг от друга.

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

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

[num,den,err,sos,g] = iirlpnorm(...) возвращает представление сечения второго порядка в матрице sos и выигрыш g. По числовым причинам может быть полезно использовать sos и g в некоторых случаях.

Примеры

Оптимальная конструкция фильтра БИХ по методу Pth-Norm

Проектирование фильтра нижних частот с пиком 4,015 дБ в полосе пропускания

[num,den] = iirlpnorm(5,12,[0 .15 .4 .5 1],[0 .4 .5 1],... 
[1 1.6 1 0 0],[1 1 1 10 10])
num = 1×6

    0.0028    0.0036    0.0018    0.0005    0.0001    0.0000

den = 1×13

    1.0000   -6.6498   22.6915  -51.5423   85.9098 -109.9888  110.4802  -87.5412   54.2750  -25.7000    8.8451   -1.9963    0.2255

Отображение отклика величины в fvtool

fvtool(num,den)

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.

Намеки

  • Это взвешенная наименьшая оптимизация.

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

  • Аналогично, если несколько полюсов имеют большие радиусы и нули находятся внутри единичной окружности, попробуйте увеличить порядок знаменателя или уменьшить взвешивание ошибок в полосе пропускания.

Ссылки

Antoniou, A., Digital Filters: Analysis, Design, and Applications, Second Edition, McGraw-Hill, Inc. 1993.

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

.

См. также

| | | |

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