学士论文
基于FPGA的FIR数字滤波器设计
摘 要
随着公元的第二十一个世纪的到来,今天我们进入了一个科技日新月异的时代。在现代电子数字系统中,滤波器都以一个不可缺少的身份出现。其中,FIR数字滤波器又以其良好的线性特性被广泛和有针对性的大量使用。众所周知,灵活性和实时性是工程实践中对数字信号处理的基本要求。在以往使用的各种滤波器技术中,不难发现有许许多多的问题。但是,随着现代计算机技术在滤波问题上的飞跃,派生出一个全新的分支——数字滤波器。利用可编程逻辑器件和EDA技术,使用FPGA来实现FIR滤波器,可以同时兼顾实时性和灵活性。基于FPGA的FIR数字滤波器的研究势在必行。
本论文讨论基于FPGA的FIR数字滤波器设计,针对该毕业设计要做的基本工作有如下几点: (一)掌握有限冲击响应FIR(Finite Impulse Response, FIR)的基本结构,研究现有的实现方法。对各种方案和步骤进行比较和论证分析,然后针对目前FIR数字滤波器需要的特点,速度快和硬件规模小,作为指导思想进行设计计算。
(二)基于硬件FPGA的特点,利用Matlab软件以及窗函数法设计滤波器。对整个FPGA元件,计划采用模块化、层次化设计思想,从而对各个部分功能进行更为详细的理解和分工设计。最终FIR数字滤波器的设计语言选择VHDL硬件编程语言。
(三)设计中的软件仿真使用Altera公司的综合性PLD开发软件Quartus II,并且利用Matlab工具进行对比仿真,在仿真的过程中,对比证明,本论文设计的滤波器的技术指标已经全部达标。
关键词:数字滤波器 Matlab 可编程逻辑元件 模块化算法
I
1绪 论
1.1本课题研究意义
在现代通信信号处理领域中,随着各种精密计算和快速计算的发展对信号处理的实时性、快速性的要求越来越高。以往的模拟滤波器无法克服电压漂移、温度漂移和噪声等问题,从而带来了许多误差和不稳定因素。而数字滤波器具有稳定性高、精度高、设计灵活、实现方便等突出优点。
FPGA元器件在高速并行处理和数据传输中有独特优势,FPGA正在前端信号处理中越来越多地代替ASIC和DSP。我们需要的就是这种设计周期短,功能密度高,重组时间短的元器件。
本文在FPGA元器件的基础上,实现现代FIR数字滤波器功能。并且研究多种快速的FIR数字滤波器的理论设计思想和程序设计方法。 1.2国内外研究现状分析
1985年XilinX公司生产出了第一块FPGA元器件,由于它有着集成度高、方便易用、开发和上市周期短的绝对优势,使得FPGA器件在数字设计和电子生产中得到迅速普及和应用,发展潜力十分巨大。现在FPGA已经发展到可以利用硬件乘加器、片内储存器、逻辑单元、流水处理技术等特有的硬件结构,高速完成FFT 、FIR 、复数乘加、卷积、三角函数以及矩阵运算等数字信号处理。这样可以完成信号处理的主要技术,如中频采样、参数估计、自适应滤波、脉冲压缩、自适应波束形成和旁瓣对消等。 1.3研究思路
通过对目前数字滤波器的几种实现方法的简单分析,本文认为基于FPGA的数字滤波器具有许多优点,本文考虑到信息技术的发展对于数字滤波器的要求越来越高,而目前FIR数字滤波器的性能还不完善,于是选择了基于FPGA的数字滤波器作为主要研究内容,通常滤波器在进行数据处理时用到了卷积运算,在设计中的解决这些乘法运算的思路是将它们转换成加减法,这是目前解决乘法运算的主流思想。设计初期在Matlab下对滤波器原理进行证明包括(零极点图、时域和频域分析图等),分析FIR数字滤波器的多种理论设计思想和窗函数选择方法,在设计后期对FIR数字滤波器的小数乘法问题进行单独论证。然后对分析出来的问题进行论证和解决,最后在QUARTUSⅡ中进行仿真验证。 1.4相关概念说明
数字滤波器(Digital filter)是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。可认为是一个离散时间系统按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置FIR(Finite Impulse Response )由线性系统理论可知,在某种适度条件下,输入到线性系统的一个冲击完全可以表征系统。当我们处理有限的离散数据时,线形系统的响应(包括对冲击的响应)也是有限的。若线性系统仅是一个空间滤波器,则通过简单地观察它对冲击的响应,我们就可以完全确定该滤波器。通过这种方式确定的滤波器称为有限冲击响应(FIR)滤波器。
1
选题明确目标奠基资料准备指导设计定位指导理论部分基础程序分析部分滤波器基础研究选择软硬件介绍分析滤波器设计方法研究规划程序设计仿真错误修正及优化总结设计成功图1-1总体设计流程图
2
2 FIR数字滤波器的设计方法 2.1理论部分 2.1.1引言
数字滤波器的功能一般是用来变换时域或者频域中某些要求信号的属性,滤除信号中某一部分频率分量。经过数字滤波器的信号是让其频谱与数字滤波器的频率响应相乘从而得出新的结果。经过一个线性卷积过程,从时域上输入信号与滤波器的单位冲击响应作一个卷积和。下面是卷积定义式:
y[n]?x[n]?f[n]??x[n]f[n?k]??x[n?k]f[k] (1)
kkLTI数字滤波器在一般情况下分为有限脉冲响应(Finite impulse response)和无限脉冲响应(Infinite impulse response),FIR数字滤波器的设计方法和IIR滤波器的设计方法有很大的差别。因为其设计方向是选择有限长度的h(n),使频率响应函数H(e
j?)满足指标。数字滤波器正在用直接的电子计
算机规范和算法进行分析的方式来逐渐代替传统的模拟滤波器的RLC元器件和放大电路。 2.1.2 FIR数字滤波器的基础
首先介绍FIR数字滤波器基本原理,在如下表格中对FIR和IIR数字滤波器进行了全面的比较:
表2-1两种滤波器特点比较分析
设计 方法 阶数 稳定性 结构 FIR数字滤波器 在一般的情况下,FIR数字滤波器没有设计公式。它的设计需要借助计算机程序完成 高 在稳定性方面(稳定),极点全部在原点 非递归系统 低 存在一定的稳定性问题,需要注意 递归系统 存在反馈,由于运算中的特殊运算方法会产生极限环
通常情况下一般数字滤波器的N阶FIR数字滤波器基于输入信号x(n)的表达式为:
IIR数字滤波器 可以利用AF的设计成果,可简单、有效地完成设计 运算误差 一般情况下不存在反馈,运算 的误差比较小 y(n)??h(i)x(n?i) (2)
i?0n?1这个公式给我们了一个非常明了的直接型网络结构,该结构表现出N个乘法器,每次采样y(n)
3
的内容是n次乘法和n-1次加法,然后做乘累加之和。如图2-1所示:
图2-1 FIR滤波器直接型网络结构
从DSP的介绍中,第一类线性相位对h(n)的约束条件:
H(e)??h(n)e?j?n?Hg(?)e?j?? (3)
j?n?0N?1?h(n)(cos?n?jsin?n)?Hn?0N?1g(?)(cos???jsin??) (4)
由公式(3),(4)我们可以推出:
?h(n)cos?nsin????h(n)sin?ncos?? (5)
n?0n?0N?1N?1移相并利用三角公式化简得到:
?h(n)sin[?(n??)]?0 (6)
n?0N?1从数字信号处理学科中知道函数h(n)sin?(n??)关于求和区间的中心(N-1)/2奇对称,于是我们要求?和h(n)满足如下条件:
N?1?????(?)????? 其中对应的有? (7) 2??h(n)?h(N?1?n)??0?n?N?1
图2-2 线性相位FIR滤波器结构
若h(n)呈现对称特性,即此具有线性相位的滤波器是FIR数字滤波器。滤波器的基础网络结构可以相互进行转换。
在前面本文已经讨论过, FPGA的实现中将对各种方法进行比较,找出最优设计方式。从而达
4