基于DSPBuilder的FIR数字滤波器的设计与实现.doc

上传人:精*** 文档编号:842799 上传时间:2023-09-08 格式:DOC 页数:27 大小:1.43MB
下载 相关 举报
基于DSPBuilder的FIR数字滤波器的设计与实现.doc_第1页
第1页 / 共27页
基于DSPBuilder的FIR数字滤波器的设计与实现.doc_第2页
第2页 / 共27页
基于DSPBuilder的FIR数字滤波器的设计与实现.doc_第3页
第3页 / 共27页
基于DSPBuilder的FIR数字滤波器的设计与实现.doc_第4页
第4页 / 共27页
基于DSPBuilder的FIR数字滤波器的设计与实现.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、中 文 摘 要DSP Builder是美国Altera公司推出的一个面向DSP开发的系统级设计工具,它能够在Quartus设计环境中集成Matlab和SimuIinkDSP开发软件。DSPBuilder本质上就是 Matlab的一个Simulink工具箱,它能够让FPGA设计的DSP系统以Simulink的图形化界面进行建模和系统级的仿真。本文使用DSP Builder 实现有限冲激响应滤波器(FIR滤波器)的设计方案, 并以一个 20 阶低通 FIR 数字滤波器的实现为例,设计并完成软件仿真与验证以及硬件的实现。结果表明使用DSP builder来实现FIR滤波器简单易行,设计模型可直接向V

2、HDL硬件描述语言转换,并自动调用Quartus等EDA设计软件,完成综合、网表生成以及器件适配乃至FPGA的配置下载,使得系统描述与硬件实现有机地融合,充分体现了现代电子技术自动化开发的特点与优势。关 键 词: FPGA;有限长脉冲响应滤波器;DSPBuilder;Quartus Based on the DSPBuilder the design and implementation of a digital filterAbstractDSP Builder is the Altera corporation launched a DSP development oriented sys

3、tem level design tool, it can in the Quartusintegration development software Matlab and SimuIinkDSP design environment. DSPBuilder is essentially a Simulink toolbox of Matlab , it can save the FPGA design of DSP system with Simulink graphical interface modeling and system level simulation. In this p

4、aper, using DSP Builder realize finite impulse response filter (FIR) filter design, and with a 20 order low pass FIR digital filter implementation, for example, design and complete the simulation and validation of software and hardware implementation. Results show that using DSP builder to implement

5、 FIR filter is a simple, easy to design model can be directly to the VHDL hardware description language conversion, and automatically calls the Quartusand other EDA design softwares, comprehensive and complete net list generation and the device adapter and the FPGA configuration download, makes the

6、system description and organically mix the hardware implementation, fully embodies the characteristics and advantages of modern automotive electronics technology development.Key words: the FPGA; Finite impulse response filter; DSPBuilder; Quartus 目 录第一章 绪 论11.1研究背景11.2研究现状1第二章数字滤波器基本理论32.1数字滤波器定义32.

7、2数字滤波器与模拟滤波器的比较32.3数字滤波器的分类与比较32.4滤波器的实现方法4第三章FIR滤波器设计原理53.1 FIR滤波器的数学原理53.2 20阶FIR滤波器原理模型7第四章滤波器设计94.1滤波器设计流程94.2使用FDATool工具设计滤波器94.3 滤波系数的量化及取整114.4 DSPbuilder模型的建立134.6 生成VHDL文件174.7 AD/DA的选择19总结22参考文献23致谢24III第一章 绪 论1.1研究背景近30年以来,由于超大规模集成电路的出现,数字信号在理论和应用方面有了惊人的发展,在越来越多的应用领域中迅速代替了传统的模拟信号处理方法并且开辟出

