0% found this document useful (0 votes)
29 views3 pages

B) Program To Perform Circulsr Convolution of Two Sequences Using Tms320C50

This program performs circular convolution of two sequences using the TMS320C50 processor. It copies the input sequences into memory locations 8000-8003 and 8050-8053. It then performs a multiplication-accumulation loop, multiplying corresponding elements of the input sequences and accumulating the results in memory location 8005. After convolution, it rotates the values in 8050-8053 to perform multiple convolutions, with the final results stored in memory locations 8010-8013.

Uploaded by

Sarvesh Varan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views3 pages

B) Program To Perform Circulsr Convolution of Two Sequences Using Tms320C50

This program performs circular convolution of two sequences using the TMS320C50 processor. It copies the input sequences into memory locations 8000-8003 and 8050-8053. It then performs a multiplication-accumulation loop, multiplying corresponding elements of the input sequences and accumulating the results in memory location 8005. After convolution, it rotates the values in 8050-8053 to perform multiple convolutions, with the final results stored in memory locations 8010-8013.

Uploaded by

Sarvesh Varan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 3

B)PROGRAM TO PERFORM CIRCULSR CONVOLUTION OF TWO

SEQUENCES USING TMS320C50

.MMREGS
.TEXT
START:
LDP #100H
LACC 0H ;length of the input is given in 8000
SUB #1H
SACL 1H
LAR AR0,1H
LAR AR1,#8060H;
LAR AR2,#8100H
COPYX2:
MAR *,AR1
LACC *+
MAR *,AR2
SACL *+
MAR *,AR0
BANZ COPYX2,*-
LAR AR0,1H
LAR AR2,#8010H
LOOP3:
LAR AR1,#8060H ;give the inputs x1[n] & h2[n] in AR1 & AR3
LAR AR3,#8050H
LAR AR4,1H
ZAP
LOOP:
MAR *,AR3 ;multiply x1[n] & X2[n] and add the;multiplication
LT *+
MAR *,AR1 ;output
MPY *+
SPL 5H ;store the partial result at location 8005
ADD 5H ; add the partial result with accumulator
MAR *,AR4
BANZ LOOP,*-,
MAR *,AR2
;outputs of correlation are stored in AR2
SACL *+
CALL ROTATE
LOOP2:
MAR *,AR0
BANZ LOOP3,*-

H: B H
ROTATE:
LDP #100H ;rotate the values of X1[n]
LACC 1H
SUB #1H
SACL 2H
LACC 0050H
SACB ; 8050 DATA MOVED TO THE ACCUMULATOR TO THE
ACCUMULATOR BUFFER
LAR AR3,#8051H
LAR AR5,#8070H
LAR AR6,2H
LOOP1:
MAR *,AR3
LACC *+
MAR *,AR5
SACL *+,
MAR *,AR6
BANZ LOOP1,*-; DATA FROM 8051-8053 TO 8070-8072
LACB ;MOVE THE DATA ACCUMULATOR BUFFER TO ACCUMULATOR AS
LAST DATA
MAR *,AR5
SACL *+
LACC #8070H
SAMM BMAR
LAR AR3,#8050H
MAR *,AR3
RPT #3H ;ROTATE 4 TIMES
BLDD BMAR,*+ ;BMAR AUTOMATICALLY INCREMENTED ,TO COPY SHIFTED
DATA TO 8050
RET

INPUT AND OUTPUT SEQUENCE

;INPUT:
; 8000-0004
;

;X1(n) = 8050 - 0002


; 8051 - 0001
; 8052 - 0002
; 8053 - 0001
;
;H2(n ) = 8060 - 0001
; 8061 - 0002
; 8062 - 0003
; 8063 - 0004

;OUTPUT:
; 8010-000E
; 8011-0010
; 8012-000E
; 8013-0010
;

You might also like