[an error occurred while processing this directive]
|
Вот одна из возможных реализаций КИХ фильтра
И что потом нужно сделать?
; Calculate FIR filter (X[N]=data array, C[N]=coefficientv array)
MOVW DP,#Xindex ;Load DP with page address of Xindex
MOVL XAR6,#X ;Load XAR6 with start address of X array
MOV @AH,#N ;Load AH with size of array X(N)
MOV AL,@Xindex ;Load AL with current circular index
MOVL XAR1,@ACC ;Load parameters into XAR1
MOVL XAR7,#C ;Load XAR7 with start address of C array
SPM -4 ;Set product shift mode to 4 times right
ZAPA ;Zero ACC,P,OVC
RPT #N-1 ;Repeat next instruction N times
||QMACL P,*+XAR6[AR1%++],*XAR7++ ;ACC=ACC+P>>4,
;P=(*AR6%++ * *XAR7++)>>32
ADDL ACC,P<MOV @Xindex,AR1 ;Store AR1 into current X index
MOVL @Sum,ACC ;Store result into sum
Если не трудно поискать ассемблер и симулятор, поищите, пожалуйста. Одна мысль у меня свербит, спокойно спать не даёт(:-).
E-mail: info@telesys.ru