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 в наименьшем-количестве-pth смысла. Векторный edges задает частоты ребра полосы для многополосных проектов. Неограниченный алгоритм квазиньютона используется и любые полюса или нули, которые лежат за пределами модульного круга, отражаются назад внутри. n и d должен быть выбран так, чтобы нули и полюса использовались эффективно. Смотрите раздел Hints. Всегда используйте 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])

фильтр lowpass с пиком 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-нормы оптимальное БИХ-создание фильтра

Спроектируйте Фильтр Lowpass с Пиком 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 object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) contains an object of type line.

Подсказки

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

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

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

Ссылки

Antoniou, A., цифровые фильтры: анализ, проект, и приложения, второй выпуск, McGraw-Hill, Inc. 1993.

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

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

| | | |

Введенный в R2011a