![]() |
[分享][讨论]C++ 快速FFT(rlft3)用于2D处理
#include <cmath>
#include "nr.h" using namesspace std; void NR::rlft3(Mat3D_IO_DP &date, Mat_IO_DP &speq,const int isign) "注释:已知三维实型数组 ..." { int i1,i2,i3,j1,j2,j3,ii3,k1,k2,k3,k4; DP theta,wi,wpi,wpr,wr,wtemp; DP c1,c2,h1r,h1i,h2r,h2i; Vec_INT nnn(3); int nn1=data.dim1(); int nn2=data.dim2(); int nn3=data.dim3(); c1=0.5; c2=-0.5isign; theta=isign*(2*3.1415926535897932384626/nn3) wtemp=sin(0.5*theta); wpr=-2.0*wtemp*wtemp; wpi=sin(theta); nn[0]=nn1; nn[1]=nn2; nn[2]=nn3>>1; Vec_DP data_v(&data[0][0][0],nn1*nn2*nn3); if(isign==1) { fourn(data_v,nn,isign); k1=0; for(i1=0;i1<nn1;i1++) for(i2=0,j2=0;i2<nn2;i2++,k1+=nn3){ speq[i1][j2++]=data_v[k1]; speq[i1][j2++]=data_v[k1+1]; } } for (i1=0;i1<nnn1;i1++){ j1=(i1!=0? nn1-i1:0); wr=1.0; wi=0.0; for(ii3=0;ii3<=(nn3>>1);ii3+=2){ k1=i1*nn2*nn3; k3=j1*nn2*nn3; for(i2=0;i2<nn2;i2++,k1+=nn3){ if (ii3==0){ j2= } } } } } 部分代码,时间仓促希望朋友给补充~谢谢~多多讨论,(*^__^*) 嘻嘻…… |
所有时间均为北京时间。现在的时间是 09:52。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.