- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FIR低通滤波器设计报告讲述
FIR低通滤波器设计报告
信息工程 信息与通信工程 2111203024 xxx
设计内容
本设计是基于FPGA的一个FIR低通滤波器设计,要求使用Verilog语言编写滤波器模块,通过编译和综合,并通过Matlab和modelsim联合仿真验证设计结果。
设计原理
FIR滤波器响应(简称FIR)系统的单位脉冲响应为有限长序列,系统函数 在有限z平面上不存在极点,其运算结构中不存在反馈支路,即没有环路。如果的长度为N,则它的系统函数和差分方程一般具有如下形式:
根据差分方程直接画出FIR滤波器的结构,称为直接型结构。如图所示:
图2.1 FIR滤波器直接结构
FIR滤波器的特点:单位脉冲响应序列为有限个;可快速实现;可得到线性相位;滤波器阶数较高。对线性时不变系统保持线性相位的条件是:单位脉冲响应为偶对称或奇对称。即:
为设计线性滤波器,应保证h(n)为对称的。
1)若N为偶数,其线性相位FIR滤波器的对称结构流图:
图2.2 若N为偶数线性相位FIR滤波器的对称结构流图
图中:“ +1 ” 对应偶对称情况,“ -1 ” 对应奇对称情况。当n为奇数时,最后一个支路断开。
2)若N为奇数,其线性相位FIR滤波器的对称结构流图:
图2.3 N为奇数线性相位FIR滤波器的对称结构流图
在本设计中,我们采用线性FIR低通滤波器,所采用的阶数N=8,所以是偶对称的,估采取图2.2的结构,其中“±1“取“+1”。
设计思路
要在FPGA上实现FIR滤波器,首先要确定滤波器的抽头系数。其系数的确定,我们可以通过两种办法来实现:第一种就是通过matlab编写FIR滤波器程序,然后直接导出抽头系数“h(n)”,另外一种办法就是使用matlab自带的FDATOOL简便地设计一个FIR滤波器,然后导出系数。考虑到要更直观地描述FIR滤波器的设计,我采用了第一种方法,用编写matlab代码的方式设计一个FIR低通滤波器。
设计好滤波器后,接着要用matlab产生一个高频率和低频率的信号,通过滤波器的滤波,能把高频的信号滤除,只剩下低频的信号,从而验证滤波器的性能。然后再把产生的输入信号进行采样,保存,量化,以供FPGA的FIR滤波器模块使用。
做好准备工作后,就可以在QUARTUSII里面编写Verilog代码了。由于是硬件描述语言,所以设计的思路很简单,就是通过把输入序列移位,然后首位对称相加再乘以抽头系数,然后把相乘结果再相加最后给输出。其中涉及的难点是FPGA对有符号小数的乘法处理部分。
在QUARTUSII编写好模块之后,就要用到modelsim来对设计进行仿真。对于仿真信号的输入,我们可以添加一个altera的romIP核来存放之前matlab产生的信号采样值,然后通过时钟的驱动一个一个输入到FIR滤波器模块,最后在modelsim中显示滤波器的输出结果。
验证的最后一步,就是要把modelsim输出的仿真结果用matlab进行绘图,和之前matlab程序的输出结果进行比较,从而验证滤波器的设计是否成功。
设计过程
使用matlab设计FIR滤波器
用matlab设计线性FIR滤波器,首先要确定其指标,在本设计里,我们规定滤波器的指标如下:阶数N=8,抽样频率fs=100Hz,截止频率为12.5Hz用窗函数设计FIR滤波器,窗函数选择汉明窗。根据此可以编得matlab代码如下:
可以求得滤波器抽头系数h(n)为:
h =
0.0028 0.0298 0.1259 0.2325 0.2325 0.1259 0.0298 0.0028
由于FPGA不支持浮点数的运算,所以我们采用定点数的格式来量化抽头系数。对于16位的输入数据,我们这里采用Q11的定点小数格式,即11位小数位,4位整数位,1位符号位。将抽头系数乘以2^11可得:
b =
5 60 257 476 476 257 60 5
这样我们就得到了8阶FIR滤波器的量化系数了。
确定好FIR滤波器的系数了,我们还需要用matlab产生仿真用的输入信号,在这里,我们采用了以下两组信号:
X1=0.01*sin(2*pi.*t)+0.01*sin(2*pi*40.*t),f1=0.02π,f2=0.8π(截止频率为0.25π)
X2=0.01*sin(2*pi.*t)+0.01*sin(2*pi*4.*t),f1=0.02π,f2=0.08π(截止频率为0.25π)
然后用这两组结果分别与滤波器系数进行卷积运算,可以得到滤波器后的结果,如下图所示:
图4.1 当输入信号为x1时,滤波器的输入波形以及输出波形示意图
图4.2 当输入信号为x2时,滤波器的输入波形以及输出波形示意图
您可能关注的文档
最近下载
- 5.2 诚实守信(教学设计) 2025-2026学年八年级道德与法治上册 统编版.docx VIP
- S系列-STARFISH-SYK SYM智能型电动执行机构使用说明书(V1.80)(外发).pdf VIP
- 2019年中级标准化工程师专业技术职称完整考试题库500题(含参考答案).pdf VIP
- 银行信贷业务中担保方式调查.ppt VIP
- 马哲演讲矛盾的同一性和斗争性课件.pptx VIP
- 标准化工程师考试题库.docx VIP
- 《矛盾分析法复习》课件.ppt VIP
- 矛盾分析法课件.ppt VIP
- 打造“四有”体育课堂-发展学生核心素养.docx VIP
- 心肺复苏及电除颤课件.ppt VIP
文档评论(0)