grpdelay

Средняя задержка фильтра (групповая задержка)

Описание

[gd,w] = grpdelay(b,a,n) возвращает n- вектор отклика задержки группы точек, gd, и соответствующий вектор угловой частоты, w, для цифрового фильтра с коэффициентами передаточной функции, сохраненными в b и a.

пример

[gd,w] = grpdelay(sos,n) возвращает n-позиционная групповая задержка, соответствующая матрице секций второго порядка sos.

пример

[gd,w] = grpdelay(d,n) возвращает n-позиционная групповая задержка для цифрового фильтра d.

[gd,w] = grpdelay(___,'whole') возвращает задержку группы в n точки выборки вокруг всей единичной окружности.

[gd,f] = grpdelay(___,n,fs) возвращает вектор отклика групповой задержки gd и соответствующий вектор физической частоты f для цифрового фильтра, предназначенного для фильтрации сигналов, дискретизированных со скоростью fs.

[gd,f] = grpdelay(___,n,'whole',fs) возвращает вектор частоты в n точки в диапазоне от 0 до fs.

gd = grpdelay(___,win) возвращает вектор отклика групповой задержки gd оценивается на нормированных частотах, подаваемых в win.

пример

gd = grpdelay(___,fin,fs) возвращает вектор отклика групповой задержки gd оценивается на физических частотах, подаваемых в fin.

пример

grpdelay(___) без выходных аргументов строит график групповой задержки фильтра.

Примеры

свернуть все

Спроектируйте Фильтр Баттерворта порядка 6 с нормированной частотой 3-dB 0.2π рад/образец. Использование grpdelay для отображения задержки группы.

[z,p,k] = butter(6,0.2);
sos = zp2sos(z,p,k);

grpdelay(sos,128)

Figure contains an axes. The axes contains an object of type line.

Постройте график и задержки группы, и задержки фазы системы на том же рисунке.

gd = grpdelay(sos,512);

[h,w] = freqz(sos,512);
pd = -unwrap(angle(h))./w;

plot(w/pi,gd,w/pi,pd)
grid
xlabel 'Normalized Frequency (\times\pi rad/sample)'
ylabel 'Group and phase delays'
legend('Group delay','Phase delay')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Group delay, Phase delay.

Использование designfilt для разработки Фильтра Баттерворта шестого порядка с нормированной частотой 3-dB 0.2π рад/образец. Отобразите его групповую задержку.

d = designfilt('lowpassiir','FilterOrder',6, ...
    'HalfPowerFrequency',0.2,'DesignMethod','butter');
grpdelay(d)

Figure Filter Visualization Tool - Group delay contains an axes and other objects of type uitoolbar, uimenu. The axes with title Group delay contains an object of type line.

Спроектируйте конечная импульсная характеристика 88-го порядка с произвольной амплитудной характеристикой. Фильтр имеет две полосы пропускания и две полосы остановки. Ширина полосы пропускания более низкой частоты в два раза превышает коэффициент усиления полосы пропускания более высокой частоты. Задайте частоту дискретизации 200 Гц. Визуализируйте величину ответ и фазовый отклик фильтра с 10 Гц до 78 Гц.

fs = 200;
d = designfilt('arbmagfir', ...
       'FilterOrder',88, ...
       'NumBands',4, ...
       'BandFrequencies1',[0 20], ...
       'BandFrequencies2',[25 40], ...
       'BandFrequencies3',[45 65], ...
       'BandFrequencies4',[70 100], ...
       'BandAmplitudes1',[2 2], ...
       'BandAmplitudes2',[0 0], ...
       'BandAmplitudes3',[1 1], ...
       'BandAmplitudes4',[0 0], ...
       'SampleRate',fs);
freqz(d,10:1/fs:78,fs)

Figure Filter Visualization Tool - Magnitude Response (dB) and Phase Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) and Phase Response contains an object of type line.

Вычислите и отобразите групповую задержку фильтра в той же частотной области значений. Проверьте, что это половина порядка фильтрации.

