VC++的FFT快速傅里叶变换编程设计+流程图+源代码(15)
时间:2016-12-13 22:53 来源:毕业论文 作者:毕业论文 点击:次
x[j+k+l]=down; //down为蝶形单元右下方的值 } } } } void initW() //计算W的实现函数 { int i; W=(complex *)malloc(sizeof(complex) * size_x); /*申请size_x个复数W的空间(这部申请的空间有点多,实际上只要申请size_x/2个即可)*/ for(i=0;i<(size_x/2);i++) /*预先计算出size_x/2个W的值,存放,由于蝶形算法只需要前size_x/2个值即可*/ { W[i].real=cos(2*PI/size_x*i); //计算W的实部 W[i].img=-1*sin(2*PI/size_x*i); //计算W的虚部 } } void change() //输入的码组码位倒置实现函数 { complex temp; unsigned short i=0,j=0,k=0; double t; for(i=0;i<size_x;i++) { k=i; j=0; t=(log(size_x)/log(2)); while((t--)>0) { j=j<<1; j|=(k & 1); k=k>>1; } if(j>i) { temp=x[i]; x[i]=x[j]; x[j]=temp; } } } void output() //输出结果实现函数 (责任编辑:qin) |