FFT 相位差算法的 C 语言实现 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行认真校对,但是难免会有疏漏的地方,但是任然希望(FFT 相位差算法的 C 语言实现)的内容能够给您的工作和学习带来便利
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力
本文可编辑可修改,假如觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为 FFT 相位差算法的 C 语言实现的全部内容
/*此算法为 FFT 相位差算法的 C 语言实现,经验证可用(网上有很多此类程序无法运行);前半部分为 FFT 算法的子程序,也可用作其它用途*/#include 〈stdio
h〉#include #include 〈math
h>typedef struct {double real,imag;} complex;complex cexp(complex a){ complex z; z
real=exp(a
real)*cos(a
imag); z
imag=exp(a
real)*sin(a
imag); return(z); }void mcmpfft(complex x[],int n,int isign){ complex t,z,ce; double pisign; int mr,m,l,j,i,nn; for(i=1;i16) { printf(” N is not a power of 2
\n"); return; } z
real=0
0; pisign=4*isign*atan(1
); /*pisign 的值为+180 度或-180 度*/ mr=0; for(m=1;m〈n;m++) {l=n; while(mr+l>=n) l=l/2; mr=mr%l+l;