function y = L5(x, k, a, b, g)
% L5 Fifth order sigma-delta modulator

k1 = k(1);  k2 = k(2);  k3 = k(3);  k4 = k(4);  k5 = k(5);
a1 = a(1);  a2 = a(2);  a3 = a(3);  a4 = a(4);  a5 = a(5);
b1 = b(1);  b2 = b(2);

N = length(x);
i1=0; i2=0; i3=0; i4=0; i5=0;          % integrator states
out = 0;                               % quantizer output
y = zeros(N, 1);
for i=1:N
    i1_ = k1*(x(i) - g*out) + i1;
    i2_ = k2*(i1-b1*i3) + i2;
    i3_ = k3*i2 + i3;
    i4_ = k4*(i3-b2*i5) + i4;
    i5_ = k5*i4 + i5;
    q   = a1*i1_ + a2*i2_ + a3*i3_ + a4*i4_ + a5*i5_;
    out = sign(q);
    y(i) = out;
    i1 = i1_;  i2 = i2_;  i3 = i3_;  i4 = i4_;  i5 = i5_;
end
