在数字信号处理中,数字滤波占有极其重要的地位。无限冲击响应(Finite Impulse Re-sponse,FIR)数字滤波器(Digital Filter)是一种常用数字信号处理(DSP)算法。利用窗函数法设计FIR滤波器,可以实现线性相位的数字滤波器。
1.FIR数字滤波器的设计方法
设FIR数字滤波器的单位冲激响应为h(n),则传递函数H(z)为
FIR数字滤波器的系数h(n)可由下式求得
h(n)=w(n)h1(n),n=0,1,…,N-1
w(n)为窗函数,常见的窗函数有矩形窗、布莱克曼窗、汉宁窗、海明窗以及凯塞窗等。理想单位冲激响应h1(n)可以根据给定的理想频率响应H1(ejω),利用傅里叶变换求得
FIR数字滤波器的差分方程为
式中,x(i)为输入序列;y(i)为输出序列;N为滤波器阶数。
2.FIR数字滤波器的软件实现
例15-2 实现一个低通FIR数字滤波器。要求通带边缘频率fp为10kHz,阻带边缘频率fst为22kHz,阻带衰减As为75dB,采样频率fs为50kHz。
采用窗函数法设计数字滤波器:
1)过渡带宽度Δf=fst-fp=22-10=12kHz
2)截止频率fc=fp+Δf/2=10+12/2=16kHz
数字标称截止频率ωc=2πfc/fs=2π×16/50=0.64π
3)理想低通滤波器单位冲击响应(www.daowen.com)
h1(n)=sin[ωc(n-α)]/[(n-α)π]=sin[0.64π(n-α)]/[(n-α)π]
相移常数α=(N-1)/2
4)根据要求,阻带衰减As为75dB,可选择布莱克曼窗,窗函数长度为
N=5.98fs/Δf=5.98×50/12=24.9
5)选择N=25,布莱克曼窗函数为
w(n)=0.42-0.5cos[2πn/(N-1)]+0.08cos[4πn/(N-1)]
6)滤波器单位冲激响应为
h(n)=h1(n)w(n) n≤N-1
h(n)=0 n>N-1
7)根据上面的计算求出h(n),然后将单位冲激响应值移位为因果序列。
8)完成的滤波器差分方程为
y(i)=0.001x(i-2)-0.002x(i-3)-0.002x(i-4)+0.01x(i-5)-0.009x(i-6)-0.018x(i-7)+0.049x(i-8)-0.02x(i-9)+0.11x(i-10)+0.28x(i-11)+0.64x(i-12)+0.28x(i-13)-0.11x(i-14)-0.02x(i-15)-0.049x(i-16)-0.018x(i-17)-0.009x(i-18)+0.01x(i-19)-0.002x(i-20)-0.002x(i-21)+0.001x(i-22)
数字滤波器程序如下:
可以通过CCS软件环境调试该程序,并用其中的View>Graph>Time/Frequency菜单功能,显示变量FIN与FOUT图形,观察FIR数字滤波的效果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。