fft报告姜鹏

上传人:第*** 文档编号:38911022 上传时间:2018-05-09 格式:DOC 页数:7 大小:35.61KB
返回 下载 相关 举报
fft报告姜鹏_第1页
第1页 / 共7页
fft报告姜鹏_第2页
第2页 / 共7页
fft报告姜鹏_第3页
第3页 / 共7页
fft报告姜鹏_第4页
第4页 / 共7页
fft报告姜鹏_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《fft报告姜鹏》由会员分享,可在线阅读,更多相关《fft报告姜鹏(7页珍藏版)》请在金锄头文库上搜索。

1、哈尔滨商业大学DSP 课课 程程 设设 计计 报告报告题目题目 快速傅立叶变换(快速傅立叶变换(FFTFFT)算法)算法 专业专业 电子信息工程电子信息工程 班级班级 0909 级级 0202 班班 姓名姓名 学号学号 姜姜 鹏鹏 200910930621200910930621 指导教师指导教师 杨龙杨龙 日期日期 2012 年 3 月 21 日 目录目录1.1. 设计目的设计目的 .3 31.1.设计目的.3 1.2.使用设备.3 2.2. 设计任务与要求设计任务与要求 .4 4 3.3. 原理与分析原理与分析 .4 4 4.4. 实验步骤实验步骤 .5 5 5.5. 实验程序实验程序 .

2、7 7 6.6. 心得体会心得体会 .10101. 设计目的设计目的1.1.设计目的设计目的1掌握用窗函数法设计 FFT 快速傅里叶的原理和方法; 2熟悉 FFT 快速傅里叶特性; 3了解各种窗函数对快速傅里叶特性的影响。1.2.使用设备使用设备PC 兼容机一台,操作系统为 Windows2000(或 Windows98,WindowsXP,以 下默认为 Windows2000),安装 Code Composer Studio 2.0 软件。 2. 设计任务与要求设计任务与要求按 FFT 流程设计程序;3. 原理与分析原理与分析1 FFT 的原理和参数生成公式 )()()()()(21 212

3、02 21201kXWkXWrxWWrxkxk Nrk NNrk Nrk NNr公式(1)FFT 运算公式 FFT 并不是一种新的变换,它是离散傅立叶变换(DFT )的一种快速算法。由于我 们在计算 DFT 时一次复数乘法需用四次实数乘法和二次实数加法;一次复数加法则需二 次实数加法。每运算一个 X(k)需要 4N 次复数乘法及 2N+2(N-1)=2(2N-1)次实数 加法。所以整个 DFT 运算总共需要 4N2 次实数乘法和 N*2(2N-1)=2N(2N-1)次实数加法。 如此一来,计算时乘法次数和加法次数都是和 N2 成正比的,当 N 很大时,运算量是可 观的,因而需要改进对 DFT

4、的算法减少运算速度。 根据傅立叶变换的对称性和周期性,我们可以将 DFT 运算中有些项合并。 我们先设序列长度为 N=2L,L 为整数。将 N=2L 的序列 x(n)(n=0,1,,N-1), 按 N 的奇偶分成两组,也就是说我们将一个 N 点的 DFT 分解成两个 N/2 点的 DFT,他 们又重新组合成一个如下式所表达的 N 点 DFT: 一般来说,输入被假定为连续的。当输入为纯粹的实数的时候,我们就可以利用左右 对称的特性更好的计算 DFT。 我们称这样的 RFFT 优化算法是包装算法:首先 2N 点实数的连续输入称为“进包” 。 其次 N 点的 FFT 被连续被运行。最后作为结果产生的

5、 N 点的合成输出是“打开”成为最 初的与 DFT 相符合的 2N 点输入。 使用这战略,我们可以划分 FFT 的大小,它有一半花费在包装输入 O (N )的操作和打开输出上。这样的 RFFT 算法和一般的 FFT 算法同样迅速,计算速度 几乎都达到了两次 DFT 的连续输入。下列一部分将描述更多的在 TMS320C54x 上算法和 运行的细节。2 程序流程图开始初始化工作变量调用波形发生子程 序产生波形(3 个 正弦波)调用 FFT 子程序 计算当功率谱波形发生计算步长用标准 C 的 sin 函数计算当前波 形值(8 点)结束FFT按照编码逆序排列 输入序列返回计算结果用蝶形算法计算计算功率

6、谱4. 实验步骤实验步骤1实验准备 -启动 TC。 2打开工程,编写程序; 3编译连接,并查看 user screen; 5.实验程序实验程序抽样程序:#include #include void main() int n,N=8,*x; for(n=0;n #include #define N 8 void main() int nv2,nm1,i,k,j=0,x100,t;nv2=N/2; nm1=N-1; for(i=0;i #include #define PI 3.1415926 struct cmplexfloat r;float i;struct cmplex ss(struct

7、 cmplex a,struct cmplex b)struct cmplex c;c.r=a.r*b.r-a.i*b.i;c.i=a.r*b.i+a.i*b.r;return(c); void main() float sum,*a;int k,N=8,i,j=0,f,nv2,nm1,m,l,le,lei,ip;struct cmplex u,w,t,x8;for(i=0;iN/2;i+) xi.r=1;xi.i=0;for(i=N/2;iN;i+) xi.r=-1;xi.i=0;nv2=N/2;nm1=N-1;for(i=0;inm1;i+)if(ij)t=xj;xj=xi;xi=t;k=

8、nv2;while(k=j)j=j-k;k=k/2;j=j+k; f=N;for(l=1;(f=f/2)!=1;l+);for(m=1;m=l;m+)le=pow(2,m);lei=le/2;u.r=1.0;u.i=0.0;w.r=cos(PI/lei);w.i=-sin(PI/lei);for(j=0;j=lei-1;j+)for(i=j;i=N-1;i=i+le)ip=i+lei;t=ss(xip,u);xip.r=xi.r-t.r;xip.i=xi.i-t.i;xi.r=xi.r+t.r;xi.i=xi.i+t.i;u=ss(u,w); for(i=0;iN;i+) sum=xi.r*xi.r+xi.i*xi.i;ai=sqrt(sum);printf(“a%d=%f n“,i,ai); 最后结果: a0=0.000000 a1=5.226252 a2=0.000000 a3=2.164784 a4=0.000000 a5=2.164784 a6=0.000000 a7=5.2262526.心得体会心得体会通过本次实验巩固了理论知识,加强了对本课程的理解,更加熟悉了 DSP 的操作及应 用。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号