基于DSP的C程序实验报告------快速傅立叶变换(FFT)算法

基于DSP的C程序实验报告------快速傅立叶变换(FFT)算法

ID:47477215

大小:395.89 KB

页数:18页

时间:2020-01-11

基于DSP的C程序实验报告------快速傅立叶变换(FFT)算法_第1页
基于DSP的C程序实验报告------快速傅立叶变换(FFT)算法_第2页
基于DSP的C程序实验报告------快速傅立叶变换(FFT)算法_第3页
基于DSP的C程序实验报告------快速傅立叶变换(FFT)算法_第4页
基于DSP的C程序实验报告------快速傅立叶变换(FFT)算法_第5页
资源描述:

《基于DSP的C程序实验报告------快速傅立叶变换(FFT)算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、目录一.引言二.实验原理三.FFT基本结构(1)信号流图(2)软件程序流图四.实验程序五.调试过程与步骤六.实验结果七.结果分析八.遇到的问题及解决办法九.实验体会实验题目:快速傅立叶变换(FFT)算法一.引言众所周知,FFT是离散傅立叶变换(DFT)的一种快速算法。由于计算DFT时一次复数乘法需用四次实数乘法和二次实数加法;一次复数加法则需二次实数加法。每运算一个X(k)需要4N次复数乘法及2N+2(N-1)=2(2N-1)次实数加法。所以整个DFT运算总共需要4N^2次实数乘法和N*2(2N-1)=2N(2N-1)次实数加法。如此一

2、来,计算时乘法次数和加法次数都是和N^2成正比的,当N很大时,运算量是可观的,因而需要改进对DFT的算法提高运算速度。我们观察DFT的系数特性,可发现其对称性和周期性,我们可以将DFT运算中有些项合并。因此,FFT就孕育而生了。一.实验原理1.FFT的原理和参数生成公式:我们先设序列长度为N=2^L,L为整数。将N=2^L的序列x(n)(n=0,1,……,N-1),按N的奇偶分成两组,也就是说我们将一个N点的DFT分解成两个N/2点的DFT,他们又重新组合成一个如下式所表达的N点DFT:我们称这样的RFFT优化算法是包装算法:首先2N点

3、实数的连续输入称为“进包”。其次N点的FFT被连续运行。最后作为结果产生的N点的合成输出是“打开”成为最初的与DFT相符合的2N点输入。三.FFT的基本结构:1.FFT信号流图如下:整个过程共有log2N次,每次分组间隔为2^(L-1)----------------1=

4、(2πm/N),求正弦和余弦函数值的计算量是很大的。(4)本程序采用的输入信号为:1024*sin(2*pi*3*t),采样频率为10242.程序流程图:四.实验程序#include "DSP281x_Device.h"     // DSP281x Headerfile Include File#include "DSP281x_Examples.h"   // DSP281x Examples Include File#include "f2812a.h"#include"math.h"#define PI 3.1415926#de

5、fine SAMPLENUMBER 128void InitForFFT();void MakeWave();/oid FFT(float dataR[SAMPLENUMBER],float dataI[SAMPLENUMBER]);int INPUT[SAMPLENUMBER],DATA[SAMPLENUMBER];float fWaveR[SAMPLENUMBER],fWaveI[SAMPLENUMBER],w[SAMPLENUMBER];float sin_tab[SAMPLENUMBER],cos_tab[SAMPLENUMBE

6、R];void FFT(float dataR[SAMPLENUMBER],float dataI[SAMPLENUMBER]){int x0,x1,x2,x3,x4,x5,x6,xx;int i,j,k,b,p,L;float TR,TI,temp;/********** following code invert sequence ************/for ( i=0;i

7、0x01; x3=(i/8)&0x01;x4=(i/16)&0x01; x5=(i/32)&0x01; x6=(i/64)&0x01;xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6;dataI[xx]=dataR[i];}for ( i=0;i

8、r(1) */b=1; i=L-1;while ( i>0 ) {b=b*2; i--;} /* b= 2^(L-1) */for ( j=0;j<=b-1;j++ ) /* for (2) */{p=1;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。