毕业设计_基于FPGA的FIR数字滤波器设计-1要点.pdf
《毕业设计_基于FPGA的FIR数字滤波器设计-1要点.pdf》由会员分享,可在线阅读,更多相关《毕业设计_基于FPGA的FIR数字滤波器设计-1要点.pdf(33页珍藏版)》请在三一文库上搜索。
1、I 学士论文 基于 FPGA 的 FIR 数字滤波器设计 摘要 随着公元的第二十一个世纪的到来,今天我们进入了一个科技日新月异的时代。在现代电子数 字系统中,滤波器都以一个不可缺少的身份出现。其中,FIR 数字滤波器又以其良好的线性特性被 广泛和有针对性的大量使用。众所周知,灵活性和实时性是工程实践中对数字信号处理的基本要求。 在以往使用的各种滤波器技术中,不难发现有许许多多的问题。但是,随着现代计算机技术在滤波 问题上的飞跃,派生出一个全新的分支 数字滤波器。利用可编程逻辑器件和EDA 技术,使用 FPGA 来实现 FIR 滤波器, 可以同时兼顾实时性和灵活性。基于 FPGA 的 FIR 数
2、字滤波器的研究势 在必行。 本论文讨论基于FPGA 的 FIR 数字滤波器设计,针对该毕业设计要做的基本工作有如下几点: (一)掌握有限冲击响应FIR(Finite Impulse Response, FIR)的基本结构, 研究现有的实现方法。 对各种方案和步骤进行比较和论证分析,然后针对目前FIR 数字滤波器需要的特点,速度快和硬件 规模小,作为指导思想进行设计计算。 (二)基于硬件FPGA 的特点,利用Matlab 软件以及窗函数法设计滤波器。对整个FPGA 元件, 计划采用模块化、层次化设计思想,从而对各个部分功能进行更为详细的理解和分工设计。最终 FIR 数字滤波器的设计语言选择VHD
3、L 硬件编程语言。 (三)设计中的软件仿真使用Altera 公司的综合性PLD 开发软件Quartus II ,并且利用Matlab 工 具进行对比仿真,在仿真的过程中,对比证明,本论文设计的滤波器的技术指标已经全部达标。 关键词: 数字滤波器Matlab 可编程逻辑元件模块化算法 1 1 绪 论 1.1 本课题研究意义 在现代通信信号处理领域中,随着各种精密计算和快速计算的发展对信号处理的实时性、快速 性的要求越来越高。以往的模拟滤波器无法克服电压漂移、温度漂移和噪声等问题,从而带来了许 多误差和不稳定因素。而数字滤波器具有稳定性高、精度高、设计灵活、实现方便等突出优点。 FPGA 元器件在
4、高速并行处理和数据传输中有独特优势,FPGA 正在前端信号处理中越来越多 地代替 ASIC 和 DSP。我们需要的就是这种设计周期短,功能密度高,重组时间短的元器件。 本文在 FPGA 元器件的基础上,实现现代FIR 数字滤波器功能。并且研究多种快速的FIR 数 字滤波器的理论设计思想和程序设计方法。 1.2 国内外研究现状分析 1985 年 XilinX公司生产出了第一块FPGA 元器件,由于它有着集成度高、方便易用、开发和 上市周期短的绝对优势,使得 FPGA 器件在数字设计和电子生产中得到迅速普及和应用,发展潜力 十分巨大。现在FPGA 已经发展到可以利用硬件乘加器、片内储存器、逻辑单元
5、、流水处理技术等 特有的硬件结构,高速完成FFT 、FIR 、复数乘加、卷积、三角函数以及矩阵运算等数字信号处 理。这样可以完成信号处理的主要技术,如中频采样、参数估计、自适应滤波、脉冲压缩、自适应 波束形成和旁瓣对消等。 1.3 研究思路 通过对目前数字滤波器的几种实现方法的简单分析,本文认为基于FPGA 的数字滤波器具有许 多优点, 本文考虑到信息技术的发展对于数字滤波器的要求越来越高,而目前 FIR 数字滤波器的性 能还不完善, 于是选择了基于FPGA 的数字滤波器作为主要研究内容,通常滤波器在进行数据处理 时用到了卷积运算,在设计中的解决这些乘法运算的思路是将它们转换成加减法,这是目前
6、解决乘 法运算的主流思想。设计初期在Matlab 下对滤波器原理进行证明包括(零极点图、时域和频域分 析图等),分析 FIR 数字滤波器的多种理论设计思想和窗函数选择方法,在设计后期对FIR 数字滤 波器的小数乘法问题进行单独论证。然后对分析出来的问题进行论证和解决,最后在 QUARTUS 中进行仿真验证。 1.4 相关概念说明 数字滤波器( Digital filter) 是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对 输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。可认为是一个离散时间系统 按预定的算法, 将输入离散时间信号转换为所要求的输出离散时间信号的特定功能
7、装置FIR(Finite Impulse Response )由线性系统理论可知,在某种适度条件下,输入到线性系统的一个冲击完全可 以表征系统。当我们处理有限的离散数据时,线形系统的响应(包括对冲击的响应)也是有限的。 若线性系统仅是一个空间滤波器,则通过简单地观察它对冲击的响应,我们就可以完全确定该滤波 器。通过这种方式确定的滤波器称为有限冲击响应(FIR)滤波器。 2 图 1-1 总体设计流程图 设计定位 理论部分程序分析部分 选题资料准备 滤波器基础研究 滤波器设计方法研 究 软硬件介绍分析 程序设计 明确目标奠基 指导指导 基础 选择 规划 仿真 错误修正及优化总 结 设计成功 3 2
8、 FIR 数字滤波器的设计方法 2.1 理论部分 2.1.1 引言 数字滤波器的功能一般是用来变换时域或者频域中某些要求信号的属性,滤除信号中某一部 分频率分量。经过数字滤波器的信号是让其频谱与数字滤波器的频率响应相乘从而得出新的结果。 经过一个线性卷积过程,从时域上输入信号与滤波器的单位冲击响应作一个卷积和。下面是卷积定 义式: kk kfknxknfnxnfnxny(1) LTI 数字滤波器在一般情况下分为有限脉冲响应(Finite impulse response )和无限脉冲响应(Infinite impulse response),FIR 数字滤波器的设计方法和IIR 滤波器的设计方
9、法有很大的差别。因为其设计 方向是选择有限长度的h(n),使频率响应函数H(e j )满足指标。数字滤波器正在用直接的电子计 算机规范和算法进行分析的方式来逐渐代替传统的模拟滤波器的RLC 元器件和放大电路。 2.1.2 FIR 数字滤波器的基础 首先介绍 FIR 数字滤波器基本原理,在如下表格中对FIR 和 IIR 数字滤波器进行了全面的比较: 表 2-1 两种滤波器特点比较分析 FIR 数字滤波器IIR 数字滤波器 设计 方法 在一般的情况下,FIR 数字滤 波器没有设计公式。它的设计 需要借助计算机程序完成 可以利用AF 的设计成果,可简 单、有效地完成设计 阶数 高低 稳定性在稳定性方
10、面(稳定) ,极点 全部在原点 存在一定的稳定性问题,需要注 意 结构非递归系统递归系统 运算误差一般情况下不存在反馈,运算 的误差比较小 存在反馈,由于运算中的特殊运 算方法会产生极限环 通常情况下一般数字滤波器的N 阶 FIR 数字滤波器基于输入信号x(n)的表达式为: 1 0 )()()( n i inxihny (2) 这个公式给我们了一个非常明了的直接型网络结构,该结构表现出N 个乘法器, 每次采样y(n) 4 的内容是 n 次乘法和n-1 次加法,然后做乘累加之和。如图2-1 所示: 图 2-1 FIR 滤波器直接型网络结构 从 DSP 的介绍中,第一类线性相位对h(n)的约束条件
11、: j g nj N n j eHenheH)()()( 1 0 (3) )sin)(cos()sin)(cos( 1 0 jHnjnnh N n g (4) 由公式( 3) , (4)我们可以推出: 1 0 1 0 cossin)(sincos)( N n N n nnhnnh(5) 移相并利用三角公式化简得到: 1 0 0)(sin)( N n nnh(6) 从数字信号处理学科中知道函数)(sin)(nnh关于求和区间的中心(N-1)/2 奇对称, 于 是我们要求和 h(n)满足如下条件: )1()( )( nNhnh 其中对应的有 10 2 1 Nn N (7) 图 2-2 线性相位FI
12、R 滤波器结构 若 h(n)呈现对称特性, 即此具有线性相位的滤波器是FIR 数字滤波器。 滤波器的基础网络结构 可以相互进行转换。 在前面本文已经讨论过,FPGA的实现中将对各种方法进行比较,找出最优设计方式。从而达 5 到减少资源占有和提高系统作业速度的目的,更好的体现实时性的数字滤波器优势。 2.1.3 数字滤波器的设计原理 在数字信号处理技术的研究中,一般是使用的三种设计方法:窗函数法,FDATool直接设计 法,程序编译法。本文首先使用窗函数和Matlab 软件共同进行设计。 随着软件技术的不断发展,Matlab 软件能给设计者带来的数字信号处理工作已经非常的完善 和多样了,设计者可
13、以利用Matlab 软件进行数字滤波器的设计和仿真,而且还可以用这款软件进 行设计的优化。数字滤波器的一般设计步骤如下: 1.指标的确定 做任何工程或者设计,设计者都必须要有一个期望的指标用来限制设计范围。在很多的实际应 用中, 设计者常常都是使用数字滤波器做选频的工作。因此,指标的形式一半在频域中给出相位响 应和幅度。相位响应的指标形式,一半是指系统在通频带中药有线性相位。幅度指标:绝对指标, 它给出对幅度响应函数的要求,一般用于FIR 滤波器的设计。 相对指标, 以分贝值的形式给出具体 限制。 2.逼近目标 设计者做高频的时候大概都有一个模式,就是首先得到技术指标,然后利用我们的技术和工
14、具让我们的产品去逼近这个指标。同理我们首先建立以个目标的数字滤波器模型。一般情况下都是 采用理想的数字滤波器模型,然后去逼近我们想要的目标数字滤波器参数。 3.计算机仿真和性能优化分析 在工作中我们发现通过(1) 、 (2)之后本文会得到以差分、系统函数或者冲击响应这三种方 式描述的滤波器。这个时候设计者可以利用计算进行仿真,在系统中分析技术指标和滤波结果是否 是希望得到的结果。 6 图 2-3 各种理想数字滤波器的幅度频率响应 2.1.4 FIR 数字滤波器的理论计算方式与参数转换思想 在理论上掌握了FIR 数字滤波器的基本原理之后,本文需要对设计思想进行一个多方位的论证 和尝试。首先设计者
15、设计滤波器要有一个硬性的指标,这个指标可以是直接给出最基本的数据,也 有多重表现形式。于是我例举两种特殊的指标形式然后加以解决设计。然后我们分别用2 种方式来 设计不同指标的滤波器。接下来我首先用程序的方式来实现滤波器: 1. 逼近法转换与思想 使用 remez 函数设计FIR 低通滤波器 设计滤波器,使逼近低通滤波特性|)(e H j d |。 |)(e H j d |= 0 1 16/5 4/0 要求通带波纹dB p 3,阻带衰减dB s 60 ,并用最小阶数实现。 绘出设计的FIR 数字滤波幅频特性曲线,检验设计指标。 这个指标我们可以以如下计算方法来得出详细指标: 从给出的低通滤波特性
16、|)(e H j d |。我们可以看出设计参数f=1/4 , 5/16,m=1 ,0; dev 的计算根据公式:Rp=-20log 10 21 1/10 于是有 Rp=20)1(1/)1(1 log 10 devdev,)2(log(20dev As 所以 dev(1),dev(2)可以被表示出来。 2. 逼近法程序描述与思想 有了这几个参数我们现在就可以根据已经设定好的格式来调用函数remezord 和 remez 函数了, 于是可得如下程序。 clear;close all fc=1/4;fs=5/16; %输入给定指标 Rp=3;As=60;Fs=2; f=fc ,fs;m=1 ,0;
17、%计算 remezord 函数所需参数f,m,dev dev=(10(Rp/20)-1)/(10(Rp/20)+1),10(-As/20); N ,fo,mo, W=remezord(f ,m,dev,Fs); %确定 remez 函数所需参数 hn=remez(N,fo, mo,W); %调用 remez 函数进行设计 hw=fft(hn ,512); %求设计出的滤波器频率特性 w=0:511 *2/512; 7 plot(w, 20*log10(abs(hw);grid; %画对数幅频特性图 axis(0,max(w)/2 ,-90,5); xlabel(w/pi);ylabel(Mag
18、nitude(dB) line(0 ,0.4,-3,-3); %画线检验设计结果 line(1/4 , 1/4, -90, 5);line(5/16 ,5/16, -90, 5); 程序结束。 3. 仿真图像与结果 用以上的程序我们可以得到在Matlab 中的许多参数和图像,从而进一步分析我们的设计。首 先引入程序输出的幅频特性图:(如图 2-4) 图 2-4 在 Matlab 中的程序 8 图 2-5 程序输出的幅频特性 图 2-6 Impulse Response 9 图 2-7 Magnitude and Phase Responses 图 2-8 Phase Delay 10 图 2-
19、9 Pole,Zero plot 结论: 从上面程序运行情况分析,观察程序输出的幅频特性图中横线为-3dB,两条竖线分别位 于频率 /4和 5/16 。显然,通带指标有富裕,零极点图反应出大部分零极点在圆内,过渡带宽度 和阻带最小衰减刚好满足指标要求。 4. 窗函数选择法与规划思想 表 2-2 窗函数选择指标 名称近似过渡带宽最小阻带衰减精确过渡带宽 矩形4/M21dB 1.8 /M 巴特利特8/M25dB 6.1 /M 汉宁8/M44dB 6.2 /M 哈明8/M51dB 6.6 /M 布莱克曼12/M74dB 11/M 取 Kaiser 窗时用 MATLAB中的 kaiserord 函数来
20、得到长度M 在设计指标中没有直接给出窗函数的,可以利用下面这个表格进行筛选,具体方法如下: 11 这个表格给出了近似过渡带宽、精确过渡带宽和最小阻带衰减,我们可以根据自己滤波器的参 数来选择我们的窗函数,因为选择不同的窗函数设计出来的滤波器生成的过渡带宽度和阻带最小衰 减是不同的。在这里我以一个例子来说明函数的选择方式: 用窗函数法设计FIR 带通滤波器。指标如下: 高端通带截止频率2 .0ls 高端阻带截止频率35.0lp 低端阻带截止频率65.0up 低端通带截止频率8.0us 通带最大衰减Rp=1dB 阻带最小衰减Rs=60dB 在这样一个例子中,可以看到它明确的给出了Rs=60dB 来
21、设置窗函数类型和阶次。表格中给 出的 blackman 窗其滤波器阻带最小衰减是74dB,再利用给出的其他参数计算滤波器阶数。表中显 示窗口长度M 由过渡带宽度B=0.8 -0.65=0.15决定, 而 Blackman 窗设计的滤波器过渡带宽度为 12 /M ,则 M=12/0.15=80 。又因 M=N+1 ,所以滤波器阶数N=79。 在了解了怎么选择窗函数和计算滤波器阶数之后,本论文将针对实际FIR 数字滤波器进行研 究。已经给出了设计参数,下面开始利用MATLAB程序来设计这个滤波器。 5. 窗函数法程序描述与思想 程序和对应的解释: %用窗函数法设计FIR 带通滤波器 clear;c
22、lose 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)。 分析给定参数,计算出滤波器的阶数,频率等等相关指标。 把已经有的参数用程序函数表达出来,利用已经
23、有的各种内置函数架设起滤波器。 参看 Matlab 的输出图形和参数是否满足要求。 12 2.1.5 Matlab 直接 FDAtool 设计方式解析 FDATool(Filter Design const real64_T B39 = -0.0008969942906957,0.001248746631882,0.007070735236406,0.009180571739749, -8.354434235897e-018,-0.01457672567709,-0.01798701306701,-0.005189936475222, 0.006300913248271,-5.13677321
24、3647e-018,-0.009200436084654,0.01113207796169 , 0.05739543087552, 0.07065284310647, -2.116878167777e-017, -0.1149210109554, -0.1575671556317, -0.05691148173912, 0.1151784185022, 0.2, 0.1151784185022, -0.05691148173912, -0.1575671556317, -0.1149210109554, -2.116878167777e-017, 0.07065284310647, 0.057
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 FPGA FIR 数字滤波器 设计 要点
链接地址:https://www.31doc.com/p-5209527.html