Forum: Digitale Signalverarbeitung / DSP / Machine Learning Zusammenhang Pol-Nullstellen und Impuls response


von Sergej (Gast)


Lesenswert?

Hallo, wie kann ich aus dem zero-pole-plot auf den Impulse response 
eines diskreten Systems schließen? Ich meine, über die Pol-Nullstellen 
bekomme ich ja H(z) oder die DTFT H(e^jOmega). Kann ich vllt daraus das 
h[n] direkt ablesen, oder mir schnell erschließen? Es ist gar nicht mal 
nötig es zu berechnen, sondern eher zu überblicken. Zum Beispiel zwei 
konjungiert komplexe Polstellen füren zu dem und dem im impulse 
response. kann mir jemand helfen?

Vielen Dank, Sergej

von alibaba (Gast)


Lesenswert?

Hallo Sergej,
eigentlich ist es recht einfach und man kann es gut auf einem Blatt 
Papier durchspielen, solange sich die Anzahl der Pol- und Nullstellen in 
Grenzen hält. Wie du richtig schreibst, kann man aus dem z-Plot H(z) 
ablesen. z.B. für eine Nullstelle bei 1:

Nun führst du fix die inverse Z-Transformation durch. Dafür zunächst mit
 erweitern (für höhere Ordnungen entsprechend mit
):

