Оптимальные БИХ фильтруют с предписанной групповой задержкой
[num,den] = iirgrpdelay(n,f,edges,a)
[num,den] = iirgrpdelay(n,f,edges,a,w)
[num,den] = iirgrpdelay(n,f,edges,a,w,radius)
[num,den] = iirgrpdelay(n,f,edges,a,w,radius,p)
[num,den] = iirgrpdelay(n,f,edges,a,w,radius,p,dens)
[num,den] = iirgrpdelay(n,f,edges,a,w,radius,p,dens,initden)
[num,den] = iirgrpdelay(n,f,edges,a,w,radius,p,dens,initden,tau)
[num,den,tau] = iirgrpdelay(n,f,edges,a,w)
[num,den] = iirgrpdelay(n,f,edges,a)
возвращает allpass БИХ-фильтр порядка n
N
должен быть четным), который является наилучшим приближением к относительному ответу групповой задержки, описанному f
и a
в наименьшем-количестве-pth смысла. f
вектор частот между 0 и 1 и a
задан в выборках. Векторный edges
задает частоты ребра полосы для многополосных проектов. iirgrpdelay
использует ограниченный алгоритм типа Ньютона. Всегда проверяйте свой получившийся фильтр с помощью grpdelay
или freqz
.
[num,den] = iirgrpdelay(n,f,edges,a,w)
использует веса в w
взвешивать ошибку. w
имеет одну запись на точку частоты и должна быть та же длина как f
и a
). Записи в w
скажите iirgrpdelay
сколько акцента, чтобы поставить минимизацию ошибки около каждой заданной частоты указывают относительно других точек.
f
и a
должен иметь то же число элементов. f
и a
может содержать больше элементов, чем векторный edges
содержит. Это позволяет вам использовать f
и a
задавать фильтр, который имеет любой контур групповой задержки в каждой полосе.
[num,den] = iirgrpdelay(n,f,edges,a,w,radius)
возвращает фильтр, имеющий максимальный радиус полюса, равный radius
, где 0 <radius
<1. radius
значения по умолчанию к 0,999999. Фильтры, радиус полюса которых вы ограничиваете, чтобы быть меньше 1.0, могут лучше сохранить точность передаточной функции после квантования.
[num,den] = iirgrpdelay(n,f,edges,a,w,radius,p)
, где p
двухэлементный вектор [pmin pmax
], позволяет вам определить минимальные и максимальные значения p
используемый в наименьшем-количестве-pth алгоритма. p
значения по умолчанию к [2 128], который дает к фильтрам, очень похожим на L-бесконечность, или Чебышева, норму. pmin
и pmax
должен быть четным. Если p
'inspect'
, никакая оптимизация не происходит. Вы можете использовать эту функцию, чтобы смотреть начальное размещение полюса/нуля.
[num,den] = iirgrpdelay(n,f,edges,a,w,radius,p,dens)
задает плотность сетки dens
используемый в процессе оптимизации. Количеством узлов решетки является (dens*(n+1))
. Значение по умолчанию равняется 20. dens
может быть задан как одноэлементный массив ячеек. Сетка не равномерно распределена.
[num,den] = iirgrpdelay(n,f,edges,a,w,radius,p,dens,initden)
позволяет вам задавать первоначальную оценку коэффициентов знаменателя в векторном initden
. Это может быть полезно для трудных задач оптимизации. Нулевой полюсом редактор в программном обеспечении Signal Processing Toolbox™ может использоваться в генерации initden
.
[num,den] = iirgrpdelay(n,f,edges,a,w,radius,p,dens,initden,tau)
позволяет первоначальной оценке смещения групповой задержки быть заданной значением tau
, в выборках.
[num,den,tau] = iirgrpdelay(n,f,edges,a,w)
возвращает получившееся смещение групповой задержки. Во всех случаях получившийся фильтр имеет групповую задержку, которая аппроксимирует [a + tau
]. Фильтры Allpass могут иметь только положительную групповую задержку и ненулевое значение счетов tau на любую дополнительную групповую задержку, которая необходима, чтобы соответствовать форме контура, заданного (f,a)
. Значение по умолчанию для tau
max
A
).
Подсказка: Если кластер нулей или полюсов вместе, ваш порядок фильтра может быть слишком низким, или радиус полюса может слишком быть малым (чрезмерно ограничен). Попытайтесь увеличить n
или radius
.
Для эквализации групповой задержки БИХ-фильтра вычислите a
путем вычитания групповой задержки фильтра из ее максимальной групповой задержки. Например,
[be,ae] = ellip(4,1,40,0.2); f = 0:0.001:0.2; g = grpdelay(be,ae,f,2); % Equalize only the passband. a = max(g)-g; [num,den]=iirgrpdelay(8, f, [0 0.2], a);
Antoniou, A., цифровые фильтры: анализ, проект, и приложения, второй выпуск, McGraw-Hill, Inc. 1993.