基于VHDL快速傅里叶变换的设计
基于VHDL快速傅里叶变换的设计[20200410140427]
摘 要
当今数字电子技术得到了飞速发展,有力的推动了社会生产力以及社会信息化的发展。数字电子技术逐步渗透到人类生活的各个领域。
从消费电子产品,工业自动化设备到航天技术有与数字电子技术息息相关,与此同时,电子产品的设计方式也发生了很大的变化,采用EDA(电子设计自动化)技术成为数字电子设计的主要方式。EDA技术是数字系统设计的核心技术,是电子类专业人员必须掌握的技能和方法。目前大规模的可编程逻辑器件为CPLD(复杂可编程逻辑器件)和FPGA(可编程逻辑阵列)。
快速傅里叶变换(Fast Fourier Transform ,FFT)是离散傅里叶变换(Discrete Fourier Transform,DFT)的有效实现。 FFT最初由Cooley和Tukey提出的,DFT的发展激发及促进了其在各类学科中获得广泛应用和飞速发展。
本课题采用VHDL语言编程,利用Altera公司的Quartus II软件设计,设计出一块专用的FFT IP核用于快速傅里叶变换,并且利用MATLAB软件输入一个正弦波,实现快速傅里叶变换(FFT)。
*查看完整论文请 +Q: 3 5 1 9 1 6 0 7 2
关键字:快速傅里叶变换FPGAVHDL
目 录
1.绪 论 1
1.1课题研究的背景与意义 1
1.2 快速傅里叶变换在各领域的应用 2
1.3课题研究的主要内容 2
1.4论文章节安排 2
2. VHDL语言及 Quartus软件平台 3
2.1 VHDL语言介绍 3
2.1.1 VHDL实体设计 4
2.1.2 VHDL语法介绍 5
2.2 Quartus软件简介 6
2.2.1 Quartus II软件特点 6
2.2.2 QuartusII软件开发流程 7
3.FFT变换的数学算法 8
3.1 FFT算法简介 8
3.2基-2 FFT算法基本原理 9
3.2.1 DIT-FFT算法的分解过程 13
3.2.2 DIT-FFT旋转因子变化规律 14
3.2.3 DIT-FFT蝶形运算规律 15
4. FFT的FPGA实现 16
4.1 FPGA简介 16
4.1.1 FPGA开发流程 16
4.1.2 FPGA Cyclone II芯片介绍 17
4.2 Quartus软件IP核的制作 19
4.2.1建立FFT项目 19
4.2.2 IP核的建立 21
4.2.3 RTL级电路输入输出引脚说明 25
4.2.4 FFT的Quartus时序仿真图 26
4.3 Matlab的FFT仿真图 27
4.3.1 Matlab程序 27
4.3.2 Matlab仿真 29
5.总结 30
5.1 论文小结 30
5.2 启示 31
参考文献 32
附录 FFT变换的VHDL程序 34
致谢 42
1.绪 论
1.1课题研究的背景与意义
在数字信号处理技术不断发展的今天,在国内外都在研究数字信号处理的新方法来实现这一论断,基于FPGA的方式来实现FFT算法,并通过设计优化,相比传统方法,算法的内部结构优势。
快速傅里叶变换(FFT)是数字信号处理的核心的工具之一。 FFT这么多的部分,如数字语音,雷达,声纳分析领域,数字滤波,无线电干扰,有一个非常流行的应用。尤其是在条件很高的的信号处理中, FFT处理速度通常是判别整体设计的性能的核心部分。
软件实行FFT运算的速度由于很慢,所以系统往往不能满足实时速度的性能指标 。经过利用DSP软件编程方案,以实现一定目的,虽然灵活,但限于自身的DSP性能的一些缺陷难以实现快速,极其复杂的FFT运算,另外有速度和精度之间的冲突:选择一个定点运算的舍入误差,将减少的过程的最终结果的准确性;如果浮点运算,有限的动态范围的问题可以被消除,但由于其复杂的结构,实现了处理速度难以满足要求,和更高的系统成本。虽然采用ASIC芯片,可实现高处理速度快,但灵活性差,尤其是使用自定义的LSI ,需要更高的研发成本,易于扩展。利用FPGA可以降低开发成本和周期,是发展的一种理想的方式。 FPGA的开发环境,以及在线可编程功能使得它满足实时数字信号处理的要求。
高速实时数字信号处理要求苛刻的系统性能,因此,几乎所有的通用DSP都很难达 到这一要求。可编程逻辑器件使设计人员能够充分利用并行处理技术的优势,实现高速信号处理算法,只有一个单一的设备可以达到理想的性能。当硬件依然无法实现通用的DSP速度的指标,此时唯一的选择就是增加处理器的数量,或者选择自定义的FPGA产品。使用现场可编程器件不仅上市时间加快,同时也满足成本,性能,尺寸和目前的其他方面和下一代便携式设计需求的要求,并提供系统级支持。 FPGA是在硬件中直接执行的,它的内部结构的一个简单的规则,通常可以容纳大量的同一种算术单元,所以在FPGA中的操作指定,则速度会比通用DSP芯片高得多。 FFT计算结构相对简单和固定的,适合于使用FPGA的硬件实现,并且可以考虑到它的速度和灵活性。利用DSP模式是非常浪费的,而DSP芯片乘数非常有限的资源,FFT乘法算法是大的,当实时DSP处理程序必须使用多个芯片,从而增加功率消耗增加和尺寸的价格。和一些嵌入式FPGA核心芯片内部乘法器的选择可以很容易地消除这种资源浪费严重。特别是近年来,高密度可编程逻辑器件整合,不断提高速度,设计,调试工具越来越复杂,越来越广泛的应用。
1.2 快速傅里叶变换在各领域的应用
FFT在生产实践以及科研中有着相当普遍的应用,下面就依据FFT的应用展示一下。
1.频谱分析。对各类设备频谱进行观测以及分析,易此来提供设计数据和保证设备的安全。在声纳系统,搜索海面船只或潜艇噪声信号的频谱分析,必须提供有价值的信息,船舶的运行速度,位置,位移,等。
2.滤波。滤波是FFT最为广泛的利用,简而言之就是除去不需要的方波,得到自己所期望的波形。
3.电力系统的谐波分析。一言以蔽之,就是对信号进行分析,方便工作人员把握信号的质量,用作他用。
1.3课题研究的主要内容
该课题研究的主要内容包括VHDL语言,快速傅里叶变换的数学原理,以及FPGA的一些知识。
1.4论文章节安排
本文各章节的内容安排如下:
第一章:绪论,主要介绍本课题的研究背景及意义、发展以及实现,然后阐述本课题研究的主要内容。
第二章:主要介绍VHDL语言的一些语法,以及Quartus软件相关的应用。
第三章:主要介绍快速傅里叶变换的算法原理。
第四章:介绍快速傅里叶变换的FPGA实现。
第五章:总结,主要是对本课题的研究和研究中遇到的问题进行总结,并提出本作品的不足之处和改进的方向。
2. VHDL语言及 Quartus软件平台
2.1 VHDL语言介绍
VHDL (超高速集成电路(超高速集成电路)硬件描述语言)是常用的设计输入语言为现场可编程门阵列和特定应用积体电路在数字电路电子设计自动化。
VHDL语言最初是在美国国防部门,以记录下的ASIC该供应商公司被包括在设备的行为的遗志。也就是说,用VHDL是作为一种替代庞大的,复杂的说明书,它们是受特定于实现的细节。
下一个步骤是读取的VHDL逻辑综合工具的开发,以及输出电路的物理实现的定义。现代综合工具可以根据哪些用户指定提取内存,计数器,算术块出来的代码,并加以实施。因此,相同的VHDL代码可以实现最低的地区,最低的功耗,最高时钟速度,或其他要求合成不同。
VHDL大量借鉴了在这两个概念的Ada编程语言(例如,对于一个一维数组的索引部分的切片表示法)和语法。 VHDL具有结构来处理固有的硬件设计的并行性,但这些结构(过程)语法从阿达的并行结构(任务)有所不同。有VHDL语言的许多特点这是不是在阿达发现,比如一组扩展的布尔运算符包括NAND和NOR的,以直接代表运算的硬件中是常见的。 VHDL还允许阵列中任一方向进行索引(升序或降序) ,因为这两个约定在硬件上使用,而艾达(最喜欢的编程语言)只提供了上升的索引。究其原因,这两种语言之间的相似之处是,国防部需要尽可能多的基于Ada的语法越好,以避免那些已经在阿达的发展进行了全面测试重新发明的概念。
摘 要
当今数字电子技术得到了飞速发展,有力的推动了社会生产力以及社会信息化的发展。数字电子技术逐步渗透到人类生活的各个领域。
从消费电子产品,工业自动化设备到航天技术有与数字电子技术息息相关,与此同时,电子产品的设计方式也发生了很大的变化,采用EDA(电子设计自动化)技术成为数字电子设计的主要方式。EDA技术是数字系统设计的核心技术,是电子类专业人员必须掌握的技能和方法。目前大规模的可编程逻辑器件为CPLD(复杂可编程逻辑器件)和FPGA(可编程逻辑阵列)。
快速傅里叶变换(Fast Fourier Transform ,FFT)是离散傅里叶变换(Discrete Fourier Transform,DFT)的有效实现。 FFT最初由Cooley和Tukey提出的,DFT的发展激发及促进了其在各类学科中获得广泛应用和飞速发展。
本课题采用VHDL语言编程,利用Altera公司的Quartus II软件设计,设计出一块专用的FFT IP核用于快速傅里叶变换,并且利用MATLAB软件输入一个正弦波,实现快速傅里叶变换(FFT)。
*查看完整论文请 +Q: 3 5 1 9 1 6 0 7 2
关键字:快速傅里叶变换FPGAVHDL
目 录
1.绪 论 1
1.1课题研究的背景与意义 1
1.2 快速傅里叶变换在各领域的应用 2
1.3课题研究的主要内容 2
1.4论文章节安排 2
2. VHDL语言及 Quartus软件平台 3
2.1 VHDL语言介绍 3
2.1.1 VHDL实体设计 4
2.1.2 VHDL语法介绍 5
2.2 Quartus软件简介 6
2.2.1 Quartus II软件特点 6
2.2.2 QuartusII软件开发流程 7
3.FFT变换的数学算法 8
3.1 FFT算法简介 8
3.2基-2 FFT算法基本原理 9
3.2.1 DIT-FFT算法的分解过程 13
3.2.2 DIT-FFT旋转因子变化规律 14
3.2.3 DIT-FFT蝶形运算规律 15
4. FFT的FPGA实现 16
4.1 FPGA简介 16
4.1.1 FPGA开发流程 16
4.1.2 FPGA Cyclone II芯片介绍 17
4.2 Quartus软件IP核的制作 19
4.2.1建立FFT项目 19
4.2.2 IP核的建立 21
4.2.3 RTL级电路输入输出引脚说明 25
4.2.4 FFT的Quartus时序仿真图 26
4.3 Matlab的FFT仿真图 27
4.3.1 Matlab程序 27
4.3.2 Matlab仿真 29
5.总结 30
5.1 论文小结 30
5.2 启示 31
参考文献 32
附录 FFT变换的VHDL程序 34
致谢 42
1.绪 论
1.1课题研究的背景与意义
在数字信号处理技术不断发展的今天,在国内外都在研究数字信号处理的新方法来实现这一论断,基于FPGA的方式来实现FFT算法,并通过设计优化,相比传统方法,算法的内部结构优势。
快速傅里叶变换(FFT)是数字信号处理的核心的工具之一。 FFT这么多的部分,如数字语音,雷达,声纳分析领域,数字滤波,无线电干扰,有一个非常流行的应用。尤其是在条件很高的的信号处理中, FFT处理速度通常是判别整体设计的性能的核心部分。
软件实行FFT运算的速度由于很慢,所以系统往往不能满足实时速度的性能指标 。经过利用DSP软件编程方案,以实现一定目的,虽然灵活,但限于自身的DSP性能的一些缺陷难以实现快速,极其复杂的FFT运算,另外有速度和精度之间的冲突:选择一个定点运算的舍入误差,将减少的过程的最终结果的准确性;如果浮点运算,有限的动态范围的问题可以被消除,但由于其复杂的结构,实现了处理速度难以满足要求,和更高的系统成本。虽然采用ASIC芯片,可实现高处理速度快,但灵活性差,尤其是使用自定义的LSI ,需要更高的研发成本,易于扩展。利用FPGA可以降低开发成本和周期,是发展的一种理想的方式。 FPGA的开发环境,以及在线可编程功能使得它满足实时数字信号处理的要求。
高速实时数字信号处理要求苛刻的系统性能,因此,几乎所有的通用DSP都很难达 到这一要求。可编程逻辑器件使设计人员能够充分利用并行处理技术的优势,实现高速信号处理算法,只有一个单一的设备可以达到理想的性能。当硬件依然无法实现通用的DSP速度的指标,此时唯一的选择就是增加处理器的数量,或者选择自定义的FPGA产品。使用现场可编程器件不仅上市时间加快,同时也满足成本,性能,尺寸和目前的其他方面和下一代便携式设计需求的要求,并提供系统级支持。 FPGA是在硬件中直接执行的,它的内部结构的一个简单的规则,通常可以容纳大量的同一种算术单元,所以在FPGA中的操作指定,则速度会比通用DSP芯片高得多。 FFT计算结构相对简单和固定的,适合于使用FPGA的硬件实现,并且可以考虑到它的速度和灵活性。利用DSP模式是非常浪费的,而DSP芯片乘数非常有限的资源,FFT乘法算法是大的,当实时DSP处理程序必须使用多个芯片,从而增加功率消耗增加和尺寸的价格。和一些嵌入式FPGA核心芯片内部乘法器的选择可以很容易地消除这种资源浪费严重。特别是近年来,高密度可编程逻辑器件整合,不断提高速度,设计,调试工具越来越复杂,越来越广泛的应用。
1.2 快速傅里叶变换在各领域的应用
FFT在生产实践以及科研中有着相当普遍的应用,下面就依据FFT的应用展示一下。
1.频谱分析。对各类设备频谱进行观测以及分析,易此来提供设计数据和保证设备的安全。在声纳系统,搜索海面船只或潜艇噪声信号的频谱分析,必须提供有价值的信息,船舶的运行速度,位置,位移,等。
2.滤波。滤波是FFT最为广泛的利用,简而言之就是除去不需要的方波,得到自己所期望的波形。
3.电力系统的谐波分析。一言以蔽之,就是对信号进行分析,方便工作人员把握信号的质量,用作他用。
1.3课题研究的主要内容
该课题研究的主要内容包括VHDL语言,快速傅里叶变换的数学原理,以及FPGA的一些知识。
1.4论文章节安排
本文各章节的内容安排如下:
第一章:绪论,主要介绍本课题的研究背景及意义、发展以及实现,然后阐述本课题研究的主要内容。
第二章:主要介绍VHDL语言的一些语法,以及Quartus软件相关的应用。
第三章:主要介绍快速傅里叶变换的算法原理。
第四章:介绍快速傅里叶变换的FPGA实现。
第五章:总结,主要是对本课题的研究和研究中遇到的问题进行总结,并提出本作品的不足之处和改进的方向。
2. VHDL语言及 Quartus软件平台
2.1 VHDL语言介绍
VHDL (超高速集成电路(超高速集成电路)硬件描述语言)是常用的设计输入语言为现场可编程门阵列和特定应用积体电路在数字电路电子设计自动化。
VHDL语言最初是在美国国防部门,以记录下的ASIC该供应商公司被包括在设备的行为的遗志。也就是说,用VHDL是作为一种替代庞大的,复杂的说明书,它们是受特定于实现的细节。
下一个步骤是读取的VHDL逻辑综合工具的开发,以及输出电路的物理实现的定义。现代综合工具可以根据哪些用户指定提取内存,计数器,算术块出来的代码,并加以实施。因此,相同的VHDL代码可以实现最低的地区,最低的功耗,最高时钟速度,或其他要求合成不同。
VHDL大量借鉴了在这两个概念的Ada编程语言(例如,对于一个一维数组的索引部分的切片表示法)和语法。 VHDL具有结构来处理固有的硬件设计的并行性,但这些结构(过程)语法从阿达的并行结构(任务)有所不同。有VHDL语言的许多特点这是不是在阿达发现,比如一组扩展的布尔运算符包括NAND和NOR的,以直接代表运算的硬件中是常见的。 VHDL还允许阵列中任一方向进行索引(升序或降序) ,因为这两个约定在硬件上使用,而艾达(最喜欢的编程语言)只提供了上升的索引。究其原因,这两种语言之间的相似之处是,国防部需要尽可能多的基于Ada的语法越好,以避免那些已经在阿达的发展进行了全面测试重新发明的概念。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/4226.html