基于Matlab和FPGA的FIR数字滤波器设计11.docx
- 文档编号:10938878
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:10
- 大小:1.46MB
基于Matlab和FPGA的FIR数字滤波器设计11.docx
《基于Matlab和FPGA的FIR数字滤波器设计11.docx》由会员分享,可在线阅读,更多相关《基于Matlab和FPGA的FIR数字滤波器设计11.docx(10页珍藏版)》请在冰豆网上搜索。
基于Matlab和FPGA的FIR数字滤波器设计11
湖南文理学院课程设计报告
课程名称:
FIR数字滤波器的设计
系部:
电气与信息工程学院
专业班级:
学生姓名:
学生学号:
指导教师:
叶华
完成时间:
报告成绩:
评阅意见:
评阅教师日期
目录
一.引言3
二.FIR滤波器基本原理及结构3
三.用Matlab设计FIR数字滤波器4
四.滤波器的FPGA实现及仿真测试5
4.1移位及首尾相加单元5
4.2与滤波器系数相乘6
4.3乘法器输出结果相加7
4.4截位输出8
在QuartusII7.0里调用仿真无误的模块,组成整个系统,最后仿真无误后进行系统的实际数据测试。
五实际测试8
5.1未滤波时信号波形9
5.2滤波后信号波形9
六.心得体会10
七.参考文献10
一.引言
FIR数字滤波器以其良好的线性特性被广泛应用于现代电子通信系统中,是数字信号处理的重要内容之一。
在实际信号处理中,往往要求系统兼具实时性和灵活性,而已有的一些软件或硬件实现方案(如DSP)则难以同时达到这两方面的求。
使用具有并行处理特性的FPGA来实现FIR滤波器,既有很强的实时性,又顾了灵活性,为数字信号处理提供了一种很好的解决方案。
FIR滤波器系数计算较为繁琐,在设计时借助Matlab工具箱,选择合适的窗函数,可以方便地计算滤波器系数,并分析其幅频、相频特性。
本文在用FPGA设计FIR滤波器时,采用了层次化、模块化的设计思想,将整个滤波器划分为若干功能模块,运用VerilogHDI。
语言和原理图两种设计输入方式,各个模块先独立设计,验证无误后再互联综合,完成了FIR数字滤波器的系统设计及仿真测试。
2.FIR滤波器基本原理及结构
F1R数字滤波器的冲击响应h(以)为实序列时,频率响应:
若要求线性相位,则需:
因而^(报)如果满足对称或反对称的条件,就具有线性相位特性,即:
数字滤波器结构有很多种,偶对称FIR滤波器的直接型结构如图1所示:
其中z(行),y(行)分别为输入输出时问序列。
容易得到32阶偶对称FIR滤波器的输入输出关系,如下式所示;
根据以上分析,可以把对称结构的FIR数字滤波器分成“移位相加单元、乘法器输出相加及截位输出”四块,如下图所示;
对于长度为2M的滤波器,其运算次数只有M量级,减少了乘法次数,也提高了运算速度。
在用FPGA实现时可以节约不少资源。
3.用Matlab设计FIR数字滤波器
具有对称结构的直接型FIR滤波器结构如图1所示,用加窗的设计方法,经比较后窗函数选用海明窗。
根据实际指标要求在Matlab的“FilterDesign”工具里设置各参数,然后算得系数矗(卵),如图所示,得到的系数是用十进制表示的,需要将其转换成系统要求精度(如18位)的定点二进制小数。
把所有系数乘以2”后再四舍五入即可,最终数据如表所示。
4.滤波器的FPGA实现及仿真测试
4.1移位及首尾相加单元
把输入数据存储到移位寄存器,利用FIR滤波器的对称性,把移位后的数据首尾相加即可。
加法器输出端要加个寄存器模块,以去除毛刺。
另外为防止相加后数据溢出,要把数据位数扩宽到“+1位。
其中Din[13..o]是二进制补码输入,D—outxx[14..o]是移位相加后数据输出。
移位相加单元模块图如下图所示;
移位相加单元时序仿真:
仿真结果如图5所示,输入一个阶跃信号,(8191),从图5中可以看出,输出数据从D—outa到DoutP依次有一个时钟周期的时延,并且总的时延和滤波器数(32)相等,最后输出数据是16382=8191*2,和理论计算值相同。
4.2与滤波器系数相乘
数据首尾相加输出后与滤波器系数h(竹)相乘,由于FIR滤波器的结构是对称的,因而只需16个乘法器即可。
乘法器直接调用QuartusII里面的参数化元件库,系数的位宽设为18。
以上为一个乘法器设置方法,16个乘法器的整体模块图如下图所示。
为了便于仿真测试,乘法器单元一开始只设置了4个输入。
其中,l(0)=100,h
(1)=200,h
(2)=300,h(3)=400,a,b,c,d为4个输入数据,与.Il(挖)相乘后对应输出分别为Ra,Rb,Rc和Rd。
这样设计不失一般性,仿真无误后再扩充到16个即可。
仿真结果如图所示。
4.3乘法器输出结果相加
16路数据相加后位数被扩为33+4--37,另外要在其输出端加一寄存器,以消除毛刺。
此模块原理图如图所示。
相加输出模块仿真:
实际用到的是16输入的加法器,为便于仿真测试,输入先设为4路,仿真结果如图所示。
4.4截位输出
截位是滤波器设计的关键,此处的处理方法是:
14位的输入数据(14b的ADC),18位二进制补码表示的滤波器系数,除去符号位,相乘后小数位是13+17—30,加法运算不改变小数位数。
另外系统测试电路板用的是USB总线,USB控制器的数据位宽是16,因而把输出数据截到16位,然后送给FIFO,从而传到计算机.截位用Verilog
此模块的原理图如下图所示,其中FIR—out[15..o]
是滤波器的最终输出。
在QuartusII7.0里调用仿真无误的模块,组成整个系统,最后仿真无误后进行系统的实际数据测试。
五实际测试
测试电路是一基于FPGA和USB的数据采集及处理系统。
其原理框图如下图所示。
测试时把一被干扰的模拟信号输入ADC,采样得到的数据经过FPGA和USB传输到计算机上,然后用Mat-lab显示出其时域和频域图形。
5.1未滤波时信号波形
输入信号频率是3kHz,含频率为34kHz的干扰信号(用两个信号源合成),下载的FPGA控制程序不含数字滤波器模块,采样得到的数据经USB传到计算机,然后用Matlab显示出的波形如下图所示,可以看出干扰信号的相对功率约为一20dB。
5.2滤波后信号波形
把滤波器程序下载到FPGA,输入信号不变。
滤波后波形如下图所示。
前后对比可以发现,滤波后信号明显变好,34kHz的干扰被抑制到约一55dB,验证了设计的正确性。
六.心得体会
本次课件设计给出了用CycloneⅡ系列FPGA实现FIR低通滤波器的设计实例。
然后将滤波前后的AD实际采样数据用Matlab显示出来并做比较,测试结果证明所设计的FIR数字滤波器功能正确,性能良好。
并且该数字滤波器有很高的灵活性,滤波器系数在一个表格内,修改其参数即可分别实现低通、高通、带通等类型。
文中所讨论的设计方法和实现技术对数字信号处理系统的设计与实现具有重要的实用价值。
七.参考文献
[1]UweMeyer—Baese.DigitalSignalProcessingwithFieldProgrammableGateArrays.TsinghuaUniversityPress,2006.
[2]SanjitKMitra.DigitalSignalProcessing:
AComputer—BasedApproach.TsinghuaUniversityPress,2004.
[3]MichaelDCiletti.AdvancedDigitalDesignwiththeVerilogHDL[M].PublishingHouseofElectronicsIndustry,2007.
[4]程佩清.数字信号处理教程[M].北京:
清华大学出版社,2003.
[5]郭晓宇.基于FPGA实现FIR数字滤波器的研究[D].武汉:
武汉大学,2004.
[6]李登峰.基于FPGA和DSP的数字滤波器设计[D].南京:
南京理工大学,2004.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab FPGA FIR 数字滤波器 设计 11