Wie kann man eine Übertragungsfunktion aus einem Frequenzgang nur mit Größenordnung abschätzen?

11

Welche Signalverarbeitungsverfahren könnten bei einem beliebigen Frequenzgang existieren, die eine Übertragungsfunktion (Pol- und Nullkonstellation) erraten, schätzen oder bestimmen könnten, die eine "einigermaßen gute" Annäherung (für einige gegebene Schätzqualitätskriterien) an diesen gegebenen Frequenzgang ergibt? Welche Mittel gibt es, um die Anzahl der für eine bestimmte Übertragungsfunktion erforderlichen Pole und Nullen zuzüglich einer bestimmten zulässigen Approximationsfehler zu schätzen? Oder wie kann man feststellen, dass diese Einschränkungen nach Möglichkeit nicht erfüllt werden können?

Wenn der gegebene Frequenzgang tatsächlich von einer bekannten Übertragungsfunktion erzeugt wurde, konvergiert dann eine dieser Methoden auf dieser ursprünglichen Übertragungsfunktion? Wie wäre es, wenn der gegebene Frequenzgang (angenommenen Gaußschen) Messfehlern unterliegen würde?

Angenommen, Sie arbeiten in der Z-Ebene mit dem abgetasteten Spektrum, obwohl auch kontinuierliche Domänenantworten interessant sein könnten.

Hinzugefügt: Unterscheiden sich die Lösungsmethoden, wenn nur die Größe des Frequenzgangs angegeben wird (z. B. ist eine Lösung mit einem beliebigen Phasengang zulässig)?

Hinzugefügt: Das letztere Problem interessiert mich am meisten, wenn eine bekannte Größenantwort um den Einheitskreis herum, aber eine unbekannte / nicht gemessene Phasenantwort vorliegt. Kann das gemessene System geschätzt werden, und wenn ja, unter welchen Bedingungen?

hotpaw2
quelle
Versuchen Sie, einen beliebigen Frequenzgang als rationales Spektrum zu approximieren? Das heißt (b [0] + b [1] z ^ -1 ...) / (1 + a [1] z ^ -1 ...)? In diesem Fall wird dies normalerweise als ARMA-Modellierung bezeichnet. Dies ist schwieriger als die AR-Modellierung, da die Autokorrelation eines Signals in der Regel nichtlinear mit den gleitenden Durchschnittskoeffizienten (den b [] oder Nullen) zusammenhängt. Wenn meine Annahme richtig ist, kann ich eine formellere Antwort schreiben.
Bryan
@ Bryan: Ja. Ich habe versucht zu implizieren, dass durch die Angabe einer "Pol und Null" -Lösung (eine rationale Übertragungsfunktion) geeignet ist (vorzugsweise nur, wenn sie besser ist als eine All-Pol- oder Alle-Null-Lösung / Schätzung des gleichen Grades).
hotpaw2
Welche Bedeutung hat der Frequenzgang ? Einige Leute unterscheiden zwischen der Frequenzantwortfunktion oder H ( f ) und der Übertragungsfunktion H ( s ) und andere nicht. Siehe zum Beispiel die Diskussion nach dieser Antwort auf eine frühere Frage. H(ω)H(f)H(s)
Dilip Sarwate
@ Dilip Sarwate: Wenn H (w) nur für den Einheitskreis gegeben ist (ist das redundant?), Löse / schätze eine vollständige Darstellung der z-Ebene. Hoffentlich stimmt das mit meiner ursprünglichen Aussage über die Frage überein.
hotpaw2
1
Sie ändern zusätzlich Dinge. Pole und Nullen können sich ändern, wenn die Größenantwort gleich bleibt. Das häufigste Beispiel hierfür ist der Entwurf eines Minimalphasenfilters. Dies beinhaltet normalerweise das Nehmen eines vorhandenen Systems und das Reflektieren der Pole und Nullen innerhalb des Einheitskreises. Dies ändert nur die Phasenantwort, nicht die Größenantwort.
Bryan

Antworten:

14

Ein Ansatz wäre die Verwendung der FDLS-Methode (Frequency Domain Least Squares) . Bei einem Satz von (komplexen) Abtastwerten des Frequenzgangs eines zeitdiskreten Systems und einer vom Designer gewählten Filterreihenfolge verwendet die FDLS-Methode eine lineare Optimierung der kleinsten Quadrate , um den Satz von Koeffizienten zu lösen (die direkt auf Sätze von Polen abgebildet werden und Nullen) für das System, dessen Frequenzgang der gewünschten Antwort mit minimalem quadratischen Gesamtfehler entspricht.