8、许多的新应用领域。数字化、智能化、和网络化是现代信息技术发展的大势所趋,而数字化却是智能化以及网络化的重要基础。实际生活当中会遇到多种多样的信号,例如广播信号、电视信号、雷达信号、通信信号、导航信号、射电天文信号、生物医学信号、控制信号、气象信号、地震勘探信号、机械振动信号、遥感遥测信号等等1。这些信号中大部分是拟信号,模拟信号是自变量连续的函数,自变量是一维、二维以及多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号1。因此,数字信号实际上是用数字序列表示的信号,语音信号经采样和量化后得到的数字信号会是一个一维离

9、散时间序列;而图像信号经采样和量化后得到的数字信号会是一个二维离散空间序列。数字信号处理是数字序列与数值计算的方法对各种加工、信号变换到符合需要的某种形式。例如,数字信号滤波器来限制他的乐队或过滤掉噪音和干扰,或将它们的信号分开从信号谱分析和功率谱分析来理解信号频谱,然后进行信号识别以及信号的变换,使其更适合于传输、存储和应用程序,等等。数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输是至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。数字滤波器的优劣直接决定产品的优劣。1.2研究

10、现状在信号处理过程中,所处理的信号往往混有杂音,从接收到的信号中消除或减弱噪音是信号传输和处理中十分重要的问题。根据有用信号和噪音的不同特性,提取有用信号的过程成为滤波,实现滤波功能的系统称为滤波器。在近代电信设备和各类控制系统中,数字滤波器应用极为广泛,这里只列举部分应用最成功的领域。1、语音处理语音处理是最早的数字滤波器的应用领域,也是最早推动数字信号处理理论领域发展的领域。主要包括五个方面的内容:第一,语音信号分析。即波形特征、统计特征的语音信号和模型的参数等进行分析和计算;第二,语音合成。它是使用特殊的数字硬件或软件运行在一台通用计算机生成的声音;第三,语音识别。用专用的硬件或计算机识

11、别人的讲话,演讲者或识别;第四,语音增强。这是噪音或干扰中提取语音信号的封面。第五,语音编码。主要用于语音和数据压缩,并已经建立了一系列的语音编码国际标准,用于通信和音频处理。近年来,这五个方面都取得了很多的研究成果,在市场,已经有一些相关的软件和硬件产品,例如,阅读机为盲人,哑巴语音合成器、听写、打印机、电话答录机、各种各样的谈话、仪表、玩具以及通信和视频音频压缩编码技术是广泛应用于产品。2、图像处理数字滤波技术成功地应用于图像恢复和增强静止图像和活动图像、数据压缩、噪声和干扰,图像识别和色谱x射线摄影,并成功地应用于雷达、声纳、超声波成像的图像和红外可见信号。3、通信在现代通信技术领域,几

12、乎没有一个分支不需要数字滤波器技术。信源编码、信道编码、多路复用、调制、自适应信和数据压缩道均衡等,广泛应用数字滤波器,特别是在数字通信、网络通信、图像通信和多媒体通信的应用,离开了数字滤波器几乎是不可逾越的。其中,被认为是一种通信技术未来发展方向的软件无线电技术也是基于数字滤波技术。4、电视取代模拟电视是数字电视发展的必然趋势。高清晰度电视的普及指日可待,视频光盘形式的一套完整的技术已形成行业巨大的市场,可视电话、会议电视产品不断升级。音频压缩技术和视频压缩标准化工作的成就,促成了电视产业的蓬勃发展,数字滤波器及其相关的技术是视频压缩和音频压缩技术的重要基础。5、雷达雷达信号占据了一个很宽的

13、频带,数据传输速率也很高,所以压缩数据、减少数据传输速率是雷达信号数字处理的问题。所以数码设备的出现提高了进步的雷达信号处理技术。在现代雷达系统中,数字信号处理部分是必不可少的,因为从信号、过滤、加工到目标参数估计和目标成像都离不开数字滤波器技术。雷达信号数字滤波器是一个非常活跃的研究领域。第二章数字滤波器基本理论2.1数字滤波器定义所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。因此,数字滤波的概念和模拟滤波相同,只是信号的形式和实现滤波方法不同。如果要处理的是模拟信号,可通过A/DC和D/AC,在信号形式上进行匹配转

