基于FPGA的FIR滤波器测试与仿真
这几天花了点时间写了一个FIR低通滤波器,32阶的,参考了书上程序。从维普上查了一大堆论文,大多数都比较垃圾,从中挑了两篇好的,先仔细研究了一下FIR的结构,结果发现其实这个东西不难,但是以前学数字信号处理的时候觉得跟天书一样,我想不管是学什么,最好有实际的东西做,那么才能学的明白,光学理论还是不行啊。
采用了直接式结构实现这个FIR,滤波器系数使用MATLAB的fdatool生成,量化成9位有符号二进制数,-256~+255,需要处理的数据也用MATLAB生成,需要量化成8位有符号二进制数,导出成VEC文件,在quartus中打开,再添加其他pin,设置好时序,仿真。数据导出到MATLAB里再分析。我以前从来没将这两个工具联合起来用过,看论文里介绍时,我还很沮丧,这玩艺要这么复杂啊~~~!就怕短时间呢做不出来啊,我这时间还要求挺紧的。还好我悟性还可以呵呵,m语言玩得不错,花了两天的时间解决了联合仿真的问题。但是发现滤波效果太差,又废了很大劲,找到并解决了这个数据累加溢出的问题。
最后结果还可以接受,因为我滤波器设计的问题,25K信号衰减还不够,那个不要紧,关键是整个流程实现了。程序当然需要优化,但是昨天又接到新任务,下一步要转去研究DSP了,这个东东就当是储备吧。

未滤波前

滤波后

各参数看图片上标题