iirgrpdelay

Оптимальный БИХ с предписанной групповой задержкой

Синтаксис

[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 в наименьшем смысле. 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 используется в алгоритме наименьших чисел. 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., Цифровые Фильтры: Analysis, Design, and Applications, Second Edition, McGraw-Hill, Inc. 1993.

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

.

См. также

| | | | |

Введенный в R2011a