home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1997 #3
/
amigamamagazinepolishissue03-1
/
ma_1995
/
07
/
ami26b
< prev
next >
Wrap
Text File
|
1997-04-15
|
1KB
|
136 lines
<l>
' --------------------------------------------------------
' listing 1: Gîówny algorytm FFT
' (c) copyright 1995 by: LECH BALCERZAK vel WILLIAM MOBIUS
' --------------------------------------------------------
PROCEDURE fft
' inicjacja
' podaj p=1,2,3,4,5...
n=2^p
nf1=n-1
nf2=n/2
nf3=SQR(n)
' extract
FOR l=1 TO p
l1=2^(p+1-l)
l2=l1/2
u1=1
u2=0
af=PI/l2
cf=COS(af)
sf=-SIN(af)
FOR j=1 TO l2
FOR i=j TO n STEP l1
i1=i+l2
t1=x(i)+x(i1)
t2=jx(i)+jx(i1)
t3=x(i)-x(i1)
t4=jx(i)-jx(i1)
x(i1)=t3*u1-t4*u2
jx(i1)=t4*u1+t3*u2
x(i)=t1
jx(i)=t2
NEXT i
u3=u1*cf-u2*sf
u2=u2*cf+u1*sf
u1=u3
NEXT j
NEXT l
' sortowanie
j=1
FOR i=1 TO nf1
IF i>=j
GOTO etykieta1
ENDIF
t1=x(j)
t2=jx(j)
x(j)=x(i)
jx(j)=jx(i)
x(i)=t1
jx(i)=t2
etykieta1:
kk=nf2
etykieta3:
IF kk>=j
GOTO etykieta2
ENDIF
j=j-kk
kk=kk/2
GOTO etykieta3
etykieta2:
j=j+kk
NEXT i
' normalizacja
FOR i=1 TO n
x(i)=x(i)/nf3
jx(i)=jx(i)/nf3
NEXT i
RETURN