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