Der Frequenzgang eines linearen zeitdiskreten Systems ter Ordnung kann wie folgt geschrieben werden:N

H(ω)=H(z)|z=ejω

Dabei ist die Übertragungsfunktion des Systems in der z- Domäne. Dies wird normalerweise in dem rationalen Format geschrieben, das sich direkt aus der Differenzgleichung des Systems ergibt:H(z)z

H(z)=k=0Nbkzk1+k=1Nakzk

Der Frequenzgang ist daher:

H(ω)=k=0Nbkejkω1+k=1Nakejkω

Ordnen Sie die oben genannten Punkte neu an, um Folgendes zu erhalten:

k=0NbkejkωH(ω)(1+k=1Nakejkω)=0

2N+1bkakH(ω)ω

ωm[0,2π),m=0,1,,M1M>2N+1M2N+1)ωk

k=0NbkejkωkH(ωk)(1+k=1Nakejkωk)=0

H(ωk)ωkbkakH(ω)

Diese Technik hat einige Vorteile:

  • Jeder beliebige komplexe Frequenzgang (Größe und Phase) kann als Vorlage verwendet werden. Wenn Sie nur eine Größenbeschränkung haben, können Sie einfach eine Phasenantwort auswählen, z. B. eine lineare Phase.

  • ak

  • Die Technik ist sehr einfach zu implementieren und kann basierend auf der gewünschten Systemreihenfolge leicht parametriert werden.

  • N.

Sie können diese Methode etwas erweitern, um bei Bedarf die Optimierung der gewichteten kleinsten Quadrate zu verwenden. Auf diese Weise können Sie Bereiche des Frequenzgangs angeben, deren Approximationsfehler stärker gewichtet wird als andere. Dies ermöglicht es Ihnen, Passband- / Stopband-Bereiche genauer zu steuern und gleichzeitig mehr Slop in "egal" -Bereichen zu ermöglichen.

Jason R.
quelle
1
Ausgezeichnete Antwort !! Die "Kunst" bei Filterdesigns mit kleinsten quadratischen Fehlern besteht darin, genau zu definieren, was genau der "Fehler" ist. Dies wird gesteuert, indem das richtige Frequenzgitter ausgewählt, Faktoren bei bestimmten Frequenzen gewichtet und weitere Einschränkungen für das Verhalten außerhalb des Bandes sowie für das Halten Ihrer Pole innerhalb des Einheitskreises hinzugefügt werden.
Hilmar
Das Problem bei dieser möglichen Lösung besteht darin, dass FDLS, wenn die Phase einer vorhandenen Übertragungsfunktion unbekannt ist, möglicherweise zur falschen Lösung konvergiert, wenn die falsche Phase angenommen wird, unabhängig davon, wie genau die Reihenfolge richtig erraten oder die Größenantwort gemessen wird.
hotpaw2
@ hotpaw2: Das ist zu erwarten. Wenn Sie nichts über die Phasenantwort wissen, gibt es unendlich viele Lösungen, die gleichermaßen gültig sind (dh sie hätten die richtige Größenantwort). Sie benötigen einige Informationen, um zu der Lösung zu gelangen, die Sie für am besten geeignet halten.
Jason R
@JasonR: Die einzig richtige Lösung sollte die Permutation von umkehrenden Polen / Nullen innerhalb / außerhalb sein, was eine endliche Zahl für jedes (existierende) System endlicher Ordnung ist.
hotpaw2
6

Meine Kollegen haben mit der Vektoranpassung großartige Ergebnisse erzielt :

Die Vektoranpassung ist eine robuste numerische Methode zur rationalen Approximation im Frequenzbereich. Es ermöglicht die Identifizierung von Zustandsraummodellen direkt aus gemessenen oder berechneten Frequenzantworten, sowohl für einzelne als auch für mehrere Eingabe- / Ausgabesysteme. Die resultierende Näherung hat stabile Pole garantiert, die real sind oder in komplexen konjugierten Paaren vorliegen.

Wir verwenden es für die Umwandlung von FIR in IIR.

Für weniger anspruchsvolle Anwendungen können Sie einfach nichtlineare kleinste Quadrate verwenden, die für eine feste Anzahl von Polen und Nullen geeignet sind. Dies ist in Matlab als invfreqsund implementiert invfreqz.

Nibot
quelle
0

Ein anderer Ansatz: Zeichnen Sie den Frequenzgang und passen Sie ein Bode-Diagramm so gut wie möglich an. Dies könnte sehr schnell für eine ungefähre Lösung oder in einem ausgeklügelten Sinn für kleinste Quadrate für eine bessere Anpassung erfolgen. GTH

G Heydt
quelle