基于VHDL的FIR数字滤波器.docx

基于VHDL的FIR数字滤波器.docx

ID:55314041

大小:113.33 KB

页数:12页

时间:2020-05-09

基于VHDL的FIR数字滤波器.docx_第1页
基于VHDL的FIR数字滤波器.docx_第2页
基于VHDL的FIR数字滤波器.docx_第3页
基于VHDL的FIR数字滤波器.docx_第4页
基于VHDL的FIR数字滤波器.docx_第5页
资源描述:

《基于VHDL的FIR数字滤波器.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本报告分两部分:1由matlab计算FIR数字滤波器的滤波系数;2用VHDL语言设计逻辑电路,再通过QUARTUSII软件,将各个模块的电路封装成期间,在顶层设计中通过连线,完成整个系统。所有源程序在本文档同一文件夹下的fir文件中。FIR数字滤波器的系数计算。这里通过MATLAB的Fdatool软件实现。输入数据S(n)为9位,输出y(n)为10位的低通滤波器数据:各个参数如下:LilterTyperlowpassFIRWindowkaiser阶数:15,Beta=0.5,Fs=48kHz,Fc=10.8kHZ滤波类型为:直接型FIRFIR滤波器的幅频响应相频响应FIR滤波器的冲击响应滤波

2、器系数对系数进行调整,整数化:Num=-0.07420.02340.11330.0117-0.1758-1.09770.35940.82810.82810.35940.0977-0.17580.01170.11330.0234-0.0742Num*(2^8)ans=Columns1through10-18.99525.990429.00482.9952-45.0048-281.011292.0064211.9936211.993692.0064Columns11through1625.0112-45.00482.995229.00485.9904-18.9952FIR数字滤波器的VHDL实现

3、根据作业要求,S(n)为9位,y(n)为10位的低通滤波器。数据:-19,6,29,3,-45,-25,92,212,212,92,-25,-45,3,29,6,-19阶数:15,Beta=0.5,Fs=48kHz,Fc=10.8kHZ滤波类型为:直接型FIRFIR滤波器的原理图设计如下:设计原理:一概要我的原理说明是根据上面原理图的设计顺序逐步进行的。1寄存器(延时器)。原理图上标有dff9的器件。输入9位数据,通过dff9的D触发寄存器,达到延时的作用。2第一级加法器数据通过add9910,就是9位数字输入,10位数字输出加法器,完成第一级相加运算,因为本题是16阶FIR数字滤波器,它的

4、滤波系数有对称的关系,所以采用上面的第一级加法器,达到简化运算的效果。3乘法器乘法器用来将数据乘以由matlab计算得到的滤波系数,本题的系数分别为:-19,6,29,3,-45,-25,92,212。在乘法器设计时暂时没有考虑符号,符号问题由下面的减法器实现。即:若系数符号为负,那么在下一级用减法器减去乘法器所得的数据。所有的乘法器为:mult19,multmult6,mult29,mult3,mult45,mult25,mult92,mult212。4第二级加,减法器第二级加法器主要有add111414,add151415,add161717。add111414就是说11位数据加14位数

5、据输出14位数据,说有的都是相同的命名规则。减法器的作用是反映乘法器的负号的,对于负的滤波系数,在此相当于经过减法器相减。5第三级加,减法器与上一级大体相同的原理。6输出输出通过add141710,将上一级得到的14位和17位数据相加,再拿出相加结果的高十位作为输出。到此,整个FIR数字滤波器设计完毕,下面详细说明各个部分的具体实现。二详细说明我的说明是根据上面的概要逐一展开的。我的设计是先编写各个功能的vhdl源文件,再生成功能模块,最后在顶层用原理图的设计方法连线,组成整个系统。1寄存器(延时器)设计中用D触发器组成寄存器,实现寄存功能。这里用来寄存一组9位的二进制数据。实现功能:在CP

6、正跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即被封锁。源文件:ENTITYdff9ISPORT(clk:INSTD_LOGIC;clear:INSTD_LOGIC;Din:INSTD_LOGIC_VECTOR(8DOWNTO0);Dout:OUTSTD_LOGIC_VECTOR(8DOWNTO0));ENDdff9;ARCHITECTUREaOFdff9ISBEGINPROCESS(clk,clear)BEGINIFclear='1'THENDout<="000000000";ELSIFclear='0'THENIF(clk'EVENTANDclk='1')THENDout<=Din

7、;ENDIF;ENDIF;ENDPROCESS;ENDa;2第一级加法器实现两个二进制数字的相加运算。当到达时钟上升沿时,将两数输入,运算,输出结果。源文件:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_arith.ALL;ENTITYadd9910isPORT(clk:inSTD_LOGIC;Din1,Din2:insigned(8down

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。