14、换,同样可以使用数字滤波器对模拟信号进行滤波2。2.2数字滤波器与模拟滤波器的比较数字滤波器与模拟滤波器相比有着很多优点。第一,数字滤波器可以做到很多模拟滤波器难以达到的精度,模拟滤波器所使用的器件精度一般不是很高,参数存在一定的离散性,由于受到了器件精度的影响,所以模拟滤波器一般不能十分精确的实现设计指标,但数字滤波器中的参数却很容易达到较高的精度,使得实现系统的指标自然就比模拟滤波器简单3。第二,数字滤波器的性能不易受到外界环境因素的干扰,其各项性能稳定性很高。而模拟滤波器由于其器件如(电容、电阻)容易受到湿度、温度、电磁干扰等外界环境的影响系统参数的稳定性得不到很好的保证3。第三,数字系

15、统的系数、结构灵活性强可以根据需要随时变化。随着超大规模集成电路高速发展,数字技术和计算机数据处理容量和速度的不断提高,数字滤波器的优势越来越明显,应用范围越来越广泛。目前数字滤波器不仅能实现一维信号处理,而且能够实现二维甚至更高维的信号的处理,在图像的传输、静态图像压缩、动态图像压缩等方面有着巨大的应用价值1 。2.3数字滤波器的分类与比较根据数字滤波器脉冲响应的时域特性,可以分为有限冲激响应滤波器(FIR滤波器)、无限冲激响应滤波器(IIR滤波器)4。FIR、IIR是常用的数字滤波器。特点是随着阶数的增加,滤波器过渡带越来越窄,也即矩形系数越来越小。FIR是线性相位的,无论多少阶,在通带内

16、的信号群时延相等,即无色散,对于PSK这类信号传输尤为重要,IIR通常是非线性的,但是目前也有准线性相位设计方法得到IIR数字滤波器的系数,其结果是使得通带内的相位波动维持在一个工程可接受的范围内。IIR比FIR最大的优点是达到同样的矩形系数所需的阶数少,往往5阶的IIR滤波器就可以比拟数十上百阶的FIR滤波器。但是另一方面,FIR滤波器的系数设计方法很多,最普遍的是加窗,种类繁多的窗函数可以得到各种你所需要的通带特性。有限长单位冲激响应滤波器是数字信号处理系统中最基本的元件之一,它可以在保证任意幅频特性的同时又具有非常严格的线性相频特性,并且其单位抽样响应是有限长的,因此FIR滤波器是稳定的

17、系统。FIR滤波器在图像处理、通信、模式识别等诸多领域都有着广泛的应用。与IIR滤波器相比较,在设计和实现上FIR滤波器具有如下优越性:相位响应可为严格的线性,因此他不存在延迟失真,只有固定的时间延迟。由于不存在稳定性问题,所以设计相对简单。2.4滤波器的实现方法FIR数字滤波器可以分为两种实现方法,软件和硬件的实现。软件实现方法简单,但实时性能差。硬件实现方法是较为困难的,但有良好的实时性能,本文只讨论由硬件实现FIR滤波器。经常用在硬件实现的FIR数字滤波器装置有DSP设备、专用集成电路(ASIC)、FPGA器件等。 DSP 器件,DSP 集成了许多专用函数,设计数字滤波器相对简单方便,其

18、应用也最为广泛,DSP 器件性能也不断提高,但在某些要求实时性、高速处理场合则受到很大限制5。ASIC 器件可靠性高,实时性好,但过长的开发周期使其不适合于科研和小批量生产。 FPGA 器件结合了上面两种器件的优点,具有很好的实时性、可靠性和灵活性,它支持片上编程,可以在不改变电路的情况下通过编程下载的方式改变电路功能,开发周期短,开发软件投入少,这些特点令 FPGA 对于科研和小批量生产成为首选。FPGA以其优越的实时性和设计的灵活性成了控制系统中重要的一部分,在 FPGA 上实现滤波器,使滤波器能适用高速场合5。第三章FIR滤波器设计原理3.1 FIR滤波器的数学原理假设FIR滤波器的单位

