END_DOB
RND
A
RND
B
;
;
B.1.4
Nth Order Power Series (Real, Fractional Data)
; c = SUM(I=0,...,N) { a(I) * b**I }
; = [[[a(n) *b+a(n-1)] *b+a(n-2)]*b+a(n-3)].....
opt
cc
MOVE
#BD,R1
MOVE
#AD,R0
MOVE
MOVE
Y0,Y1
MOVE
MOVE
DO
#NUM/2,END_DOC
MAC
A1,Y0,B
MAC
B1,Y1,A
END_DOC
RND
A
;
;
B.1.5
N Cascaded Real Biquad IIR Filters (Direct Form II)
Many digital-filter design packages generate coefficients for direct form II IIR filters. Often, these
coefficients are greater in magnitude than 1.0. This implementation is suitable for IIR filters with
coefficients greater in magnitude than 1.0 because it allows the user to simply divide all coefficients
generated by 2.
; w(n)/2 = x(n)/2 - (a1/2) * w(n-1) - (a2/2) * w(n-2)
; y(n)/2 = w(n)/2 + (b1/2) * w(n-1) + (b2/2) * w(n-2)
; D High Memory Order - w(n-2)1,w(n-1)1,w(n-2)2,w(n-1)2,...
; D Low
Memory Order - (a2/2)1,(a1/2)1,(b2/2)1,(b1/2)1,(a2/2)2,...
; This version uses two pointers.
opt
cc
MOVE #W,R0
MOVE #C,R3
MOVE #-1,N
MOVE
Total:
X:(R1),Y0
X:(R0)+,A
X:(R0)+,B
X:(R0)+,A
X:(R0)+,B
Total: 13
x:input,A
DSP Benchmarks
; 1
1
; 1
1
_______
15
5N+11
; 2
2
; 2
2
; 1
1
b
; 1
1
b
; 1
1
get a(n)
; 1
1
get a(n-1)
; 2
3
; 1
1
get a(n-2), and
so on
; 1
1
get a(n-3), and
so on
; 1
1
_______
1N+12
; 2
2
; 2
2
; 1
1
; 1
1
B-5