24小时热门版块排行榜    

查看: 3179  |  回复: 5

panjunxing

木虫 (著名写手)

小学生

[求助] 三维傅里叶变换 已有1人参与

将一组16*32*64的三维数组用fortran程序进行傅立叶变换,主程序该如何编写?
下面是傅立叶变换源程序,可惜我不会用,另外附上自己的程序,请各位大侠多多指教!
SUBROUTINE rlft3(data,speq,nn1,nn2,nn3,isign)
INTEGER isign,nn1,nn2,nn3
COMPLEX data(nn1/2,nn2,nn3),speq(nn2,nn3)
INTEGER i1,i2,i3,j1,j2,j3,nn(3)
DOUBLE PRECISION theta,wi,wpi,wpr,wr,wtemp
COMPLEX c1,c2,h1,h2,w
c1=cmplx(0.5,0.0)
c2=cmplx(0.0,-0.5*isign)
theta=6.28318530717959d0/dble(isign*nn1)
wpr=-2.0d0*sin(0.5d0*theta)**2
wpi=sin(theta)
nn(1)=nn1/2
nn(2)=nn2
nn(3)=nn3
if(isign.eq.1)THEN
call fourn(data,nn,3,isign)
do  i3=1,nn3
do  i2=1,nn2
speq(i2,i3)=data(1,i2,i3)
end do
end do
endif
do i3=1,nn3
j3=1
if (i3.ne.1)
j3=nn3-i3+2
wr=1.0d0
wi=0.0d0
do i1=1,nn1/4+1
j1=nn1/2-i1+2
do i2=1,nn2
j2=1
if (i2.ne.1) j2=nn2-i2+2
if(i1.eq.1)then
h1=c1*(data(1,i2,i3)+conjg(speq(j2,j3)))
h2=c2*(data(1,i2,i3)-conjg(speq(j2,j3)))
data(1,i2,i3)=h1+h2
speq(j2,j3)=conjg(h1-h2)
else
h1=c1*(data(i1,i2,i3)+conjg(data(j1,j2,j3)))
h2=c2*(data(i1,i2,i3)-conjg(data(j1,j2,j3)))
data(i1,i2,i3)=h1+w*h2
data(j1,j2,j3)=conjg(h1-w*h2)
endif
end do
wtemp=wr
wr=wr*wpr-wi*wpi+wr
wi=wi*wpr+wtemp*wpi+wi
w=cmplx(sngl(wr),sngl(wi))
end do
end do
if(isign.eq.-1)then
call fourn(data,nn,3,isign)
endif
return
END
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 1.f90
  • 2014-03-12 17:53:13, 9.72 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

人生旅途,可以休息,但别忘记奔跑
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

这东西很有用,实现难度比较大
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2014-03-12 17:53:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

panjunxing

木虫 (著名写手)

小学生

引用回帖:
2楼: Originally posted by baobiao007 at 2014-03-12 17:53:47
这东西很有用,实现难度比较大

您能帮我一下吗?
人生旅途,可以休息,但别忘记奔跑
3楼2014-03-13 09:10:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

【答案】应助回帖

感谢参与,应助指数 +1
楼主不如用这里的代码:

http://fftwpp.sourceforge.net/

可以从python, C++, Fortran调用,而且都有例子, 可以从例子里面学习用法
ส็็็็็็็็็็็็็็็็็็็็
4楼2014-03-13 09:37:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

用这个代码还有一个好处, 你可以直接email代码的作者请教不懂的问题;
那种来源不明的代码,还是少用为妙.
ส็็็็็็็็็็็็็็็็็็็็
5楼2014-03-13 09:38:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lixinwen000

木虫 (正式写手)

引用回帖:
4楼: Originally posted by cooooldog at 2014-03-13 09:37:25
楼主不如用这里的代码:

http://fftwpp.sourceforge.net/

可以从python, C++, Fortran调用,而且都有例子, 可以从例子里面学习用法

这个网址怎么打不开呢?
静水流深
6楼2014-03-25 15:42:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 panjunxing 的主题更新
信息提示
请填处理意见