基于VHDL语言在FIR滤波器设计毕业设计.doc
《基于VHDL语言在FIR滤波器设计毕业设计.doc》由会员分享,可在线阅读,更多相关《基于VHDL语言在FIR滤波器设计毕业设计.doc(34页珍藏版)》请在三一办公上搜索。
1、目 录1绪 论11.1本课题研究意义11.2国内外研究现状分析11.3研究思路11.4相关概念说明12 FIR数字滤波器的设计方法42.1理论部分42.1.1引言42.1.2 FIR数字滤波器的基础42.1.3数字滤波器的设计原理62.1.4 FIR数字滤波器的理论计算方式与参数转换思想:72.1.5 Matlab直接FDAtool设计方式解析132.1.6 FDAtool设计模板及设计结果图162.2程序分析部分162.2.1FPGA 可编程逻辑元件介绍162.2.2 Quartus及Verilog HDL介绍182.2.3实际滤波器程序设计(11阶FIR数字滤波器)192.2.4.Veri
2、logHDL的实现203 滤波器仿真滤波283.1设置混合信号283.2设置仿真参数313.3 仿真总结334 总结与展望334.1 设计成果总结334.2 设计心得33参考文献35致谢36第一章 绪 论1.1本课题研究意义随着各种精密计算和快速计算的发展,现在的通信对信号处理的实时性、快速性的要求很高。然而,以前的模拟滤波器克服不了电压漂移、温度漂移和噪声等问题,同时,也带来了许多误差和不稳定因素。数字滤波器具有稳定性高、精度高、设计灵活、实现方便等突出优点,因此解决了模拟滤波器无法解决的问题。FPGA元器件在高速并行处理和数据传输中有独特优势,FPGA正在前端信号处理中越来越多地代替ASI
3、C和DSP。我们需要的就是这种设计周期短,功能密度高,重组时间短的元器件。本文在FPGA元器件的基础上,实现现代FIR数字滤波器功能。并且研究多种快速的FIR数字滤波器的理论设计思想和程序设计方法。1.2国内外研究现状分析1985年,XilinX公司生产出了第一块FPGA元器件,由于它有着集成度高、方便易用、开发和上市周期短的绝对优势,使得FPGA器件在数字设计和电子生产中得到迅速普及和应用,发展潜力十分巨大。现在FPGA已经发展到可以利用硬件乘加器、片内储存器、逻辑单元、流水处理技术等特有的硬件结构,高速完成FFT 、FIR 、复数乘加、卷积、三角函数以及矩阵运算等数字信号处理。这样可以完成
4、信号处理的主要技术,如中频采样、参数估计、自适应滤波、脉冲压缩、自适应波束形成和旁瓣对消等。1.3研究思路通过对目前数字滤波器的几种实现方法的简单分析,本文认为基于FPGA的数字滤波器具有许多优点,本文考虑到信息技术的发展对于数字滤波器的要求越来越高,而目前FIR数字滤波器的性能还不完善,于是选择了基于FPGA的数字滤波器作为主要研究内容,通常滤波器在进行数据处理时用到了卷积运算,在设计中的解决这些乘法运算的思路是将它们转换成加减法,这是目前解决乘法运算的主流思想。设计初期在Matlab下对滤波器原理进行证明包括(零极点图、时域和频域分析图等),分析FIR数字滤波器的多种理论设计思想和窗函数选
5、择方法,在设计后期对FIR数字滤波器的小数乘法问题进行单独论证。然后对分析出来的问题进行论证和解决,最后在QUARTUS中进行仿真验证。1.4相关概念说明数字滤波器(Digital filter)是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。可认为是一个离散时间系统按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置FIR(Finite Impulse Response )由线性系统理论可知,在某种适度条件下,输入到线性系统的一个冲击完全可以表征系统。当我们处理有限的离散数据时,线形系统的响应(包
6、括对冲击的响应)也是有限的。若线性系统仅是一个空间滤波器,则通过简单地观察它对冲击的响应,我们就可以完全确定该滤波器。通过这种方式确定的滤波器称为有限冲击响应(FIR)滤波器。图1-1总体设计流程图第二章 FIR数字滤波器的设计方法2.1理论部分2.1.1引言数字滤波器的功能一般是用来变换时域或者频域中某些要求信号的属性,滤除信号中某一部分频率分量。经过数字滤波器的信号是让其频谱与数字滤波器的频率响应相乘从而得出新的结果。经过一个线性卷积过程,从时域上输入信号与滤波器的单位冲击响应作一个卷积和。下面是卷积定义式: (1)LTI数字滤波器在一般情况下分为有限脉冲响应(Finite impulse
7、 response)和无限脉冲响应(Infinite impulse response),FIR数字滤波器的设计方法和IIR滤波器的设计方法有很大的差别。因为其设计方向是选择有限长度的h(n),使频率响应函数H(e)满足指标。数字滤波器正在用直接的电子计算机规范和算法进行分析的方式来逐渐代替传统的模拟滤波器的RLC元器件和放大电路。2.1.2 FIR数字滤波器的基础首先介绍FIR数字滤波器基本原理,在如下表格中对FIR和IIR数字滤波器进行了全面的比较:表2-1两种滤波器特点比较分析FIR数字滤波器IIR数字滤波器设计方法在一般的情况下,FIR数字滤波器没有设计公式。它的设计需要借助计算机程序
8、完成可以利用AF的设计成果,可简单、有效地完成设计阶数高低稳定性在稳定性方面(稳定),极点全部在原点存在一定的稳定性问题,需要注意结构非递归系统递归系统运算误差一般情况下不存在反馈,运算的误差比较小存在反馈,由于运算中的特殊运算方法会产生极限环通常情况下一般数字滤波器的N阶FIR数字滤波器基于输入信号x(n)的表达式为: (2)这个公式给我们了一个非常明了的直接型网络结构,该结构表现出N个乘法器,每次采样y(n)的内容是n次乘法和n-1次加法,然后做乘累加之和。如图2-1所示:图2-1 FIR滤波器直接型网络结构从DSP的介绍中,第一类线性相位对h(n)的约束条件: (3) (4)由公式(3)
9、,(4)我们可以推出: (5)移相并利用三角公式化简得到: (6)从数字信号处理学科中知道函数关于求和区间的中心(N-1)/2奇对称,于是我们要求和h(n)满足如下条件: 其中对应的有 (7)图2-2 线性相位FIR滤波器结构若h(n)呈现对称特性,即此具有线性相位的滤波器是FIR数字滤波器。滤波器的基础网络结构可以相互进行转换。在前面本文已经讨论过, FPGA的实现中将对各种方法进行比较,找出最优设计方式。从而达到减少资源占有和提高系统作业速度的目的,更好的体现实时性的数字滤波器优势。2.1.3数字滤波器的设计原理在数字信号处理技术的研究中,一般是使用的三种设计方法:窗函数法,FDATool
10、直接设计法,程序编译法。本文首先使用窗函数和Matlab软件共同进行设计。随着软件技术的不断发展,Matlab软件能给设计者带来的数字信号处理工作已经非常的完善和多样了,设计者可以利用Matlab软件进行数字滤波器的设计和仿真,而且还可以用这款软件进行设计的优化。数字滤波器的一般设计步骤如下:1.指标的确定做任何工程或者设计,设计者都必须要有一个期望的指标用来限制设计范围。在很多的实际应用中,设计者常常都是使用数字滤波器做选频的工作。因此,指标的形式一半在频域中给出相位响应和幅度。相位响应的指标形式,一半是指系统在通频带中药有线性相位。幅度指标:绝对指标,它给出对幅度响应函数的要求,一般用于F
11、IR滤波器的设计。相对指标,以分贝值的形式给出具体限制。2.逼近目标设计者做高频的时候大概都有一个模式,就是首先得到技术指标,然后利用我们的技术和工具让我们的产品去逼近这个指标。同理我们首先建立以个目标的数字滤波器模型。一般情况下都是采用理想的数字滤波器模型,然后去逼近我们想要的目标数字滤波器参数。3.计算机仿真和性能优化分析在工作中我们发现通过(1)、(2)之后本文会得到以差分、系统函数或者冲击响应这三种方式描述的滤波器。这个时候设计者可以利用计算进行仿真,在系统中分析技术指标和滤波结果是否是希望得到的结果。图2-3各种理想数字滤波器的幅度频率响应2.1.4 FIR数字滤波器的理论计算方式与
12、参数转换思想 在理论上掌握了FIR数字滤波器的基本原理之后,本文需要对设计思想进行一个多方位的论证和尝试。首先设计者设计滤波器要有一个硬性的指标,这个指标可以是直接给出最基本的数据,也有多重表现形式。于是我例举两种特殊的指标形式然后加以解决设计。然后我们分别用2种方式来设计不同指标的滤波器。接下来我首先用程序的方式来实现滤波器:1.逼近法转换与思想使用remez函数设计FIR低通滤波器设计滤波器,使逼近低通滤波特性|。 |=要求通带波纹,阻带衰减,并用最小阶数实现。绘出设计的FIR数字滤波幅频特性曲线,检验设计指标。这个指标我们可以以如下计算方法来得出详细指标:从给出的低通滤波特性|。我们可以
13、看出设计参数f=1/4,5/16,m=1,0;dev的计算根据公式:Rp=-200,于是有Rp=20,所以dev(1),dev(2)可以被表示出来。2.逼近法程序描述与思想有了这几个参数我们现在就可以根据已经设定好的格式来调用函数remezord和remez函数了,于是可得如下程序。clear;close allfc=1/4;fs=5/16; %输入给定指标Rp=3;As=60;Fs=2;f=fc,fs;m=1,0; %计算remezord函数所需参数f,m,devdev=(10(Rp/20)-1)/(10(Rp/20)+1),10(-As/20);N,fo,mo,W=remezord(f,m
14、,dev,Fs); %确定remez函数所需参数hn=remez(N,fo,mo,W); %调用remez函数进行设计hw=fft(hn,512); %求设计出的滤波器频率特性w=0:511 *2/512;plot(w,20*log10(abs(hw);grid; %画对数幅频特性图axis(0,max(w)/2,-90,5); xlabel(w/pi);ylabel(Magnitude(dB)line(0,0.4,-3,-3); %画线检验设计结果line(1/4,1/4,-90,5);line(5/16,5/16,-90,5);程序结束。3.仿真图像与结果用以上的程序我们可以得到在Matl
15、ab中的许多参数和图像,从而进一步分析我们的设计。首先引入程序输出的幅频特性图:(如图2-4)图2-4在Matlab中的程序图2-5程序输出的幅频特性图2-6 Impulse Response图2-7 Magnitude and Phase Responses图2-8 Phase Delay图2-9 Pole,Zero plot结论:从上面程序运行情况分析,观察程序输出的幅频特性图中横线为-3dB,两条竖线分别位于频率/4和5/16。显然,通带指标有富裕,零极点图反应出大部分零极点在圆内,过渡带宽度和阻带最小衰减刚好满足指标要求。4.窗函数选择法与规划思想表2-2窗函数选择指标名称近似过渡带宽
16、最小阻带衰减精确过渡带宽矩形4/M21dB1.8/M巴特利特8/M25dB6.1/M汉宁8/M44dB6.2/M哈明8/M51dB6.6/M布莱克曼12/M74dB11/M取Kaiser窗时用MATLAB中的kaiserord函数来得到长度M在设计指标中没有直接给出窗函数的,可以利用下面这个表格进行筛选,具体方法如下:这个表格给出了近似过渡带宽、精确过渡带宽和最小阻带衰减,我们可以根据自己滤波器的参数来选择我们的窗函数,因为选择不同的窗函数设计出来的滤波器生成的过渡带宽度和阻带最小衰减是不同的。在这里我以一个例子来说明函数的选择方式:用窗函数法设计FIR带通滤波器。指标如下:高端通带截止频率
17、高端阻带截止频率 低端阻带截止频率 低端通带截止频率 通带最大衰减 Rp=1dB阻带最小衰减 Rs=60dB在这样一个例子中,可以看到它明确的给出了Rs=60dB来设置窗函数类型和阶次。表格中给出的blackman窗其滤波器阻带最小衰减是74dB,再利用给出的其他参数计算滤波器阶数。表中显示窗口长度M由过渡带宽度B=0.8-0.65=0.15决定,而Blackman窗设计的滤波器过渡带宽度为12/M,则M=12/0.15=80。又因M=N+1,所以滤波器阶数N=79。 在了解了怎么选择窗函数和计算滤波器阶数之后,本论文将针对实际FIR数字滤波器进行研究。已经给出了设计参数,下面开始利用MATL
18、AB程序来设计这个滤波器。5.窗函数法程序描述与思想程序和对应的解释:%用窗函数法设计FIR带通滤波器clear;close all;wls=0.2*pi;wlp=0.35*pi;whp=0.65*pi;B=wlp-wls; %这里是在计算过渡带宽N=ceil(12/0.15); %计算窗口长度wc=wlp/pi-6/N,whp/pi+6/N; %设置理想带通截止频率hn=fir1(N-1,wc,Blackman(N); %设计滤波器参数6.理论计算方法总结仿真完成之后,掌握如何去利用已有的指标去设计一个滤波器,总的来说就是四项:通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。分析给定
19、参数,计算出滤波器的阶数,频率等等相关指标。把已经有的参数用程序函数表达出来,利用已经有的各种内置函数架设起滤波器。参看Matlab的输出图形和参数是否满足要求。2.1.5 Matlab直接FDAtool设计方式解析FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。FDATool界面总共分两大部分,一部分是
20、Design Filter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。Design Method(设计方法)选项,包括IIR滤波器的Butterworth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、 Chebyshev Type II(切比雪夫II型) 法、Elliptic(椭圆滤波器)法和FIR滤波器
21、的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify Order(指定阶数)和Minimum Order(最小阶数)。在Specify Order中填入所要设计的滤波器的阶数(N阶滤波器,Specify OrderN-1),如果选择Minimum Order则MATLAB根据所选择的滤波器类型自动使用最小阶数。Frenquency Specifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由Filter Type选项和Desi
22、gn Method选项决定,例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。Magnitude Specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fsto
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 语言 FIR 滤波器 设计 毕业设计
链接地址:https://www.31ppt.com/p-4141572.html