基于matlab和fpga联合仿真的fir低通滤波器设计报告.docx

基于matlab和fpga联合仿真的fir低通滤波器设计报告.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998 基于matlab和FPGA联合仿真的FIR低通滤波器设计报告 FIR低通滤波器设计报告 设计内容 本设计是基于FPGA的一个FIR低通滤波器设计,给定一段有高频干扰的信号,要求使用matlab设计出一个低通滤波器滤除其干扰频率,并取出10000到10160点进行时频分析。然后使用verilog语言编写出滤波器,联合modelsim进行编译仿真,并将结果与matlab结果进行对比。 设计原理 FIR滤波器响应(简称FIR)系统的单位脉冲响应为有限长序列,系统函数 在有限z平面上不存在极点,其运算结构中不存在反馈支路,即没有环路。如果的长度为N,则它的系统函数和差分方程一般具有如下形式: 根据差分方程直接画出FIR滤波器的结构,称为直接型结构。如图所示: 图 FIR滤波器直接结构 FIR滤波器的特点:单位脉冲响应序列为有限个;可快速实现;可得到线性相位;滤波器阶数较高。对线性时不变系统保持线性相位的条件是:单位脉冲响应为偶对称或奇对称。即: 为设计线性滤波器,应保证h(n)为对称的。 1)若N为偶数,其线性相位FIR滤波器的对称结构流图: 图 若N为偶数线性相位FIR滤波器的对称结构流图 图中:“ +1 ” 对应偶对称情况,“ -1 ” 对应奇对称情况。当n为奇数时,最后一个支路断开。 2)若N为奇数,其线性相位FIR滤波器的对称结构流图: 图 N为奇数线性相位FIR滤波器的对称结构流图 在本设计中,我们采用线性FIR低通滤波器,所采用的阶数N=8,所以是偶对称的,估采取图的结构,其中“±1“取“+1”。 设计思路 首先要用matlab对给定的信号进行时频分析来确定干扰信号的中心频率,然后再设计出相应的数字滤波器进行滤波,最后要在FPGA上实现FIR滤波器。首先要确定滤波器的抽头系数。其系数的确定,我们可以通过两种办法来实现:第一种就是通过matlab编写FIR滤波器程序,然后直接导出抽头系数“h(n)”,另外一种办法就是使用matlab自带的FDATOOL简便地设计一个FIR滤波器,然后导出系数。考虑到要更直观地描述FIR滤波器的设计,我采用了第二种方法,用fdatool设计滤波器并导出参数。 设计好滤波器后,接着要用matlab对给定的信号进行采样,保存,量化,导出以供FPGA的FIR滤波器模块使用。 做好准备工作后,就可以在QUARTUSII里面编写Verilog代码了。由于是硬件描述语言,所以设计的思路很简单,就是通过把输入序列移位,然后首位对称相加再乘以抽头系数,然后把相乘结果再相加最后给输出。其中涉及的难点是FPGA对有符号小数的乘法处理部分。 在QUARTUSII编写好模块之后,就要用到modelsim来对设计进行仿真。对于仿真信号的输入,我们直接使用系统函数$readmemh()来读取matlab产生的信号采样值,然后通过时钟的驱动一个一个输入到FIR滤波器模块,最后在modelsim中显示滤波器的输出结果。 验证的最后一步,就是要把modelsim输出的仿真结果用matlab进行绘图,和之前matlab程序的输出结果进行比较,从而验证滤波器的设计是否成功。 设计过程 对信号进行时频分析 语音信号是非平稳的随机过程,频率会随着时间而变化。在语音信号处理研究领域,通常用短时间的傅里叶变换(STFT)来分析其时域和频率特性,也就是在20ms~50ms以内,可以将语音信号看成是平稳的随机过程。平稳的随机过程是功率信号,可以用功率谱来描述。所加的噪声干扰是单音干扰,单音干扰是周期信号。这里提取了20ms的语音信号来分析其时域和频域特性,由于采样频率是8000Hz,因此我们利用了160个采样点,起始点在第10001点,结束点在第10160点。 图 滤波前的时域图 图 滤波前的频谱图 通过上图可以看出信号在3800HZ左右的地方受到严重的干扰。 使用matlab设计FIR滤波器 用matlab设计线性FIR滤波器,首先要确定其指标,在本设计里,我们规定滤波器的指标如下:阶数N=34,抽样频率fs=8000Hz,截止频率为3300用窗函数设计FIR滤波器,窗函数选择汉明窗。其幅频响应如下: 图 滤波器幅频响应 可以导出滤波器抽头系数h(n)为: h

文档评论(0)

137****3789 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档