fir matlab fpga,基于Matlab和FPGA的FIR数字滤波器设计及实现

截位是滤波器设计的关键,此处的处理方法是:14位的输入数据(14 b的ADC),18位二进制补码表示的滤波器系数,除去符号位,相乘后小数位是13+17=30,加法运算不改变小数位数。另外系统测试电路板用的是USB总线,USB控制器的数据位宽是16,因而把输出数据截到16位,然后送给FIFO,从而传到计算机。截位用VerilogHDL实现的语句是:

assign FIR_out={D_temp[36],D_temp[29:15]};

此模块的原理图如图10所示,其中FIR_out[15..O]是滤波器的最终输出。

20104910568850.jpg

在QuarltusⅡ7.0里调用仿真无误的模块,组成整个系统,最后仿真无误后进行系统的实际数据测试。

5 实际测试

测试电路是一基于FPGA和USB的数据采集及处理系统。其原理框图如图1l所示。

20104910568234.jpg

测试时把一被干扰的模拟信号输入ADC,采样得到的数据经过FPGA和USB传输到计算机上,然后用Mat—lab显示出其时域和频域图形。

5.1 未滤波时信号波形

输入信号频率是3 kHz,含频率为34 kHz的干扰信号(用两个信号源合成),下载的FPGA控制程序不含数字滤波器模块,采样得到的数据经USB传到计算机,然后用Matlab显示出的波形如图12所示,可以看出干扰信号的相对功率约为一20 dB。

20104910568951.jpg

5. 2 滤波后信号波形

把滤波器程序下载到FPGA,输入信号不变。滤波后波形如图13所示。

20104910568856.jpg

前后对比可以发现,滤波后信号明显变好,34 kHz的干扰被抑制到约一55 dB,验证了设计的正确性。

6 结 语

本文给出了用CycloneⅡ系列FPGA实现FIR低通滤波器的设计实例。然后将滤波前后的AD实际采样数据用Madab显示出来并做比较,测试结果证明所设计的FIR数字滤波器功能正确,性能良好。并且该数字滤波器有很高的灵活性,滤波器系数在一个表格内,修改其参数即可分别实现低通、高通、带通等类型。文中所讨论的设计方法和实现技术对数字信号处理系统的设计与实现具有重要的实用价值。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值