欢迎来到天天文库
浏览记录
ID:23794979
大小:379.00 KB
页数:130页
时间:2018-11-10
《附录快速傅立叶变换与反变换程序实例》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、附录一、快速傅立叶变换与反变换程序实例#include#include#definepi(double)3.14159265359/*复数定义*/typedefstruct{doublere;doubleim;}COMPLEX;/*复数加运算*/COMPLEXAdd(COMPLEXc1,COMPLEXc2){COMPLEXc;c.re=c1.re+c2.re;c.im=c1.im+c2.im;returnc;}/*复数减运算*/COMPLEXSub(COMPLEXc1,COMPLEXc2){COM
2、PLEXc;c.re=c1.re-c2.re;c.im=c1.im-c2.im;returnc;}/*复数乘运算*/COMPLEXMul(COMPLEXc1,COMPLEXc2){COMPLEXc;c.re=c1.re*c2.re-c1.im*c2.im;c.im=c1.re*c2.im+c2.re*c1.im;returnc;}/*快速付里哀变换TD为时域值,FD为频域值,power为2的幂数*/voidFFT(COMPLEX*TD,COMPLEX*FD,intpower){intcount;inti,j,k,bfsize,p;d
3、oubleangle;COMPLEX*W,*X1,*X2,*X;/*计算付里哀变换点数*/count=1<4、ngle);W[i].im=sin(angle);}/*将时域点写入存储器*/memcpy(X1,TD,sizeof(COMPLEX)*count);/*蝶形运算*/for(k=0;k5、*(1<6、/*计算付里哀反变换点数*/count=1<7、TD[i].im/count;}/*释放存储器*/free(x);}附录二、快速余弦变换与反变换程序实例(利用2N点付里哀变换实现快速余弦变换)/*快速离散余弦变换,利用快速付里哀变换f为时域值,F为变换域值,power为2的幂数*/voidDCT(double*f,double*F,intpower){inti,count;COMPLEX*X;doubles;/*计算离散余弦变换点数*/count=1<8、*延拓*/memset(X,0,sizeof(COMPLEX)*count*2);/*将时域点写入存储器*/for(i=0;i
4、ngle);W[i].im=sin(angle);}/*将时域点写入存储器*/memcpy(X1,TD,sizeof(COMPLEX)*count);/*蝶形运算*/for(k=0;k5、*(1<6、/*计算付里哀反变换点数*/count=1<7、TD[i].im/count;}/*释放存储器*/free(x);}附录二、快速余弦变换与反变换程序实例(利用2N点付里哀变换实现快速余弦变换)/*快速离散余弦变换,利用快速付里哀变换f为时域值,F为变换域值,power为2的幂数*/voidDCT(double*f,double*F,intpower){inti,count;COMPLEX*X;doubles;/*计算离散余弦变换点数*/count=1<8、*延拓*/memset(X,0,sizeof(COMPLEX)*count*2);/*将时域点写入存储器*/for(i=0;i
5、*(1<6、/*计算付里哀反变换点数*/count=1<7、TD[i].im/count;}/*释放存储器*/free(x);}附录二、快速余弦变换与反变换程序实例(利用2N点付里哀变换实现快速余弦变换)/*快速离散余弦变换,利用快速付里哀变换f为时域值,F为变换域值,power为2的幂数*/voidDCT(double*f,double*F,intpower){inti,count;COMPLEX*X;doubles;/*计算离散余弦变换点数*/count=1<8、*延拓*/memset(X,0,sizeof(COMPLEX)*count*2);/*将时域点写入存储器*/for(i=0;i
6、/*计算付里哀反变换点数*/count=1<7、TD[i].im/count;}/*释放存储器*/free(x);}附录二、快速余弦变换与反变换程序实例(利用2N点付里哀变换实现快速余弦变换)/*快速离散余弦变换,利用快速付里哀变换f为时域值,F为变换域值,power为2的幂数*/voidDCT(double*f,double*F,intpower){inti,count;COMPLEX*X;doubles;/*计算离散余弦变换点数*/count=1<8、*延拓*/memset(X,0,sizeof(COMPLEX)*count*2);/*将时域点写入存储器*/for(i=0;i
7、TD[i].im/count;}/*释放存储器*/free(x);}附录二、快速余弦变换与反变换程序实例(利用2N点付里哀变换实现快速余弦变换)/*快速离散余弦变换,利用快速付里哀变换f为时域值,F为变换域值,power为2的幂数*/voidDCT(double*f,double*F,intpower){inti,count;COMPLEX*X;doubles;/*计算离散余弦变换点数*/count=1<8、*延拓*/memset(X,0,sizeof(COMPLEX)*count*2);/*将时域点写入存储器*/for(i=0;i
8、*延拓*/memset(X,0,sizeof(COMPLEX)*count*2);/*将时域点写入存储器*/for(i=0;i
此文档下载收益归作者所有