Motorola DSP96002 User Manual
Page 523
B-4
DSP96002 USER’S MANUAL
MOTOROLA
B.1.6 Real * Complex Correlation Or Convolution (FIR Filter)
cr(n) + jci(n) = SUM(I=0,...,N-1) {( ar(I) + jai(I)) * b(n-I)}
cr(n) = SUM(I=0,...,N-1) { ar(I) * b(n-I) }
ci(n) = SUM(I=0,...,N-1) { ai(I) * b(n-I) }
Program ICycles
Words
move #aaddr,r0 1 1
fclr d0 #baddr+n,r4 1 1
fclr d1 x:(r0),d4.s 1 1
fclr d2 x:(r4)-,d5.s y:(r0)+,d6.s 1 1
do #n,end 2 3
fmpy d4,d5,d2 fadd.s d2,d1 x:(r0),d4.s 1 1
fmpy d6,d5,d2 fadd.s d2,d0 x:(r4)-,d5.s y:(r0)+,d6.s 1 1
end
fadd.s d2,d1 1 1
--- ---
Totals
9 2N+8
(10 2N+9)
B.1.7 Complex Multiply
cr + jci = ( ar + jai ) * ( br + jbi )
cr = ar * br - ai * bi R1
→
cr,ci R0
→
ar,ai R4
→
br,bi
ci = ar * bi + ai * br D5 = ar D6 = bi D4 = br D7 = ai
Program
ICycles
Words
move x:(r0),d5.s y:(r4),d6.s 1 1
fmpy.s d6,d5,d1 x:(r4),d4.s y:(r0),d7.s 1 1
fmpy.s d4,d7,d2 1 1
fmpy.s d4,d5,d0 1 1
fmpy d6,d7,d2 fadd.s d2,d1 1 1
fsub.s d2,d0 d1.s,y:(r1) 1 1
move d0.s,x:(r1) 1 1
--- ---
Totals:
7 7
(6 6)