matlab绘制频率响应曲线的函数如下:
[h,w]=freqz(b,a,n ) b,a )传递函数系数
h :频率响应
w :角频率,0~
更多参数说明请访问官方链接https://WW2.mathworks.cn/help/signal/ref/freqz.html? 请求域=true
用freqz画出频率响应曲线的一例:画出以下系统的频率响应曲线。 h(z )=(1-0.5z^-1 ) ) ) )。
B=[1 -0.5]; A=[1]; [H,w]=freqz(b,a ); HF=ABS(h; 取%振幅值的实部hx=angle(h; %获取相位值对应于相位角clffigure(2(1) plot(w,20*log10 ) HF ) )振幅,以分贝为单位title ) (离散系统振幅特性曲线) figure) plot(w,Hx ) )
此时振幅特性曲线的横坐标为数字角频率w。 可能希望将横坐标转换为频率f (以赫兹hz为单位)。
首先,我们需要了解各频率之间的关系。 模拟频率f。 每秒经历多少周期,单位Hz,即1/s;
模拟角频率:每秒几弧度、单位rad/s;
数值角频率w :各采样点间隔之间的弧度、单位rad。
各频率之间的关系:=2**f;
w=*T;
因为t=1/fs(fs是采样率)
所以w=*T=2**f/fs。
因此,将数字角频率w转换为模拟频率f的公式如下。
f=w*fs/(2*)
因此,将横坐标转换为赫兹单位的代码如下所示。 (假设采样率为1000hz ) B=[1 -0.5]; A=[1]; [H,w]=freqz(b,a ); HF=ABS(h; 取%振幅值的实部hx=angle(h; 将%相位值设定为相位角clffigure(2(1) plot(w*fs/)2*pi )、20 * log 10 (HF ) )振幅设定为分贝单位title (离散系统振幅特性曲线) ) figure) plot )
此时振幅特性曲线的横轴为频率f,单位为hz
ps :
振幅特性曲线的横轴为数字角频率w时,其最大值为。 这是因为当采样率为fs时,根据香农定理能够采样的信号的最高频率是fs/2,与fs/2频率对应的数字角频率w是。 因此,通常只关心0-的振幅响应。
从上面最后一张图可以看到,将横坐标转换为频率后,横坐标的最大值为fs/2,即500hz。