基于FPGA的FFT信号处理
基于FPGA的FFT信号处理[20200406110317]
摘 要
本文研究FFT算法的原理,分别在MATLAB和FPGA两种不同的环境下,实现FFT算法并进行比较。重点讨论了基二运算的Cooley-Tukey算法,此算法的特点是要把输入和输出的地址序列当作矩阵映射来进行研究,这种思想将大大的提升算法的效率,运算速度也就更快。这有助于FPGA实现时提出高效复数运算的原理,进一步简化运算,节约资源。
在MATLAB中我们将根据FFT运算的思想,根据其原理连续使用三次循环来完成蝶形运算的要求,包括旋转因子的处理。通过和MATLAB自带的FFT函数进行比较,验证了我们提出的算法的正确性和高效性。
利用FPGA硬件实现时,我们以蝶形处理器为设计重点,并利用高效的复数运算器,达到了优化的目的。整个设计在QuartusII仿真环境中完成,其中用Modelsim完成了仿真验证。
*查看完整论文请 +Q: 3 5 1 9 1 6 0 7 2
关键字:FFTFPGA蝶形处理器MATLAB
目 录
1.引言 5
1.1数字信号处理技术 5
1.2 MATLAB软件 6
1.3FPGA设计基础 7
1.3.1可编程逻辑器件的发展 7
1.3.2 FPGA 7
1.3.2本课题对开发软件的选择 8
2.MATLAB中以Cooley-Tukey为基础的FFT函数设计 9
2.1快速傅立叶变换概述 9
2.1.1快速傅立叶变换算法 10
2.1.2 C-Tukey FFT运算算法思想 11
2.1.3 DFT VS FFT 13
2.2MATLAB中按时间抽取的FFT函数的实现 14
2.3MATLAB的FFT仿真结果 16
3.基二FFT算法中蝶形处理的FPGA实现 19
3.1按频率抽取的基二FFT运算的VHDL实现 19
3.1.1实现基于FPGA的旋转因子高效复数乘法器 19
3.1.2蝶形处理器的FPGA实现 20
3.2基二FFT运算的仿真结果及其分析 21
3.3 FPGA硬件分析 22
总结与展望 24
参考文献 25
致谢 26
1.引言
随着信息量的扩大,信息处理的要求提高,我们需要不断改进信息的处理技术。信号处理作为信息处理的核心环节,而它又是建立在信号的傅立叶变换基础上,然而傅里叶变换中又以快速傅立叶变换(FFT)作为核心的算法,其被用到了各种场合,产生了各种专用的硬件实现,算法软件包。伴随各种应用的需求,FFT算法及其变形一直是工程设计实现的重点。
现场可编程门阵列(FPGA)作为近年来发展得较为成熟的技术之一,其内部固有的并行性,使其成为一种非常具有竞争力的信号处理平台,本文将研究快速傅里叶变换的FPGA实现方式。在实现过程中,我们首先利用Matlab完成相应的算法原型验证,然后在Quartus设计平台下完成关键算法的硬件实现。
1.1数字信号处理技术
对信息时代的到来我们应该是具有预见性的,计算机和电子技术的成熟都是其崛起的标志,在当时我们还可以说数字信号处理技术是一个新兴科技,可是,到如今它已经成为社会的主要产业,技术也日渐成熟。我们把可以它看作是对模拟信号的转换形式的处理,拥有之前模拟信号所不具备的多方面优势。
数字信号处理的优点:
1、稳定性
这是由数字信号本身的特点决定的。作为只有0、1的数字信号,它对于由电容、电阻等元器件构成的模拟电路而产生的模拟信号来说,无疑,数字信号有它独特的优势。
2、可预见性
正如之前所说的,数字信号处理是基于计算机技术,可以通过MaxplusII、 QuartusII、ISE等软件实现功能的设计、编译、仿真以完成各种功能的实现。
3、编程能力
为了信号处理的问题得到更好的处理,我们通过编程软件来完成工程功能,用各种算法思想来适应不同的设计需求
4、成本低廉
用大规模集成电路作为载体来完成各种设计,大大的降低了成本,并且拥有可靠的性能。
5、数字信号处理的发展
在电子器件集成度较低而且缺少专业电子设计软件的时代,数字信号处理遇到了相当大的麻烦,它处理速度慢、延时大、效率低,可随后计算机的迅速发展,集成手段和技术的更新,集成化的不断增强,元件不断的缩小,使工程师在电子设计方面游刃有余,为之后数字信号处理奠定了后续发展的基础。
如今对数字技术算法的研究成果已经广泛应用于信号和信息处理项目中,如最新出现的3D打印技术,这些都是对它的应用,也是对它功能的肯定。现在这些项目都成为了现在电子技术领域的最热门的研究方向和重要商业市场的组成成分之一。
数字信号处理的进一步成熟,为下一代高速实现专门用途的数字信号处理提供了比较良好的条件。IP核的出现实现了在模块获不见基础上进行复用获引用,这无疑将提高设计的生产效率。
1.2 MATLAB软件
MATrix LABoratory是功能强大的数学软件。它为用户提供了优秀的数据分析、数值计算环境。附带的多种工具箱不仅仅让它能够完成数据分析和数值计算,还能进入多个运算领域,如图像、数字处理,金融方面的建模及分析。
自1984年以来,MATLAB 1.0相关产品在之后数十年间连续出版。自发行以来,现在到了R2014a版本,Matlab已经渗透到工程的各个领域,尤其在模型算法的验证方面更被广泛适用。本文也使用Matlab完成FFT算法的验证。
1.3FPGA设计基础
1.3.1可编程逻辑器件的发展
电子、微电子技术发展日新月异,使集成电路(IC)不断升级,数字集成电路经历了一个渐进的过程,从早期的真空管、晶体管、中小规模集成电路,集成度较低的电子仪器或是设备,逐步发展到今天的超大规模集成电路和许多实现专门功能的专用集成电路(ASIC)。ASIC的出现减少了产品的生产成本,增强了系统的可靠性,并且较大幅度地减少了产品的物理尺寸。但ASIC的缺点也是非常明显的,设计周期长、后续改版需要的投资比较大和可植入性差等,这些缺陷制约着它的应用范围。但是微电子技术与工艺的发展让我看到,我们可以用其它方式来解决这个问题。设计与集成电路制造的半导体制造商的任务的独立承担转移到了实验室里,这种从工厂到实验室的跨度,证明了科技技术的文明进步,同时使硬件工程师能在实验室设计也可以更改其中一些大规模的逻辑设计,来研究自己的ASIC芯片并马上投入使用,这即是可编程逻辑器件开发的基本思路。
同样地,可编程逻辑器件也有一个逐步发展的过程,它随着微电子制造工艺的发展取得了长足的进步。从最早期只能存储少量数据,通过一些简单的只读存储器(PROM)来完成任务,这些只读存储器分为:可编程、紫外可擦除、电可擦除等等,但是它们并没有被完全淘汰仍然到现在有所应用。到如今己经发展为可以完全实现超大规模的复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。基于校内设备的考虑,我们最终还是选择了FPGA来实现此次课题的研究。
1.3.2 FPGA
FPGA即现场可编程门阵列,它是在多种可编程器件的基础上发展实时性性能更高、更强的可编程逻辑器件。其实从名字中就可以看出其特点,内部主要有模块结构组成,也包括了连线。它们通常排列成阵列的形式,分散在芯片上。
FPGA最为突出的特点莫过于其智能化的能力和功能的强大性。使用FPGA可以将设计结果方便的仿真并且分析出来。
1.3.2本课题对开发软件的选择
随着计算机技术的发展,同样刺激了软件的开发。在FPGA等领域做得十分出色的公司,如XILINX、ALTERA,为了不断的满足市场的需求和迅速的电子技术发展。XILINX、ALTERA不断推出不同版本的设计开发的软件,供消费者选择。接下来,将对几款针对普通消费者和开发人员的主流软件进行简单的介绍并作出比较。
MaxplusII,ALTERA第三代PLD开发系统,拥有友好的人机界面,因此,也常常被作为初学者用来学习的首选。当然,这并不是说,这款软件的功能有所缺失,或是与其它软件相比有显著的缺点,不能用来满足用户的需求。MaxplusII对于一般在数千逻辑门以下的逻辑设计能有非常快的设计速度,找个设计过程可以在几小时内完成,这无疑是这个软件最大的优点,也是其优秀性能的表现。但由于ALTERA公司出于某种考虑对其停止了开发,MaxplusII也正在逐步退出人们的视线。
摘 要
本文研究FFT算法的原理,分别在MATLAB和FPGA两种不同的环境下,实现FFT算法并进行比较。重点讨论了基二运算的Cooley-Tukey算法,此算法的特点是要把输入和输出的地址序列当作矩阵映射来进行研究,这种思想将大大的提升算法的效率,运算速度也就更快。这有助于FPGA实现时提出高效复数运算的原理,进一步简化运算,节约资源。
在MATLAB中我们将根据FFT运算的思想,根据其原理连续使用三次循环来完成蝶形运算的要求,包括旋转因子的处理。通过和MATLAB自带的FFT函数进行比较,验证了我们提出的算法的正确性和高效性。
利用FPGA硬件实现时,我们以蝶形处理器为设计重点,并利用高效的复数运算器,达到了优化的目的。整个设计在QuartusII仿真环境中完成,其中用Modelsim完成了仿真验证。
*查看完整论文请 +Q: 3 5 1 9 1 6 0 7 2
关键字:FFTFPGA蝶形处理器MATLAB
目 录
1.引言 5
1.1数字信号处理技术 5
1.2 MATLAB软件 6
1.3FPGA设计基础 7
1.3.1可编程逻辑器件的发展 7
1.3.2 FPGA 7
1.3.2本课题对开发软件的选择 8
2.MATLAB中以Cooley-Tukey为基础的FFT函数设计 9
2.1快速傅立叶变换概述 9
2.1.1快速傅立叶变换算法 10
2.1.2 C-Tukey FFT运算算法思想 11
2.1.3 DFT VS FFT 13
2.2MATLAB中按时间抽取的FFT函数的实现 14
2.3MATLAB的FFT仿真结果 16
3.基二FFT算法中蝶形处理的FPGA实现 19
3.1按频率抽取的基二FFT运算的VHDL实现 19
3.1.1实现基于FPGA的旋转因子高效复数乘法器 19
3.1.2蝶形处理器的FPGA实现 20
3.2基二FFT运算的仿真结果及其分析 21
3.3 FPGA硬件分析 22
总结与展望 24
参考文献 25
致谢 26
1.引言
随着信息量的扩大,信息处理的要求提高,我们需要不断改进信息的处理技术。信号处理作为信息处理的核心环节,而它又是建立在信号的傅立叶变换基础上,然而傅里叶变换中又以快速傅立叶变换(FFT)作为核心的算法,其被用到了各种场合,产生了各种专用的硬件实现,算法软件包。伴随各种应用的需求,FFT算法及其变形一直是工程设计实现的重点。
现场可编程门阵列(FPGA)作为近年来发展得较为成熟的技术之一,其内部固有的并行性,使其成为一种非常具有竞争力的信号处理平台,本文将研究快速傅里叶变换的FPGA实现方式。在实现过程中,我们首先利用Matlab完成相应的算法原型验证,然后在Quartus设计平台下完成关键算法的硬件实现。
1.1数字信号处理技术
对信息时代的到来我们应该是具有预见性的,计算机和电子技术的成熟都是其崛起的标志,在当时我们还可以说数字信号处理技术是一个新兴科技,可是,到如今它已经成为社会的主要产业,技术也日渐成熟。我们把可以它看作是对模拟信号的转换形式的处理,拥有之前模拟信号所不具备的多方面优势。
数字信号处理的优点:
1、稳定性
这是由数字信号本身的特点决定的。作为只有0、1的数字信号,它对于由电容、电阻等元器件构成的模拟电路而产生的模拟信号来说,无疑,数字信号有它独特的优势。
2、可预见性
正如之前所说的,数字信号处理是基于计算机技术,可以通过MaxplusII、 QuartusII、ISE等软件实现功能的设计、编译、仿真以完成各种功能的实现。
3、编程能力
为了信号处理的问题得到更好的处理,我们通过编程软件来完成工程功能,用各种算法思想来适应不同的设计需求
4、成本低廉
用大规模集成电路作为载体来完成各种设计,大大的降低了成本,并且拥有可靠的性能。
5、数字信号处理的发展
在电子器件集成度较低而且缺少专业电子设计软件的时代,数字信号处理遇到了相当大的麻烦,它处理速度慢、延时大、效率低,可随后计算机的迅速发展,集成手段和技术的更新,集成化的不断增强,元件不断的缩小,使工程师在电子设计方面游刃有余,为之后数字信号处理奠定了后续发展的基础。
如今对数字技术算法的研究成果已经广泛应用于信号和信息处理项目中,如最新出现的3D打印技术,这些都是对它的应用,也是对它功能的肯定。现在这些项目都成为了现在电子技术领域的最热门的研究方向和重要商业市场的组成成分之一。
数字信号处理的进一步成熟,为下一代高速实现专门用途的数字信号处理提供了比较良好的条件。IP核的出现实现了在模块获不见基础上进行复用获引用,这无疑将提高设计的生产效率。
1.2 MATLAB软件
MATrix LABoratory是功能强大的数学软件。它为用户提供了优秀的数据分析、数值计算环境。附带的多种工具箱不仅仅让它能够完成数据分析和数值计算,还能进入多个运算领域,如图像、数字处理,金融方面的建模及分析。
自1984年以来,MATLAB 1.0相关产品在之后数十年间连续出版。自发行以来,现在到了R2014a版本,Matlab已经渗透到工程的各个领域,尤其在模型算法的验证方面更被广泛适用。本文也使用Matlab完成FFT算法的验证。
1.3FPGA设计基础
1.3.1可编程逻辑器件的发展
电子、微电子技术发展日新月异,使集成电路(IC)不断升级,数字集成电路经历了一个渐进的过程,从早期的真空管、晶体管、中小规模集成电路,集成度较低的电子仪器或是设备,逐步发展到今天的超大规模集成电路和许多实现专门功能的专用集成电路(ASIC)。ASIC的出现减少了产品的生产成本,增强了系统的可靠性,并且较大幅度地减少了产品的物理尺寸。但ASIC的缺点也是非常明显的,设计周期长、后续改版需要的投资比较大和可植入性差等,这些缺陷制约着它的应用范围。但是微电子技术与工艺的发展让我看到,我们可以用其它方式来解决这个问题。设计与集成电路制造的半导体制造商的任务的独立承担转移到了实验室里,这种从工厂到实验室的跨度,证明了科技技术的文明进步,同时使硬件工程师能在实验室设计也可以更改其中一些大规模的逻辑设计,来研究自己的ASIC芯片并马上投入使用,这即是可编程逻辑器件开发的基本思路。
同样地,可编程逻辑器件也有一个逐步发展的过程,它随着微电子制造工艺的发展取得了长足的进步。从最早期只能存储少量数据,通过一些简单的只读存储器(PROM)来完成任务,这些只读存储器分为:可编程、紫外可擦除、电可擦除等等,但是它们并没有被完全淘汰仍然到现在有所应用。到如今己经发展为可以完全实现超大规模的复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。基于校内设备的考虑,我们最终还是选择了FPGA来实现此次课题的研究。
1.3.2 FPGA
FPGA即现场可编程门阵列,它是在多种可编程器件的基础上发展实时性性能更高、更强的可编程逻辑器件。其实从名字中就可以看出其特点,内部主要有模块结构组成,也包括了连线。它们通常排列成阵列的形式,分散在芯片上。
FPGA最为突出的特点莫过于其智能化的能力和功能的强大性。使用FPGA可以将设计结果方便的仿真并且分析出来。
1.3.2本课题对开发软件的选择
随着计算机技术的发展,同样刺激了软件的开发。在FPGA等领域做得十分出色的公司,如XILINX、ALTERA,为了不断的满足市场的需求和迅速的电子技术发展。XILINX、ALTERA不断推出不同版本的设计开发的软件,供消费者选择。接下来,将对几款针对普通消费者和开发人员的主流软件进行简单的介绍并作出比较。
MaxplusII,ALTERA第三代PLD开发系统,拥有友好的人机界面,因此,也常常被作为初学者用来学习的首选。当然,这并不是说,这款软件的功能有所缺失,或是与其它软件相比有显著的缺点,不能用来满足用户的需求。MaxplusII对于一般在数千逻辑门以下的逻辑设计能有非常快的设计速度,找个设计过程可以在几小时内完成,这无疑是这个软件最大的优点,也是其优秀性能的表现。但由于ALTERA公司出于某种考虑对其停止了开发,MaxplusII也正在逐步退出人们的视线。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/2314.html