phasedelay

Задержка фазы цифрового фильтра

Синтаксис

[phi,w] = phasedelay(b,a,n)
[phi,w] = phasedelay(sos,n)
[phi,w] = phasedelay(d,n)
[phi,w] = phasedelay(...,n,'whole')
phi = phasedelay(...,w)
[phi,f] = phasedelay(...,n,fs)
[phi,f] = phasedelay(...,n,'whole',fs)
phi = phasedelay(...,f,fs)
[phi,w,s] = phasedelay(...)
[phi,f,s] = phasedelay(...)
phasedelay(...)

Описание

[phi,w] = phasedelay(b,a,n) возвращает n - вектор отклика задержки фазы точки, phi, и n - вектор частоты точки в радианах/выборке, w, фильтра, заданного коэффициентами числителя, b, и коэффициентами знаменателя, a. Ответ задержки фазы оценен в n равномерно распределенные точки вокруг верхней половины модульного круга. Если n не использован, он принимает значение по умолчанию к 512. Для лучших результатов, набор n к значению, больше, чем порядок фильтра.

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

[phi,w] = phasedelay(d,n) возвращает n - ответ задержки фазы точки цифрового фильтра, d. Используйте designfilt, чтобы сгенерировать d на основе спецификаций частотной характеристики.

[phi,w] = phasedelay(...,n,'whole') использование n равномерно распределенные точки вокруг целого модульного круга.

phi = phasedelay(...,w) возвращает ответ задержки фазы на заданных частотах, в радианах/выборке, в векторном w. Частоты обычно между 0 и π. w должен содержать по крайней мере два элемента.

[phi,f] = phasedelay(...,n,fs) и [phi,f] = phasedelay(...,n,'whole',fs) возвратите задержку фазы векторный f (в Гц), с помощью частоты дискретизации fs (в Гц). f должен содержать по крайней мере два элемента.

phi = phasedelay(...,f,fs) возвращает ответ задержки фазы на частотах, заданных в векторном f (в Гц), с помощью частоты дискретизации fs (в Гц).

[phi,w,s] = phasedelay(...) и [phi,f,s] = phasedelay(...) возвратите информацию о графическом выводе, где s является структурой с полями, можно изменить на отображение различные графики частотных характеристик.

phasedelay(...) без выходных аргументов строит ответ задержки фазы по сравнению с частотой.

Примечание

Если вход к phasedelay является одинарной точностью, ответ задержки фазы вычисляется с помощью арифметики с одинарной точностью. Вывод, phi, является одинарной точностью.

Примеры

свернуть все

Используйте метод наименьших квадратов с ограничениями, чтобы разработать lowpass КИХ-фильтр порядка 54 и нормированной частоты среза 0.3. Задайте пульсацию полосы пропускания и затухание полосы задерживания как 0,02 и 0.08, соответственно, выраженный в линейных модулях. Вычислите и постройте ответ задержки фазы фильтра.

Ap = 0.02;
As = 0.008;

b = fircls1(54,0.3,Ap,As);
phasedelay(b)

Повторите пример с помощью designfilt. Следует иметь в виду, что эта функция выражает пульсации в децибелах.

Apd = 40*log10((1+Ap)/(1-Ap));
Asd = -20*log10(As);

d = designfilt('lowpassfir','FilterOrder',54,'CutoffFrequency',0.3, ...
               'PassbandRipple',Apd,'StopbandAttenuation',Asd);
phasedelay(d)

Разработайте эллиптический фильтр порядка 10 и нормированной частоты полосы пропускания 0.4. Задайте пульсацию полосы пропускания 0,5 дБ и затухание полосы задерживания 20 дБ. Отобразите ответ задержки фазы фильтра по полному модульному кругу.

[b,a] = ellip(10,0.5,20,0.4); 
phasedelay(b,a,512,'whole')

Повторите пример с помощью designfilt.

d = designfilt('lowpassiir','DesignMethod','ellip','FilterOrder',10, ...
               'PassbandFrequency',0.4, ...
               'PassbandRipple',0.5,'StopbandAttenuation',20);
phasedelay(d,512,'whole')

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

| | | | |

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