19、冲激响应的长度等于N,则滤波器的系统函数为: (3-1)只要滤波器的单位函数响应的波形关于 呈偶对称,即 (3-2)则此滤波器必定满足线性相位条件。如果滤波器的单位函数响应的波形关于奇对称,即 (3-3)相比之下,这种系统的相频特性上多了的相移。所以这种系统并不满足相位不失真条件。但是,这种系统对信号产生的的相移对微分器、正交变换器、希尔伯特变换器等系统都特别有用,所以这种FIR系统在实际应用中也有很大价值。FIR数字滤波器有级联型、直接型、快速卷积型和频率抽样型等四种基本结构。由线性相位 FIR 数字滤波器系数对称的特点可知直接型结构是其最佳选择,式(3-1)的差分方程表达式为: (3-4)

20、直接型结构所对应的滤波器结构就是式1-4,为滤波器的阶数,为滤波器的系数(性能确定的FIR数字滤波器所对应的一组系数也是确定的,因此为常数),为第个单位时间的采样输入,是第n个单位时间上的采样输入所对应的输出。其结构方框图如图1所示, 直接型FIR数字滤波器的滤波运算包括三种运算方式:1.输入采样序列的延时;2.常系数的乘法;3.乘积项求和。滤波器的阶数越高其滤波效果越好但同时其电路越复杂。. . . 图1 直接型FIR数字滤波器FIR数字滤波器设计方法的基础就是要求所设计的滤波器频率响应逼近性能指标要求的频率响应,FIR数字滤波器设计方法之中较常用的设计方法是窗函数设计法。一般用窗函数设计

21、FIR 数字滤波器时,先要给出所求的理想滤波器频率响应,再通过设计来逼近。由于设计是在时域进行的,因此需要通过傅里叶反变换导出即 (3-5)是个无限长的序列,但FIR 数字滤波器,其单位冲激响应是有限长的,所以要用来逼近,可用一个有限长度的窗口函数序列来截断,即 (3-6)即所谓的窗函数,它是有限长序列。 (3-7)按照复卷积公式,在时域相乘,则频域上是周期卷积关系,即 (3-8)因而逼近的好坏完全取决于窗函数的频率特性窗函数的频率特性为: (3-9)常用的窗函数有:三角窗、矩形窗、汉宁(hanning)窗、海明(hamming)窗、布莱克曼(Blackman)窗、凯塞(Kaiser)窗。 表

22、1常用的窗函数窗函数旁瓣峰值/dB主瓣宽度过渡带宽度阻带最小衰减/dB矩形窗-134/N0.9-21三角形窗-258/N2.1-25汉宁窗-318/N3.1-44海明窗-418/N3.3-53布莱克曼窗-5712/N5.5-74凯泽窗-575-803.2 20阶FIR滤波器原理模型对本系统的设计指标为:设计一个20阶的低通FIR 滤波器,截止频率:4kHz;通带最大衰减-1dB;阻带最小衰减-50dB;6.5kHz处衰减为-50dB;一个20阶的低通FIR滤波器其系统函数可以表示为: (3-10)20阶的FIR滤波器系统函数如果用原理框图表示,则如下图:X(0)X(19)X(18)X(1).

23、.寄存器19寄存器20寄存器2寄存器1乘h(0)乘h(17)乘h(18)乘h(19)求和电路 图2 系统原理框图波器原理YaobaoYaobao第四章滤波器设计4.1滤波器设计流程1. 首先使用Matlab中的FDATool计算滤波系数并做基本的分析,MATLAB的名称源自Matrix Laboratory,是一种用来进行科学计算的软件,专门以矩阵的形式处理数据。而Matlab中的FDATool工具是功能强大的滤波器设计工具可以设计多种滤波器并且可以进行分析和性能评估。2. 对上面得到的滤波系数量化取整得到式(2-6)中的。3. 使用在Matlab中建立一个新的MDL模型文件,使用DSPbui

