?? test_rls.asm
字號:
#include "defts201.h"
#define DIMENSION 80
#define STEP 40
#define HALF 20
#define clamda 1.010101
#define lamda 0.99
#define delta 0.01
.section data2a;
.align 4;
.var sig[];
.section data2b;
.align 4;
.var ref[];
.section data4a;
.align 4;
.var weight1[DIMENSION];
.align 4;
.var P_real[1600];
.section data4b;
.align 4;
.var P_imag[1600];
.align 4;
.var temp[DIMENSION];
.align 4;
.var K[DIMENSION];
.section program;
j12=4;;
k12=4;;
k14=-8;;
j14=-4;;
k13=-2;;
j13=-2;;
k15=-4;;
j15=12;;
k16=-1;;
j16=8;;
k1=k31+weight1;;
kl1=84;;
kb1=k31+weight1;;
MAIN_START:
xr1=0;;
lc0=HALF;;
INITIALIZE_WEIGHT:
.align_code 4;
if nlc0e,jump INITIALIZE_WEIGHT(P); q[k1+=k12]=xr3:0;;
k1=k31+weight1;;
j8=j31+P_real; lc0=400;;
k9=k31+P_imag; r0=0;r1=r0-r0;;
r2=100.0; j9=j7-j7;;
INITIALIZE_P:
q[k9+=4]=yxr1:0;;
.align_code 4;
if nlc0e, jump INITIALIZE_P(P); q[j8+=4]=yxr1:0;;
lc0=STEP; j8=j31+P_real; k9=k31+P_imag;;
INITIALIZE_P1:
[j8+j9]=xr2;;
j9=j9+1;;
.align_code 4;
if nlc0e, jump INITIALIZE_P1(P); j8=j8+STEP;;
j8=j31+P_real; k9=k31+P_imag;;
/*********************************************RLS自適應(yīng)雜波相消*********************************************/
RLS_FILTER:
lc1=15000;;
BEGIN_RLS_FILTER:
lc0=HALF; yxr1:0= q[j4+=j12]; r21=r2-r2;;
yxr5:4=cb q[k1+=k12]; r11=r3-r3;;
r19=0; r18=r2-r2; r20=r21*r21;;
FILTER_OUTPUT://output=ref*w' k1=j31+weight1 j4=j31+ref j6=j31+sig j12=4
fr8=r4*r0; fr21=r21-r11;;
fr9=r5*r1;;
fr11=r5*r0; fr18=r18+r8;;
fr10=r4*r1;;
fr19=r19-r11; xr1:0=yr1:0;;
fr18=r18+r9; yr1:0= l[j4+0];;
fr8=r4*r0; fr19=r19+r10;;
fr9=r5*r1;;
fr10=r4*r1; fr20=r20+r8;;
fr11=r5*r0;;
fr21=r21+r10; yxr1:0= q[j4+=j12];;
.align_code 4;
IF NLC0E,jump FILTER_OUTPUT(p);yxr5:4=cb q[k1+=k12];fr20=r20+r9;;//2
fr21=r21-r11;
xr17:16=yr19:18; xyr1:0=l[j6+=2];;
xfr18=r16+r18; xr23:22=yr21:20;;
xfr19=r17+r19;;
fr18=r0-r18; j11=j31+temp;; //xr18=err_real;;xr19=err_imag
fr19=r1-r19; j8=j31+P_real;;
l[j6+j13]=xr19:18;;
xyr3:2=l[j6+=2]; xfr20=r20+r22;;//結(jié)果:xr19:18=yr19:18//err->sig
yr19:18=xr19:18; xfr21=r21+r23;;
fr20=r2-r20; j4=j4-4; lc0=STEP;;
fr21=r3-r21; j4=j4-DIMENSION;;
l[j6+j13]=xr21:20; k9=k31+P_imag;;
FILTER_TEMP://temp=P*U j10=step/4 j4=j31+ref j8=j31+P_real k9=k31+P_imag
j10=6;r28=r0-r0;yxr5:4=q[j4+=j12];;
yxr0=l[j8+=2]; r9=r0-r0; r29=0;;
yxr1=l[k9+=2]; r11=0;;
FILTER_TEMP1:
fr28=r28-r9; fr8=r0*r4;;
yxr2=l[j8+=2]; fr9=r1*r5; fr29=r29+r11;;
yxr7:6=q[j4+=j12]; fr10=r0*r5; fr28=r28+r8;;
yxr3=l[k9+=2]; fr11=r1*r4;;
fr8=r2*r6; fr29=r29+r10;;
fr10=r2*r7; fr28=r28-r9; yxr0=l[j8+=2];;
fr9=r3*r7; fr29=r29+r11; yxr5:4=q[j4+=j12];;
fr11=r3*r6; fr28=r28+r8; j10=j10-1;;
.align_code 4;
if njeq, jump FILTER_TEMP1(p); fr29=r29+r10;yxr1=l[k9+=2];;
fr28=r28-r9;;
fr29=r29+r11;;
xr27:26=yr29:28;;//2
xfr29=r27+r29; j4=j4-j12;;
xfr28=r26+r28; j8=j8-2;;
j4=j4-DIMENSION; k9=k9-2;;
l[j11+=2]=xr29:28;;
.align_code 4;
if nlc0e,jump FILTER_TEMP(p);;
lc0=6; j11=j11-DIMENSION; r28=r3-r3;;
yxr5:4=q[j4+=j12]; r9=r2-r2;;
yxr1:0=q[j11+=j12]; r10=r28+r28,r29=r28-r28;;
FILTER_U_TEMP://u'*temp
yxr3:2=q[j11+=j12]; fr8=r0*r4; fr28=r28+r9;;
yxr7:6=q[j4+=j12]; fr9=r1*r5; fr29=r29-r10;;
fr10=r0*r5; fr28=r28+r8;;
fr12=r1*r4;;
fr8=r2*r6; fr29=r29-r10;;
fr10=r2*r7; fr28=r28+r9; yxr1:0=q[j11+=j12];;
fr11=r3*r6; fr29=r29+r12; yxr5:4=q[j4+=j12];;
fr9=r3*r7; fr28=r28+r8;;
.align_code 4;
if nlc0e,jump FILTER_U_TEMP(p);fr29=r29+r11;;
fr29=r29-r10;j11=j11-j12;; //j11現(xiàn)在指向temp的末地址
fr28=r28+r9; j4=j4-j12;;
xr27:26=yr29:28;;
xfr29=r27+r29; k3=k31+K;;
xfr28=r26+r28; r27=lamda;;
xfr2=r29*r29; xfr28=r28+r27;;
xfr0=r28*r28; r1=1.0;;
xfr14=r0+r2;;
xfr13=recips r14; xr11=2.0;;
xfr14=r14*r13;;
xfr1=r13*r1; xfr13=r11-r14;;
xfr14=r14*r13;;
xfr1=r13*r1; xfr13=r11-r14;;
xfr14=r13*r14;;
xfr1=r13*r1; xfr13=r11-r14;;
xfr14=r13*r1; r0=0; j8=j31+P_real;;
xfr29=r14*r29; lc0=STEP; j4=j4-DIMENSION; r26=r1-r1;;
xfr28=r14*r28; xfr29=r0-r29; k9=k31+P_imag;;
FILTER_U_P:
yxr5:4=q[j4+=j12]; r27=r25-r25;;
j10=HALF; r11=r0-r0; r9=r26*r26;;
FILTER_U_P1://u'*P
xr0=[j8+=STEP]; xr1=[k9+=STEP];;
yr0=[j8+=STEP]; yr1=[k9+=STEP];;
fr8=r0*r4; fr26=r26+r9;;
fr9=r1*r5; fr27=r27+r11;;
fr10=r0*r5; fr26=r26+r8;;
fr11=r1*r4; j10=j10-1;;
.align_code 4;
if njeq,jump FILTER_U_P1(p);fr27=r27-r10; yxr5:4=q[j4+=j12];;
fr26=r26+r9;;
fr27=r27+r11;;
xr25:24=yr27:26;j4=j4-DIMENSION;;
xfr26=r26+r24; j8=j8-1599;;
xfr27=r27+r25; k9=k9-1599;j4=j4-j12;;
l[k3+=2]=xr27:26;;
.align_code 4;
if nlc0e,jump FILTER_U_P(p);r26=r1-r1;;
lc0=HALF; j11=j31+temp;;
k3=k31+K; yr29:28=xr29:28;;
r30=clamda; yxr1:0=q[j11+=j12];;
j8=j8-STEP; k9=k9-STEP;;
FILTER_K://K=temp/(lamda+u'*temp)
fr2=r0*r28; j10=HALF;;
fr3=r1*r29;;
fr4=r0*r29;;
fr5=r1*r28; fr6=r2-r3;;
fr8=r6*r18; fr7=r5+r4;;
fr9=r7*r19; yxr3:2=q[k3+=4];;
fr10=r6*r19; yxr15:14=q[k1+0];;
fr11=r7*r18; fr12=r8+r9;;
fr13=r11-r10;;
fr12=r12+r14;;
fr13=r13+r15;;
cb q[k1+=k12]=yxr13:12;; //w=w+K*conj(err(k+L-1));
FILTER_P://P=(P-K*u'*P)/lamda
fr4=r6*r2; j3=j8+STEP; k5=k9+STEP;;
fr5=r7*r3; xr1:0=yr3:2; xr21:20=l[j8+0];;
fr9=r7*r2; yr1:0=xr3:2; yr21:20=l[j3+0];;
fr8=r6*r3; fr16=r4-r5; xr23:22=l[k9+0];;
fr4=r6*r0; fr17=r8+r9; yr23:22=l[k5+0];;
fr5=r7*r1; xfr12=r20-r16;;
fr9=r7*r0; yfr13=r21-r16;;
fr8=r6*r1; fr10=r4-r5;;
xfr14=r22-r17;;
fr11=r8+r9;;
yfr12=r20-r10;;
xfr13=r21-r10;;
yfr14=r22-r11; fr12=r12*r30;;
xfr15=r23-r11; fr13=r13*r30;;
yfr15=r23-r17; fr14=r14*r30; l[j8+=2]=xr13:12;;
yxr3:2=q[k3+=k12]; fr15=r15*r30; l[j3+=2]=yr13:12;;
j10=j10-1; l[k9+=2]=xr15:14;;
.align_code 4;
if njeq,jump FILTER_P(p); l[k5+=2]=yr15:14;;
j8=j8+STEP; k9=k9+STEP;;
.align_code 4;
if nlc0e, jump FILTER_K(p); k3=k3-84;yxr1:0=q[j11+=j12];;
.align_code 4;
if nlc1e,jump BEGIN_RLS_FILTER(p);j4=j4+j12; cb q[k1+=k12]=yxr1:0;;
SQCTLCL=0xFFFFDFFF;;
.align_code 4;
cjmp(abs)(np);;
/*********************************************RLS自適應(yīng)雜波相消完畢*******************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -