1、数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。它涉及到的领域很广,如通信系统,系统控制,生物医学工程,机械振动,遥感遥测,地质勘探,故障检测,电力系统,航空航天,自动化仪器等。数字滤波器的好坏对相关的众多工程技术领域影响很大,一个好的数字滤波器会有效的推动众多的工程技术领域改造和学科发展。所以对数字滤波器的工作原理,硬件结构和实现方法进行研究具有一定的意义。FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编
2、程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(161RAM)
3、来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能, FPGA允许无限次的编程。1.2 FPGA技术的发展及应用FPGA正处于高速发展时期,新型芯片的规模越大,成本也越来越低,低端的FPGA已逐步取代了传统的数字元件,高端的FPGA将会成为今后竞争的主流
4、。自1985年问世以来,FPGA从集成电路与系统家族一个不起眼的小角色逐渐成为电子设计领域的重要器件。它极大地提高了设计灵活性并缩短了产品上市时间,在通信、工业控制、航空领域中广泛应用。FPGA行业集中度很高,几家美国公司掌握着行业的“制空权”。特别是在航空航天及军工等特殊领域,美国等少数国家对先进的技术保持封锁。因此,发展国内FPGA产业不是要不要的问题,而是怎么发展的问题。国内IC企业介入FPGA的时间并不长,多数公司还处于学习阶段。Altera公司和Xilinx公司为代表的FPGA厂商,除了在FPGA产品线上不断推陈出新之外,也在不懈地提高开发软件的设计能力,他们的软件产品在很多方面一点
5、也不逊色于专业的EDA厂商,所以从这个角度来说,FPGA厂商也是EDA公司。这里的代表性产品就是Altera公司的Quartus II开发软件和Xilinx公司的ISE开发软件。Altera的FPGA开发工具已经经历了四代。从最初的基于DOS的A+Plus,发展到Max+Plus,1991年推出基于Windows的开发工具Max+Plus II。Max+Plus II在FPGA设计工具里是一个划时代的产品,它提供了一种与结构无关的图形化设计环境,功能强大,使用方便。设计者无须精通器件内部的复杂结构,而只需要使用自己熟悉的设计输入工具(如原理图或者HDL语言)把自己的设计输入到计算机中,Max+
6、Plus II就会自动把这些设计转换成最终结构所需的格式,用户只要把最后生成的配置数据通过下载电缆下载到芯片中,即完成了所有的工作。Quartus II是Altera公司在2001年推出的第四代开发工具,是一个集成化的多平台设计环境,能够直接满足特定设计需要,在FPGA和CPLD设计各个阶段都提供了工具支持,并为可编程片上系统(SOPC)提供全面的设计环境,是一个系统级的高效的EDA设计工具。而且,随着器件结构和性能的不断提高,器件集成度的不断扩大,Altera始终能够同步推出与之相适应的开发工具,满足了设计者的要求,近年来一直保持着一年一个新版本的更新进度。1.3 FPGA软件设计工具Qua
7、rtus IIAltera公司和Xilinx公司为代表的FPGA厂商,除了在FPGA产品线上不断推陈出新之外,也在不懈地提高开发软件的设计能力,他们的软件产品在很多方面一点都不逊色于专业的EDA厂商,所以从这个角度来说,FPGA厂商也是EDA公司。Max+Plus II在FPGA设计工具里是一个划时代的产品,它提供了一种和结构无关的图形化的设计环境,功能强大,使用方便。设计者无需精通器件内部的复杂结构,而只需要使用自己熟悉的设计输入工具(如原理图或者HDL语言)把自己的设计输入到计算机中,Max+Plus II就会自动把这些设计转换成最终结构所需的格式,用户只要把最后生成的配置数据通过下载电缆
8、下载到芯片中,即完成了所有的工作。Quartus II是Altera公司在2001年推出的第四代开发工具,是一个集成化的多平台设计环境,能够直接满足特定的设计需要,在FPGA和CPLD设计各个阶段都提供了工具支持,并为可编程片上系统(SOPC)提供全面的设计环境,是一个系统级的高效的EDA设计工具。而且,随着器件结构和性能的不断提高,器件集成度的不断扩大,Altera始终能够同步推出与之相适应的开发工具,满足了设计者的要求,近年来一直保持这一年一个新版本的更新进度。Altera公司的Quartus II软件是一种集编辑,编译,综合,布局布线,仿真与器件编程于一体的集成设计环境。Quartus
9、II软件支持基于VHDL与Verilog HDL等硬件描述语言的设计和基于图形的设计,内部嵌有VHDL和Verilong HDL的逻辑综合器,也支持利用第三方的综合工具进行逻辑综合。进行设计仿真时,既可以利用Quartus II软件自己的仿真工具,也可以利用如ModelSim等第三方仿真工具。Quartus II软件除了进行基于FPGA的一般的数字系统开发外。还可以与MATLAB和DSP Builder结合,进行基于FPGA的DSP系统开发;使用内嵌的SOPC Builder设计工具,配合Nios II IDE集成开发环境,进行基于Nios II软核处理器的嵌入式系统开发。 Quartus I
10、I软件的设计流程遵循典型的FPGA设计流程,包括设计输入,综合,布局布线,时序分析,仿真验证,编程配置等设计步骤,以及与布局布线有关的功耗分析,调试,工程更改管理,与时序分析和仿真验证有关的时序逼近。2 FIR数字滤波器的设计方法理论部分2.1 引言数字滤波器的功能一般是用来变换时域或者频域中某些要求信号的属性,滤除信号中某一部分频率分量。经过数字滤波器的信号是让其频谱与数字滤波器的频率响应相乘从而得出新的结果。经过一个线性卷积过程,从时域上输入信号与滤波器的单位冲击响应作一个卷积和。下面是卷积定义式: (1)LTI数字滤波器在一般情况下分为有限脉冲响应(Finite impulse resp
11、onse)和无限脉冲响应(Infinite impulse response),FIR数字滤波器的设计方法和IIR滤波器的设计方法有很大的差别。因为其设计方向是选择有限长度的h(n),使频率响应函数H(e)满足指标。数字滤波器正在用直接的电子计算机规范和算法进行分析的方式来逐渐代替传统的模拟滤波器的RLC元器件和放大电路。2.2 FIR数字滤波器的基础首先介绍FIR数字滤波器基本原理,通常情况下一般数字滤波器的N阶FIR数字滤波器基于输入信号x(n)的表达式为: (2)这个公式给我们了一个非常明了的直接型网络结构,该结构表现出N个乘法器,每次采样y(n)的内容是n次乘法和n-1次加法,然后做乘
12、累加之和。如图2-1所示:图2-1 FIR滤波器直接型网络结构从DSP的介绍中,第一类线性相位对h(n)的约束条件: (3)(4)由公式(3),(4)我们可以推出:(5)移相并利用三角公式化简得到: (6)从数字信号处理学科中知道函数关于求和区间的中心(N-1)/2奇对称,于是我们要求和h(n)满足如下条件: 其中对应的有 (7)图2-2 线性相位FIR滤波器结构若h(n)呈现对称特性,即此具有线性相位的滤波器是FIR数字滤波器。滤波器的基础网络结构可以相互进行转换。在前面本文已经讨论过, FPGA的实现中将对各种方法进行比较,找出最优设计方式。从而达到减少资源占有和提高系统作业速度的目的,更
13、好的体现实时性的数字滤波器优势。2.3 数字滤波器的设计原理在数字信号处理技术的研究中,一般是使用的三种设计方法:窗函数法,FDATool直接设计法,程序编译法。本文首先使用窗函数和Matlab软件共同进行设计。随着软件技术的不断发展,Matlab软件能给设计者带来的数字信号处理工作已经非常的完善和多样了,设计者可以利用Matlab软件进行数字滤波器的设计和仿真,而且还可以用这款软件进行设计的优化。数字滤波器的一般设计步骤如下:1.指标的确定做任何工程或者设计,设计者都必须要有一个期望的指标用来限制设计范围。在很多的实际应用中,设计者常常都是使用数字滤波器做选频的工作。因此,指标的形式一半在频
14、域中给出相位响应和幅度。相位响应的指标形式,一半是指系统在通频带中药有线性相位。幅度指标:绝对指标,它给出对幅度响应函数的要求,一般用于FIR滤波器的设计。相对指标,以分贝值的形式给出具体限制。2.逼近目标设计者做高频的时候大概都有一个模式,就是首先得到技术指标,然后利用我们的技术和工具让我们的产品去逼近这个指标。同理我们首先建立以个目标的数字滤波器模型。一般情况下都是采用理想的数字滤波器模型,然后去逼近我们想要的目标数字滤波器参数。3.计算机仿真和性能优化分析在工作中我们发现通过(1)、(2)之后本文会得到以差分、系统函数或者冲击响应这三种方式描述的滤波器。这个时候设计者可以利用计算进行仿真
15、,在系统中分析技术指标和滤波结果是否是希望得到的结果。图2-3各种理想数字滤波器的幅度频率响应2.4 Matlab直接FDAtool设计方式解析FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。FDATool界面总共分两大部分,一部分是Design Filter,在界面的下半部,用来设置滤波器的设计参数,另
16、一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。Design Method(设计方法)选项,包括IIR滤波器的Butterworth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、 Chebyshev Type II(切比雪夫II型) 法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Wi
17、ndow(窗函数)法。Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify Order(指定阶数)和Minimum Order(最小阶数)。在Specify Order中填入所要设计的滤波器的阶数(N阶滤波器,Specify OrderN-1),如果选择Minimum Order则MATLAB根据所选择的滤波器类型自动使用最小阶数。Frenquency Specifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定,例如Bandpass(带通)滤波器需要定义F
18、stop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。2.5 FDAtool设计模板及设计结果图FIR 8阶低通滤波器总体设计参数图2-5 FIR 8阶低通滤波器总体设计参数滤波器幅频响应图2-5-1 滤波器幅频响应滤波器相频响应图2-5-2 滤波器相频响应滤波器的幅频和相频响应 图2-5-3滤波器的幅频和相频响应冲击响应图2-5-4冲击响
19、应阶跃响应图2-5-5阶跃响应零点响应 图2-5-6阶跃响应滤波器系数Export对话框图2-5-7滤波器系数Export对话框滤波器系数 图2-5-8滤波器系数导出的滤波器系数图2-5-9导出滤波器系数3 FIR数字滤波器的设计方法程序分析部分3.1 Quartus及VHDL介绍Quartus II 属于Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以
20、在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集
21、系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可
22、编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)是美国国防部为其超高速集成电路研究计划提出的硬件描述语言,作为各合同商之间提交复杂电路设计文档的一种标准方案. 作为EDA的重要组成部分,VHDL提供了借助计算机进行数字系统设计的一种很好的手段.VHDL设计硬件描述能力很强,可以用于从门级、电路级直至系统级的描述、仿真、综合和调试。利用VHDL丰富的仿真语句和库函数对大系统,在设计的早期可在远离门级的高层次上进行模
23、拟,以利于设计者确定整个设计的结构和功能的可行性。VHDL强大的行为描述能力和程序结构,是其具有支持对大规模设计进行分解,以及对已有的设计进行再利用的功能。运用VHDL设计系统硬件具有相对独立性,设计时没有嵌入与工艺有关的信息,对硬件的描述与具体的工艺技术和硬件结构无关。当门级或门级以上的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺,这使硬件实现的目标器件有很宽的选择范围,并且修改电路与修改工艺相互之间不会产生不良的影响。VHDL标准、规范,语法较为严格,采用VHDL的设计便于复用和交流,VHDL所具有的类属描述语句和子程序调用等功能,使设计者对完成的设计,不必改变源程序,只需改
24、变类属参数或函数,就可改变设计的规模和结构。3.2 实际滤波器程序设计(8阶FIR数字低通滤波器)要求FPGA实现FIR滤波器,首先进行指标选定和Matlab软件参数仿真,然后执行基于VHDL方法的硬件实现设计要求:(1)采样频率Fs=48KHz(2)截止频率Fc=10.8KHz(4)窗口类型为kaiser窗, =0.5 (5)滤波器长度为8 3.2.1 VHDL的实现使用MATLAB软件Toolbox中的Filter Design,选择低通滤波器,Fs=48KHZ,Fc=10.8KHZ,阶数为8位,线性相位。设计出符合设计指标的线性相位8阶FIR数字低通滤波器的特征参数并转换为8位二进制补码
25、如下:h(0)=h(7)= 00000011;h(1)=h(6)= 00011000;h(2)=h(5)= 00101010;h(3)=h(4)= 00111001FIR数字滤波器的数字硬件系统主要由输入模块、乘累加模块、进制转换模块、锁存模块和输出显示模块组成。各模块执行的功能说明如下:(1)输入模块:输入模块的主要功能主要是完成对输入数据的处理,为后续电路做准备,主要由模拟信号源与A/D转换芯片TLC5510组成。(2)乘累加模块:乘累加模块的主要功能是实现数据的相乘和累加。(3)进制转换模块 由于乘累加模块输出的数据为二进制的数据,为了方便在数码管上观察,此处将二进制数转化为二-十进制的
26、BCD码。(4)锁存模块:锁存模块主要功能是将转化为BCD码的输出结果锁存后输出。(程序见附录) (5)输出显示模块:输出显示模块主要功能是将由锁存模块输出的数据在数码管上显示出来(程序见附录)(6) 输入模块 在输入模块中,主要由试验箱集成芯片ICL8038产生模拟信号,输入到TLC5510进行A/D转换,输出数据即为8位数字信号。采样频率选用48KHZ,使用分频器实现,a为6MHZ的时钟信号,对其进行50分频,b,c为分频以后的输出时钟信号.(程序见附录)(7) 乘累加模块 依据FIR滤波器的直接型结构,假定要求设计的FIR滤波器的阶数为8,即N=8。这时,滤波器的输出序列y(n)为:y(
27、1)=x(1)h(0)=0+0+0+0+0+0+0+x(1)h(0) =0h(7)+0h(6)+0h(5)+0h(4)+0h(3)+0h(2)+0h(1)+x(1)h(0) y(2)=x(1)h(1)+x(2)h(0)=0+0+0+0+0+0+x(1)h(1)+x(2)h(0) =0h(7)+0h(6)+0h(5)+0h(4)+0h(3)+0h(2)+x(1)h(1)+x(2)h(0) y(8)=x(1)h(7)+x(2)h(6)+x(3)h(5)+x(4)h(4)+x(5)h(3)+x(6)h(2)+x(7)h(1)+x(8)h(0) 可知,当n的值不同时(处于时钟的不同节拍),计算y(n)
28、所需的乘法及加法的次数有所不同。为了实现程序在每次循环中(一个时钟周期内)以相同的运算形式,算出一个y(n)值,可把不同n值时输出的y(n)(程序见附录)3.2.2 quartusII中功能仿真在ModelSim-Alter 软件中仿真的波形图如下:图3-2-2 仿真波形图4 总结为期两周的课设即将结束了,回顾这几周的历程,我收获了很多,不仅巩固了以前老师所讲的东西,也学到了许多以前上课没注意到的地方。总的来说有以下几点;首先就是对于有符号数的加减乘方面的运算,以前经常做的都是些无符号数的运算,相比较而言,有符号数还是有点难度的,由于其有符号位,所以在运算时必须考虑进位相关的东西,开始几天,查
29、阅了许多这方面的资料,所以对其原理有了清醒的认识,做起来也容易些了。其次就是对FIR滤波器知识方面的,虽然大三学过数字信号处理,但那时老师只是讲了一些基本知识,由于这部分知识很抽象,难度很大,所以当时也没学好,经过这次课设,我又从新翻阅了以前的课本,细细品味了这方面的知识,然后才开始这次的设计,使我对这样抽象的知识有了更直观的认识,以前只是老师在上面讲,对其为什么这样做并不知道,但通过这次的课设,我弄清了原因,所以真信感谢这次课设,使我巩固了以前的很多知识。最后就是顶层原理图的编辑,在这此设计中根据老师的例题思路采用了层次化、模块化的设计思想,将整个电路设计划分为多个功能模块,利用VHDL语言和原理图输入两种设计技术进行了整个功能模块的设计,最后完成FIR数字滤波器的系统设计,按照这个思路,虽然各个模块已经编辑好,并且都已经生成了元件,但在仿真是还是有许多错误,由于本次设计学要的模块很多,所
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1