|
.MODULE rsg_sub;
{
Real SG Coefficient Adaptation Subroutine
Calling Parameters MX0 = Error MY1 = Beta I2 --> Oldest input data value in delay line L2 = Filter length I6 --> Beginning of filter coefficient table L6 = Filter length M1,M5 = 1 M6 = 2 M3,M7 = -1 CNTR = Filter length
Return Values Coefficients updated I2 --> Oldest input data value in delay line I6 --> Beginning of filter coefficient table
Altered Registers AY0,AR,MX0,MF,MR
Computation Time (2 * Filter length) + 6 + 3 cycles
All coefficients and data are assumed to be in 1.15 format. }
.ENTRY rsg;
rsg: MF=MX0*MY1(RND), MX0=DM(I2,M1); {MF=Error*Beta} MR=MX0*MF(RND), AY0=PM(I6,M5); DO adapt UNTIL CE; AR=MR1+AY0, MX0=DM(I2,M1), AY0=PM(I6,M7); adapt: PM(I6,M6)=AR, MR=MX0*MF(RND); MODIFY (I2,M3); {Point to oldest data} MODIFY (I6,M7); {Point to start of table} RTS; .ENDMOD;
//本代码Blackfin示例
|