新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 采用DSPBuilder的FIR滤波器的方案实现

采用DSPBuilder的FIR滤波器的方案实现

作者:时间:2010-03-09来源:网络收藏

1.引言

本文引用地址:http://www.amcfsurvey.com/article/152043.htm

在信息信号处理过程中,如对信号的过滤、检测、预测等,都要使用,数字是数字信号处理(DSP,DigitalSignalProcessing)中使用最广泛的一种器件。常用的有无限长单位脉冲响应(ⅡR)滤波器和有限长单位脉冲响应()滤波器两种[1],其中,滤波器能提供理想的线性相位响应,在整个频带上获得常数群时延从而得到零失真输出信号,同时它可以十分简单的算法,这两个优点使滤波器成为明智的设计工程师的首选,在VHDL或VerilogHDL等硬件描述语言设计数字滤波器时,由于程序的编写往往不能达到良好优化而使滤波器性能表现一般。而调试好的IPCore需要向Altera公司购买。笔者采用了一种基于的FPGA设计方法,使FIR滤波器设计较为简单易行,并能满足设计要求。

2 FIR滤波器介绍

2.1 FIR滤波器设计的原理

FIR滤波器的数学表达式可用差分方程(1)来表示:

其中:r是FIR的滤波器的抽头数;b(r)是第r级抽头数(单位脉冲响应);x(n-r)是延时r个抽头的输入信号。

设计滤波器的任务就是寻求一个因果,物理上可的系统函数H(z),使其频率响应H(ejw)满足所希望得到的频域指标。

2.2 设计要求

数字滤波器实际上是一个采用有限精度算法的线性非时变离散系统,它的设计步骤为先根据需要确定其性能指标,设计一个系统函数H(z)逼近所需要的技术指标,最后采用有限的精度算法实现。本系统的设计指标为;设计一个16阶的低通滤波器,对模拟信号的采样频率fs为48KHz要求信号的截止频率fc=10.8kHz输入序列位宽为9位(最宽位为符号位)。

3 介绍

DSPbuilder是Altera推出的一个DSP开发工具,它在QuartusⅡFPGA设计环境中集成了Mathworks的Matlab和simulinkDSP开发软件[2]。

以往Matlab工具的使用往往作为DSP算法的建模和基于纯数学的仿真,其数学模型无法为硬件DSP应用系统直接产生实用程序代码,仿真测试的结果也仅仅是基于数学算法结构。而以往FPGA所需的传统的基于硬件描述语言(HDL)的设计由于要考虑FPGA的硬件的δ延时与VHDL的递归算法的衔接,以及补码运算和乘积结果截取等问题,相当繁杂。

对DSP是Builder而言,顶层的开发工具是MatLab/Simulink整个开发流层几乎可以在同一环境中完成,真正实现了自定向下的设计流程,包括DSP系统的建模、系统级仿真、设计模型向VHDL硬件描述语言代码的转换、RTL(逻辑综合RegisterTransferLevel)级功能仿真测试、编译适配和布局布线、时序实时仿真直至对DSP目标器件的编程配置,整个设计流程一气呵成地将系统描述和硬件实现有机地融为一体,充分显示了现代电子设计自动化开发的特点与优势。

4 FIR数字滤波器的设计

4.1 FIR滤波器参数选取

用Matlab提供的滤波器设计的专门工具箱―――FDATool仿真设计滤波器,满足要求的FlR滤波器幅频特性如图1,由于浮点小数FPGA中实现比较困难,且代价太大,因而需要将滤波器的系数和输入数据转化为整数,其中量化后的系数在Matlab主窗口可直接转化,对于输入数据,可乘上一定的增益用Altbus控制位宽转化为整数输入。

flr滤波器幅频特性 www.elecfans.com

4.2 FIR滤波器模型建立

根据FIR滤波器原理,可以利用FPGA来实现FIR滤波电路,DSPBuilder设计流程的第一步是在Matlab/Simulink中进行设计输入,即在Matlab的Simulink环境建立一个MDL模型文件,用图形方式调用AlteraDSPBuilder和其他的Simulink库中的图形模块,构成系统级或算法级设计框图(或称Simulink建模),如图2所示。

fir滤波器模型


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