24、lder建立20阶滤波器的模型,将量化取整后的滤波系数填入模型中完成滤波器并进行仿真。DSP Builder是美国Altera公司推出的一个面向DSP开发的系统级设计工具,它能够在Quartus设计环境中集成Matlab和SimuIinkDSP开发软件。DSPBuilder本质上就是 Matlab的一个Simulink工具箱,它能够让FPGA设计的DSP系统以Simulink的图形化界面进行建模和系统级的仿真。设计模型可直接向VHDL硬件描述语言转换,充分体现了现代电子技术自动化开发的特点与优势。4. 在Quartus中完成AD/DA驱动模块,完成顶层文件编译下载到FPGA中完成 FIR滤波器

25、的设计。4.2使用FDATool工具设计滤波器启动Matlab 的 (Filter Design & Analysis Tool)工具,首先点击Matlab左下角的“START”,选择“ToolBox”点击“Filter Design”再点击“Filter Design & Analysis Tool”进入滤波器设计界面图4 FDATool界面选择设计滤波器,进入其页面。由于本系统的设计指标为:设计一个20阶的低通FIR 滤波器,截止频率:4Hz;通带最大衰减-1dB;阻带最小衰减-50dB;7kHz处衰减为-50dB。显然由于本系统设计的是低通滤波器所以Filter Type(滤波器类型)选

26、择Lowpass(低通);由于设计的是FIR滤波器所以选择Design Method(设计方法)为FIR,由于祖带最小衰减为-50dB更具第三章3.1节FIR滤波器的数学原理以及表一种各种窗函数的参数本文使用window(窗口法)并选择窗口类型为Hamming;Fiter Order(滤波器阶数)选择19,而不是20因为FIR滤波器的常系数是从开始的;由于7kHz处衰减为-50dB所以Fs设置为20kHz Fc设置为4kHz,采样频率越低滤波器会越锋利,理论上来说采样频率只要是截止频率的两倍就可以了,但事实上采样频率一般都需要是截止频率的5、6倍才能有比较好的效果;最后点击最下面的按钮“Des

27、ign Fiter”让Matlab计算FIR滤波器的系数并且做必要的分析。点击幅频响应,可以得到按照以上参数设置后所设计FIR低通滤波器的理论幅频响应。 图5 FIR滤波器的幅频响应通带处为-1dB衰减,在4KHz处为-3dB衰减而在5.7KHz处为-50dB衰减。本例的设计要求为20阶的低通FIR 滤波器,截止频率:4kHz;通带最大衰减-1dB;阻带最小衰减-50dB;6.5kHz处衰减为-50dB;相比对达到设计要求。当然如果增加滤波阶书可以使滤波器更加锋利。4.3 滤波系数的量化及取整所设计的滤波器各项性能都符合要求,所以点击导入滤波器,求出滤波系数。图9 FIR滤波器的系数从3.2节

28、的叙述可知一个20阶的低通FIR滤波器其系统函数可以表示为: (4-1)上面所求得的系数就是上式中的,但显然Matlab自动生成的系数都是小数,无法直接使用。其实Matlab给出的系数是假设输入是数值为-1 1的信号,实际应用中要更具输入信号位数乘以2n, 例如如果输入信号是8位的信号则至少要对所有系数乘以27. 为了导出设计好的滤波系数,在FDATool中点击菜单“File”再点击“Export.”,进入如下图的(Export)对话框。图10 Export对话框选择导出Workspace(工作区),这时滤波器系数就存入了一个一维变量Num,在Matlab的主窗口中的中输入Num就可以在命令窗