Durch inverse Z-Transformation (mittels Korrespondenzen z.B. 
http://de.wikipedia.org/wiki/Z-Transformation) erhälst du

Das entspricht der Folge (beginnend bei n=0)

Der Trick ist eigentlich immer der selbe:
 wird zu einer zeitlichen Verschiebung um ein Sample.

Mir hat generell beim Verständnis digitaler Filter sehr geholfen einfach 
das Filter als delay line zu zeichnen und dann Eingangswerte 
durchzuschieben. (In deinem  Fall - dem Impuls, einfach eine 1 gefolgt 
von nullen. Da sollte dann das gleiche rauskommen, wie bei der formalen 
Rechnung.) Da bekommt man eine sehr gute und Praxisnahe Vorstellung. 
Wenn man es aufzeichnen kann, dann kann man es auch programmieren.

Was ich außerdem in diesem Zusammenhang sehr spannend finde, ist dass 
man den Amplitudengang (also im Frequenzbereich) des Filters mehr oder 
weniger mit dem Lineal und Taschenrechner in der Z-Ebene bestimmen kann. 
Dazu lässt man bildlich einen Punkt (nämlich
) auf der oberen Hälfte des Einheitskreises rotieren (also Omega = 0 bis 
pi). Man misst jeweils den Abstand (Betrag) von diesem Punkt zu jeder 
Nullstelle und jeder Polstelle und erhält daraus die Verstärkung bei der 
jeweiligen Frequenz (Omega) durch folgende einfache Rechnung:

Ich kann dir leider das Skript mit der Herleitung nicht geben aber du 
kannst das ja mal ausprobieren und mit Matlab verifizieren.

Hoffe das hilft dir!

Grüße
Alex

von Dipl Ing ( FH ) (Gast)


Lesenswert?

Hallo, alibaba alias Alex und danke für deine Hilfe!

Dies einfachen Dinge habe ich mittlerweile auch raus bekommen. Ich tue 
mich aber schwer bei komplexen Polstellen. Hier ist zB ein 
Pol-Nulstellenplan mit zwei konjungiert komplexen Polstellen, ohne 
Realteil und einem Imaginärteil < 1. Die Nullstelle ist bei 1. Wenn ich 
davon die Übertragungsfunktion H(z) bilde, wir der Nenner reell. Aber 
eigentlich müsse doch was oszillierendes dabei rumkommen oder?

von alibaba (Gast)


Lesenswert?

Hmm, also wenn du einen Nenner hast, der etwas anderes ist als 1, dann 
wird daraus ein IIR Filter und das liefert dir schon mal eine unendliche 
Antwort auf deinen Eingangsimpuls. Da stehen die Chancen nicht schlecht, 
dass es oszilliert. Deine Annahmen sind absolut richtig, am Ausgang wird 
eine Schwingung mit abnehmender Amplitude ankommen, das sehe ich auch 
so. Was hält dich jetzt davon ab mit deinem Nenner weiter zu rechnen? 
Rücktransformation und dann erhälst du wieder eine Differenzengleichung, 
durch die du deinen Impuls jagen kannst.

Während beim FIR oben folgende Struktur aufgetreten ist:

y[n] = a0*v[n] + a1*v[n-1] + ...

wird nun sowas rauskommen:

y[n] = b1*y[n - 1] + b2*y[n-2] + ... + a0*v[n] + a1*v[n] + ...

Neben den letzten Eingangswerten, werden jetzt also auch die letzten 
Ausgangswerte des Filters genutzt um den nächsten Ausgangswert zu 
erzeugen. Dann die Filterstruktur hübsch aufzeichnen und eine 1 
durchschieben.

von alibaba (Gast)


Lesenswert?

Achso und nein, der Nenner ist nicht reell, schließlich dümpelt dort 
noch das z herum und das ist komplex auch wenn kein i oder j mehr zu 
sehen ist.

von Sergej (Gast)


Lesenswert?

Ja aber das kann doch eine ziemliche rechenknüppellei werden. Gerade in 
einer Klausur. Ich lade gleich mal zwei Bilder hoch, vllt kannst du mir 
dann erklären, wie ich aus dem Pol Nulstellen auf h[n] komme.

von Sergej (Gast)


Angehängte Dateien:

Lesenswert?

Also sie Bild. Hier sind zwei Pol-Nullstellen gegeben. Nur die 
Nullstellen sind unterschiedlich, einmal bei 1 und bei -1. Wie bereits 
erwähnt kommt eine Schwingung mit abnehmender Amplitude herraus. Wie 
könnte ich jetzt aus den gegebenen Pol-Nullstellen in 1 und 2, darauf 
schließen welches h[n] zum jeweiligen Pol-Nullstellen Plan gehört?

von Sergej (Gast)


Lesenswert?

Meine frage ist halt. Wenn es nur delta Funktionen sind kann man das ja 
noch recht leicht eben nachrechenen. Aber bei diesen Konselationen, 
sieht es etwas kompizierter bzw zeitaufwendiger aus. Daher müße so ein 
"scharfes Hinsehen" das beste sein. Also, dass man direkt sieht 
konjungiert komplexe Polstellen führen zu... usw. kann man das aus den 
gezeigen Bilder irgendwie schnell ersehen, oder braucht man dazu mehr 
Übung/Kentniss? Vieln Dank!

von alibaba (Gast)


Lesenswert?

Okay, verstehe. Wenn es um so qualitative Entscheidungen geht ist das 
mit dem scharfen hinsehen wirklich gut. Also zu dem gegebenen Beispiel 
fällt mir folgendes ein:

In diesem speziellen Fall: Bei den ersten beiden Samples wirkt nur der 
Transversal-Anteil des Filters also die Nullstellen, weil sich der 
rekursive Teil aus den Ausgangswerten des Filters ergibt und diese noch 
nicht durch die beiden Delay-Stufen durch sind. Es gibt jetzt also die 
beiden Anfänge der Ausgangsfolgen {1, 1, ...} und {1, -1, ...} gegeben 
in den Impulsantworten.

Wir wissen, dass sich die beiden Filter nur in den Nullstellen 
unterscheiden. Der Zähler in H(z) ist (z + 1) bzw. (z - 1). Durch die 
Rücktransformation würde aus dem z ein Delay werden.

Für den 1. pol-zero-plot wird also ein Filter entstehen, das einmal den 
Eingangswert ausgibt und einmal den um ein Sample verzögerten 
Eingangswert. Bei einem Impuls ist das also die 1 und noch mal die 1 => 
{1, 1, ...}.

Für den 2. pol-zero-plot wird ein Filter entstehen, das einmal den 
Eingangswert ausgibt und einmal den um ein Sample verzögerten 
Eingangswert, aber negiert => {1, -1, ...}

Und schon kann man die Impulsantworten zuordnen.

Das ist natürlich alles nicht allgemeingültig und wenn der rekursive 
Zweig anders aufgebaut ist, dann kann das in die Hose gehen. Von daher 
würde ich die Schritte vom Pol-Nullstellen-Plan bis zur 
Differenzengleichung schön üben. Das ist wirklich nicht schwer. Es ist 
immer nur Ausmultiplizieren, mit z^-N erweitern und Z 
Rücktransformation, was ja eigentlich nur ein umschreiben in eine andere 
Form ist. Das geht ja komplett im Standby Mode. Wenn man es einmal 
richtig drin hat, bekommt man ein gutes Gefühl für die Sache und kann 
dann "scharf hinsehen" und im Zweifelsfall nachrechnen.

von Sergej (Gast)


Lesenswert?

Hallo alibaba, erstmal vielen lieben Dank! Wie könnte ich den jetzt 
zusätzlich auf den Amplitudengang schließen? Ich kenne das für 
Übertragungsfunktionen in jw wo man dann ja in der Produktform einfach 
die Logarithmen adieren (Zähler) und subrahieren (Nenner) kann. Geht das 
im z-Bereich auch? weil es ist ja diskret?

von alibaba (Gast)


Lesenswert?

Das habe ich oben eigentlich schon geschrieben incl. Formel. Siehe 
meinen ersten Beitrag.

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.