📄 fftsj1.f
字号:
Received: from stmail.isu.edu.tw (localhost [127.0.0.1])
by mail.isu.edu.tw (8.11.6+Sun/8.11.6) with ESMTP id gBGCJ2n05434
for <yshuang@isu.edu.tw>; Mon, 16 Dec 2002 20:19:02 +0800 (CST)
Received: from csj (localhost [127.0.0.1])
by stmail.isu.edu.tw (8.11.6/8.11.6) with SMTP id gBGCJD917201
for <yshuang@isu.edu.tw>; Mon, 16 Dec 2002 20:19:13 +0800 (CST)
Message-ID: <000d01c2a4fe$2f866320$b8c07f8c@csj>
From: "9101011M" <m9101011@stmail.isu.edu.tw>
To: =?big5?B?tsClw6XN?= <yshuang@isu.edu.tw>
Subject: FFT
Date: Mon, 16 Dec 2002 20:25:14 +0800
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0009_01C2A541.3D7C5190"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
Content-Length: 2189
Status:
This is a multi-part message in MIME format.
------=_NextPart_000_0009_01C2A541.3D7C5190
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_000A_01C2A541.3D7C5190"
------=_NextPart_001_000A_01C2A541.3D7C5190
Content-Type: text/plain;
charset="big5"
Content-Transfer-Encoding: quoted-printable
------=_NextPart_001_000A_01C2A541.3D7C5190
Content-Type: text/html;
charset="big5"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dbig5" http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2920.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV> </DIV></BODY></HTML>
------=_NextPart_001_000A_01C2A541.3D7C5190--
------=_NextPart_000_0009_01C2A541.3D7C5190
Content-Type: application/octet-stream;
name="FFT.F"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="FFT.F"
PROGRAM TEST_FFT
COMPLEX*16 A(100)
INTEGER I,K,INV,N
OPEN(UNIT=F1,FILE='F1.TXT')
C K=2
WRITE(*,*)'GIVE K,AND N=2^K'
READ(*,*)K
N=2**K
C WRITE(*,*)'GIVE HOW MANY NUMBERS YOU WILL INPUT'
C READ(*,*)N
DO I=1,N
WRITE(*,*)'A(',I,')='
READ(*,*)A(I)
ENDDO
INV=0
CALL FFT(A,K,INV)
DO I=1,N
WRITE(*,*)'A(',I,')=',N*A(I)
WRITE(F1,*)'A(',I,')=',N*A(I)
ENDDO
STOP
END
SUBROUTINE FFT(A,M,INV)
COMPLEX*16 A(1),U,W,T
DOUBLE PRECISION ANG,PI
INTEGER N,ND2,I,J,K,L,LE,LE1,IP
PARAMETER (PI=3.141592653589793D0)
N=2**M
ND2=N/2
J=1
DO I=1,N-1
IF(I.LT.J)THEN
T=A(J)
A(J)=A(I)
A(I)=T
ENDIF
K=ND2
100 IF(K.LT.J)THEN
J=J-K
K=K/2
GOTO 100
ENDIF
J=J+K
ENDDO
LE=1
DO L=1,M
LE1=LE
LE=LE+LE
U=(1.D0,0.D0)
ANG=PI/DBLE(LE1)
W=DCMPLX(COS(ANG),-SIN(ANG))
IF(INV.EQ.1) W=DCONJG(W)
DO J=1,LE1
DO I=J,N,LE
IP=I+LE1
T=A(IP)*U
A(IP)=A(I)-T
A(I)=A(I)+T
ENDDO
U=U*W
ENDDO
ENDDO
IF(INV.NE.1)THEN
DO I=1,N
A(I)=A(I)/DBLE(N)
ENDDO
ENDIF
RETURN
END
------=_NextPart_000_0009_01C2A541.3D7C5190--
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -