毕业设计178基于FPGA的FIR滤波器设计
- 格式:doc
- 大小:1.20 MB
- 文档页数:26
1、F PGA技术简介现场可编程门阵列FPGA是80年代末开始使用的大规模可编程数字IC器件,它充分利用EDA技术进行器件的开发与应用。
用户借助于计算机不仅能自行设计自己的专用集成电路芯片,还可在计算机上进行功能仿真和时序仿真,及时发现问题,调整电路,改进设计方案。
这样,设计者不必动手搭接电路、调试验证,只需短时间内在计算机上操作即可设计出与实际系统相差无几的理想电路。
而且,FPGA器件采用标准化结构,体积小、集成度高、功耗低、速度快,可无限次反复编程,因此成为科研产品开发及其小型化的首选器件,其应用极为广泛。
3.1 FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。
FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
3.2 FIR滤波器特点1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
第3章 基于FPGA 设计FIR 滤波器在前面几章讨论了基于FPGA 设计FIR 滤波器的相关原理及其相关的基础知识。
在本章中将针对前面提到的原理和方法进行进一步的应用和组合。
3.1 指标的确定在本文的设计中,所确定的指标如下:(1) 带宽100MHZ ,最小阻带衰减-35db ,带内波动小于2db 。
(2) 综合仿真。
(3) 设计出满足上述性能指标并且所需资源最少的FIR 滤波器。
(4) 阶数:22。
3.2 设计思路将输入信号的每一位通过四个延时器后,以每位信号的4个引出点作为选择控制端,选择出己经算好的系数,每一位信号选取存储器中的不同位上的数值,达到乘法移位的功能,并送到累加器。
累加器将8位信号选择出的8个数据累加后输出,得到滤波结果。
为了充分利用FPGA 中四输入查找表的电路结构,采用每8节为滤波器的一个基本单元.对于64节滤波器的设计,采用8个基本滤波单元。
3.2.1 FIR 滤波器的基本算法(1) 加法器的设计加法器是数字系统中最常用的运算电路,其他运算电路如减法器、乘法器和除法器等都可以利用加法器来实现,在本设计的中也大量的使用到了加法器。
一个基本N 位二进制加法器/减法器由N 个加法器组成。
每个加法器都执行如下的布尔方程[19]:k x =k s XOR k y y XOR k k k k c y x c ⊕⊕= (3.1)进位位按如下方法计算:1+k c =(k x AND k y ) OR (k x AND k c ) OR (k y AND k c )=(k x k y )+(k x k c )+(k y k c ) (3.2) 最简单的加法器结构称为并行加法,如图 3.4所示,是位串行格式的。
图3.4并行加法器在quartusII中提供宏模块lpm_add_sub来构造加法器和减法器。
表3.1列出了lpm add_sum 的基本逻辑参数[19]。
(2)乘法器的设计乘法器是构成DSP系统的基本部件,也是FIR数字滤波器的基本运算。
目录引言................................... 错误!未定义书签。
第一章 FPGA的设计流程 ................... 错误!未定义书签。
1.1 FPGA概述 ................................... 错误!未定义书签。
1.2 FPGA设计流程................................. 错误!未定义书签。
1.3硬件描述语言HDL(Hardware Description Language) 错误!未定义书签。
1.4 FPGA开发工具Quartus Ⅱ软件设计流程 ......... 错误!未定义书签。
第二章有限冲激响应(FIR)滤波器的原理及设计.... 错误!未定义书签。
2.1数字信号处理基础原理.......................... 错误!未定义书签。
2.2 FIR滤波器背影知识........................... 错误!未定义书签。
2.3 FIR数字滤波器原理............................ 错误!未定义书签。
2.4 利用窗函数法设计FIR滤波器................... 错误!未定义书签。
第三章 FIR 数字滤波器的FPGA实现........... 错误!未定义书签。
3.1串行FIR滤波器原理............................ 错误!未定义书签。
3.2分布式算法基础................................ 错误!未定义书签。
3.3直接型FIR滤波器的原理结构图.................. 错误!未定义书签。
3.4具有转置结构的FIR滤波器...................... 错误!未定义书签。
第四章结论与总结......................... 错误!未定义书签。
FIR滤波器设计1项目背景1.1FIR和IIR滤波器FIR(Finite Impulse Response)Filter:有限冲激响应滤波器,又称为非递归线性滤波器。
FIR滤波器,顾名思义,其脉冲响应由有限个采样值构成。
长度(抽头数)为N、阶数为N−1的FIR系统的转移函数、差分方程和单位冲激响应分别如下列三式所示。
图510IIR(Infinite Impulse Response)Filter:无限冲激响应滤波器,又称为递归线性滤波器。
FIR相对与IIR来说,具有如下的优点:可以具备线性相位特性线性相位的概念:如果滤波器的N个实值系数为对称或者反对称结构,该滤波器具有线性相位。
W(n)=±W(N−1−n)W(n)=±W(N−1−n)线性相位的特性:通过线性相位滤波器的信号的所有频率部分具有相同的延迟量。
易于设计但FIR也有自身的缺点:同样指标的滤波器,FIR需要更多的参数,即实现时消耗更多的计算单元,产生更大的延迟。
1.2FIR滤波器的原理信号通过一个FIR滤波器其实就是信号与FIR滤波器的系数进行卷积(即乘累加)的过程。
我们以一个简单信号模型为例,了解一下FIR波形器的原理。
现在有三组信号,分别是:信号1:低频信号,即在时域上变化慢的信号,其输入先后为11112222。
信号2:直流信号,其输入先后为1111111。
信号3:高频信号,即在时域上变化快的信号,其输入先后为12121212。
简单的滤波器模型低通滤波器:11信号1与低通滤波器进行卷积运算,其结果再除以2,得到如下数据:111 1.5222。
可以看到,低频信号经过低通滤波器后,各个点仍然保持了其形状,而且在1变成2时,还变平缓了。
信号2与低通滤波器进行卷积运算,其结果再除以2,得到如下数据:1111111。
可以看到,直流信号与输入的信号完成相同。
信号3与低通滤波器进行卷积运算,其结果再除以2,得到如下数据:1.5 1.5 1.5 1.5 1.5 1.51.5。
基于FPGA的FIR滤波器设计书1 概述我们学生通过这次的课设深入理解和消化了基本理论、进一步提高综合应用能力并且锻炼独立解决问题的能力,我们将《数字信号处理》、《集成电路原理与应用》和《FPGA 系统设计与应用》几门课程融合在一起综合应用设计一个实用的数字FIR 滤波器。
本报告中首先讲解了这次设计的具体内容,以及所要求的数字 FIR 滤波器的技术指标。
然后,数字滤波器的一些设计方法,并具体确定我这次设计所用的设计方案。
滤波器在matlab 中的设计方法应用。
通过matlab 得到所需滤波器的具体参数h(n),然后用这些所设计的参数,通过Quartus ii 工具编程具体实现滤波器功能。
这次滤波器实现过程中,用到以下小模块:延时器,加法器,乘法器,减法器。
2 课程设计要求及注意事项1.设计过程以小组为单位,各组设一个组长,负责组织和协调本小组的讨论、任务分工等;2.设计过程必须在本组内独立完成,不得跨组参考或抄袭,避免方案出现雷同;3.设计书一律采用专用报告纸,用统一封面装订;4.课程设计原则上在3 周内做完;5.最后一周周五进行优秀设计方案评选,在各组推选代表进行方案介绍的基础上,推选出2-3 个优秀设计方案。
6.学有余力的学生在完成必做设计内容的基础上,可对内容进一步展开设计,以提高综合应用能力,锻炼独立解决问题的能力。
3 课程设计内容3.1 课程设计题目及要求3.1.1 设计题目:基于 FPGA 的 FIR 滤波器设计3.1.2 设计要求利用所学知识,采用MATLAB 和FPGA 相结合完成FIR 滤波器的设计仿真。
采用直接法或分布式算法实现FIR 数字滤波器,了解两种算法的优缺点,选择其中一种算法,得出用它来实现FIR 滤波器的硬件结构,对其实现方式进行研究,分别采用合适的方法来设计,最后利用FPGA 器件实现FIR 数字滤波器的硬件电路,并用Matlab 对实现的结果进行仿真分析。
设计指标:1)类型:FIR 低通2)系统采样频率:Fs=10KHz;3)输入序列位宽为8 位的有符号数(最高位为符号位);4)输出结果保留8 位5)窗口类型为 kaiser 窗,β=0.5; 6)滤波器长度为N=16;3.2 数字滤波器简介及结构3.2.1 简介 滤波器是用来进行频率选择或频率分辨操作的线性时不变系统的通称。
目录一设计目的 (2)二设计要求 (2)2.1、基本要求 (2)2.2、提高部分 (3)三设计原理 (3)3.1、线性FIR滤波器原理 (3)3.2 设计分析 (5)3.3 实验结果分析验证提示 (6)3.4 DDS原理简介 (6)四设计思路 (7)4.1基于matlab工具的滤波器系数计算 (8)五设计内容 (10)5.1、寄存器模块 (10)5.2加法器模块 (11)5.3 减法器模块 (14)5.4 乘法器模块 (16)六结果分析 (21)七参考文献 (23)八心得体会 (24)基于FPGA的FIR滤波器的设计一设计目的为了帮助学生深入理解和消化基本理论、进一步提高综合应用能力并且锻炼独立解决问题的能力,我们将《数字信号处理》、《集成电路原理与应用》和《FPGA系统设计与应用》几门课程融合在一起开设的FPGA综合实验课程设计。
主要从以下两方面考虑:1、设计内容突出FPGA及信号处理的理论和技术的综合应用。
如在数字滤波实验中,要求学生能够熟悉数字滤波器的基本原理,并能运用VHDL语言实现数字滤波。
并采用MATLAB软件实现的结果与运用VHDL实现的仿真结果进行,来验证其正确性。
最后通过实验装置进行硬件实现,并对结果进行综合分析。
2、如何将《数字信号处理》、《集成电路原理与应用》和《《FPGA 系统设计与应用》三门课程有机的结合起来,设计一实际的系统。
由学生在所学知识的基础上,查阅相关资料,自主设计,通过实验装置进行实现,并对结果进行综合分析,寻找最佳设计方案。
希望学生通过完成一个利用FPGA实现信号处理相关的课题的理论设计、程序设计和实验调试任务,提高他们分析解决实际问题的能力。
本设计要求运用课程所学知识,进行算法实现、 Matlab 仿真,VHDL程序设计,FPGA开发平台上调试,加深对FPGA在信号处理知识领域的理解与运用,培养对FPGA系统的开发技能。
二设计要求2.1、基本要求利用所学知识,采用VHDL语言完成FIR滤波器的设计仿真。
1 绪论本章主要论述该课题的研究意义,目前在世界上的发展情况,以及我在这篇论文中所用到的主要的设计方法与设计工作。
1.1 课题研究的意义许多工程领域都涉及到如何能在强背景的噪声信号和干扰信号中提取到真正的信号。
如:遥感和遥测系统,通信系统,雷达系统,航天系统等,这就要求有信号的滤波。
滤波器的带宽等性能,处理速度的要求随着现在对高速,宽带,实时信号处理的要求越来越高,也随之提高。
系统的稳定性和后续信号的处理受滤波器的性能好坏程度影响常大。
[1]1.2 国内外研究动态1.2.1 数字信号处理的发展动态一般可以用两类方法来实现FIR滤波器的设计。
一类通过软件来设计实现,使用常见的电脑语言如高层次的C / C + +跟MATLAB语言。
此方法用于教学或算法仿真。
但是采用软件的方法不能实现实时性。
目前可以通过以下几种方式在硬件中来实现,。
一种是使用可编程的主要数学单位是一个乘法累加器(MAC)的通用DSP 芯片编程。
实时数字信号能够实现高速的处理,是因为MAC在一台机器时钟周期就能完成乘法累加操作,同时在硬件上还辅助与不同的流水结构和哈佛架构。
然而,在应用时受到了限制,是由于硬件结构和流水结构是固定不变的。
一种是使用专用的ASIC数字信号处理芯片。
这种方法是芯片尺寸小,高性能,保密性好。
其缺点是一个单一功能的芯片,多是针对一定的功能而设计,灵活性不够。
另一种方法是使用可编程逻辑器件(FPGA / CPLD)。
FPGA所具有得可编程逻辑的灵活性突破了流水线结构和并行处理的局限性,可以很好的实现实时信号处理功能。
研发过程中它的可移植性更好,可以缩短开发周期。
[2~11]1.2.2 FIR数字滤波器的FPGA实现使用FPGA技术设计的FIR数字滤波器在目前通常采用的是乘法器结构和分布式算法结构。
乘法器结构,有乘累加结构与并行乘法器结构两种形式。
乘累加结构是最简单的一种,占用资源少,缺点是处理速度慢;并行乘法器结构比较复杂,但是如果能够加上流水结构,信号就能够实现高速的处理,但是它还是会受到处理速度和数量的限制。
FIR低通滤波器设计报告1.设计内容本设计是基于FPGA的一个FIR低通滤波器设计,给定一段有高频干扰的信号,要求使用matlab设计出一个低通滤波器滤除其干扰频率,并取出10000到10160点进行时频分析。
然后使用verilog语言编写出滤波器,联合modelsim进行编译仿真,并将结果与matlab结果进行对比。
2.设计原理FIR滤波器响应(简称FIR)系统的单位脉冲响应()H z在h n为有限长序列,系统函数()有限z平面上不存在极点,其运算结构中不存在反馈支路,即没有环路。
如果()h n的长度为N,则它的系统函数和差分方程一般具有如下形式:根据差分方程直接画出FIR滤波器的结构,称为直接型结构。
如图所示:图 FIR滤波器直接结构FIR滤波器的特点:单位脉冲响应序列为有限个;可快速实现;可得到线性相位;滤波器阶数较高。
对线性时不变系统保持线性相位的条件是:单位脉冲响应为偶对称或奇对称。
即:为设计线性滤波器,应保证h(n)为对称的。
1)若N为偶数,其线性相位FIR滤波器的对称结构流图:图若N为偶数线性相位FIR滤波器的对称结构流图图中:“ +1 ”对应偶对称情况,“ -1 ”对应奇对称情况。
当n为奇数时,最后一个支路断开。
2)若N为奇数,其线性相位FIR滤波器的对称结构流图:图 N为奇数线性相位FIR滤波器的对称结构流图在本设计中,我们采用线性FIR低通滤波器,所采用的阶数N=8,所以是偶对称的,估采取图的结构,其中“±1“取“+1”。
3.设计思路首先要用matlab对给定的信号进行时频分析来确定干扰信号的中心频率,然后再设计出相应的数字滤波器进行滤波,最后要在FPGA上实现FIR滤波器。
首先要确定滤波器的抽头系数。
其系数的确定,我们可以通过两种办法来实现:第一种就是通过matlab编写FIR滤波器程序,然后直接导出抽头系数“h (n)”,另外一种办法就是使用matlab自带的FDATOOL简便地设计一个FIR滤波器,然后导出系数。
第3章 基于FPGA 设计FIR 滤波器在前面几章讨论了基于FPGA 设计FIR 滤波器的相关原理及其相关的基础知识。
在本章中将针对前面提到的原理和方法进行进一步的应用和组合。
3.1 指标的确定在本文的设计中,所确定的指标如下:(1) 带宽100MHZ ,最小阻带衰减-35db ,带内波动小于2db 。
(2) 综合仿真。
(3) 设计出满足上述性能指标并且所需资源最少的FIR 滤波器。
(4) 阶数:22。
3.2 设计思路将输入信号的每一位通过四个延时器后,以每位信号的4个引出点作为选择控制端,选择出己经算好的系数,每一位信号选取存储器中的不同位上的数值,达到乘法移位的功能,并送到累加器。
累加器将8位信号选择出的8个数据累加后输出,得到滤波结果。
为了充分利用FPGA 中四输入查找表的电路结构,采用每8节为滤波器的一个基本单元.对于64节滤波器的设计,采用8个基本滤波单元。
3.2.1 FIR 滤波器的基本算法(1) 加法器的设计加法器是数字系统中最常用的运算电路,其他运算电路如减法器、乘法器和除法器等都可以利用加法器来实现,在本设计的中也大量的使用到了加法器。
一个基本N 位二进制加法器/减法器由N 个加法器组成。
每个加法器都执行如下的布尔方程[19]:k x =k s XOR k y y XOR k k k k c y x c ⊕⊕= (3.1)进位位按如下方法计算:1+k c =(k x AND k y ) OR (k x AND k c ) OR (k y AND k c )=(k x k y )+(k x k c )+(k y k c ) (3.2) 最简单的加法器结构称为并行加法,如图 3.4所示,是位串行格式的。
图3.4并行加法器在quartusII中提供宏模块lpm_add_sub来构造加法器和减法器。
表3.1列出了lpm add_sum 的基本逻辑参数[19]。
(2)乘法器的设计乘法器是构成DSP系统的基本部件,也是FIR数字滤波器的基本运算。
基于FPGA的FIR数字滤波器设计摘要:文章介绍了CSD编码和流水线技术,将它们运用到VHDL语言编程中,设计了一个16阶8位输入17位输出的线性相位结构FIR数字滤波器,仿真结果符合要求。
最后比较了两种方法的使用在硬件资源和系统处理速度上的优缺点。
有限冲激响应(FIR数字滤波器和无限冲激响应(IIR数字滤波器广泛应用于数字信号处理系统中。
IIR数字滤波器方便简单,但它相位的非线性,要求采用全通网络进行相位校正,且稳定性难以保障。
FIR滤波器具有很好的线性相位特性,使得它越来越受到广泛的重视。
This article introduces CSD coding and production line technique, will they use to VHDL language programming, design of a 16th order 8-bit input 17 output of linear phase FIR digital filters, structural simulation results accord with the requirement. Last two methods were compared, the use of the system hardware resources and processing speed on the advantages and disadvantages. Finite impulse response (FIR digital filters and infinite impulse response (IIR digital filters widely used in digital signal processing system. IIR digital filter convenience simple, but it phase of the nonlinear requirements adopts full ventilation network phase calibration, and stability difficulty safeguards. FIR filters have very good linear phase characteristic, making it more and more extensive attention.关键词:FIR数字滤波器;线性相位;CSD编码;流水线技术1.引言数字滤波在图像处理、语音识别和模式识别等数字信号处理中占有重要地位。
学士论文基于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 可编程逻辑元件模块化算法1绪论1.1本课题研究意义在现代通信信号处理领域中,随着各种精密计算和快速计算的发展对信号处理的实时性、快速性的要求越来越高。
以往的模拟滤波器无法克服电压漂移、温度漂移和噪声等问题,从而带来了许多误差和不稳定因素。
而数字滤波器具有稳定性高、精度高、设计灵活、实现方便等突出优点。
基于FPGA的FIR数字滤波器的设计和实现摘要:本文基于FPGA平台实现了一种FIR数字滤波器,通过对滤波器的设计与实现过程的详细介绍,展示了FPGA在数字滤波器中的应用优势。
首先介绍了数字滤波器的原理及其在信号处理中的重要性,并对FPGA及其特点进行了概述。
接着,详细介绍了FIR滤波器的原理以及其在FPGA上的实现步骤,分析了滤波器设计中需要考虑到的各种因素。
最后,通过实验验证了FPGA上实现的FIR滤波器的性能,并对优化策略进行了讨论。
关键词:FPGA,FIR滤波器,数字信号处理,性能优化1. 引言数字滤波器是现代信号处理的重要组成部分,通过选择性地传递或抑制输入信号的特定频率组成部分,对信号进行处理和改善。
FIR滤波器是数字滤波器中最常用的一种类型,具有线性相位特性、稳定性较强以及易于实现等优势。
而FPGA作为一种可编程逻辑器件,具有灵活性高、可重构性强等特点,成为实现数字滤波器的理想平台。
2. FIR滤波器的原理FIR滤波器是一种线性时不变系统,其输出仅和当前输入值以及过去若干个输入值有关。
该滤波器的输出可以通过输入信号的线性加权和来计算,其中,每个输入值的加权系数通过FIR 滤波器的系数来确定。
FIR滤波器的系数决定了它对不同频率分量的响应,从而实现了信号的滤波目的。
3. FIR滤波器在FPGA上的实现步骤(1)选择合适的FPGA平台和开发工具,如Xilinx FPGA平台和Vivado开发工具。
(2)根据所要设计的滤波器的需求,确定其采样频率、截止频率和滤波器类型等参数,并进行系统级设计。
(3)根据所选参数,设计FIR滤波器的传递函数,并确定滤波器的阶数和系数。
(4)通过数学运算或者通过滤波器设计软件生成滤波器的差分方程。
(5)根据生成的差分方程,使用HDL(HardwareDescription Language)进行滤波器的编写。
(6)进行FPGA的综合、布局与布线、下载与验证,完成滤波器的硬件实现。
毕业设计(论文)题目(中文):基于FPGA的FIR数字低通滤波器的设计(英文):The Design of FIR Digital Filter Based on FPGA上海师范大学天华学院本科毕业设计(论文)诚信声明本人郑重声明:所呈交的毕业设计(论文),题目《基于FPGA 的FIR数字低通滤波器的设计》是本人在指导教师的指导下,进行研究工作所取得的成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明。
除此之外,本设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。
本人完全意识到本声明应承担的法律责任。
作者(签名):日期:2012年04月27日毕业设计(论文)任务书(2012届)题目(中文):基于FPGA的FIR数字低通滤波器的设计(英文):The Design of FIR Digital Filter Based on FPGA系部电子与信息工程系专业班级电子信息工程08秋1班日期: 2011 年 10 月毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
一、概述在通信与信息技术领域,数字信号处理显得越来越重要了,数字滤波器在数字信号处理中起到重要作用并能够获得广泛应用。
数字滤波器根据频域特性可以分为低通、高通、带通和带阻四种基本类型,根据时域特性可以分为无限脉冲响应IIR(Infinte Impulse Response)和有限脉冲响应FIR(Finite Impulse Response)。
FIR滤波器具有良好的线性相位特性,因此在数据通信、图像处理方面有广泛的应用。
FPGA(Field Programmable Gate Array),即现场可编程门阵列,由于具有用户可编程性,能够实现用户规定的各种用途,因此又被称为可编程专用集成电路,在电子系统的设计中得到广泛的应用。
利用FPGA实现FIR数字滤波器的设计,是本次课程设计需要解决的问题,利用学过的知识实现FIR数字滤波器是本次课程设计的主要内容。
二、方案论证1.FIR数字滤波器是一种线性时不变系统(LTI),如果FIR数字滤波器的单位脉冲响应h(n)的长度为N,其传递函数和差分方程分别为:H(z) = ∑=-1-0 n1 ) (Nznhy(n) = x(n)*h(n) =∑-=-1)()(Nmmnxmh其中,x(n)和y(n)分别为输入和输出序列。
如果FIR数字滤波器的单位脉冲响应h(n)是实数序列,而且满足偶对称或者奇对称条件,即h(n) = h(N-1-n)或者h(n) = -h(N-1-n)则滤波器具有严格的线性相位特点。
正是因为这种特点,在滤波器的设计过程中,可使乘法器的数量减半。
对于n阶滤波器,当n是偶数时,乘法器的个数为n/2个,当n 为奇数时,乘法器的个数为(n+1)/2个。
由传递函数和差分方程可以直接画出FIR滤波器的直接型结构如图1所示。
1-1-1-1-y(n)图1 FIR滤波器的直接型结构2.FIR滤波器的实现方法有多种,通常有串行算法、半并行算法和并行算法,在串行算法中,常见的有单乘法器MAC FIR滤波器和对称MAC FIR滤波器。
基于FPGA的FIR滤波器优化设计FPGA技术是一种灵活和可重配置的硬件设计技术,具有高度的并行性和可定制性。
其中,FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,可以用于信号处理和数据通信等领域。
在本文中,我们将讨论基于FPGA的FIR滤波器的优化设计。
首先,我们将介绍FIR滤波器的基本原理。
FIR滤波器是一种非递归滤波器,其输出只与当前输入和有限数量的以前输入相关。
其主要特点是具有线性相位响应和稳定性。
FIR滤波器通过卷积运算来实现滤波的功能,其中滤波器的系数是其关键部分。
接下来,我们将讨论如何将FIR滤波器设计为基于FPGA的硬件实现。
在FPGA设计中,我们可以使用硬件描述语言(如VHDL或Verilog)来描述FIR滤波器的功能和行为。
然后,我们可以使用FPGA设计工具(如Xilinx Vivado)将这些硬件描述转换为可在FPGA芯片上实现的逻辑电路。
在进行优化设计时,可以采用以下几种方法:1.并行计算:由于FPGA具有高度的并行性,我们可以利用并行计算来加速FIR滤波器的运算。
可以将输入信号分成多个并行通道,并在每个通道上独立地进行滤波计算。
2.流水线设计:流水线设计可以进一步提高FIR滤波器的运算效率。
可以将滤波器的计算分成多个阶段,并使每个阶段的计算互相重叠。
这样可以实现更高的吞吐量。
3.系数优化:FIR滤波器的计算涉及到滤波器的系数乘法和累加操作。
可以通过使用定点算法和优化系数位宽等方法来减少计算的复杂度。
此外,还可以使用现成的IP核来实现FIR滤波器。
例如,Xilinx Vivado中提供了用于FIR滤波器的IP核。
这些IP核具有预先优化的代码和配置选项,可以帮助我们更方便地实现FIFO滤波器。
另一方面,我们还可以采用硬件/软件协同设计的方法来优化FIR滤波器的设计。
在这种方法中,可以将一部分滤波器的计算任务转移到CPU上进行处理,以减轻FPGA上的计算负载。
基于FPGA 的FIR 滤波器设计数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。
数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。
数字滤波器是一个离散系统,该系统能对输入的离散信号进行处理,从而获取所需的有用信息。
在数字信号处理中,FIR 数字滤波器是最常用的单元之一。
它用于将输入信号x [n ]的频率特性进行特定的修改,转换成另外的输出序列y [n ]。
FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
有限长脉冲响应(FIR )滤波器的系统函数只有零点,除原点外,没有极点,因而FIR 滤波器总是稳定的。
如果他的单位脉冲响应是非因果的,总能够方便的通过适当的移位得到因果的单位脉冲响应,所以FIR 滤波器不存在稳定性和是否可实现的问题。
它的另一个突出的优点是在满足一定的对称条件时,可以实现严格的线性相位。
由于线性相位滤波器不会改变输入信号的形状,而只是在时域上使信号延时,因此线性相位特性在工程实际中具有非常重要的意义,如在数据通信、图像处理等应用领域,往往要求信号在传输和处理过程中不能有明显的相位失真,因而线性相位FIR 滤波器得到了广泛的应用。
长度为M 的因果有限冲激响应滤波器由传输函数H (z )描述:10()()M k k H z h k z --==∑它是次数为M-1的z -1的一个多项式。
在时域中上述有限冲激响应输入输出关系为:10()()()M k y n h k x n k -==-∑其中y (n )和x (n )分别是输出和输入序列。
有限冲激响应滤波器的一种直接型实现,如图所示。
通常一个长度为M 的有限冲激响应滤波器由M 个系数描述,并且需要M 个乘法器和(M-1)个双输入加法器来实现。
毕业设计(论文)任务书基于FPGA的FIR数字滤波器的设计摘要在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。
在工程实践中,往往要求对信号处理要有实时性和灵活性,而己有的一些软件和硬件实现方式则难以同时达到这两方面的要求。
随着可编程逻辑器件和FDA技术的发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR 滤波器。
本文对基于FPGA的FIR数字滤波器实现进行了研究。
主要工作如下:(1)以FIR数字滤波器的基本理论为依据,使用分布式算法为滤波器的硬件实现算法,并对其进行了详细的讨论。
针对分布式算法中查找表规模过大的缺点,采用多块查找表和OBC编码方式使得硬件规模极大的减小。
(2)在设计中采用了层次化、模块化的设计思想,将整个滤波器划分为多个功能模块,利用VHDL语言和原理图输入两种设计技术进行了各个功能模块的设计,最终完成了FIR数字滤波器的系统设计。
(3)最后给出了采用FLEX10K系列器件实现一个16阶的FIR低通滤波器的设计实例,用QuartusII软件进行了仿真,并对仿真结果进行了分析,证明所设计的FIR数字滤波器功能正确。
仿真结果表明,本论文设计的滤波器硬件规模较小,采样率达到了8.8MHz。
同时只要将查找表进行相应的改动,就能分别实现低通、高通、带通FIR滤波器,体现了设计的灵活性。
关键词:FIR数字滤波器;FPGA;分布式算法;OBC编码;查找表Design of the FIR Digital Filter Based on FPGAAbstractIn the modern electrical system,the FIR digital filter is used form any practical applications for its good linear phase character, and it provide an important function in digital signal processing design. In engineering practice, there is always a real-time and flexible requirement for signal processing. However, software and hardware techniques available for implementation are difficult to meet the demand for the two aspects in the same time. Along with the development of PLD device and EDA technology, more and more electrical engineers use FPGA to implement FIR filter, as it not only meet the real-time requirement, but also has some flexibility.In this paper, a method to implement the FIR filter using FPGA is proposed. The work mainly as follow:(1) According to the basic theory of FIR filters, a scheme of hardware implementation is worked out using distributed arithmetic algorithm. As the scale of the LUT in the distributed arithmetic algorithm is so large, the thesis reduces it with the use of multiple coefficient memory banks.(2) From the clew of implementing a top-down stratified, modular design, the thesis describes the hard ware design of all functional modules and the FIR system with the VHDL and schematic diagram design methods.(3) At last, a sixteen-tapped low-pass FIR filter is taken as an example, and the simulation design carried out using QuartusII. And analyzed the result, and it proved that the function of the design is correct.The result of the simulation indicates that the scale of the design is small, and the sample rate of the FIR filter can reach 8.8MHZ.Modifying the LUT can realize the low-pass, high-pass and band-pass FIR filters respectively, and incarnates the flexibility of the design.Key words:FIR digital filter;FPGA;Distributed Arithmetic;Offset-Binary Coding;LUT目录毕业设计(论文)任务书 (I)摘要............................................................................................................................... I I Abstract. (III)第1章绪论 (1)1.1 本课题的研究意义和应用背景 (1)1.2 国内外的研究现状 (1)1.3 研究思路 (3)1.4 本论文的主要内容和主要工作 (4)第2章FIR数字滤波器简介 (5)2.1 FIR数字滤波器 (5)2.1.1 数字滤波器的概述 (5)2.1.2 FIR滤波器的原理 (6)2.1.3 FIR滤波器的基本结构 (7)2.1.4 线性相位FIR数字滤波器的系统结构 (7)2.1.5 FIR数字滤波器的设计方法 (8)2.2 实现FIR数字滤波器的硬件算法——分布式算法 (10)2.2.1 分布式算法 (10)2.2.2 分布式算法的优化 (12)第3章EDA技术和可编程逻辑器件 (17)3.1 EDA技术 (18)3.2 EDA技术的主要内容 (18)3.2.1 大规模可编程器件 (18)3.2.2 硬件描述语言VHDL (19)3.3 基于EDA技术的“自顶向下”的设计方法 (21)3.4 基于EDA技术的电子电路设计流程 (21)3.5 可编程逻辑器件 (23)3.5.1 可编程逻辑器件简介 (23)3.5.2 使用FPGA器件进行开发的优点 (24)3.5.3 FPGA设计的开发流程 (25)3.6 FLEX10K系列芯片介绍 (26)3.6.1 FLEX10k的结构 (27)3.6.2 FLEX10K系列器件的特点 (28)3.7 开发工具QuartusII介绍 (28)第4章FIR滤波器的设计与仿真 (29)4.1 FIR滤波器的模块划分 (29)4.1.1 滤波器模块的划分 (29)4.1.2 方案确定 (29)4.2 FIR滤波器各模块功能的实现 (30)4.2.1 控制模块 (30)4.2.2 输入模块 (31)4.2.3 乘累加模块 (33)4.2.4 锁存模块 (35)4.2.5 顶层设计 (35)4.3 FIR数字滤波器的系统设计 (36)4.4 FIR滤波器的综合 (44)4.4.1 数字系统综合概述 (44)4.4.2 本设计的综合 (44)4.5 FIR滤波器各模块的仿真 (46)4.5.1 控制模块的仿真 (46)4.5.2 输入模块时序仿真 (47)4.5.3 乘累加模块时序仿真 (50)4.5.4 锁存模块时序仿真 (53)第5章结束语 (51)5.1 总结 (51)5.2 展望 (51)参考文献 (68)致谢 (70)附录 (I)第1章绪论1.1本课题的研究意义和应用背景几乎在所有的工程技术领域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。
目录引言 (1)1.软件及硬件平台 (1)1.1VHDL语言特点 (2)1.2MAX PLUS II开发环境 (3)1.3可编程逻辑器件 (4)1.4ALTERA公司FLEX10K系列 (5)2.FIR滤波器基本理论 (6)2.1数字滤波器概述 (6)2.2有限长单位冲激响应(FIR)滤波器 (6)2.2.1 FIR滤波器特点 (6)2.2.2 FIR滤波器结构 (6)2.3FIR数字滤波器的实现方法 (8)3.基于FPGA实现FIR滤波器的研究 (9)3.1基于乘法器结构的FIR滤波器在FPGA上的实现结构 (9)3.1.1基于乘累加 FIR 滤波器结构 (9)3.1.2 基于并行乘法器直接型 FIR 滤波器结构 (10)3.2基于分布式(DA)算法的FIR滤波器在FPGA上实现结构 (11)3.2.1 用分布式原理实现FIR滤波器-串行方式 (12)3.2.2 用分布式原理实现FIR滤波器-并行方式 (13)3.3CSD码及最优化方法 (14)4.线性相位FIR滤波器的设计 (16)4.1FIR滤波器的设计要求 (16)4.2软件环境和硬件平台选择 (16)4.3FIR滤波器的设计方案 (16)4.4各模块设计 (17)5.仿真结果及分析 (21)5.1仿真结果 (21)5.2仿真结果分析 (22)6.总结 (22)致谢 (23)参考文献 (23)ABSTRACT (25)基于FPGA的FIR滤波器设计摘要:本文提出了一种采用现场可编程门阵列器件(FPGA)实现FIR数字滤波器的方案,并以Altera公司的FPGA器件EPF10K30为例完成了FIR滤波器的模块化设计过程。
底层采用VHDL语言描述设计文件,顶层使用底层产生的模块连接组成FIR滤波器,并在MAX+plusII上进行了实验仿真。
仿真结果表明:该设计方案可行,可为今后的数字滤波器模块化研究提供另一种思路。
关键词:VHDL;FPGA;FIR滤波器;Maxplus引言许多工程技术领域都涉及到信号,这些信号包括电的、磁的、机械的、热的、声的、光的及生物体的等等。
如何在较强的背景噪声和干扰信号下提取出真正的信号并将其用于实际工程,这正是信号处理要研究解决的问题。
20世纪60年代,数字信号处理理论得到迅猛发展,理论体系和框架趋于成熟,到现在它已经成长为一门独立的数字信号处理学科。
数字滤波器在数字信号处理中占有很重要的地位,它涉及的领域很广,如:通信系统、系统控制、生物医学工程、机械振动、遥感遥测、地质勘探、航空航天、电力系统、故障检测、自动化仪器等。
系统数字滤波是提取有用信息非常重要而灵活的方法,是现代信号处理的重要内容。
相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应可接近理想特性,且精度很高又容易集成。
在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。
在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。
硬件描述语言(VHDL)是数字系统高层设计的核心,是实现数字系统设计新方法的关键技术之一。
随着可编程逻辑器件在速度和集成度方面的飞速发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器,FIR数字滤波器在数字信号处理系统中应用非常普遍,常被用来对原始(或输入)样本数据进行消除高频、抑制噪声等处理以产生所需的输出。
数字滤波器的好坏对相关的众多工程技术领域影响很大,一个好的数字滤波器会有效地推动众多工程技术领域的技术改造和科学发展。
所以对数字滤波器的工作原理、硬件结构和实现方法进行研究具有一定的意义。
本设计将采用现场可编程门阵列器件(FPGA)实现FIR数字滤波器的方案,底层采用VHDL语言描述设计文件,顶层使用底层产生的模块连接组成FIR滤波器,并在Max+plusII上进行实验仿真。
由仿真结果判断设计的可行性。
1.软件及硬件平台1.1 VHDL语言特点VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。
VHDL还具有以下优点:(1)VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。
(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用。
(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。
(4)VHDL 是一个标准语言,为众多的EDA厂商支持,因此移植性好。
VHDL设计是行为级的设计,所带来的问题是设计者的设计思想与实际电路结构是相脱节的。
设计者主要是根据VHDL的语法规则,对系统目标的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译、优化,通过仿真工具进行逻辑功能仿真和系统延时的仿真。
实际设计过程中,由于每个设计工程师对语言规则、对电路行为的理解程度不同,每个是大相径庭。
因此,即使最后综合出的电路都能实现相同的逻辑功能,其电路的复杂程度和时延特性都会有很大的区别,甚至某些臃肿的电路还会产生难以预料的问题。
从这些问题出发,很有必要深入讨论在VHDL设计中如何简化电路结构,优化电路设计的问题。
一段独立的VHDL代码至少包含3个组成部分:库(LIBRARY)声明:列出了当前设计中需要用到的所有库文件,如ieee,std和work等。
实体(ENTITY):定义了电路的输入/输出引脚。
构造体(ARCHITECTURE):所包含的代码描述了电路要实现的功能。
库是一些常用代码的集合,将电路设计中经常使用的代码存放到库中有利于设计的重用和代码共享,库的典型结构如图1-1。
代码通常以函数(FUNCTION)、过程(PROCEDURE)或元件(COMPONENT)等标准形式存放在包裹(PACKAGE)中,用户可以根据需要对其进行编译使用。
图1-1 一个库的基本组成部分为了更有效的编写VHDL代码,必须知道哪些数据类型是可用的以及怎样说明和使用它们。
表1-1中总结了VHDL中基本的可综合的数据类型。
表1-1 VHDL中基本的可综合的数据类型数据类型可综合的数据BIT,BIT_VECTOR ‘0’,‘1’STD_LOGIC,STD_LOGIC_VECTIR ‘X’,‘0’,‘1’,‘Z’STD_ULOGIC,STD_ULOGIC_VECTOR ‘X’,‘0’,‘1’,‘Z’BOOLEAN True,FalseNA TURAL 0到+2147483647INTEGER -2147483647到+2147483647UNSIGNED 0到+2147483647用户自定义整型INTEGER的子集用户自定义枚举类型根据用户自定义进行编码得到SUBTYPE 任何预定义或用户自定义类型的子集ARRAY 任意上述单一类型数据的集合RECORD 任意上述多重类型数据的集合VHDL的语法基础的学习令人感到枯燥乏味,但只有在对数据类型、运算操作符及其属性有了深刻理解之后,才有可能写出高质量和高效率的代码。
表1-2总结了VHDL中数据类型、运算操作符及其属性。
表1-2 VHDL中数据类型、运算操作符及其属性1.2 MAX plusII开发环境Max+plusII(Multiple Array Matrix and Programmable Logic User System)是Altera公司在Windows 环境下开发的可编程逻辑设计软件平台。
该软件提供了一种真正与结构无关的全集成化的设计环境,可支持不同结构的器件,如FLEX、MAX以及CLASSIC系列器件等;丰富的设计库可供设计者灵活使用;允许用各种输入方式输入逻辑设计文件,经过系统编辑器的编译、综合等操作后分配到一个或多个器件中。
MAX+plusII开发系统的特点如下(1)开放的接口MAX+plusII支持与其他工业标准EDA(Electronic Design Automation)工具软件共同使用的接口,这一接口符合EDIF200和EDIF300标准、参数化模块库LPM(Library of Parameterized Modules)2.1.0、标准延迟格式SDF(Standard Delay Format)1.0和SDF2.0、VITAL95、Verilog HDL、VHDL1987和VHDL1993以及其他标准。
同时也可以使用其他的电子设计自动化EDA工具软件进行设计输入,再利用MAX+plusII进行编译处理。
(2)与结构无关(指VHDL描述在逻辑综合前与结构无关)MAX+plusII系统的核心Compiler(编译程序),支持Altera公司的FLEX10K、FLEX10KA、FLEX10KB、FLEX10KE、MAX5000、MAX7000、MAX9000、FLEX6000、FLEX8000等可编程逻辑器件系列,提供了一个真正与结构无关的可编程逻辑设计开发环境。
它的编译器还提供了强大的逻辑综合与优化功能,使用者可在最短的时间内完成高效的设计。
(3)多平台MAX+plusII可在PC机的MS Windows和Windows NT环境下,以及多种工作站的Windows环境下运行。
(4)完全集成化MAX+plusII的设计输入、处理与校验功能全部集成在统一的开发环境下,这样可以加快动态调试,缩短开发周期。
(5)多种设计库MAX+plusII提供了丰富的库单元,其中包括74系列的全部器件和多种特殊的逻辑宏单元器件(Macor-Function),以及新型的参数化宏功能器件(Mega-Function)。
调用库单元进行设计,可以缩短设计周期。
(6)模块化工具设计者可以从各种设计输入、处理和校验选项中进行选择,从而使设计环境用户化。
(7)硬件描述语言(HDL)MAX+plusII软件支持VHDL、Verilog HDL和Altera公司自己的硬件描述语言AHDL。
(8)开放核的特点MAX+plusII软件具有开放核(Opencore)的特点,允许设计人员添加自己的宏函数。
(9)Magecore的功能Magecore是为复杂的系统及功能提供的、经过校验的HDL(硬件电路)网表文件,能使FLEX10K、FLEX8000、FLEX600、MAX9000HE、MAX7000器件系列实现最优化设计。
1.3 可编程逻辑器件FPGA (Field Programmable Gates Array, 现场可编程门阵列)和CPLD (Complex Progr ammable Logic Device,复杂可编程逻辑器件)属于高容量的可编程逻辑器件,是在PAL、 GAL等简单PLD的基础之上发展起来的。