B.1.2 N Complex Multiplies; B.1.3 Complex Correlation Or Convolution (Complex Fir) - Motorola DSP56800 Manual

16-bit digital signal processor
Table of Contents

Advertisement

B.1.2
N Complex Multiplies
; cr(I) + jci(I) = ( ar(I) + jai(I) ) * ( br(I) + jbi(I) ), I=1,...,N
; cr(I) = ar(I) * br(I) - ai(I) * bi(I)
; ci(I) = ar(I) * bi(I) + ai(I) * br(I)
opt
cc
MOVE
#AD,R0
MOVE
#C-1,R2
MOVE
#BD,R3
MOVE
DO
#NUM,END_DO8
MOVE
MPY
Y1,X0,A
MOVE
MPY
Y0,X0,B
MACR
-Y0,X0,A
MACR
Y1,X0,B
END_DO8
MOVE
B,X:(R2)+
;
;
B.1.3
Complex Correlation Or Convolution (Complex FIR)
; cr(n) + jci(n) = SUM(I=0,...,N-1)
; { ( ar(I) + jai(I) ) *
; cr(n) = SUM(I=0,...,N-1)
; { ar(I) * br(n-I) - ai(I) * bi(n-I) }
; ci(n) = SUM(I=0,...,N-1)
; { ar(I) * bi(n-I) + ai(I) * br(n-I) }
opt
cc
MOVE #AD,R0
MOVE #BD,R3
CLR
A
CLR
B
DO
#N,END_DOB
MAC
Y0,Y1,A
MAC
Y0,X0,B
MAC
Y0,Y1,B
MAC
-Y0,X0,A
MOVE
B-4
X:(R2),B
X:(R0)+,Y1
B,X:(R2)+
X:(R0)+,Y0
X:(R3)+,X0
A,X:(R2)+
( br(n-I) + jbi(n-I) ) }
X:(R0)+,Y0
X:(R3)+,Y1
X:(R3)+,X0
X:(R0)+,Y0
X:(R3)+,Y1
X:(R0)+,Y0
DSP56800 Family Manual
Y1=ar
Y0=ai
X0=br, bi
; 2
2
; 2
2
; 2
2
;
; 2
3
X:(R3)+,X0
; 1
1
; 1
1
;
; 1
1
; 1
1
;
; 1
1
; 1
1
; 1
1
_______
Total:
15
6N+11
Y0=ar Y1=br
Y0=ai X0=bi
; 2
2
; 2
2
; 1
1
ar
; 1
1
br
; 2
3
; 1
1
ar*br ,ai,bi
; 1
1
ar*bi
; 1
1
ar*bi+ai*br,ar
; 1
1
ar*br-ai*bi
; 1
1
dummy move!
get ar,br
ar*br,
store imag
get ai
ai*br, get bi
get bi
ar*br-ai*bi
ar*bi+ai*br,
store real

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents