ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:51.44KB ,
资源ID:7120508      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7120508.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FFT快速算法C程序.doc)为本站会员(fmgc7290)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

FFT快速算法C程序.doc

1、电子信息工程综合课程设计报告书DSP 课 程 设 计 报告题 目: FFT 快速算法 C 程序学 院: 计算机与信息工程学院专业班级: 09 级电子信息工程 2 班小组成员: 刘森 指导教师: 杨龙时间: 2012 年 03 月 21 日目录1. 设计目的 31.1. 设计目的 31.2. 使用设备 32. 设计任务与要求 43. 原理与分析 44. 实验步骤 55. 实验程序 76. 心得体会 .101 设计目的1.1. 设计目的1掌握用窗函数法设计 FFT 快速傅里叶的原理和方法; 2熟悉 FFT 快速傅里叶特性; 3了解各种窗函数对快速傅里叶特性的影响。1.2. 使用设备PC 兼容机一台

2、,操作系统为 Windows2000(或 Windows98,WindowsXP,以下默认为 Windows2000),安装 TC 软件。 2 设计任务与要求1 按 FFT 流程设计程序;2 实现程序的抽样 输入倒位序输出自然序3 可以观察到各次谐波3 原理与分析1 FFT 的原理和参数生成公式 )()()()()( 2121202120 kXWkrxWrxk NkNkNN 公式(1)FFT 运算公式 FFT 并不是一种新的变换,它是离散傅立叶变换(DFT )的一种快速算法。由于我们在计算 DFT 时一次复数乘法需用四次实数乘法和二次实数加法;一次复数加法则需二次实数加法。每运算一个 X( k

3、)需要 4N 次复数乘法及 2N+2(N-1)=2(2N-1 )次实数加法。所以整个 DFT 运算总共需要 4N2 次实数乘法和 N*2(2N-1)=2N(2N-1)次实数加法。如此一来,计算时乘法次数和加法次数都是和 N2 成正比的,当 N 很大时,运算量是可观的,因而需要改进对 DFT 的算法减少运算速度。 根据傅立叶变换的对称性和周期性,我们可以将 DFT 运算中有些项合并。 我们先设序列长度为 N=2L,L 为整数。将 N=2L 的序列 x(n)(n=0,1,,N-1),按 N 的奇偶分成两组,也就是说我们将一个 N 点的 DFT 分解成两个 N/2 点的 DFT,他们又重新组合成一个

4、如下式所表达的 N 点 DFT: 一般来说,输入被假定为连续的。当输入为纯粹的实数的时候,我们就可以利用左右对称的特性更好的计算 DFT。 我们称这样的 RFFT 优化算法是包装算法:首先 2N 点实数的连续输入称为“进包” 。其次 N 点的 FFT 被连续被运行。最后作为结果产生的 N 点的合成输出是“打开”成为最初的与 DFT 相符合的 2N 点输入。 使用这战略,我们可以划分 FFT 的大小,它有一半花费在包装输入 O (N )的操作和打开输出上。这样的 RFFT 算法和一般的 FFT 算法同样迅速,计算速度几乎都达到了两次 DFT 的连续输入。下列一部分将描述更多的在 TMS320C5

5、4x 上算法和运行的细节。2 程序流程图开始初始化工作变量调用波形发生子程序产生波形(3 个正弦波)调用 FFT 子程序计算当功率谱波形发生计算步长用标准 C 的 sin函数计算当前波形值(8 点)结束FFT按照编码逆序排列输入序列返回计算结果用蝶形算法计算计算功率谱4 实验步骤1实验准备-启动 TC。2打开工程,编写程序;3编译连接,并查看 user screen;5 实验程序#include#include/*定义结构体*/struct cmplex float zhen;float jia;/*复乘*/struct cmplex ls(struct cmplex a1,struct cm

6、plex a2) struct cmplex c;c.zhen=a1.zhen*a2.zhen-a1.jia*a2.jia;c.jia=a1.zhen*a2.jia+a1.jia*a2.zhen;return(c);void main()int i,k,N=8,nv,nm,j=0,m,le,le1,ip;float pai=3.1415926,tmp,sum,*a ;struct cmplex u,w,t,x8;/*抽样函数*/for(i=0;iN;i+)xi.zhen=1;xi.jia=0;for(i=N/2;iN;i+)xi.zhen=-1;xi.jia=0;/*倒位序函数*/nv=N/2

7、;nm=N-1;for(i=0;inm;i+)if(ij)t=xj;xj=xi;xi=t;k=nv;while(k=j)j-=k;k=k/2;j+=k;/*FFT 快速算法*/for(m=1;m=3;m+)le=pow(2,m);le1=le/2;u.zhen=1;u.jia=0;tmp=pai/le1;w.zhen=cos(-tmp);w.jia=sin(-tmp);for(j=0;jle1;j+)for(i=j;iN;i+=le)ip=i+le1;t=ls(xip,u);xip.zhen=xi.zhen-t.zhen;xip.jia=xi.jia-t.jia;xi.zhen+=t.zhen

8、;xi.jia+=t.jia;u=ls(u,w);/*最后输出结果*/printf(“n“);printf(“*n“) ;for(i=0;iN;i+) sum=xi.zhen*xi.zhen+xi.jia*xi.jia;ai=sqrt(sum);printf(“%f n“,ai);最后输出结果:a0=0.000000a1=5.226252a2=0.000000a3=2.164784a4=0.000000a5=2.164784a6=0.000000a7=5.2262526.心得体会首先说明:1 如果为商大的同学,杨龙老师的数字信号处理课程设计 FFT 运算,这个程序无需任何改动直接输出正确结果,然后就是“优秀”到手!2 若为 DSP 爱好者参考使用,则里面的分段程序可供各位学友们参考。心得体会:通过本次课程设计是我对 DSP 有了更深层次的理解,但是我最值得高兴地并非是这次课设的成功,而是经过两天的编程是我对 C 语言有了更深层次的理解也是我的编程能力有了很大的提高。这对于我们以后的电子大赛有着很大的帮助。所以,我建议大家应该重视这次课设,不仅使自己对 DSP 更深层次的理解有很大的帮助,也可以这次编程是大家的 C 语言编程能力有所提高,特别是想要以后参加电子大赛的同学们就应该更加的重视这次课设。-09 电子 刘森

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报