文档介绍:C语言程序设计快速傅立叶变换李喜付(东北农业大学工程学院)班级机化0802姓名李喜付学号A07070244指导教师范永存快速傅立叶变换摘要实现二维快速傅立叶变换,这是第一次通过读程序流程图来设计程序,同时也将借此实例学****C语言实现矩阵的基本操作、复数的基本操作,复****前面所学过的动态内存分配、文件操作、结构指针的函数调用等内容。关键词C语言程序设计傅立叶变换C语言论文程序流程图i<k?nv=nv/2i=0,t=0,j=0,nv=lmp=wsx(j+t+nv)X(j+t+nv)=x(j+t)+mpS=(t+j)/(k-i-1)S=IBR(s)j<nv/2?t<l?j++t=t+nvEND整序 本程序将对二维数组进行正、反快速快速傅立叶变换。#include<>#include<>#include<>#{Floatre;Floatim;}cplx,*hfield,*s,*r,*w;Intn,m;Intln,lm;Voidinitiate();Voiddfft();Voidrdfft();Voidshowresult();Voidfft(intl,intk);Voidreverse(intt,intk);Voidw(intl);Intloop(intl);Voidconjugate();Voidadd(plex*x,plex*y,plex*z);Voidsub(plex*x,plex*y,plex*z);Voidmul(plex*x,plex*y,plex*z);plex*hread(intj,intj);Voidhwrite(inti,intj,plexx);Voidmain();{Initiate();Printf("\n原始数据:\n");Showresult();Getchar();Dfft();Printf("\n快速傅立叶变换后的结果:\n");Showresult();Getchar();Rdfft();Printf("\n快速傅立叶你变换后的结果:\n");Showresult();Getchar();Free(hfield);}Voidinitiate()File*df;df=fopen("","r");Fscanf(df,"%5d",&n);Fscanf(df,"%5d",&m);If((ln=loop(n))==-1){Printf("列数不是2的整数次幂");Exit(1);}If((lm=loop(m))==-1){Printf("行数不是2的整数次幂");Exit(1);}Hfield=(plex*)malloc(n*msizeof(cplx));If(fread(hfield,sizeof(cplx),m*n,df)!=(unsigned)(m*n)){If(feof(df))printf("prematureendoffile");Elseprintf("filereaderror");}Fclose(df);}Voiddfft(){Inti,j;Intl,k;l=n;k=ln;w=(plex*)calloc(l,sizeof(cplx));r=(plex*)calloc(l,sizeof(cplx));s=(plex*)calloc(l,si