29、口中对系数进行处理。在本例中输入滤波器的信号是由一个8位AD提供的所以要至少乘以27,有所使用的AD资料可知(本例中AD的性能将在下文中详细介绍)当AD输出为“00000000”代表0AD输出为“11111111”表示的数值为256,而在滤波器输入端口中“11111111”如果是Signed inter 则表示为-128,如果是Unsigned inter则表示-1,所以如果滤波器的输入为8为的话直接和AD的输出相连是绝对得不到所需要的结果的。所以显然滤波器的输入端的位数不能使8位,本例中输入端设置为9位的有符号整形并将最高位的符号位设置为0,简单有效的解决了AD和FIR滤波器输入比配的问题。

30、因此将滤波系数乘以28并取整。Num*(28)ans = Columns 1 through 9 0 -1 0 3 4 -6 -16 0 49 Columns 10 through 18 95 95 49 0 -16 -6 4 3 0 Columns 19 through 20 -1 04.4 DSPbuilder模型的建立 得到这20个系数之后我们就可以在DSPbuilder中搭建滤波器模型了。在Matlab中建立一个新的MDL模型文件,在其主窗口中的命令窗口中输入Simulink打开Simulink的界面,从中选取需要的器件。 图11 在Matlab中建立一个新的MDL模型文件众所周知在D

31、SPbuilder中搭建的模型其实就是用延时器、加法器以及乘法器等Simulink中的器件将20阶FIR低通滤波器的系统函数表示出来,即将式(3-10)表示出来。首先先要搭建一个5阶的滤波器然后打包成一个器件命名SubSystem,即完成如下公式 (4-2)当然这不是硬性的要求但这样做会使得设计界面整洁、清爽,减少可能会发生错误的几率。用延时模块完成,用乘法器将和相乘,最后用五输入加法器完成式(4-2)根据3.2中的FIR滤波器原理框图搭建了如下图所示的子系统。图12 子系统模型更具4.3节所叙述的原因,子系统的输入端设置为9位有符号整型,因为输入信号为9位有符号整型所以,所有的系数都同样设置

32、为9位有符号整型。输出信号out1设置为20位有符号整型。这是因为输入的信号经过多次乘法和加法运算其数值变得很大,如果截取位数较低则会出现明显的失真,一般来说out1的位数应该是输入信号位数的2倍略多一点。多次仿真结果表明out1的位数为20位时仿真效果较好。当然out1的位数越多效果肯定越好,但本例中滤波系统最终是由8位的DA作为输出的,因此out1的位数越多将来最终的信号截取前8位输出时信号就会有越多的损失,从而产生滤波系统输出信号的失真。Delay选择延迟为1,AltBus(input)选择9位输入,AltBus9(output)选择9位输出,AltBus10(output)选择20位输

33、出。 修改SubSystem的Mask参数:选中子系统模型,然后点击菜单“Edit”中的,在对话框中点击“Documentation”选项页,设置“Mask type”为“SubSystem AlteraBlockSet”(子系统Altera模块集),否则系统将只能仿真无法生成Quarter文件。图13 编辑模块的“Mask type”将SubSystem复制4个 ,将它们首尾连接起来,即前一级的输出窗口out2接后一级的xin输入端口,再添加20个常数端口用作FIR滤波器系数的输入。添加一个4输入加法器将所out1相加则滤波器模型就搭建完毕了。即完成了如下公式 (4-3)将所得到的滤波系数对

34、称的填入20个常数端口,自此20阶FIR低通滤波器在DSPbuilder上的模型搭建完毕。 但此时的模型却并不是立刻能用的模型,还需根据系统提供的输入的信号号以及所需要的输出的型号来做必要的处理。预先将AD输入的数值加上一个符号位使其变成9位的有符号整形(Signed inter )输入到滤波器。由于输出是8位的DA基于和AD相同的原因除去最高位的符号位后截取前8位输出,由于系统多次对信号的位数进行截取造成信号能量上的损失,反应在实域上就是幅值得下降所以在最后还要乘以个常数对幅值进行补偿。 图14 FIR滤波器DSPbuilder模型对Chirp Signal进行设置,如下图:图15 Chir

