快速傅里叶变换程序设计_第1页
快速傅里叶变换程序设计_第2页
快速傅里叶变换程序设计_第3页
快速傅里叶变换程序设计_第4页
快速傅里叶变换程序设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳工程学院课程设计设计题目快速傅里叶变换程序设计沈阳工程学院课程设计任务书课程设计题目快速傅里叶变换程序设计教研室主任年月日批准1设计主要内容及要求;编写正弦信号发生器程序。要求1)研究FFT原理以及利用DSP实现的方法。2)编写FFT程序。3)调试程序,观察结果。2对设计论文撰写内容、格式、字数的要求;(1)课程设计论文是体现和总结课程设计成果的载体,一般不应少于3000字。(2)学生应撰写的内容为中文摘要和关键词、目录、正文、参考文献等。课程设计论文的结构及各部分内容要求可参照沈阳工程学院毕业设计(论文)撰写规范执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。(3)论文要求打印,打印时按沈阳工程学院毕业设计(论文)撰写规范的要求进行打印。(4)课程设计论文装订顺序为封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。3时间进度安排;顺序阶段日期计划完成内容备注17月12日教师讲解题目,学生查阅相关资料27月13日确定FFT算法以及程序流程37月14日编写程序47月15日调试程序57月16日撰写论文,程序验收DSP技术课程设计成绩评定表指导教师评审意见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。015432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,025432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。025432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。055432指导教师评审成绩(加权分合计乘以12)分加权分合计指导教师签名年月日评阅教师评审意见评价内容具体要求权重评分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力025432工作量工作量饱满,难度适中。055432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。035432评阅教师评审成绩(加权分合计乘以8)分加权分合计评阅教师签名年月日课程设计总评成绩分中文摘要数字信号处理DIGITALSIGNALPROCESSING,DSP是一门涉及许多科学而又广泛应用于众多领域的新兴学科。步入21世纪以后,社会进入数字化时代,而DSP正是这场数字化的核心。简单的说,数字信号处理器就是把信号用数字符号表示成序列,通过计算机或专用信号处理设备,用数字的数值计算方法进行处理(如滤波、变换、压缩、增强、估计、识别等),以达到提取有用信息便于应用的目的。本次课程设计用的是TMS320C54X系列芯片,TMS320C54X系列芯片是TMS320C5000平台下的定点DSP芯片。54X系列芯提供了低成本、低功耗、高性能的处理能力,在各个领域应用日益广泛。本文就是利用它来实现快速傅里叶变换这种运算的。本次我课程设计的题目是快速傅里叶变换的DSP实现方法,作为数字信号处理的一种算法,快速傅里叶变换日益广泛的应用于实时控制和信号处理等各个领域。快速傅里叶变换FASTFOURIERTRANSFORM是实现离散傅里叶变换DFT的一种快速高效的运算方法,是数字信号处理中最为重要的工具之一。它使DFT的运算效率提高12个数量级,为数字信号处理技术应用于各种高速信号的实时处理创造了良好的条件,从而大大推动了数字信号处理技术的发展。本次课程设计完成的是长度为256点的FFT运算,它的运算可以用一个流程图来描述,因为流程图的外形像一只蝴蝶,所以称之为蝶形图,一个蝶形图包含一次复乘,两次复加。通过计算蝶距和旋转因子就可画出每级的蝶形图。本次程序通过编写蝶距和旋转因子的子程序,每次都调用这两个子程序,就能计算出输入的数据所对应的输出。关键词数字信号处理(DSP),快速傅里叶变换(FFT)目录中文摘要I1设计任务描述111设计题目112设计要求1121设计目的113基本要求12设计思路221FFT算法的由来222FFT算法原理223基2FFT的蝶形运算流图324时间抽取算法FFT的运算特点4241原位运算4242输入、输出序列的倒位序规律5243蝶距的计算5244旋转因子的计算625FFT算法的DSP的实现方法626FFT运算中应注意的问题63软件流程图74各部分程序设计及参数计算841程序的初始化842位反转子程序843旋转因子的软件实现944实现N点复数FFT运算9441第一级蝶形运算10442第二级蝶形运算10443第三级第2LOGN级蝶形运算11444功率谱计算的实现1345参数计算145程序的调试156工作过程分析1661程序的初始化1662位倒序子程序1663FFT计算1664功率谱的计算17小结18致谢19参考文献20附录A1程序清单21附录A2程序图形301设计任务描述11设计题目快速傅里叶变换程序设计12设计要求121设计目的1)理解FFT的算法以及利用DSP实现的方法。2)能熟练的调试程序并能观察其结果。3)熟悉TMS320C54X系列DSP芯片的软件设计方法。13基本要求1)研究FFT原理以及利用DSP实现的方法。2)编写FFT程序。3)调试程序,观察结果。2设计思路21FFT算法的由来傅里叶变换是数字信号处理领域中的一种分析工具,它可以将信号从时域变换到频域,称之为傅里叶正变换,也可以把信号从频域变换到时域,称之为傅里叶逆变换。傅里叶变换分为连续傅里叶变换和离散傅里叶变换。离散傅里叶变换简称DFT(DISCRETEFOURIERTRANSFORM),是对离散信号进行傅里叶变换的方法,其运算量大、复杂度与变换点数的二次方成正比,因而不适用于进行实时信号处理。为了提高DFT的运算速度,在20世纪60年代由COOLEY和TURKEY提出了快速傅里叶变换的思想,简称FFT(FASTFOURIERTRANSFORM),它是一种高效实现DFT的算法,能够明显降低DFT运算的复杂度,使DFT得到了广泛的应用。22FFT算法原理若给定由个信号样本(0),(1),(1)组成的信号序列(),NXXNXNDFT可用式21给出0,1,1(21)0NNKNNXKW式21中,称为旋转因子或蝶形因子,。从中可以看出当信号NKNWNK2/JNKNE样本为复数时,计算单个需经过次复数乘法和1次复数加法运算,相当于4K次实数乘法和2(21)次实数加法。完成全部点DFT共需次复数乘法和(2N1)复数加法运算。可见,随着不断增加,整个DFT运算量是相当庞大的,而FFTN算法通过对计算过程的深入分析,利用旋转因子具有的周期性与对称性,实现了降NKNW低运算复杂度的目的。当序列长度为偶数时,信号序列()可被分解为奇、偶两个子序列,相应的NX点DFT被分解为两个/2点的DFT0,1,,/21(22)KNXKGHK0,1,,/21(23)/2WN式(22)和(23)中,和分别表示()分解后得到的/2点偶序列点奇KXN序列的DFT。式(22)和式(23)表明,只要求出和,()前/2点和GKHXNN后/2点的DFT就得到了,整个序列的DFT也就得到了。这样做的好处是计算点NDFT只需要约/2次复数乘法,总运算量约为直接DFT运算量的一半2同理,当/2为偶数时,每个/2点的DFT又可被分解成两个/4点的DFT,进N一步减少了DFT运算的复杂度。依次类推,直到不能继续分解为止。分解结束时,最小DFT的点数称为称为基数,当(为正整数)时,经过1次分解,点DFT最2LLN终可被分解为/2个两点的DFT,即得到基数为2的FFT运算,使得DFT所需复数乘法N次数降至。2/LOG23基2FFT的蝶形运算流图基2FFT的蝶形运算过程可用图21所示,此时8,3。NL2LOGN图218点基2FFT运算过程观察图21,根据DFT的基2FFT算法,可以总结出以下几条规律(1)点FFT运算从输入端开始,逐级进行,共需经过级运算;在第NL(1,2,)级中存在个相似的蝶形运算组(除输入数据不同外);每个MM2LM组内蝶形运算的个数为,参与每个蝶形运算的两个输入数据相距个点。1M12M(2)中间数据的存储,可采用原位存储法。即每次蝶形运算的结果存储在与原数据相同的内存单元内。(3)为了保证输出数据按自然数序排列,在进行FFT之前输入数据需要按照特定的顺序存放,通过位倒序寻址可以满足这种要求。24时间抽取算法FFT的运算特点快速傅立叶变换FFT算法基本上分为两大类按时间抽取的FFT运算和按频率抽取的FFT运算。两者在算法的时间和空间复杂度上是一致的,只是序列在计算前后的排列有所不同。在本论文里,采用的是按时间抽取的FFTDITFFT算法。241原位运算当数据输入到存储器中以后,每一级运算的结果仍然存储在同一组存储器中,直到最后输出,中间无需其它存储器,这叫原位运算。DITFFT的运算就是原位计算,从图22可以看出这种运算是很有规律的,每级(每列)计算都是由N/2个蝶形运算构成的,每一个蝶形结构完成下述基本迭代运算(211RMMNAIIAJWJ4)式中M表示第M列迭代;则分别为该蝶形单元两个输入数据所在行数。式(24)的,IJ蝶形运算如图22所示。11RMMNAIIAJW11RJIJ1MAI1MJRNW1图22按时间抽取算法基本蝶形运算单元由前面介绍过的完整的DITFFT运算流程图22可以看出,第级蝶形运算的输出数M据仅与该级蝶形运算的输入数据有关,与前级蝶形的输入数据无关,且第级蝶1M1形运算的输出数据为第级蝶形运算的输入数据。某任何一个蝶形运算的两个输入节点M和的节点变量进行蝶形运算后,得到的结果为该蝶形运算两个输出节点,两节点的IJ,IJ节点变量,而和其他节点变量无关,因而可以采用原位运算。这种原位运算结构可节省存储单元,降低设备成本,还可节省找地址的时间。进行点的FFT运算时,只需要个寄存器存储节点变量及/2个寄存器存储/2系数,NNNNRNW共个存储单元即可。/2242输入、输出序列的倒位序规律由流程图21可以看出,当进行原位运算时,发现当运算完成后,FFT的输出按自然顺序排列在存储单元中,即按,的顺序排列;但是这XK0X17X是输入却不是按自然顺序存储的,而是按,的顺序存入存储单XNX4X元,这种方式就称之为倒位序。当用二进制表示这个顺序时,它正好是“码位倒置”的顺序。例如,原来的自然顺序应是的地方,现在存放,用二进制码表示这一规律时,则是在处存放1X4X01X,出存放,即将自然顺序的二进制码位倒置过来,第一位码变成最末010位码,这样倒置以后的顺序正是输入所需要的顺序。表21中列出的是8时按码位倒N置规律所得的顺序,其结果与按时间抽取算法FFT流程图中的输入顺序是一致的。同理,当256时,亦可以采用同样的方法进行位倒序操作。N表21码位倒置顺序自然顺序二进码表示码位倒置倒位序0000000010011004201001023011110641000011510110156110011371111117243蝶距的计算设,则整个运算流图中包含级蝶形运算,每一级则有个蝶形单元。蝶N2LL/2N距即每个蝶形单元两个输入(出)节点的序号差。以为例,结合图21可知共包含38级蝶形运算,每一级蝶形单元的蝶距如下第一级,蝶距为1,可以看作由得到10第二级,蝶距为2,可以看作由得到;第三级,蝶距为4,可以看作由得2132到。因此得第级蝶形单元的蝶距为。M1M244旋转因子的计算由FFT算法原理过程可知,若,则共有级蝶形运算,各级蝶形运算中旋转N2L因子分别如下第级的旋转因子为(0,1,);第1级的旋转因子LRW/21NL为(0,1,);第一级的旋转因子为(0,1,/2RNW2/11/LRW)。由此可见,第级蝶形运算中旋转因子为,0,1,1LM/2LMRN。/M25FFT算法的DSP的实现方法设FFT运算的输入数据为实数,则2点实数FFT算法的实现步骤为第一步,把N2实数输入序列组合成点的复数序列。然后把该复数序列进行位倒序操作后存储在输NN入区。第二步,进行的FFT运算。第三步,把点FFT输出拆成2的复数序列,这N2的复数序列对应于2点时实数输入序列的DFT输出。第四步,结果输出及功率谱计算。26FFT运算中应注意的问题为了避免可能的结果溢出,在编写程序时我们应该注意对每次蝶形运算的结果都右移一位,即除以2。为了减少FFT的运算时间和充分利用C54XDSP资源,编程时应尽可能多的采用并行指令。3软件流程图结束程序初始化开始送入数据调入系数表输入数据位码倒置FFT的蝶形运算是否发生溢出归一化输入数据结束各图形输出图31256点实序列FFT运算程序流程图4各部分程序设计及参数计算41程序的初始化输入数据的旋转因子表由文件输入DATADATASPACE1024复输出数据的起始地址COPY“MDATAINC“输入数据NSET128复数点数LOGNSET7蝶形级数为输入数据和旋转因子表定义变量SAV_GRPUSECT“TEMPV“,3定义组变量值SAV_SINSETSAV_GRP1定义旋转因子表索引值SAV_IDXSETSAV_GRP2定义输入数据索引值OUTPUTUSECT“OUTPUT“,256定义输出数据大小BOSUSECT“STACK“,0FH定义堆栈TOSUSECT“STACK“,1COPY“TWIDDLE1INC“旋转因子SINE表COPY“TWIDDLE2INC“旋转因子COSINE表在此段程序中设置了复数数据的个数为128,FFT运算的级数为7级,还设置了正弦表和余弦表。42位反转子程序输入数据位码倒置所使用寄存器定义如下AR0位翻转寻址索引AR2以位翻转顺序指向已处理的数据AR3指向原始输入数据AR7数据的起始地址STM2N,BKSTMINPUT,AR3AR3指向第一个输入XR0STMDATA,AR7AR7中存储数据的起始地址MVMMAR7,AR2AR2指向第一个被处理的数据R0STMN1,BRCRPTBDP1END1STMN,AR0AR0赋值为循环缓冲器的大小的一半LDMAR3,AREADAAR2ADD1,AREADAAR2MARAR30B位翻转寻址此段程序实现的是位倒序操作,使用C54XDSP提供的位倒序寻址方式,可以方便的实现位倒序操作。在该寻址方式下,用AR0存放数据,用另外的辅助寄存器ARX/2N存放原始数据的首地址,位倒序操作把AR0中的数加到ARX中,且以向右进位的方式进行,则所得地址将以位倒序的方式产生。43旋转因子的软件实现旋转因子是复数,可表示为(42/COS/SIN2/KJKNNWEKJKN1)由式(41)可以看出旋转因子的实部为余弦函数,虚部为正弦函数。为了获得FFT运算中需要的全部旋转因子,需要分别存储正弦表和余弦表,且每个表长度为,对应于N0180,同时,采用循环寻址方式对正弦表和余弦表进行寻址。44实现点复数FFT运算N当2256时,128点复数FFT运算过程分成七级、3个阶段实现,这三个阶段是第一级蝶形运算,第二级蝶形运算,第三级第级蝶形运算,以下分别介绍这三个2LOGN阶段的蝶形运算。蝶形运算每一级的所有输出都除以2以防溢出,所使用寄存器定义如下第一级和第二级蝶形运算AR0到下一个蝶形运算的偏移量AR2指向第一个蝶形的输入数据PR和PIAR3指向第二个蝶形的输入数据QR和QIAR7数据的起始地址剩余级的蝶形运算AR0旋转因子表索引AR1组计数器AR2指向WR(COSINE表)AR3指向WISINE表AR6蝶形运算次数计数器AR7蝶形级数计数器441第一级蝶形运算第一级蝶形运算的程序如下STM0,BK循环缓冲器大小BK0LD1,ASM每一级的输出都除以2MVMMAR7,AR2AR2指向第一个蝶形的输入数据实部PRSTMDATA2,AR3AR3指向第二个蝶形的输入数据实部QRSTMN/21,BRCLDAR2,16,ARPTBDS1END1APRSTM3,AR0块重复SUBAR3,16,A,BBPRQRADDAR3,16,AAPRQRSTHA,ASM,AR2PRPRQR/2STB,AR3QRPRQR/2|LDAR2,AAPISUBAR3,16,A,BBPIQIADDAR3,16,AAPIQISTHA,ASM,AR20PIPIQI/2STB,AR30QIPIQI/2|LDAR2,AAPR在进行第一级蝶形运算时,仅用到旋转因子,而1,故此时蝶形运算化简为0NW01MMDPDQ(42)(43)1M在式(42)和(43)中,和表示蝶形输入,和表示蝶形DPMQ1MDP1Q输出。由于该蝶形运算仅包含加减运算,容易实现,因此在编程时单独处理了。还有,在程序中用到了许多并行指令,其目的是使程序运行的更快即减少了FFT运算的时间。442第二级蝶形运算第二级蝶形运算的程序如下MVMMAR7,AR2AR2指向PRSTMDATA4,AR3AR3指向QRSTMN/41,BRCLDAR2,16,AAPRRPTBDS2END1STM5,AR0SUBAR3,16,A,BBPRQRADDAR3,16,AAPRQRSTHA,ASM,AR2PRPRQR/2STB,AR3QRPRQR/2|LDAR2,AAPISUBAR3,16,A,BBPIQIADDAR3,16,AAPIQISTHA,ASM,AR2PIPIQI/2STHB,ASM,AR3QIPIQI/2MARAR3ADDAR2,AR3,AAPRQISUBAR2,AR3,BBPRQISTHA,ASM,AR2PRPRQI/2SUBAR2,AR3,AAPIQRSTB,AR3QRPRQI/2|LDAR3,BBQRSTA,AR2PIPIQR/2|ADDAR20,AAPIQRSTA,AR30QIPIQR/2|LDAR2,AAPR此时每组蝶形运算用到的旋转因子都是两个和。参与的蝶形运算同第0NW/40N一级运算时相同,而,则其参与的蝶形运算可用式44和45表示为/4NWJ(44)1MMDPDQJ(45)Q由式(44)和(45)可以看出在第二级运算时也可不涉及乘法运算,因此在编程时也单独处理了。443第三级第级蝶形运算2LOGN第三级到最后一级蝶形运算的程序如下STM512,BK循环缓冲器大小BK512ST128,SAV_SIN初始化旋转因子表如第3级128,,第8级为4STM128,AR0第3级的旋转因子STMTWI2,AR4AR4指向WRSTMTWI1,AR5AR5指向WISTM3LOGN,AR7初始化级计数器ST1N/8,SAV_GRP初始化组计数器STM3,AR6初始化蝶形运算计数器ST8,SAV_IDX初始化输让入数据索引STAGESTMDATA,AR2LDSAV_IDX,AADDAR2,ASTLMA,AR3MVDKSAV_GRP,AR1GROUPMVMDAR6,BRCRPTBDBEND1LDAR4,TMPYAR3,AMACRAR50,AR3,AADDAR2,16,A,BSTB,AR2|SUBAR2,BSTB,AR3|MPYAR3,AMASRAR3,AR40,AADDAR2,16,A,BSTB,AR3|SUBAR2,BLDAR4,TSTB,AR2|MPYAR3,ABENDPSHMAR0MVDKSAV_IDX,AR0MARAR20MARAR30BANZDGROUP,AR1POPMAR0MARAR3LDSAV_IDX,ASUB1,A,BSTLMB,AR6STLA,1,SAV_IDXLDSAV_GRP,ASTLA,ASM,SAV_GRPLDSAV_SIN,ASTLA,ASM,SAV_SINBANZDSTAGE,AR7MVDKSAV_SIN,AR0在第三级到最后一级蝶形运算中,组内蝶形运算的次数逐渐增多,而且多是乘法运算,单独处理是不可取的,因此这段运算采用相同的程序块来实现。最终所得的结果可用式(46)表示0,1,(4,DKFDNRKIJ1N6)式(46)中,和分别表示复数的实部和虚部。RID444功率谱计算的实现POWERSTMOUTPUT,AR3AR3指向输出缓冲地址STM255,BRC块循环计数器设置为255RPTBDPOWER_END1带延迟方式的重复指令执行STMDATA,AR2AR2指向AR0SQURAR2,AAAR2SQURAAR2,AAAR2AI2STHA,7,AR3将A中的数据存入输出缓冲中ANDM7FFFH,AR3避免输出数据过大显示错误POWER_ENDBPOWER_ENDEND为了便于观察FFT的运算结果,需要求出信号的频谱。经过第三级到最后一级蝶形运算之后,已经得到式(47)所示(4AKRIKJ7)故功率谱可以通过式(48)计算得到(422KI8)为了省去开方的复杂运算,此程序中仅求的实部和虚部的二次方和既可,它同AK样可以反映功率谱的特征。通过软件仿真,可以观察到输入信号的时间波形和频谱波形以及输出信号的功率谱波形。45参数计算由于程序中一共分为512个点,所以每个点所占的度数为360/512。那么假设从0开始计算,第个点的度数就为度,即(360/512)N。然后求每个点不同度数下的正NN弦值,即SIN(360/512)N的值。函数值SIN(360/512)N1都为从0到2的正数。每个字中能存入四位16进制数即7FFFH,换算成十进制数为32767,幅值应为其的一半等于163835,所以公式前还应该乘以它的幅值,综上所述,最后的输出结果应该是Y163835SIN(360/512)N1。根据同样的原理可以计算出余弦函数值。5程序的调试我们编写的每一个程序都需要进行调试,恰好本次课程设计的主要目的就是能正确的调试程序,使程序最终输出正确的结果。在程序的调试过程中我遇到了许多困难。首先,在编译时有两个错误是认为因素造成的,有一个是因为把指令的拼音打错了,还有一个是因为在程序的最开始多留出一行,由于DSP的汇编指令要求非常严格,所以在编写程序时应该注意书写的格式。其次,还有两个错误就是,正弦表和余弦表这两个文件打不开或者是不存在,这两个错误我们几个同学改了很长时间也没找出原因,后来在吕老师的指点下,终于把这两个错误给解决了。我在创建工程时,直接把正弦表和余弦表这两个表放在了ASM文件中了,其实应该在所建工程里再另外创建两个窗口,把正弦表存在一个文件夹中,把余弦表存在一个文件夹中。最后还有一个问题就是,当编译和链接都没有问题时,在LOADPROGRAM时发现OUT文件又加载不过去了,经过查找发现MEMORY和SECTION这两个地方的指令都是小写的,把小写的字母都改成大写的之后,问题不存在了解决了。这可真的是应了那句话啊实践出真知啊。6工作过程分析61程序的初始化256点实数FFT的程序主要由4部分组成,分别是位反转子程序,FFT核心计算子程序,奇偶分离及结果产生子程序,还有功率谱计算子程序。首先在程序的开始应对程序进行初始化,程序的初始化包括为输入数据和旋转因子表定义变量,还有是在此段程序中设置复数数据的个数以及FFT运算的级数,还设置了正弦表和余弦表。62位倒序子程序在编写位倒序子程序时,使用C54XDSP提供的位倒序寻址方式,可以方便的实现位倒序操作。在该寻址方式下,用AR0存放数据,用另外的辅助寄存器ARX存放原/2N始数据的首地址,位倒序操作把AR0中的数加到ARX中,且以向右进位的方式进行,则所得地址将以位倒序的方式产生。63FFT计算当2256时,128点复数FFT运算过程分成七级、3个阶段实现,这三个阶段是N第一级蝶形运算,第二级蝶形运算,第三级第级蝶形运算,以下分别分析这三个2LOGN阶段蝶形运算的工作过程。第一级和第二级蝶形运算仅包含加减运算,容易实现,因此在编程时单独处理了。在第三级到最后一级蝶形运算中,组内蝶形运算的次数逐渐增多,而且多是乘法运算,单独处理是不可取的,因此这段运算采用相同的程序块来实现。蝶形运算的主要思想就是,输入数据乘以旋转因子得到下一级的输出,所以在运算之前先要计算出这一级的旋转因子。而旋转因子又是一个复数运算,因此在程序中设置了正弦表和余弦表,通过查这两个表来计算旋转因子。最后来确定FFT的输出值。正弦系数表和余弦系数表由文件(TWIDDLE1INC和TWIDDLE2INC)给出,主程序通过COPY汇编命令将正弦系数和余弦系数与程序代码汇编在一起(也可以用INCLUDE命令从TWIDDLE1INC和TWIDDLE2INC文件中读入系数。数据文件TWIDDLE1INC和TWIDDLE2INC分别给出FFT的正弦系数、余弦系数各512个。利用此系数表可以完成81024点的FFT运算。64功率谱的计算对信号进行傅里叶变换,取SIN部分为实部,COS部分为虚部,直接算实部和虚部的平方和,得到的就是功率谱分布。功率信号的功率谱反应了信号功率随频率分布的特点,功率谱是信号先自相关再作FFT变换。在CCS下进行程序调试和结果显示为输入信号时域波形图、输入信号频域波形图和输出信号功率谱。三个图见附录。参考文献1俞一彪,孙兵数字信号处理理论与应用南京东南大学出版社,20052李行一数字信号处理重庆重庆大学出版社,20023郭森楙,颜允圣数字信号处理器体系结构、实现与应用北京清华大学出版社,20054姜沫岐,许涵,俞鹏,段国强DSP原理与应用从入门到提高北京机械工业出版社,20075俞卞章数字信号处理西安西北工业大学出版社,20026王安国数字信号处理基础北京电子工业出版社,2003附录A1程序清单FFTASM程序清单TITLE“CSCSASM“MMREGSGLOBALRESET,START,SAV_SIN,SAV_IDX,SAV_GRPDEFSTART,_C_INT00DATADATASPACE1024COPY“MDATAINC“NSET128LOGNSET7SAV_GRPUSECT“TEMPV“,3SAV_SINSETSAV_GRP1SAV_IDXSETSAV_GRP2OUTPUTUSECT“OUTPUT“,256BOSUSECT“STACK“,0FHTOSUSECT“STACK“,1COPY“TWIDDLE1INC“COPY“TWIDDLE2INC“TEXT_C_INT00BSTARTNOPNOPSTARTSTMTOS,SPLD0,DPSSBXFRCTSTM2N,BKSTMINPUT,AR3STMDATA,AR7MVMMAR7,AR2STMN1,BRCRPTBDPLEND1STMN,AR0LDMAR3,AREADAAR2ADD1,AREADAAR2MARAR30BP1ENDSTM0,BKLD1,ASMMVMMAR7,AR2STMDATA2,AR3STMN/21,BRCLDAR2,16,ARPTBDSLEND1STM3,AR0SUBAR3,16,A,BADDAR3,16,ASTHA,ASM,AR2STB,AR3|LDAR2,ASUBAR3,16,A,BADDAR3,16,ASTHA,ASM,AR20STB,AR30|LDAR2,AS1ENDMVMMAR7,AR2STMDATA4,AR3STMN/41,BRCLDAR2,16,ARPTBDS2END1STM5,AR0SUBAR3,16,A,BADDAR3,16,ASTHA,ASM,AR2STB,AR3|LDAR2,ASUBAR3,16,A,BADDAR3,16,ASTHA,ASM,AR2STHB,ASM,AR3MARAR3ADDAR2,AR3,ASUBAR2,AR3,BSTHA,ASM,AR2SUBAR2,AR3,ASTB,AR3|LDAR3,BSTA,AR2|ADDAR20,ASTA,AR30|LDAR2,AS2ENDSTM512,BKST128,SAV_SINSTM128,AR0STMTWI2,AR4STMTWI1,AR5STM3LOGN,AR7ST1N/8,SAV_GRPSTM3,AR6ST8,SAV_IDXSTAGESTMDATA,AR2LDSAV_IDX,AADDAR2,ASTLMA,AR3MVDKSAV_GRP,AR1GROUPMVMDAR6,BRCRPTBDBEND1LDAR4,TMPYAR3,AMACRAR50,AR3,AADDAR2,16,A,BSTB,AR2|SUBAR2,BSTB,AR3|MPYAR3,AMASRAR3,AR40,AADDAR2,16,A,BSTB,AR3|SUBAR2,BLDAR4,TSTB,AR2|MPYAR3,ABENDPSHMAR0MVDKSAV_IDX,AR0MARAR20MARAR30BANZDGROUP,AR1POPMAR0MARAR3LDSAV_IDX,ASUB1,A,BSTLMB,AR6STLA,1,SAV_IDXLDSAV_GRP,ASTLA,ASM,SAV_GRPLDSAV_SIN,ASTLA,ASM,SAV_SINBANZDSTAGE,AR7MVDKSAV_SIN,AR0STMDATA2,AR2STMDATA2N2,AR3STMDATA2N3,AR7STMDATA4N1,AR6STM2N/2,BRCRPTBDP3END1STM3,AR0ADDAR2,AR3,ASUBAR2,AR3,BSTHA,ASM,AR2STHA,ASM,AR3STHB,ASM,AR6NEGBSTHB,ASM,AR7ADDAR2,AR3,ASUBAR2,AR3,BSTHA,ASM,AR2STHA,ASM,AR30STHB,ASM,AR6NEGBSTHB,ASM,AR70P3ENDST0,AR6ST0,AR6P3TESTSTMDATA,AR2STMDATA1,AR4STMDATA2N1,AR5ADDAR2,AR4,ASUBAR2,AR4,BSTHA,ASM,AR2ST0,AR2MVDDAR2,AR5STHB,ASM,AR5STMDATA4N1,AR3STMTWI2512/N,AR4STMTWI1512/N,AR5STMN2,BRCRPTBDP4END1STM512/N,AR0LDAR2,16,AMACRAR4,AR2,AMASRAR5,AR3,ALDAR3,16,BMASRAR50,AR2,BMASRAR40,AR3,BSTHA,ASM,AR2STHB,ASM,AR2NEGBSTHB,ASM,AR3STHA,ASM,AR3P4ENDPOWERSTMOUTPUT,AR3STM255,BRCRPTBDPOWER_END1STMDATA,AR2SQURAR2,ASQURAAR2,ASTHA,7,AR3ANDM7FFFH,AR3POWER_ENDBPOWER_ENDEND/FFTCMD/MEMORYPAGE0ROMRIXORIGIN5000H,LENGTH1000HROM1ORIGIN6000H,LENGTH0200HPAGE1B2ARWORIGIN0060H,LENGTH10HB2BRWORIGIN0070H,LENGTH10HINTRAM1RWORIGIN0400H,LENGTH0200HINTRAM2RWORIGIN0800H,LENGTH0200HINTRAM3RWORIGIN1400H,LENGTH0800HOTHERORIGIN2000H,LENGTH800HSECTIONSTEXTROMPAGE0INPUTROM1PAGE0DATAINTRAM3PAGE1TWIDDLE1INTRAM1PAGE1TWIDDLE2INTRAM2PAGE1TEMPVB2APAGE1STACKB2BPAGE1OUTPUTOTHERPAGE1STACKOTHERPAGE1正弦系数表文件TWIDDLE1INCTWI1SECT“TWIDDLE1“INT0,201,402,603,804,1005,1206,1407,1607,1808,2009,2210INT2410,2611,2811,3011,3211,3411,3611,3811,4011,4210,4409,4609INT4808,5006,5205,5403,5602,5800,5997,6195,6392,6589,6786,6983INT7079,7375,7571,7766,7961,8156,8351,8545,8739,8933,9126,9319INT9512,9704,9896,10087,10278,10469,10659,10849,11039,11228,11416,11605INT11793,11980,12167,12353,12539,12725,12910,13094,13278,13462,13645,13828INT14010,14191,14372,14552,14732,14912,15090,15269,15446,15623,15800,15976INT16151,16325,16499,16679,16846,17018,17189,17360,17530,17700,17869,18037INT18204,18371,18537,18703,18868,19032,19195,19358,19519,19681,19841,20001INT20159,20318,20475,20631,20787,20942,21097,21250,21403,21555,21706,21856INT22005,22154,22301,22448,22594,22740,22884,23027,23170,23312,23453,23593INT23732,23870,24007,24144,24279,24414,24547,24680,24812,24943,25073,25201INT25330,25457,25583,25708,25832,25955,26077,26199,26319,26438,26557,26674INT26790,26905,27020,27133,27245,27356,27466,27576,27684,27791,27897,28002INT28106,28208,28310,28411,28511,28609,28707,28803,28898,28993,29086,29178INT29269,29359,29447,29535,29621,29707,29791,29874,29956,30037,30117,30196INT30273,30350,30425,30499,30572,30644,30714,30784,30852,30919,30985,31050INT31114,31176,31237,31298,31357,31414,31471,31526,31581,31634,31685,31736INT31785,31834,31881,31927,31971,32015,32057,32098,32138,32176,32214,32250INT32285,32319,32351,32383,32413,32442,32469,32496,32521,32545,32568,32589INT32610,32629,32647,32663,32679,32693,32706,32718,32728,32737,32745,32752INT32758,32762,32765,32767,32767,32767,32765,32762,32758,32752,32745,32737INT32728,32718,32706,32693,32679,32663,32647,32629,32610,32589,32568,32545INT32521,32496,32469,32442,32413,32383,32351,32319,32285,32250,32214,32176INT32138,32098,32057,32015,31971,31927,31881,31834,31785,31736,31685,31634INT31581,31526,31471,31414,31357,31298,31237,31176,31114,31050,30985,30919INT30852,30784,30714,30644,30572,30499,30425,32350,30273,30196,30117,30037INT29956,29874,29791,29707,29621,29535,29447,29359,29269,29178,29086,28993INT28898,28803,28707,28609,28511,28411,28310,28208,28106,28002,27897,27791INT27684,27576,27466,27356,27245,27133,27020,26905,26790,26674,26557,26438INT26319,26199,26077,25955,25832,25708,25583,25457,25330,25201,25073,24943INT24812,24680,24547,24414,24279,24144,24007,23870,23732,23593,23453,23312INT23170,23027,22884,22740,22594,22448,22301,22154,22005,21856,21706,21555INT21403,21250,21097,20942,20787,20631,20475,20318,20159,20001,19841,19681INT19519,19358,19195,19032,13868,18703,18537,18371,18204,18037,17869,17700INT17530,17360,17189,17018,16846,16673,16499,16325,16151,15976,15800,15623INT15446,15269,15090,14912,14732,14552,14372,14191,14010,13828,13645,13462INT13278,13094,12910,12725,12539,12353,12167,11980,11793,11605,11416,11228INT11039,10849,10659,10469,10278,10087,9896,9704,9512,9319,9126,8933INT8739,8545,8351,8156,7961,7766,7571,7375,7179,6983,6786,6589INT6392,6195,5997,5800,5602,5403,5205,5006,4808,4609,4409,4210INT4011,3811,3611,3411,3211,3011,2811,2611,2410,2210,2009,1808INT1607,1407,1206,1005,804,603,402,201余弦系数表文件TWIDDLE2INCTWI2SECT“TWIDDLE2“INT32767,32767,32765,32762,32758,32752,32745,32737,32728,32718,32706,30693INT32679,32663,32647,32629,32610,32589,32568,32545,32521,32496,32469,32442INT32413,32383,32351,32319,32285,32250,32214,32176,32138,32098,32057,32015INT31971,31927,31881,31834,31785,31736,31685,31634,31581,31526,31471,31414INT31357,31298,31237,31176,31114,31050,30985,30919,30852,30784,30714,30644INT30572,30499,30425,32350,30273,30196,30117,30037,29956,29874,29791,29707INT29621,29535,29447,29359,29269,29178,29086,28993,28898,28803,28707,28609INT28511,28411,28310,28208,28106,28002,27897,27791,27684,27576,27466,27356INT27245,27133,27020,26905,26790,26674,26557,26438,26319,26199,26077,25955INT25832,25708,25583,25457,25330,25201,25073,24943,24812,24680,24547,24414INT24279,24144,24007,23870,23732,23593,23453,23312,23170,23027,22884,22740INT22594,22448,22301,22154,22005,21856,21706,21555,21403,21250,21097,20942INT20787,20631,20475,20318,20159,20001,19841,19681,19519,19358,19195,19032INT13868,18703,18537,18371,18204,18037,17869,17700,17530,17360,17189,17018INT16846,16673,16499,16325,16151,15976,15800,15623,15446,15269,15090,14912INT14732,14552,14372,14191,14010,13828,13645,13462,13278,13094,12910,12725INT12539,12353,12167,11980,11793,11605,11416,11228,11039,10849,10659,10469INT10278,10087,9896,9704,9512,9319,9126,8933,8739,8545,8351,8156INT7961,7766,7571,7375,7179,6983,6786,6589,6392,6195,5997,5800INT5602,5403,5205,5006,4808,4609,4409,4210,4011,3811,3611,3411INT3211,3011,2811,2611,2410,2210,2009,1808,1607,1407,1206,1005,804,603INT402,201,0,201,402,603,804,1005,1206,1407,1607,1808,2009INT2210,2410,2611,2811,3011,3211,3411,3611,3811,4011,4210INT4409,4609,4808,5006,5205,5403,5602,5800,5997,6195,6392,6589INT6786,6983,7079,7375,7571,7766,7961,8156,8351

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论