毕业设计(论文)基于NIOSⅡ的FFT实现.doc
《毕业设计(论文)基于NIOSⅡ的FFT实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于NIOSⅡ的FFT实现.doc(23页珍藏版)》请在三一办公上搜索。
1、目 录摘要11 前言22 数字信号处理简介23 SOPC简介34 快速傅立叶变换44.1 计算DFT的特点及FFT的预算基本途径44.2 时域抽取法基2FFT基本原理54.3 直接计算DFT与DIT-FFT算法运算量的比较95 DIT-FFT的运算规律95.1 原位计算105.2 旋转因子的变化规律105.3 蝶形运算规律106 系统设计116.1 Quartus部分的系统设计116.1.1 Quartus简介116.1.2 创建一个Quartus工程126.1.3 创建CPU系统模块126.1.4 建立图形设计文件136.2 NIOS部分的系统设计136.2.1 NIOS简介136.2.2
2、启动NIOS IDE146.2.3 建立新的软件工程146.2.4 编程思想与程序框图146.2.5 序列的倒序156.2.6 输入程序与编译工程186.2.7 运行与调试程序187 结论198 致谢19参考文献19附录20基于NIOS的FFT实现专业名称 电子信息科学与技术专业 作者 *指导老师 *摘要:在数字信号处理中,FFT占有很重要的位置,其运算速度影响整个系统的性能。传统实现方法速度慢,难以满足信号处理的实时要求。针对这一现状,本文研究了FFT算法的C语言程序设计方法,讨论了基于NIOS实现FFT处理中的若干问题。仿真结果表明该方案正确可行,可以满足需要处理的应用场合。关键词:快速傅
3、立叶变换(FFT);可编程片上系统(SOPC);C语言; Realization of FFT Based on NIOSElectronic information science and technical specialtyOUYANG Xu Instruction TeacherSHI WeiAbstract: FFT plays an important role in signal processing and its operation time has effect on the performance of the system. The operational speed
4、of traditional implement method is too low to meet the need of signal processing for real-time. So, it is introduced a kind of C language program design for FFT algorithm and some problems are discussed in design when FFT is realized based on NIOS. The simulation result verified the correctness of p
5、rogram which can be applied to the fields needed.Keywords: FFT; SOPC; C Language; 1 前言DFT(Discrete Fourier Transformation)是数字信号分析与处理如图形、语音及图像等领域的重要变换工具。DFT是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作经过周期延拓成为周期信号再
6、作变换。DFT不仅在理论上有重要意义,而且在各种信号的处理中亦起着核心作用。直接计算DFT的计算量与变换区间长度N的平方成正比。当N较大时,因计算量太大,直接用DFT算法进行谱分析和信号的实时处理是不切实际的。直到1965年发现了DFT的一种快速算法以后,情况才发生了根本的变化。快速傅立叶变换(Fast Fourier Transformation,简称FFT)使DFT运算效率提高12个数量级。其原因是当N较大时,对DFT进行了基4或基2分解运算,可以有效的减少运算量。FFT算法除了必需的数据存储器ram和旋转因子rom外,仍需较复杂的运算和控制电路单元,即使现在,实现长点数的FFT仍然是很困
7、难。本文提出的FFT实现算法是基于SOPC之上的,算法由C语言编程实现,完成对点FFT的计算。2 数字信号处理简介数字信号处理以信号系统的一般理论为基础,在理论体系上发展专门适合于离散时间(或者空间)上的信号分析原理和方法,在实践上发展适合于计算机处理的器件和设备,在应用上建立针对不同信号的模型和计算方法。数字信号处理的基础理论是在针对确定信号的讨论发展起来的,但是其应用几乎无一例外地涉及随机信号的分析,从这个意义上说,统计信号处理是数字信号处理的应用表现。因此,数字信号处理的理论体系大体可以归纳为三个层次的结构,这个结构更低层的基础是数学,更上层的是具体的应用。 事实上,统计信号处理的大多数
8、原理并不直接来源于离散时间(空间)系统的分析,而是来源于对一般时间(空间)序列的研究。然而上面这样的层次对于我们利用计算机为工具来解决问题是有用的。譬如,我导师在他的博士论文工作中使用的程序库(包含他自己编写的大量代码)基本上就是由数理统计和数值计算、信号处理工具、信息处理工具以及它们所支持的统计信号处理工具库所构成的。上面的不同层次,有不同的关键问题。信号与系统的理论基础讨论的核心问题就是变换域上表示信号的问题。C.E.Shannon的抽样定理(Theorem 13 in “A mathematical Theory of Communcation”,Shannon)被工程师们公认为影响这个
9、世界的最重要的公式之一(根据一项非正式的调查显示,抽样定理列于该调查所排列的10个最重要公式中。注意,第一位是牛顿第二定律,第二位是万有引力定律,第五位是Maxwell方程组,抽样定理列第八,却足以说明它的重要性。)抽样定理唯一地提供了这样的可能性:能够用有限的离散的计算手段来研究连续发生的信号。1离散信号分析的理论一方面把连续时间的信号分析的方法和原理引进到离散系统的领域,比如z-变换、DTFT、DFT以及根据模拟滤波器按照一定准则设计数字滤波器的方法;另一方面独立发展关于离散系统和信号分析的专门的理论和方法,比如滤波器的算法设计、量化的理论、有限字长的效应。这些理论的发展有一个共同的特点,
10、就是适应数字计算机解决信号处理的问题。需要注意到,离散信号和系统的理论不仅仅解决现实世界中连续系统的问题,也开辟了解决本身就具有离散特征的系统的问题,比如,雷达天线阵列的方向图问题,本身就是空间离散Fourier变换的问题。现实问题中的信号一般都不是确定的,而是随机的。统计信号处理引进随机过程和数理统计的成果,并且运用信号处理的基本原理,建立模型和参数估计的理论,并且同信息论关于信源和信道及其相互关系的理论结合在一起,用于解决特定系统、特定模型的问题。模型决定算法,而算法决定实现。写到这样一句话的时候,可以这么来归纳工程师们在数字信号处理领域所取得的成就:理论-模型-算法-工程实现-应用。最终
11、解决问题的一定是可以运行的代码或者设备。3 SOPC简介SOPC (System On Programmable Chip )即可编程的片上系统,或者说是基于大规模FPGA的单片系统。SOPC的设计技术是现代计算机辅助设计技术、FDA技术和大规模集成电路技术高度发展的产物。SOPC技术的目标就是试图将尽可能大而完整的电子系统,包括嵌入式处理器系统、接口系统、硬件协处理器或加速器系统、DSP系统、数字通信系统、存储电路以及普通数字系统等,在单一FPGA中实现,使得所设计的电路系统在其规模、可靠性、体积、功耗、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化。SOPC技术
12、是一门全新的缘合性电子设计技术,在电子设计技术上给出了一种以人的基本能力为依据的软硬件综合解决方案。由于同时涉及底层的硬件系统设计和相应的软件设计,在系统优化方面有了前所未有的自由度。SOPC技术使开发者更能动地在软硬件系统的综合与构建两个方面有了充分发挥自己创造性和想象力的巨大空间,从而使得从多角度、多因素和多结构层面上大幅度优化自己的设计成为可能。事实上,诸如单片机、DSP或ARM系统等基于传统开发技术的设计流程而言,不存在严格意义上的硬件设计,而只有软件设计。这是因为,一旦方案确定,硬件系统的核心器件是现成的,功能是确定的,结构是固定的,指令系统是不可更改的,从面导致硬件组织方案和连接方
13、案是限定的,用户只能被动地遵循和适应,这时的硬件“设计”只能流于拼装和连接。系统构成后的惟一任务是依据既定的指令系统来编程,除了系统功能和算法可以通过软件改变外,系统的性能和指标己无从改变。设计者的创新能力、想象力和优化设计能力的发挥空间已被选定的硬件性能所界定。没有了创造,更谈不上超越了,进而导致了系统的综合性能基本取决于器件原有的性能和指标。换言之,传统技术是以既定的硬件及其性能而非以人的能力为主轴的技术。这样不难明白,在这个以硬件决定“创造”的世界里,为什么在优秀的8031单片机出现以后,仍然层出不穷地涌现出其他各种功能和性能的单片机:而同样是DSP处理器,C5X系列与C6X系列器件则把
14、开发者带到完全不同的技术领域和功能范畴。显然,硬件的可设计性和用户目标的适应性在系统性能指标上占有更大的份额,而SOPC技术的优势正在于是设计者本身而非器件设计商去更有效地占据这一份额。SOPC在应用理论和知识构成上,达到了一种有机融合。基于SOPC的结构特点,SOPC系统的开发对于设计者的知识范围有了更高的要求。除了必须了解基本的EDA软件、硬件描述语言和FPGA器件相关知识外,还必须熟悉计算机组成与接口、汇编语言和C语言、DSP算法、数字通信、嵌入式系统开发、嵌入式操作系统、片上系统构建与测试等知识。这样,SOPC技术的普及必将有力地推动电子信息及工程类各学科分支与相应的课程类别间的融合。
15、这种融合在SOPC技术中已不是简单的合并与算术相加,而是有机的融汇和充满设计者创新意识的升华。例如可以利用Matlab/DSP Builder/Quartus完成纯硬件的DSP算法模型及实现,进而构成嵌入式系统外围接口的协处理模块,再进一步构成软件程序中的精简指令,从而实现完全自主的、真正意义上的硬件设计和系统优化。与现有的诸多电子系统设计理念和解决方案相比,SOPC技术更具代表性、主流性、规范性与普遍性。SOPC从设计层次上讲,分硬件设计和软件设计;从设计流程上讲,是典型的自顶向下的流程:从设计手段上讲,相比于传统技术,更广和更深入地利用了计算机,而计算机技术无疑是当今的主流技术。在这一平台
16、上,学科知识的融合,设计手段的融合,测试技术的融合,使SOPC设计者最大限度地在优化系统的性能上得以发挥自己的聪明才智,不再如传统技术中那样,把大量的时间花费在无谓的软硬件构建细节上,从而使人们常说的“动手能力”成了计算机应用能力的组成部分,而非仅为诸如“焊接”、“钻孔”和“连线”等操作行为的代名词了。从未来的电子系统设计技术走势上看,SOPC技术更具发展性和前瞻性。From Concept to System in minutes”显然是现代电子技术追求的方向和境界。在那里,人们可以远离“十年磨一剑”的经验、变化无端的硬件结构、空耗时光而难得要领的排错,潜心于己把握的知识、智慧与灵感,把电路
17、模型、系统模型、功能模型、行为模型及数学模型直接通过计算机在短时间内形成高效实用的电子线路系统,这不能不说是一种大胆的设想。然而,在SOPC领域,这种设想已得到了部分的实现。SOPC技术不能简单归属于哪一个学科分支。广义地讲,它是一种理念、一种思想方法、一种境界、一种趋势。4 快速傅立叶变换4.1 计算DFT的特点及FFT的预算基本途径长度为N的有限长序列x(n)的DFT为X(k)= ,k=0,N考虑x(n)为复数序列的一般情况,对某一个k值,直接按上式计算X(k)值需要次复数乘法、()次复数加法,因此,对所有个k值,共需次复数乘法及N()次复数加法运算。当N时,N()。由上述可见,N点DFT
18、的乘法和加法预算次数均与成正比。当N较大时,运算量相当可观。这对于要求实时信号处理来说,必将对计算速度提出难以实现的要求。所以,必须减少其运算量,才能使DFT在各种科学和工程计算中得到应用。FFT算法就是不断的把长序列的DFT分解成几个短序列的DFT,并利用的周期性和对称性来减少DFT的运算次数。对于变换长度为N的序列x(n)其傅立叶变换可以表示如下:X(k)=DFTx(n)= 其中,W=exp(-2/N)。4.2 时域抽取法基2FFT基本原理 FFT算法有按时间抽取(DIT)和按频率抽取(DIF)两种形式,其区别在于输入书记和旋转因子乘、加的顺序不同。在DIT中,蝶形运算的输入数据和旋转因子
19、是先乘后加;而在DIF中,是先加后乘。下面先介绍DIF-FFT算法。设序列x(n)的长度为N,且满足,为自然数按n的奇偶把x(n)分解为两个N/2点的子序列则x(n)的DFT为由于所以K=0,1,N1其中X1(k)和X2(k)分别为x1(r)和x2(r)的N/2点DFT,即 由于X1(k)和X2(k)均以N/2为周期,且,所以X(k)又可表示为 (式)(式)这样,就将N点DFT分解为两个N/2点的DFT和式以及式的运算。上面两个式子的运算可用图所示的流图符号表示,根据其形状称之为蝶形运算符号。图 蝶形运算符号采用这种图示法,可将上述分解运算表示于图中,图中,N=2=8,X(0)X(3)由(式1
20、)给出,而X(4)X(7)则由(式2)给出。由图可见,要完成一个蝶形运算,需要一次复数乘和两次复数加法运算。由图容易看出,经过一次分解后,计算一个N 点DFT共需要计算两个N/2点DFT和N/2个蝶形运算。而计算一个N/2点DFT需要次复数乘和N/2(N/21)次复数加法。所以,按图2计算N点DFT总共需要2+N/2=N(N+1)/2/2(N 1时)次复数乘法和N(N/21)+2N/2= /2次复数加法运算。由此可见,仅仅经过一次分解,就使运算量减少近一半。既然这样分解对减少DFT的运算量是有效的,且N=,N/2仍然是偶数,故可以对N/2点DFT再作进一步分解。图 N点DFT的一次时域抽取分解
21、图(N=8)与第一次分解相同,将x1(r)按奇偶分解成两个N/4长的子序列x3(l)和x4(l),即那么,X1(k)又可表示为 式中 同理,由X3(k)和X4(k)的周期性和Wm N/2的对称性 Wk+N/4 N/2=-Wk N/2 最后得到: (式)用同样的方法可计算出(式)其中这样,经过第二次分解,又将N/2点DFT分解为两个N/4点DFT和(式)或(式)所示的N/4个碟形运算,如图3所示。依次类推,经过M1次分解,最后将N点DFT分解成N/2个2点DFT。图3 N点DFT的第二次时域抽取分解图(N=8)一个完整的8点DIT-FFT 运算流图如图4所示。图中输入序列不是顺序排列,但后面会看
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 NIOS FFT 实现
链接地址:https://www.31ppt.com/p-3979540.html