偶分成2个短序列进行计算。而DIF FFT算法是在频域内将每一级输入序列依次奇/偶分成2个短序列进行计算。两者的区别是旋转因子出现的位置不同,得算法是一样的。在DIF FFT算法中,旋转因子出现在输入端,而在DIFFFT算法中它出现在输入端。假定序列x(n)的点数N是2的幂,按照DIFFFT算法可将其分为偶序列和奇序列。
偶序列:x(2r)=x1(r)
奇序列:x(2r+1)=x2(r) 其中:r=0,1,2,?,N/2-1 则x(n)的DFT表示为:
式中,x1(k)和x2(k)分别为x1(r)和x2(r)的N/2的DFT。由于对称性,WNk+N/2=-WNk。因此,N点DFT可分为两部分:
前半部分:x(k)=x1(k)+WkNx2(k) (1) 后半部分:x(N/2+k)=x1(k)-WkNx2(k) k=0,?,N/2-1 (2)
从式(1)和式(2)可以看出,只要求出0~N/2-1区间x1(k)和x2(k)的值,就可求出0~N-1区间x(k)的N点值。以同样的方式进行抽取,可以求得N/4点的DFT,重复抽取过程,就可以使N点的DFT用上组2点的 DFT来计算,这样
就可以大减少运算量。
基2 DIF FFT的蝶形运算如图3.3.1所示。设蝶形输入为X1(k)和X2((K),输出为x(k)和x(N/2+K),则有
x(k)=x1(k)+WkNx2(k) (6) x(N/2+k)=x1(k)-WkNx2(k) (7)
在基数为2的FFT中,设N=2M,共有M级运算,每级有N/2个2点FFT蝶形运算,因此,N点FFT总共有MN/2个蝶形运算。
图3.3.1 基2 DIF FFT的蝶形运算
例如:基数为2的FFT,当N=8时,共需要3级,12个基2 DIT FFT的蝶形运算。其信号流程如图3.3.2所示。
图3.3.2
从图可以看出,输入是经过比特反转的倒位序列,称为位码倒置,其排列顺序为x(0),x(4),x(2),x(6),x(1),x(5),x(3),x(7),输出是按自然顺序排列,其顺序为x(0),x(1),x(2),x(3),x(4),x(5),x(6),x(7).
在本设计中,信号的频谱通过FFT算法得出,FFT算法可以自己编写,也可以调用55xdsp.lib库rfft或cfft函数。调用库函数的需要在工程中添加库文件55xdsp.lib,并且在程序中包含头文件dsplib.h。调用的时候入口参数是时域信号地址,返回处理后的FFT信号,注意返回值不包含求模过程,而是交替返回实部和虚部。本实验采用自己编写的基2频率抽取法计算FFT。
3.4 “ping-pong”存储方式
Ping-pong存储方式在内存开辟四块存储区,分别是gBufferRcvPing、gBufferRcvPong、gBufferXmtPing、gBufferXmtPong,其中前两块用于DMA接收,后两块用于DMA发送。目的是将正在接收或发送的区域与正在处理的区域分离
开。这个过程通过变量“pingpong”控制,以进入中断时pingpong=0为例,进入终端后将其值改为1,将DMA接收目的区改为gBufferRcvPong,处理gBufferRcvPing的数据,并将处理的数据发往gBufferXmtPing,而同时DMA发送源是gBufferXmtPong,这样发送和接收都不冲突。
本实验中gBufferRcvPing/gBufferRcvPong接收到的数据是左右声道交替的,因此要将接收回来的数据根据左右两声道分成两个数组存放,再将每一个声道的实部和虚部存到DDataBuffer[i].real/ DDataBuffer[i].imag当中,做256点FFT变换后求模值得到幅度谱,再将经过防溢出处理的数据存入gBufferRcvPing/gBufferRcvPong中。重复循环上述过程即可实现实时信号谱的分析。
4、实验步骤
(1)新建工程,正确设置工程选项(build option),设置工程的存储器模式、头文件路径及库文件路径等,注意工程存放路径不能有中文名;
(2)编写工程所需的所有实验源程序,实验程序包括c文件、h文件、cmd文件、GEL文件、中断向量s55文件等,并添加进工程;
(3)将仿真器等硬件正确连接上,注意音频输入输出方向是否正确。将音频立体声输入J5接电脑耳机输出口,将J7接电脑语音录入口;
(4)按F7键编译连接生成obj文件(无错误时),若程序有错误则查看错误信息,双击错误处光标自动跳转到错误处,直到排除所有错误;
(5)点击file菜单下load program载入程序,将程序下载在DSP芯片中,点击“run”或按键F5全速运行;
(6)使用变量观察图形观察窗等工具观察分析输入输出信号是否与预期效果相同;
(7)系统调试、代码优化等;
(8)确定最终方案,撰写设计报告。
5、实验结果及分析
图1为左右声道分别输入频率为2kHz和5kHz的正弦信号,示波器输出图像:
图1
图2为信号源输入情况显示:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库dsp实验报告 - 实时信号谱分析new(2)在线全文阅读。
相关推荐: