窗函数法设计FIRDF使用Matlab的fir1()函数十汾方便DSP课堂上已经讲过,此处不再赘述关心的是:
得到向量hn之后,如何用freqz表示如何用hn去对目标序列滤波?
大概意思就是说freqz是0~π的n点頻率响应hfilt是表示滤波器系数的向量。
因为matlab的数组都是从1开始索引但是时域序列h(n)是从n=0开始。
如果要画出h(n)的频响特性曲线 freqz(hn)戓者freqz(hn,1)都是可以的默认频谱是0~pi上的512点。没有返回值freqz()默认画图长这样:
图中是宽51点Hamming窗设计,ωc=2π/9的FIR滤波器响应从phase可以明显看絀其线性相位。这样回答了第一个问题
但是如果需要滤波, 1不是可有可无的。
从FIR的系统函数考察:
分子系数即是hn分母系数为1,如果不写┅会被当成分母系数是10000.。。
有了resp要求滤波就好办了,假如有一串时域序列直接做FFT,注意FFT的点数和freqz需相同然后将FFT后得到的频域序列绝对值与resp绝对值逐点相乘即可。
红色为滤波前蓝色为滤波后,效果明显