Forum: Analoge Elektronik und Schaltungstechnik Übertragungsfunktion bestimmen


von Olaf (Gast)


Lesenswert?

Hallo

ich habe den komplexwertigen Frequenzgang eines unbekannten Netzwerks 
aus R, L und C gemessen mit einem Netzwerkanalysator. Für jede Frequenz 
habe ich nun eine Amplitude und eine Phase.

Was ich jetzt tun möchte ist, eine Übertragungsfunktion von dem Netzwerk 
anzugeben. Also es soll etwas in der Form sein

und ich möchte nun die Zähler- und Nennerkoeffizienten herausfinden. Mit 
einer einfachen Methode der kleinsten Fehlerquadrate geht das ja nicht 
so einfach, da dann nicht sichergestellt ist, dass meine Koeffizienten 
alle reell werden. Ich will aber wirklich nur rein reelle Koeffizienten, 
sodass Pole und Nullstellen auch reell werden oder immer in konjugiert 
komplexen Paaren auftreten.

Was gibt es da für mathematische Tricks, wie ich ein Modell für die 
Übertragungsfunktion fitten kann?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Olaf schrieb:
> Mit einer einfachen Methode der kleinsten Fehlerquadrate geht das ja
> nicht so einfach, da dann nicht sichergestellt ist, dass meine
> Koeffizienten alle reell werden.

Wieso nicht? Der jeweilige Fehler ist doch eine reelle Zahl, nämlich der
Absolutwert der Differenz aus gemessenem Wert und dem Funktionswert der
Übertragungsfunktion an der entsprechenden Stelle. Damit tauchen bei der
Anwendung der Kleinste-Quadrate-Methode an keiner Stelle komplexe Zahlen
auf, weswegen auch die Lösungen für die Koeffizienten gar nicht anders
als reell sein können.

von Olaf (Gast)


Lesenswert?

Hallo Yalu,

doch wenn ich doch die komplexwertige Frequenz in meine Matrizen 
eintrage, dann habe ich doch komplexe Zahlen drin. Ich sehe grade nicht, 
wie ich da nur mit rein reellen Zahlen auskommen soll. Kannst du mir auf 
die Sprünge helfen?

von Helmut S. (helmuts)


Lesenswert?

> doch wenn ich doch die komplexwertige Frequenz in meine Matrizen
eintrage, dann habe ich doch komplexe Zahlen drin.

Du sollst ja den Betragsfrequenzgang fitten. Dann ist da nichts 
komplexes drin.

von Olaf (Gast)


Lesenswert?

Ja schon, aber die Phase soll natürlich auch korrekt rauskommen. Dann 
wird's komplex :-)

von Helmut S. (helmuts)


Lesenswert?

Olaf schrieb:
> Ja schon, aber die Phase soll natürlich auch korrekt rauskommen. Dann
> wird's komplex :-)

Nein. Du stellst auch für die Phase Formeln mit arctan() auf. Da ist 
nichts komplex.

Wenn dein definiertes  System minimalphasig ist, dann musst du die Phase 
überhaupt nicht berücksichtigen da dann Phasengang und Amplitudengang eh 
gekoppelt sind.

von Olaf (Gast)


Lesenswert?

Hallo

O.K. im Prinzip hast du ja recht Helmut, wenn ich nur mit dem Betrag 
rechne, dann ist das so. Aber wie kann ich da eine rationale 
Transferfunktion fitten?

Angenommen ich habe Die Übertragungsfunktion für einige Frequenzen dem 
Betrag nach gemessen. (Phase lassen wir also mal weg)

Dann will ich mein Modell fitten:

Der Einfachheit halber kann man noch Zähler und Nenner durch a0 
dividieren, dann wird die Rechnung vielleicht noch etwas einfacher, aber 
es ändert nichts daran, dass das Problem nichtlinear ist, oder übersehe 
ich da etwas?

von Helmut S. (helmuts)


Lesenswert?

|G(jw)| = |Zähler|/|Nenner|

Allgemein:
|c+jd| = sqrt(c^2+d^2)
j^2 = -1
j^3 = -j
j^4 = 1
j^5 = j
j^6 = -1
...

|G(w)| =
sqrt( (b0-b2*w^2+b4*w^4-b6*w^6 ...)^2 + (b1*w-b3*w^3+b5*w^5 ...)^2) /
sqrt( (a0-a2*w^2+a4*w^4-a6*w^6 ...)^2 + (a1*w-a3*w^3+a5*w^5 ...)^2)

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

Einverstanden. Aber das ist nicht linear, d.h. meines Erachtens kann man 
das nur durch probieren lösen, oder kann man es irgendwie in Matrixform 
bringen?

von Helmut S. (helmuts)


Lesenswert?

Olaf schrieb:
> Einverstanden. Aber das ist nicht linear, d.h. meines Erachtens kann man
> das nur durch probieren lösen, oder kann man es irgendwie in Matrixform
> bringen?

Das kann man natürlich nur mit einem (Mathe-)Programm iterativ lösen.
Ich dachte du wolltest das so machen da du von "Methode der kleinsten 
Fehlerquadrate" gesprochen hast.

von Olaf (Gast)


Lesenswert?

Ja. Iterativ ist halt nicht so einfach, weil man keinerlei Ahnung hat, 
welche Startwerte man für die Koeffizienten wählen soll.

von Helmut S. (helmuts)


Lesenswert?

In einigen SPICE-Programmen gibt es die .pz Analyse die so etwas kann.
Allerdings waren die Ergebnisse bei meinen Versuchen bei höherer 
Ordnung, zumindest bei den hier verbreiteten SPICE-Programmen, nicht 
überzeugend.

In Matlab fällt mir yulewalk() ein aber das ist nur für die Annäherung 
einer digitalen Übertragungs-Funktion.

: Bearbeitet durch User
von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

Hallo
siehe Anhang. Ich habe das Verfahren in einem IEEE Paper gefunden. Es 
funktioniert in der Tat, allerdings ist es sehr anfällig auf Rauschen, 
d.h. wenn die gemessene Amplitude auch nur wenig Rauschen hat, dann wird 
kein zufriedenstellendes Modell gefunden. Vielleicht kann man das 
Verfahren noch ein wenig 'aufbohren' ?

von Olaf (Gast)


Lesenswert?

Nachtrag: in meinen Notizen fehlt da noch was. Mit der Matrix A, dem 
Vektor x und b gilt

Ax = b

und man löst dann nach x auf und erhält die Koeffizienten.

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.