Hallo allerseits,
vielleicht kann mir ja jemand bei folgendem Problem weiterhelfen:
Ich habe einen Filter mit der Übetragungsfunktion
F(s) = (1+s*t2)/(s*t1)
Da dieser Filter aber in einem Mikrocontroller realisiert werden soll, muss ich ihn in den z-Bereich bekommen (bilineare Transformation). Die vermeintliche Lösung dazu habe ich bereits in einem Buch gefunden, dort steht
F(z) = (b0 + b1*z^-1)/(1 + a1*z^-1)
bzw.
y(n) = -a1*y(n-1) + b0*x(n) + b1*x(n-1)
mit
a1 = -1
b0 = T/(2*t1) * (1 + 1/tan(T/(2*t2)))
b1 = T/(2*t1) * (1 - 1/tan(T/(2*t2)))
So ganz kann ich das aber nicht nachvollziehen. Ausgehend von der Übertragungsfunktion F(s) bin ich durch
s = 2/T * (1-z^-1)/(1+z^-1)
ebenfalls zu der Gleichung (dieselbe wie oben)
y(n) = -a1*y(n-1) + b0*x(n) + b1*x(n-1)
gelangt. Nur leider sind meine Koeffizienten geringfügig anders. Bei mir lauten sie nämlich
a1 = -1
b0 = T/(2*t1) * (1 + 2*t2/T)
b1 = T/(2*t1) * (1 - 2*t1/T)
Ich nehme an, dass die Koeffizienten t1 und t2 noch irgendwie angepasst werden müssen, nur habe ich keine Ahnung wie. Bei z.B. einem einfachen Tiefpass mit
F(s) = 1/(1 + s/w0)
muss die Frequenz w0 auch über
w0’ = 2/T * tan(w0*T/2)
angepasst werden. Aber was macht man mit Zeitkonstanten wie den obigen t1 und t2? Mit dem gleichen Ansatz wie für w0 komme ich nicht weiter.
Danke schon mal,
Nils