函数说明(建议参考官方文档)
- freqz(h,w)可以用来求指定的单位脉冲响应向量 h 在一组给定频率点 w 上的频率响应值
- 由这些频率响应值,可以用函数 real 和 imag 计算实部和虚部,函数 abs 和 angle 计算幅度和相位
- M 点滑动平均滤波器
H ( e j ω ) = 1 M s i n ( ω M / 2 ) s i n ( ω / 2 ) e − j ω ( M − 1 ) / 2 ϕ ( ω ) = − ω ( M − 1 ) / 2 H(e^{j\omega})=\frac{1}{M} \frac{sin(\omega M/2)}{sin(\omega/2)}e^{-j\omega(M-1)/2}\\ \phi(\omega)=-\omega(M-1)/2 H(ejω)=M1sin(ω/2)sin(ωM/2)e−jω(M−1)/2ϕ(ω)=−ω(M−1)/2
h1 = ones(1,6)/6;
h2 = ones(1,15)/15;
[H1,w] = freqz(h1,256);
[H2,w] = freqz(h2,256);
figure
subplot(211)
m1 = abs(H1);
m2 = abs(H2);
plot(w/pi,m1,'r-',w/pi,m2,'b--');
ylabel('幅度');
xlabel('\omega/pi');
legend('M=6','M=15');
subplot(212)
ph1 = unwrap(angle(H1)*180/pi);
ph2 = unwrap(angle(H2)*180/pi);
plot(w/pi,ph1,'r-',w/pi,ph2,'b--');
ylabel('相位');
xlabel('\omega/pi');
legend('M=6','M=15');
代码来自南京邮电大学《数字信号处理》,仅做学习使用