📄 c2cx0016.asm
字号:
.file "c2cx0016.asm"
.title "0016 point DIT Radix-2, Complex FFT"
.width 120
N .set 16 ; NUMBER OF POINTS FOR FFT
******************************************************************************
* *
* 16 - POINT COMPLEX, RADIX-2 DIF FFT WITH THE TMS320C2x *
* ------------------------------------------------------ *
* *
* THE PROGRAM IS BASED ON THE BOOK 'DIGITAL SIGNAL PROCESSING APPLICATIONS' *
* FROM TEXAS INSTRUMENTS P. 69. IT IS OPTIMIZED FOR THE TMS320C5x INCLUDING *
* BIT REVERSAL ADDRESSING MODE. *
* *
* THE PROGRAM IS A MIXTURE OF LOOPED AND STRAIGHT FORWARD CODE TO OPTIMIZE *
* CODESIZE AND EXECUTION TIME. TWO OPTIMIZATION FACTORS FOR CODESIZE AND *
* EXECUTION TIME EVALUATION ARE POSSIBLE (divid = 2 and 4). *
* *
* WRITTEN BY: MANFRED CHRIST REVISION: 1.00 5. Sept. 90 *
* *
* COPYRIGHT TEXAS INSTRUMENTS INC. 1990 *
* *
******************************************************************************
* *
* USED REGISTER: AR0..AR7, ACCU, PREG, TREG, 2 STACKLEVEL, BLOCK B2 *
* *
* COEFFICIENTS : 16 BITS (Q15 Format) SCALING: 1/2^4=1/16 *
* *
* c25/e25/e26 320c25-50 only *
* ------------- ---------------- program twiddle *
* dsp divid cycles t-cyc=100ns t_cyc=80ns words words *
* ----- ----- ------- ------------- ---------------- ------- ----- *
* all 2 447 44.7 us 35.76 us 267 11 *
* all 4 438 43.8 us 45.04 us 401 11 *
* *
* all: 320c25/e25/c26 up,uc *
* *
* PROGRAMSEQUENCE: 0. INITIALISATION FOR FFT/COEFF ADD: 300H - 3..H *
* 1. INPUT NEW DATA INTO 'INPUT' ADD: 2000H - 201FH *
* 2. CALL SUBROUTINE FFT ADD: 800H - 9..H *
* 2.1. BITREVERSAL FROM INPUT TO DATA ADD: 200H - 21FH *
* 2.2. FFT WITH WORK SPACE DATA ADD: 200H - 21FH *
* 3. OUTPUT THE RESULTS FROM DATA ADD: 200H - 21FH *
* *
* INPUT DATA AT ADDRESS 2000h-201fh: *
* ---------------------------------- *
* THE DATA ARE STORED IN 'INPUT' IN THE SEQUENCE: X(0),X(1),...,X(15) *
* Y(0),Y(1),...,Y(15) *
* *
* OUTPUT DATA AT ADDRESS 0200h-021fh: *
* ----------------------------------- *
* THE DATA ARE STORED IN 'DATA' IN THE SEQUENCE: *
* X(0),Y(0),X(1),Y(1),... ... ,X(15),Y(15) *
******************************************************************************
* *
* THIS PROGRAM INCUDES FOLLOWING FILE: *
* ------------------------------------ *
* THE FILE 'TWIDDLES.Q15' CONSISTS OF TWIDDLE FACTORS IN Q15 FORMAT *
* THE FILE 'C2CXRAD2.MAC' macro files *
* THE FILE 'INIT_FFT.ASM' initialisation File *
* THE FILE 'DIVID.ASM' defines the optimisation (used in $loop repeat) *
******************************************************************************
.include divid.asm ; define optimization: 2 + 4 are tested
.include C2CXRAD2.MAC
;
.def TWIDLEN,FFTLEN,TWIDSTRT,INPUT,INIT,FFT
.def STAGE1,STAGE3,STAGE4,SINES4
;
.sect "twiddles"
; table of twiddle factors for the FFT
TWIDSTRT .set $
.include twiddles.q15
TWIDLEN .set $-TWIDSTRT
;
INPUT .usect "input",N*2 ; input data array
TWID .usect "twid",TWIDLEN ; reserve space for twiddles
DATA .data
.space N*2*16 ; working data array
;
.include init-fft.asm
;
.sect "fftprogram"
;
; FFT CODE WITH BIT-REVERSED INPUT SAMPLES / ARP=AR3 / DP=0
;
FFT: lar ar3,DATAADD ; TRANSFER 32 WORDS FROM 'input' to 'data'
lar ar0,NN ; indexregister = N
rpt #N*2-1 ; 2*N TIMES
bldd #INPUT,*br0+
;
; FFT CODE for STAGES 1 and 2 / ARP=AR3
;
STAGE1: lar ar0,#7 ; indexregister = 7
lar ar1,DATAADD ; pointer to DATA r1,i1
lar ar2,DATA2 ; pointer to DATA + 2 r2,i2
lar ar3,DATA4 ; pointer to DATA + 4 r3,i3
lar ar4,DATA6 ; pointer to DATA + 6 r4,i4
COMBO2X 4 ; repeat 4 times
;
; FFT CODE FOR STAGE 3 / ARP=AR2
;
STAGE3: lar ar0,#9 ; index register = 9
lar ar1,DATAADD ; ar1 -> DATA
lar ar2,DATA8 ; ar2 -> DATA+8
stage3 2 ; repeat 2 times
;
; FFT CODE FOR STAGE 4 / ARP=AR2
;
STAGE4: lar ar1,DATAADD ; ar1 -> DATA
lar ar2,DATA16 ; ar2 -> DATA+16
lar ar3,cos4 ; start of cosine in stage 4
lar ar4,sin4 ; start of sine in stage 4
; the next two macros finish the FFT
do_loops 8 ; setup for 8 butterflies
ex_btfly ; execute the butterflies
FFTLEN .set $-FFT
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -