zerophase

Нулевой фазовый отклик цифрового фильтра

Синтаксис

[Hr,w] = zerophase(b,a)
[Hr,w] = zerophase(sos)
[Hr,w] = zerophase(d)
[Hr,w] = zerophase(...,nfft)
[Hr,w] = zerophase(...,nfft,'whole')
[Hr,w] = zerophase(...,w)
[Hr,f] = zerophase(...,f,fs)
[Hr,w,phi] = zerophase(...)
zerophase(...)

Описание

[Hr,w] = zerophase(b,a) возвращает нулевой фазовый отклик Hr и вектор частоты w (в радианах/выборке), в котором Hr вычислен, дан фильтр, заданный числителем b и знаменатель a. Поскольку КИХ фильтрует, где a=1, можно не использовать значение a от команды. Нулевой фазовый отклик оценен в 512 равномерно распределенные точки на верхней половине модульного круга.

Нулевой фазовый отклик, Hr (ω), связан с частотной характеристикой, H (ejω),

H(ejω)=Hr(ω)ejφ(ω),

где φ (ω) является непрерывной фазой.

Примечание

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

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

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

[Hr,w] = zerophase(...,nfft) возвращает нулевой фазовый отклик Hr и вектор частоты w (радианы/выборка), с помощью точек частоты nfft на верхней половине модульного круга. Для лучших результатов, набор nfft к значению, больше, чем порядок фильтра.

[Hr,w] = zerophase(...,nfft,'whole') возвращает нулевой фазовый отклик Hr и вектор частоты w (радианы/выборка), с помощью точек частоты nfft вокруг целого модульного круга.

[Hr,w] = zerophase(...,w) возвращает нулевой фазовый отклик Hr и вектор частоты w (радианы/выборка) на частотах в векторном w. Векторный w должен иметь по крайней мере два элемента.

[Hr,f] = zerophase(...,f,fs) возвращает нулевой фазовый отклик Hr и вектор частоты f (Гц), с помощью частоты дискретизации fs (в Гц), чтобы определить вектор частоты f (в Гц), в котором вычисляется Hr. Векторный f должен иметь по крайней мере два элемента.

[Hr,w,phi] = zerophase(...) возвращает нулевой фазовый отклик Hr, вектор частоты w (рад/выборка), и непрерывный компонент фазы, phi. (Обратите внимание на то, что это количество не эквивалентно фазовому отклику фильтра, когда нулевой фазовый отклик отрицателен.)

zerophase(...) строит нулевой фазовый отклик по сравнению с частотой. Если вы вводите коэффициенты фильтра или матрицу разделов второго порядка, окно текущей фигуры используется. Если вы вводите digitalFilter, переходной процесс отображен в fvtool.

Примечание

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

Примеры

свернуть все

Используйте designfilt, чтобы разработать КИХ-фильтр 54-го порядка с нормированной частотой среза 0.3π рад/выборка, пульсация полосы пропускания 0,7 дБ и затухание полосы задерживания 42 дБ. Используйте метод метода наименьших квадратов с ограничениями. Отобразите нулевой фазовый отклик.

Nf = 54;
Fc = 0.3;
Ap = 0.7;
As = 42;

d = designfilt('lowpassfir','FilterOrder',Nf,'CutoffFrequency',Fc, ...
    'PassbandRipple',Ap,'StopbandAttenuation',As,'DesignMethod','cls');
zerophase(d)

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

pAp = 10^(Ap/40); 
Apl = (pAp-1)/(pAp+1);
pAs = 10^(As/20);
Asl = 1/pAs;

b = fircls1(Nf,Fc,Apl,Asl);
zerophase(b)

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

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

Создайте тот же фильтр с помощью ellip. Постройте его нулевой фазовый отклик.

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

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

| | | | | | | |

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