Springen naar inhoud

Eenvoudig digitaal filter


  • Log in om te kunnen reageren

#1

Celtic

    Celtic


  • >100 berichten
  • 161 berichten
  • Ervaren gebruiker

Geplaatst op 25 september 2011 - 12:34

Een RC filter softwarematig implementeren kan met
een IIR of FIR filter ontwerp maar ik probeer het
eenvoudiger door de stapresponse te imiteren.


Bij een 1e orde RC filter is de stapresponse Y(t) = A.(1-e^(-t/T)).
A is de ingangsstap.
Uit analyse van de term (1-e^-k) voor k= t/T = 1,2,3 etc blijkt
dat Y[k] = Y[k-1] + (A-Y[k-1])*(1-e^-1) met Y[0] = 0

Gegeven samplerate Ts

Klopt het dat de overdracht van de digitale versie nu gelijk is aan
Y[k] = Y[k-1] + (A-Y[k-1])*(1-e^-1)*Ts/T

het moet in assembler maar in pascal wordt het dan ongeveer

Function RC(input:real):real;
Const
Fs = 1000; {sample frequentie bv 1KHz}
Fk = 5; {RC kantel frequentie bv 5 Hz}
Var
Y,vY: real;
begin
Y := vY + (input -vY)*(1-exp(-1))*Fk/Fs;
RC := Y;
vY = Y; {vorige Y <- Y}
end;

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.




0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures