B-5 Real Input Fft Based On Glenn Bergland Algorithm - Motorola DSP56000 Manual

24-bit digital signal processor
Hide thumbs Also See for DSP56000:
Table of Contents

Advertisement

;Latest Revision — September 30, 1986
;
move
move
move
move
move
move
move
move
;
;Perform all FFT passes with triple nested DO loop
;
do
move
move
lua
move
lua
move
move
move
do
move
move
move
do
mac
macr
subl
mac
macr
subl
_end_bfy
move
move
_end_grp
move
Isr
IsI
move
_end_pass
endm
Figure B-2 Radix 2, In-Place, Decimation-In-Time FFT (Sheet 2 of 2)
Figure B-5 Real Input FFT Based on Glenn Bergland Algorithm (Sheet 1 of 8)
B - 12
BENCHMARK PROGRAMS
#points/2,n0
;initialize butterflies per group
#1,n2
;initialize groups per pass
#points/4,n6
;initialize C pointer offset
#-1,m0
;initialize A and B address modifiers
m0,m1
;for linear addressing
m0,m4
m0,m5
#0,m6
;initialize C address modifier for
;reverse carry (bit-reversed) addressing
#@cvi (@log(points)/@log(2)+0.5),_end_pass
#data,r0
;initialize A input pointer
r0,r4
;initialize A output pointer
(r0)+n0,r1
;initialize B input pointer
#coef,r6
;initialize C input pointer
(r1)-,r5
;initialize B output pointer
n0,n1
;initialize pointer offsets
n0,n4
n0,n5
n2,_end_grp
x:(r1),X1
y:(r6),y0
x:(r5),a
y:(r0),b
x:(r6)+n6,x0
n0,_end_bfy
x1,y0,b
y:(r1)+,y1
-x0,y1,b
a,x:(r5)+
b,a
x:(r0),b
-x1,x0,b
x:(r0)+,a
-y1,y0,b
x:(r1),x1
b,a
b,x:(r4)+
a,x:(r5)+n5
y:(r1)+n1,y1
x:(r0)+n0,x1
y:(r4)+n4,y1
n0,b1
;divide butterflies per group by two
b
n2,a1
;multiply groups per pass by two
a
b1,n0
a1,n2
BENCHMARK PROGRAMS
;lookup -sine and
; -cosine values
;preload data
;update C pointer
;Radx 2 DIT
;butterfly kernel
y:(r0),a
b,y:(r4)
a,y:(r5)
y:(r0),b
;update A and B pointers
MOTOROLA

Advertisement

Table of Contents
loading

This manual is also suitable for:

Dsp56k

Table of Contents