2nd Butterworth; 10sample/sec; cutoff=0.5Hz



GAIN = 49.79245121


xv[0] = xv[1]
xv[1] = xv[2]
xv[2] = next input value / GAIN

yv[0] = yv[1]
yv[1] = yv[2]
yv[2] = xv[0] + 2*xv[1] + xv[2] - 0.6413515381*yv[0] + 1.5610180758*yv[1]

next output value = yv[2]




xv[0] = xv[1]/2					; G x value
xv[1] = xv[2]*2					; G x value
xv[2] = next input value			; G x value

yv[0] = yv[1]					; 1 000 x value
yv[1] = yv[2]					; 1 000 x value
yv[2] = 20*(xv[0] + xv[1] + xv[2]) + 		; 1 000 x value
        + (-641*yv[0] + 1561*yv[1])/		; 1 000 000 x value
	/ 1000					; 1 000 x value

next output value = yv[2]/1000


-----

G = 49.79245121

xs = xv[0]+xv[1]+{next input}			; G x value, 16 bit
xv[0] = xv[1]/2					; G x value, 16 bit
xv[1] = {next input}*2				; G x value, 16 bit


ys = int(20050*xs -641*yv[1] + 1561*yv[2])	; 1 000 000 x value, 32 bit
	/1000					; 1 000 x value, 24 bit
yv[1] = yv[2]					; 1 000 x value, 24 bit
yv[2] = ys					; 1 000 x value, 24 bit

{next output} = yv[2]/1000

-----

xs = xv0+xv1+{next input}			; G x value, 16 bit

	{next input} -> rega
	xv0 -> regb
	add
	xv1 -> regb
	add

xv0 = xv1/2					; G x value, 16 bit

	shr xv1 -> xv0

xv1 = {next input}*2				; G x value, 16 bit

	shl {next input} -> xv1

ys = int(20050*xs -641*yv1 + 1561*yv2)		; 1 000 000 x value, 32 bit
	/1000					; 1 000 x value, 24 bit

	20050 -> regb
	mul
	rega -> sss

	-641 -> rega
	yv1 -> regb
	mul

	sss -> regb
	add
	rega -> sss

	1561 -> rega
	yv2 -> regb
	mul

	sss -> regb
	add

	1000 -> regb
	div

yv1 = yv2					; 1 000 x value, 24 bit
yv2 = ys					; 1 000 x value, 24 bit

	yv2 -> yv1
	rega -> yv2

{next output} = yv[2]/1000

	1000 -> regb
	div
	rega -> {next output}


; xv0,xv1 are 16-bit regs
; sss is a 32-bit reg
; yv1, yv2 are 24-bit regs









