0
点赞
收藏
分享

微信扫一扫

数字滤波器分析---相位响应


数字滤波器分析---相位响应

MATLAB® 函数可用于提取滤波器的相位响应。在给定频率响应的情况下,函数 abs 返回幅值,angle 返回以弧度为单位的相位角。要使用 fvtool 查看巴特沃斯滤波器的幅值和相位,请使用:

d = designfilt('lowpassiir','FilterOrder',9, ...
    'HalfPowerFrequency',400,'SampleRate',2000);
fvtool(d,'Analysis','freq')




数字滤波器分析---相位响应_MATLAB


您也可以点击工具栏上的幅值和相位响应按钮,或选择分析 > 幅值和相位响应显示绘图。

unwrap 函数在频率分析中也很有用。unwrap 根据需要对相位增减若干个 360° 以将其展开,使之在 360° 相位不连续点处保持连续。要了解 unwrap 的作用,请设计一个 25 阶低通 FIR 滤波器:

h = fir1(25,0.4);

用 freqz 获得频率响应,并以度为单位绘制相位:

[H,f] = freqz(h,1,512,2);
plot(f,angle(H)*180/pi)
grid

数字滤波器分析---相位响应_算法_02

很难将 360° 跳跃(由 angle 中反正切函数的定义导致)与 180° 跳跃(表示频率响应为零)区分开来。

unwrap 消除了 360° 跳跃:

plot(f,unwrap(angle(H))*180/pi)



数字滤波器分析---相位响应_信号处理_03


您也可以使用 phasez 查看展开的相位:

phasez(h,1)

数字滤波器分析---相位响应_matlab_04

另请参阅

abs | angle | freqz | FVTool | phasez | unwrap

举报

相关推荐

0 条评论