📄 c2cx0032.asm
字号:
N .set 32 ; 32点FFT
.include C2CXRAD2.MAC
.include DIVID.ASM
.def TWIDLEN,FFTLEN,TWIDSTRT,INPUT,INIT,FFT
.def STAGE1,STAGE3,STAGE4,SINES4,STAGE5,SINES5
.sect "twiddles"
; FFT的函数表
TWIDSTRT .set $
.include twiddles.q15
TWIDLEN .set $-TWIDSTRT
;
INPUT .usect "input",N*2 ; 输入数据地址
TWID .usect "twid",TWIDLEN
DATA .data
.space N*2*16 ; 输出数据的地址
.include init-fft.asm
.sect "fftp"
FFT: lar ar3,DATAADD ; 转移 2*N 字 从 'input' 到 'data'
lar ar0,NN
rpt #N*2-1 ; 2*N 次
bldd #INPUT,*BR0+
;
;
;
STAGE1: lar ar0,#7
lar ar1,DATAADD
lar ar2,DATA2
lar ar3,DATA4
lar ar4,DATA6
COMBO2X 8 ; 重复8次
;
;
;
STAGE3: lar ar0,#9 ;修改寄存器= 9
lar ar1,DATAADD
lar ar2,DATA8
stage3l 4 ;重复4次
;
STAGE4: lar ar0,#16 ; 修改寄存器= 16
sar ar0,TEMP+1
lar ar1,DATAADD
lar ar2,DATA16
lar ar6,#1
;
loop4: lar ar3,cos4 ; 启动余旋4
lar ar4,sin4 ; 启动正旋4
do_btfly 8
banz loop4,*-,ar2
STAGE5: lar ar1,DATAADD
lar ar2,DATA32
;
lar ar3,cos5 ; 启动余旋5
lar ar4,sin5 ; 启动正旋5
do_loops 16
ex_btfly
FFTLEN .set $-FFT
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -