Forum: Digitale Signalverarbeitung / DSP / Machine Learning Impulsantwort Tiefpaß 2.Ordnung


von Chris c. (chris78)


Lesenswert?

Hallo,

ich beschäftige mich gerade mit der dgitalen Nachbildung analoger
TP-Filter und benötige zur Berechnung der Filterkoeffizienzen nach der
"impulsinvarianten Transformation" die entsprechenden Impulsantwoten.

Nun habe ich für einen RC-Filter 1.Ordnung folgende Übertragungsfunktion
erhalten: 1/(1+sT).
In einer Korrespondenztabelle habe ich die dazugehörige Impulsabtwort
1/T*e^(-t/T) gefunden und daraus die passenden Koeffizienten ermittelt.
Eine Simulation des Filters in MatLab7.0 zeigte bei einem Vergleich mit
einem entsprechenden analogen Filter (transferFunction) die Bestätigung
meiner Rechnung.

Nun habe ich füer meinen TP-Filter 2.Ordnung keine Angaben in
Korrespondenztabellen gefunden und weiß nicht genau wie ich diese in
Form einer Formel ermitteln kann.
Übertragungsfunktion 2.Ordnung: 1/[1+3sT+(st)^2]

Kann mir jemand die Impulsantwort für diese Funktion nennen, oder einen
Weg diese in Form einer mathematischen Formel zu erhalten?

MfG

von Martin (Gast)


Lesenswert?

Die Impulsantwort eines Systems ist die Antwort des Systems auf einen 
Impuls. Im Zeitbereich wäre das die Faltung eines Impulses mit der 
Übertragungsfunktion:

Der Faltung im Zeitbereich entspricht einer Multiplikation im 
Frequenzbereich. Daher gilt:

Die Übertragungsfunktion ist bekannt:

Was noch fehlt ist die Laplacetransformierte des Diracs:

Das heisst im Frequenzbereich ist die Impulsantwort:

Damit ergibt sich die Impulsantwort im Zeitbereich als inverse Laplace 
Transformierte der Übertragungsfunktion.

von Macc (Gast)


Lesenswert?

Was Martin gerade antoente ist fundamental. Die Uebertragungsfunktion 
ist die Fourier(Laplace-)transformierte der Impulsantwort. Daher kann 
man die Antwort auf ein beliebiges Signal errechnen, indem man die 
Uebertragungsfunktion mit dem Eingangssignal faltet. Eine Faltung ist 
eine Multiplikation im Frequenzbereich.

von Weinga-Unity (Gast)


Lesenswert?

Hallo, um jetzt konkret deine Aufgabe zu lösen, könntest du das 
CAS-Programm maxima.sourceforge.net downloaden und das Frontend WXMaxima 
starten. Für deine Aufgabe müsstest nun folgendes eingeben:

assume(T>0);
Gs:1/(1+3*s*T+(s*T)^2);
impuls:ilt(Gs,s,t);
T:5;
plot2d([impuls],[t,0,100]);

(Ich hoffe, ich habe keinen Tippfeher gemacht, nähere Infos findest du 
hier: 
http://maxima.sourceforge.net/docs/tutorial/en/gaertner-tutorial-revision/Pages/ODE0002.htm)

Habe das ganze dann auch noch in Scilab kontrolliert (www.scilab.org):
T=5;
s=poly(0,'s');
Gs=1/((s*T)^2+3*s*T+1);
tvec=[0:0.1:100];
[y,u]=csim('impulse',tvec,Gs);
plot(tvec,y);

Ich hoffe, dir mit meinem Betrag etwas geholfen zu haben und dich 
eventuell auf einige Kostenlose-Programmpakte aufmerksam gemacht zu 
haben. Ich selbst habe wieder etwas dazugelernt.

von Chris c. (chris78)


Lesenswert?

To Weinga-Unity,
habe die Seite mal durchsucht und vermutlich bereits im 1. Drittel genau 
das gefunden, was ich suchte:

solve(%, 'laplace(y(t), t, s));
                                                        1
                          [laplace(y(t), t, s) = ----------------]
                                                  4      3      2
                                                 s  + 5 s  + 4 s
map( lambda( [eq], ilt(eq, s, t)), sol);
                                               - t      - 4 t
                                              %e      %e        t   5
                                      [y(t) = ----- - ------- + - - --]
                                                3       48      4   16
Habe das Programm zwar noch nicht installiert, da ich die gesuchten 
Filterkoeffizienten mittlerweile nicht mehr mit der Impulsinvarianten 
Methode, sondern mit Hilfe der bilinearen Transformation ermittle und 
ich dazu die Impulsantwort nicht benötige,
allerdings habe ich das bisher nur für TP 1.Ordnung durchgespielt und 
falls es mit dem TP 2.Ordnung nicht klappt, werde ich auf das Programm 
zurückgreifen und hier über das Ergebnis berichten.


MfG

von Chris c. (chris78)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
hier für Interessierte die Lösung meines 
Koeffizienten-ermittlunsproblems ohne mathematischen Aufwand.
Habe die gesuchte Übertragungsfunktion meines Filters 2.Ordnung 
berechnet und folgendes in MatLab eingegebn.

berechnete analoge Ü-Funktion 2.Ordnung:

 G(s) = 1/(1+3sT+(sT)^2)  mit T=250µs

Eingabe In Matlab:
[A] = 1
[B] = [(250e-6)^2 3*250e-6 1]
[Ab,Bb] = bilinear(A,B,100e3)

Ergebnis:
[Ab] = 1e-3* [0.3772 0.7544 0.3772]
[Bb] = [1 -1,8853 0.8868]

Nach der impulsinvarianten Methode:
[Ai,Bi] = impinvar(A,B,100e3)

Ergebnis:
[Ai] = 1e-10* [0 0.9421]
[Bi] = 1e-6* [0.0625 -0.1178 0.0554]

Eine Simulation in Simulink bestätigt die identische Beeinflussung des 
Eingangssignal für die hier gezeigte 2.Ordnung, egal ob analog TP oder 
Digitaler. Auch für 1.Ordnung (1/(sT+1) war die gleiche Beeinflussung zu 
sehen.
Habe den Simulinkaufbau noch als pdf für 2.Ordnung angehängt.
Die Eingangssignalperiode beträgt 2ms, Abtastfrequenz (unit delay) = 
1KHz,
Abtastfrequenz dig.Filter = 100KHz --> 100fach upsampling (10fach reicht 
nicht zur Regeneration), Interploationstiefpaß Grenzfrequenz = 50KHz 
OZ=8

MfG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.