FIR滤波器在数字电路中应用很广,可以简单谈谈它的原理和设计流程,详细的流程将会在后面附上。
FIR滤波器的时域表达式:y(n)=∑h(m)x(n-m),其中m的范围从0到N-1,N称为抽头或者阶数,h理论上说的是系统函数,实际上去实现只需要确
定h(0)到h(N-1)的值即可,h其实就是表达式的系数,所以h在时域上也就是N个点。
用C去实现的流程大概就是如下,比如设计20阶滤波器,x和h定义为数组,x数组长度为k,n的取值将有n=0-N-1+k,这样用两个for语句可以完成y数
组的求解。下面谈谈如何获取h数组,也就是系数,这个离不开matlab。
matlab有一个滤波器设计工具,可以输入命令sptool即可分析滤波器滤波效果,然后把各项指标填入这个工具里面的,我记得最后点击design即可出
现系统函数h的频谱图,然后可以点击导出或者直接点击C header即可产生包含系数数组的头文件,然后就可以用C去实现FIR滤波器的设计了。
到此,大体上的设计工作如此了,这是本人上DSP课老师亲手掩饰过,因为比较认真听讲所以印象还比较深。。。
小弟新手,细节方面肯定做得不到位[s:12] 。。。。。。。。。
200字以内,仅用于支线交流,主线讨论请采用回复功能。