- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于DSP的C程序实验报告------快速傅立叶变换(FFT)算法
目录
引言
实验原理
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)次实数加法。如此一来,计算时乘法次数和加法次数都是和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 点实数的连续输入称为“进包”。其次N 点的FFT 被连续运行。最后作为结果产生的N 点的合成输出是“打开”成为最初的与DFT 相符合的2N 点输入。
三.FFT 的基本结构:
1.FFT信号流图如下:
整个过程共有log2N次,每次分组间隔为2^(L-1)----------------1=L=log2N
(1)如上图第一次蝶形运算间隔为一,如第一个和第二个,第三个和第四个,以此类推;
第二次间隔为二,如第一个和第三个,第二个和第四个等
(2)基本运算单元以下面的蝶形运算为主:
计算公式如下:
(3)在FFT运算中,旋转因子WmN=cos(2πm/N)-jsin(2πm/N),求正弦和余弦函数值的计算量是很大的。
(4)本程序采用的输入信号为:1024*sin(2*pi*3*t),采样频率为1024
2.程序流程图:
四.实验程序
#include?DSP281x_Device.h?????//?DSP281x?Headerfile?Include?File#include?DSP281x_Examples.h???//?DSP281x?Examples?Include?File#include?f2812a.h#includemath.h#define?PI?3.1415926#define?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[SAMPLENUMBER];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;iSAMPLENUMBER;i++?){x0=x1=x2=x3=x4=x5=x6=0;x0=i0x01;?x1=(i/2)0x01;?x2=(i/4)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;iSAMPLENUMBER;i++?){dataR[i]=dataI[i];?dataI[i]=0;?}/**************?
您可能关注的文档
最近下载
- 储能电站项目可行性研究报告.docx
- 2024重庆公共运输职业学院招聘7人笔试备考题库及答案解析.docx VIP
- 华为IPD流程管理体系L1-L5最佳实践及落地实施.pptx VIP
- 铁路内燃机车司机高级技师理论题库(含答案).docx VIP
- 2026届高三语文开学第一课.pptx VIP
- 最新:脑卒中后吞咽障碍患者进食护理——2023中华护理学会团体标准课件.pptx VIP
- 2025重庆公共运输职业学院招聘13人笔试备考试题及答案解析.docx VIP
- 动词过去式不规则变化.doc VIP
- “十八项医疗质量安全核心制度”知识竞赛.docx VIP
- 2024重庆公共运输职业学院招聘1人笔试备考试题及答案解析.docx VIP
文档评论(0)