35、p Signal设置窗口Initial frequency(起始频率)设置为0.1,Target time(目标时间)设置为4000,Frequency at target time(目标时间内的频率)设置为1。为了模拟AD输出的信号所以调高信号使其幅值从0-246,调整好Chirp Signal和Scope的参数后点击运行查看其仿真的结果。图14 Scope仿真结果图中每一格代表增加1000Hz,图中的频率从0Hz不断增加到10KHz,调高信号其幅值从0-246,-3dB的衰减在4KHz处,在6.5KHz处达到-50dB衰减。可以看出仿真结果完全达到了设计要求,所以DSPbuilder模型设

36、计成功。上图和下图相比较通带幅值减少了两倍,这一幅值损失无法在DSPbuilder模型中弥补,所以会在DA输出端增加一个放大器来解决。4.6 生成VHDL文件(1)双击SignalCompiler,对以上的设计模型进行分析判断模型是否有错误的地方。(2)分析成功后会弹出如下图所示的窗口,在SignalCompiler窗口,依据所使用的芯片设置好必要的参数,(3)当设置好后,右侧的硬件编译“Hardware Compilation”部分就会列出一个操作流程,如图所示,该流程为:“Convert MDL to VHDL”(将.mdl文件转换为VHDL文件);“Synthesis”(综合);“Qua

37、rtus Fitter”(Quartus编译适配,生成编程文件)。按照上述的流程,点击图标,等待一会就完成了Simulink文件(*.mdl)到VHDL文件的转换。转换完成后,在“Messages”信息提示框中会显示。 图15 SignalCompiler窗口最终在Quartus中所生成的器件如下图所示图16 Quartus中所生成的器件Clock为时钟输入信号,本例中输入20KHz的采样频率。Sclrp为接地端,Input7.0为AD信号的输入端,Output7.0为输出端,本例中输出端的信号将输入到DA中。4.7 AD/DA的选择由于本例中是对模拟的信号滤波最终也要还原成模拟信号所以需要A

38、D将模拟信号转化成数字信号,通过FIR滤波器滤波后再用DA将数字信号转化为模拟信号。由于AD/DA功能模块的制作在本例中并非是研究重点所以选择直接使用市场上成熟的模块。图17 AD/DA模块实物 本例使用的高速 AD 芯片是由 AD 公司推出的 8 位,最大采样率 32MSPS 的AD9280 芯片。内部结构图如下图所示图18 AD结构图根据下图的配置,我们将 AD 电压输入范围设置为:0V2V。在信号进入 AD 芯片之前,我们用一片 AD8056 芯片构建了衰减电路,接口的输入范围是-5V+5V(10Vpp)。衰减以后,输入范围满足 AD 芯片的输入范围(02V)。转换公式如下: 当输入信号

39、 Vin=5(V)的时候,则输入到 AD 的信号 Vad=2(V);当输入信号 Vin=-5(V)的时候,则输入到 AD 的信号 Vad=0(V);本例使用的高速DA芯片是AD公司推出的AD9708。AD9708是8位,125MSPS的 DA 转换芯片,内置 1.2V 参考电压,差分电流输出。芯片内部结构图如下图所示:图19 DA结构图通过上述AD/DA的资料可以知道,上述芯片完全达到了为本例的滤波器提供输入信号以及完整的将本例的滤波器输出的信号还原成模拟信号的要求。甚至可以说大大超出了本例中的要求,但更具上述AD/DA的价格与同类器件以及性能更低的器件对比,上述AD/DA价格最低,性能最好所

