并行计算MPI程序设计探索.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
******************* 实践教学 ******************* 兰州理工大学 理学院 2016年春季学期 并行计算课程设计 专业班级: 2013级信息与计算科学 姓名: 学号 指导教师: 成绩: 摘要 FFT,即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。??? 设x(n)为N项的复数序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即N点DFT变换大约就需要N^2次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2点DFT变换需要(N/2)^2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样变换以后,总的运算次数就变成N+2(N/2)^2=N+N^2/2。继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog(2)(N)次的运算,N在1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性 关键字:FFT 蝶式计算 傅里叶变换 目录 摘要 2 目录 3 一、题目及要求 4 1.1题目 4 1.2要求 4 二、算法设计与算法原理 5 2.1 算法原理与设计 5 2.2设计求解步骤 6 三、算法描述与算法流程 7 3.1算法描述 7 3.2 流程图 9 四、源程序代码与运行结果 10 4.1源程序 10 4.2运行结果 16 五、算法分析及其优缺点 17 5.1 算法分析 17 5.2优缺点 18 六、总结 19 七、参考文献 20 一、题目及要求 1.1题目 对给定的α=(1,2,4,3,8,6,7,2),利用串行FFT递归算法(蝶式递归计算原理)计算其傅里叶变换的结果 1.2要求 利用串行递归与蝶式递归原理,对给定的向量求解傅里叶变换的结果 二、算法设计与算法原理 2.1 算法原理与设计 令 为n/2次单位元根,则有 . 将b向量的偶数项和奇数项分别记为 和 注意推导中反复使用 图2.1 2.2设计求解步骤 三、算法描述与算法流程 3.1算法描述 n=8的FFT蝶式计算图 图3.1 图3.2 FFT递归计算流程图 3.2 流程图 飞 是 否 是 否 是 否 图3.3 四、源程序代码与运行结果 4.1源程序 /************FFT***********/ //整个程序输入和输出利用同一个空间x[N],节约空间 #include stdio.h #include math.h #include stdlib.h #define N 1000 //定义输入或者输出空间的最大长度 typedefstruct { double real; doubleimg; }complex; //定义复数型变量的结构体 void

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档