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