40、以选择上述器件。在Quartus 中完成顶层文件,编译成功后下载到FPGA中正确连接好电路此系统彻完成。图20 最终的顶层文件ADinput位AD的输入信号,Clock为FPGA自带的时钟信号源20MHz,经过锁相环分成三股信号,第一股被锁相环二分频后接着又通过一个5分频器两个10分频器最终变为20KHz的时钟信号提供给滤波器。其他两股不变分别位AD和DA提供时钟信号。AD_clk为AD芯片提供时钟信号,OUTPUT7.0为滤波器的输出接入DA芯片。总结 2013年初,我开始了我的毕业设计准备工作,时至今日,毕业十几基本完成。从最初的茫然到对设计思路的逐渐清晰,整个设计过程收货颇丰。几个月的潜

41、心研究,紧张而又充实的毕业设计终于落下了帷幕。回味下这段日子的经历和感受,我感慨万千,这次毕业设计的过程中我拥有了无数难忘的回忆以及在专业上巨大的收获。我的毕业设计课题是:基于DSP Builder数字滤波器的设计与实现。首先使用Matlab中的FDATool计算滤波系数并做基本的分析,然后对上面得到的滤波系数量化取整,再使用Matlab建立一个新的MDL模型文件,使用DSPbuilder建立20阶滤波器的模型,将量化取整后的滤波系数填入模型中完成滤波器并进行仿真生成VHDL语言。最后在Quartus中完成AD/DA驱动模块,完成顶层文件编译下载到FPGA中完成 FIR滤波器的设计。刚开始拿到

42、这个毕业设计题时我觉得这将会是一个很好做的课题,但很快设计过程中一个接着一个的难题彻底纠正了我的想法。其中一些难关以及心得还是值得在文章的最后和大家分享一下。第一个难题就是设计软件的安装,本课题需要用到 Matlab、Quartus和DSPbuilder 这三个软件版本必须匹配否则在Matlab中无法使用DSPBuilder或DSPBuilder中无法将.mdl文件转换为VHDL文件。其次安装顺序必须正确要先安装Matlab再安装Quartus最后安装DSPbuilder否则也会出现上述问题。最后安装这些软件时全部都必须是默认路径。没有一本相关的书籍或文献上有软件安装的指导,摸索出上述经验确实

43、花了不少精力。第二个是AD/DA的选择。我们都知道AD/DA的位数越高越好速度越快越好,但位数越高速度越快的AD/DA价格就越贵。在看了很多文献,以及多次试验后发现AD/DA的位数以及速度是根据滤波器的阶数和截止频率的要求来决定的。AD/DA的速度很好选择,就是AD/DA的最大采样频率要大于截止频率的两倍。而AD/DA尤其是DA的位数选择则要取决于滤波器的阶数,经过多次试验发现24阶一下的FIR滤波器8位的AD/DA就可以很好的满足,三十几阶的FIR滤波器则需要10位AD/DA才能有比较理想的效果,更高阶数的滤波器则需要更高位的滤波器。第三个是AD输出端口和滤波器输入端口的匹配问题,AD输出为

44、“11111111”时表示的数值为256,而在滤波器输入端口中“11111111”如果是Signed inter 则表示为-128,如果是Unsigned inter则表示-1,所以如果滤波器的输入为8为的话直接和AD的输出相连是绝对得不到所需要的结果的。解决方案就是如上文所说的那样将滤波器的输入端的位数改为9位Signed inter,最高位设置为0。解决了这些难题后我感觉我对FIR滤波器的理解前进了一大步。 此次的经历会使我终身受益,我感受到要是真真正正用心去做一件事情,是真正的自己学习和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在今后的学习生活中激励我继续进步。参考文献1岑光.基于FPGA的FIR数字滤波器研究与设计C,西安电子科技大学,2011.2郑君里.信号于系统(第三版)M,高等教育出版社,2006.3管致中.信号于线性系统(第4版)M高等教育出版社20044罗韩君,刘明伟,王成.基于DSP Builder的FIR滤波器设计与实现.微计算机信息(嵌入式与 SOC)2009(25) :29-30.5屈星,唐宁,舒等.

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922