float IirEqn(void){
	int	i,n;
	float	y[9];
	float	*ar0,*ar1;
	float	ra1,rb1,ra2,rb2;

	ar0 = CoefPtr;			// W߲
	ar1 = HistPtr;			// ɰ߲
	y[0] = fgEqnIn;			// ް
	n = 0;
	for(i = 0;i < igN; i++){
		ra1 = ar0[0] * ar1[0];	// ra1 = a2 * d(n-2)
		ar0++;			// W߲+1 a2->b2
		rb1 = ar0[0] * ar1[0];	// rb1 = b2 * d(n-2)
		ar0++;			// W߲+1  b2->a1
		ar1++;			// ɰ߲+1 d(n-2)->d(n-1)
		ra1 += y[n];		// First sum term of d(n,n)
		ra2 = ar0[0] * ar1[0];	// ra2 = a1 * d(n-1)
		ar0++;			// W߲+1 a1->b1
		rb2 = ar0[0] * ar1[0];	// rb2 = b1 * d(n-1)
		ra1 += ra2;		// Second sum term of d(n,n)
		rb1 += rb2;
		ar0++;			// W߲+1 b1->b0
		ar1++;			// ɰ߲+1 d(n-1)->d(n)
		rb2 = ar0[0] * ra1;	// b0(n) * d(n)
 		ar0++;			// W߲+1 b0->a2(ٰ߂̈)
		ar1++;			// ɰ߲+1 d(n) -> d(n-2)(ٰ߂̈)

		HistPtr[n*3+0] = HistPtr[n*3+1];	// d(n-2)XV
		HistPtr[n*3+1] = ra1;	// d(n-1)XV
		y[n+1] = rb1 + rb2;	// IIRo͍XV
		n++;
	}
	return y[n];
}


۰ٕϐ
fgEqnIn = IIRް
igN = IIR̶ސڑ
HistPtr[0] = d(n-2)ۑ(1i)
HistPtr[1] = d(n-1)ۑ(1i)
HistPtr[2] = gp
HistPtr[3] = d(n-2)ۑ(2i)
HistPtr[4] = d(n-1)ۑ(2i)
HistPtr[5] = gp
:
:


Coefptr[0] = IIRW a2(1i)
Coefptr[1] = IIRW b2(1i)
Coefptr[2] = IIRW a1(1i)
Coefptr[3] = IIRW b1(1i)
Coefptr[4] = IIRW b0(1i)
Coefptr[5] = IIRW a2(2i)
Coefptr[6] = IIRW b2(2i)
Coefptr[7] = IIRW a1(2i)
Coefptr[8] = IIRW b1(2i)
Coefptr[9] = IIRW b0(2i)
:
:

