基于DSP_Builder的FIR滤波器的设计_第1页
基于DSP_Builder的FIR滤波器的设计_第2页
基于DSP_Builder的FIR滤波器的设计_第3页
基于DSP_Builder的FIR滤波器的设计_第4页
基于DSP_Builder的FIR滤波器的设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一一. .概述概述 DSP Builder是是Altera推出的一个数字信号处理推出的一个数字信号处理(DSP)开开发工具,它在发工具,它在Quartus FPGA设计环境中集成了设计环境中集成了MathWorks的的Matlab和和Simulink DSP开发软件。开发软件。 它是作为它是作为MATLAB的一个的一个Simulink工具箱出现的。工具箱出现的。Simulink是是MATLAB的一个组成部分,用于图像化建模仿的一个组成部分,用于图像化建模仿真。真。DSP Builder作为作为Simulink的一个工具箱,使得用的一个工具箱,使得用FPGA设计设计DSP系统完全可以通过系统完全

2、可以通过Simulink的图像化界面的图像化界面进行,只要简单的进行进行,只要简单的进行DSP Builder工具箱中的模块即可。工具箱中的模块即可。 值得注意的是,值得注意的是,DSP Builder中的中的DSP基本模块是以算基本模块是以算法级的描述出现的,易于用户从系统或者算法级进行理解。法级的描述出现的,易于用户从系统或者算法级进行理解。 DSP Builder的设计包含两套流程:自动流程和手动流程 二. 32阶FIR低通滤波器 三. 8阶IIR低通滤波器2.1.FIR滤波器的原理 对于直接I型的32阶或更高阶的FIR滤波器通常用低阶的滤波器节进行级联而成。这里设计一个8阶的FIR滤波

3、器节,然后通过将其级联来构成32阶的FIR滤波器。 由于浮点小数在FPGA中实现比较困难,需要很多资源。这里采用定点计算,为了省去小数点定标,使用整数运算来实现。2.2 设计8阶FIR滤波器子系统 在Matlab 的Simulink 环境中建立一个MDL模型文件,找到Altera DSP Builder工具箱,用图形化方式调用DSP Builder中的Storage库的Delay模块和Arithmetic库的Product模块以及Parallel Adder Substractor模块,根据滤波器的结构原理设计一个8阶FIR滤波器子系统。如下图(fir8)图2.2 8阶FIR滤波器子系统 为了

4、设计的方便,将上面设计8阶FIR滤波器生成一个子系统,具体方法如下:在fir8模型窗口中,按住鼠标左键,移动鼠标画一个框,选中图中除SignalCompile模块以外的所有模块,接着,在选中的模块上点击鼠标右键,在弹出的右键菜单中选中“Create subsystem,建立子系统。如右图2.3 设计32阶FIR滤波器模型 复制4个8阶滤波器子系统,并将它们如右图连接起来。2.4 滤波器系数的计算 若设计一个截止频率为10.8KHz的低通滤波器(h(0)=0),给定的参数如下: 低通滤波器 采样频率Fs为48KHz,滤波器的Fc为10.8KHz 输入序列位宽为10位(最高位为符号位) 滤波器的系

5、数计算可以使用Matlab的滤波器设计工具FDATool来计算。其设计界面如下图: 由上图可知FDATool计算出来的值是一个有符号的小数,而在DSP Builder下建立的FIR滤波器模型需要一个整数作为滤波器系数,所以必须进行量化和归一化。量化后的系数 导出滤波器系数后,在Matlab主窗口的命令窗口中输入:Num*(210)得到: 二. 32阶FIR低通滤波器 三. 8阶IIR低通滤波器3.1 8阶IIR低通滤波器原理由以上原理可知,IIR直接型为:其他设计部分都与FIR 设计步骤一样,在simulink中的模型为:四、滤波器的硬件实现1.由simulink模型转成VHDL 注意:必须安

6、装DSP Builder的授权文件,这一步才能实现,否则无法进行。2.利用Modelsim完成RTL级仿真3.综合:在Quartus中进行 综合4.适配下载SIMULINK下可控正弦信号发生器设计下可控正弦信号发生器设计 本章以正弦波发生模块的设计为例,它的结构如图1所示。它由 4个部分构成:InCount是一个阶梯信号发生模块,产生递增的地址信号,送往LUT。LUT是一个查找表模块正弦函数值的,通过递增的地址可得到输出正弦波值,输出的8位正弦波数据经Delay延时模块以后被送向乘法Product模块,与SinCtr1相乘。因为 SinCtr1只输入1位,SinCtr1通过Product就完成

7、了控制有无输出正弦波。My_sin就是正弦波发生器模块的输出,它送向D/A就能够得到正弦波信号。图图1 正弦发生器模块正弦发生器模块1 用用DSP BUILDER建立正弦发生器模型建立正弦发生器模型1.1 新建模型 打开Matlab环境。可以看到 Matlab的主窗口界面被分割成三个窗口:命令窗口( Command Window)、工作区(Workspace)、命令历史( Command History)。在命令窗口中,可以键入 Matlab命令,同时获得 Matlab对命令的响应信息、出错警告提示等。然后建立工作库。在建立一个新的设计模型前,先建立一个新的文件夹,作为work工作目录。 新建一个simulink的模型文件(后缀为 mdl),在simulink的库管理器中选择“ File”菜单,在出现的菜单中选择New,在弹出的子菜单中选择新建模型 model。图2右下角显示的就是新模型窗。1.2 放置SignalCompilder点击simulink库管理器左侧的库内树形列表中的 Altera DSP Builder条,使之展开DSP Builder库,这时会出现一长串树形列表,对 DSP builder库的子模块(Block)进行了分组,再次点击其中的 AltLa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论