Regardless of which language you use, the transpose structure with direct form II is quite simple.
For example, in C, it could be something like:
float myFilter( float u)
{
static float[nb] x = {0,0,0,...,0);
static float[na] y = {0,0,0,...,0);
static float b1 = ....;
static float[nb] b = {...,...,...,...,...};
static float[na] a = {...,...,...,...,...};
float sum = 0;
int i=0;
for(i=0;i<nb;i++)
sum += b[i]*x[i];
for(i=0;i<na;i++)
sum -= a[i]*y[i];
sum += b1*u;
for(i=1;i<nb;i++)
x[i] = x[i-1];
x[0] = u;
for(i=1;i<na;i++)
y[i] = y[i-1];
y[0] = sum;
return sum;
}
, - .
Direct Form II - FIR- ( , , , ).
, (, ). .
EDIT: . ,
y(n) = b(1)x(n) + b(2)x(n-1) + ... + b(nb+1)x(n-nb) - a(2)y(n-1) - ... - a(na+1)*y(n-na)
- II, I. na + nb (n - ), II max (na, nb).
, II,
e(n) = u(n) - a(1)*e(n-1) - a(2)*e(n-2) - ... - a(na)*e(n-na)
y(n) = b(1)*e(n-1) + b(2)*e(n-2) + ... + b(nb)*e(n-nb)
, .