filtord(d)
ans = 88
grpdelay(d,10:1/fs:78,fs)

Figure Filter Visualization Tool - Group delay contains an axes and other objects of type uitoolbar, uimenu. The axes with title Group delay contains an object of type line.

Входные параметры

свернуть все

Коэффициенты передаточной функции, заданные как векторы. Выразите передаточную функцию с точки зрения b и a как

H(ejω)=B(ejω)A(ejω)=b (1)+b (2)ejω+b (3)ej2ω++b (M)ej(M1)ωа (1)+а (2)ejω+а (3)ej2ω++одинej(N1)ω.

Пример: b = [1 3 3 1]/6 и a = [3 0 1 0]/3 задайте фильтр Баттерворта третьего порядка с нормализованной частотой 3 дБ 0.5, рад/выборка.

Типы данных: double | single
Поддержка комплексного числа: Да

Количество оценочных точек, заданное в виде положительного целочисленного скаляра не менее 2. Когда n отсутствует, значение по умолчанию равняется 512. Для достижения наилучших результатов задайте n к значению, большему, чем порядок фильтра.

Коэффициенты секции второго порядка, заданные как матрица. sos является матрицей K -by-6, где количество сечений, K, должно быть больше или равно 2. Если количество каскадов меньше 2, функция обрабатывает вход как вектор. Каждая строка sos соответствует коэффициентам фильтра второго порядка (biquad). i строка sos соответствует [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)].

Пример: s = [2 4 2 6 0 2;3 3 0 6 0 0] задает фильтр Баттерворта третьего порядка с нормализованной частотой 3 дБ 0.5, рад/выборка.

Типы данных: double | single
Поддержка комплексного числа: Да

Цифровой фильтр, заданный как digitalFilter объект. Использовать designfilt для генерации цифрового фильтра на основе спецификаций частотной характеристики.

Пример: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) задает фильтр Баттерворта третьего порядка с нормализованной частотой 3 дБ 0.5, рад/выборка.

Частота дискретизации, заданная как положительная скалярная величина. Когда модуль времени является секундами, fs выражается в герцах.

Типы данных: double

Угловые частоты, заданные как вектор и выраженные в рад/выборке. win должен иметь как минимум два элемента, потому что в противном случае функция интерпретирует его как n. win = π соответствует частоте Найквиста.

Частоты, заданные как вектор. fin должен иметь как минимум два элемента, потому что в противном случае функция интерпретирует его как n. Когда модуль времени является секундами, fin выражается в герцах.

Типы данных: double

Выходные аргументы

свернуть все

Групповая задержка, возвращенная как вектор. Если вы задаете n, затем gd имеет длину n. Если вы не задаете n, или задайте n в качестве пустого вектора затем gd имеет длину 512.

Если вход в grpdelay является одинарной точностью, функция вычисляет задержку группы с помощью арифметики с одной точностью. Область выхода h является одинарной точностью.

Угловые частоты, возвращенные как вектор. w имеет значения в диапазоне от 0 до π. Если вы задаете 'whole' во входе, значениях в w Область значений от 0 до 2 π. Если вы задаете n, w имеет длину n. Если вы не задаете n, или задайте n в качестве пустого вектора затем w имеет длину 512.

Частоты, возвращенные как вектор, выраженный в герцах. f имеет значения в диапазоне от 0 до fs/ 2 Гц. Если вы задаете 'whole' во входе, значениях в f область значений от 0 до fs Гц. Если вы задаете n, f имеет длину n. Если вы не задаете n, или задайте n в качестве пустого вектора затем f имеет длину 512.

Подробнее о

свернуть все

Групповая задержка

Групповая задержка фильтра является мерой средней задержки фильтра как функции частоты. Это отрицательная первая производная фазового отклика фильтра. Если частотная характеристика фильтра H (e), тогда групповая задержка

τg(ω)=dθ(ω)dω,

где θ (ω) является фазой или аргументом H (e).

Представлено до R2006a