Voor het programmeren van een digitale filter probeer ik volgend principe toe te passen:
ik bepaal de overdrachtsfunctie van de filter , ik zet deze om in een differentievergelijking die er uit ziet als:
y[n] = a0*x[n]+a1*x[n-1]+... -b1*y[n-1] - ...
De overdrachtsfunctie blijkt te kloppen (controle via matlab), dus de differentievergelijking normaal ook. Ik probeer dit dan te implementeren op volgende manier:
t = 0:6.25e-06:1000*6.25e-06;
x_t = 5*sin(14900*2*pi*t).^2;
y_t = zeros(size(t));
temp1 = zeros(size(t));
temp2 = zeros(size(t));
for i = 7 : size(t,2)
temp1(i) = x_t(i)*a0 + x_t(i-1)*a1 +...
temp2(i) = (( y_t(i-1)*b1 +...
y_t(i)= temp1(i)-temp2(i);
end
Dit blijkt echter niet te kloppen, ziet iemand waarom ? Veel dank !