Forum: Digitale Signalverarbeitung / DSP / Machine Learning Serienschaltung: Impulsanwort


von ludnam (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich bin neu hier. kann mir jemand vielleicht weiter helfen. (Bild 
unten) wäre ihm sehr Dankbar. kannn mir jemand erklären wie man die 
Serieschaltung berechnet. ich weiß das es h1[n]*h2[n] gilt. aber ich 
kommen nicht weiter :-(. vielen dank.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ja, mit der Faltung sollte das hinhauen. Leider hat der normale 
Taschenrechner keine Faltungstaste. Weil ja das H1 Filter eine ziemlich 
uebersichtliche Impulsantwort hat, haelt sich das mit der Rechnerei aber 
auch so in Grenzen.
Erstmal glaub' ich, dass der erste Wert der Impulsantwort des H2 Filters 
h2[0]=2 sein sollte.
Dann haette also das H2 Filter diese Impulsantwort:
[2    0    1.5  0    1.125 ...]

Wuerde das H1 Filter jetzt nur diese Impulsantwort haben: [0.5 0 0 0 0]
dann waere ja die Gesamtantwort beider Filter in Kette sowas:
[1    0    0.75 0    0.5625 ...]

und wuerde das H1 Filter jetzt nur diese Impulsantwort haben: [0 1 0 0 
0],
dann waere die Gesamtantwort beider Filter in Kette sowas:
[0    2    0    1.5  0    ...] (also einfach h2 um einen Takt 
verschoben)

und wuerde das H1 Filter jetzt nur diese Impulsantwort haben: [0 0 2 0 
0],
dann waere die Gesamtantwort beider Filter in Kette sowas:
[0    0    4    0    3    ...]

Weil aber das H1 Filter nun mal diese Impulsantwort mit 3 Werten hat, 
und nicht 3 Impulsantworten mit jeweils 1 Wert wie gerade angenommen, 
addieren sich die Gesamtantworten zu:
[1    2    4.75 1.5  3.5625 ...]


Gruss
WK

von Frager (Gast)


Lesenswert?

Dergute W. schrieb:
> Erstmal glaub' ich, dass der erste Wert der Impulsantwort des H2 Filters
> h2[0]=2 sein sollte.
Warum? Wenn Ich z=0 setze ist der Zähler Null und der Nenner reell.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Frager schrieb:
> Wenn Ich z=0 setze ist der Zähler Null und der Nenner reell.

Ja, aber wenn ich z=42 setze, kommt 2.0008507... - also fast genau 2 
raus.
:-)

Gruss
WK

von Frager (Gast)


Lesenswert?

... womit sich die Frage anschließt, warum Du 42 einsetzt? Ich nehme an, 
als willkürlichen großen Wert zur Grenzwertbetrachtung?

Ich dachte, es sollte "0" eingesetzt werden?

>Erstmal glaub' ich, dass der erste Wert der Impulsantwort des H2 Filters
>h2[0]=2 sein sollte.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Da ja 42 die Antwort auf die Frage dem Leben, dem Universum und Allem 
ist, kanns nicht schaden, die auch mal in H(z) einzusetzen. Koennte gut 
sein, dass  H(z=unendlich) tatsaechlich auch h(k=0) ist. Da bin ich aber 
zu wenig Mathematiker und zu lange ausm Studium um mir da sicher zu 
sein, ob das dann auch grad fuer diesen Fall gilt.

Frager schrieb:
> Ich dachte, es sollte "0" eingesetzt werden?

Es wird nach den ersten 5 Werten der Impulsantwort gefragt. Also h(k). 
Fuer k=[0,1,2,3,4] Gegeben ist aber die Übertragungsfunktion H(z).
Also muss H(z) erstmal entsprechend umgewandelt/(rueck)transformiert 
werden, um die Impulsantwort zu kriegen.

Gruss
WK

von Benjamin Sellak (Gast)


Lesenswert?

Persönlich finde ich solche Betrachtungen zur Impulsantwort am 
anschaulichsten, wenn das Filter als Differenzengleichung vorliegt.
Bei H1 ist das ja recht trivial, das wäre y[n] = 0.5 x[n] + x[n-1] + 2 
x[n-2].
Die Schritte bis zur Differenzengleichung von H2 sind wie folgt.
Zuerst legst du den Grundstein dafür, dass H2 ein kausales Filter wird, 
also multiplizierst Zähler und Nenner mit z^-2:

H[z] = 2 / (1 - 0.75 * z^-2)

Dann substituierst du H[z] mit Y[z]/X[z] und bringst den Nenner auf die 
linke Seite:

Y[z] * (1 - 0.75 * z^-2)  = 2 * X[z]
Y[z] - 0.75 * z^-2 * Y[z] = 2 * X[z]

Das lässt sich jetzt problemlos z-transformieren:

y[n] - 0.75 * y[n-2] = 2 * x[n]
y[n] = 2 * x[n] - 0.75 y[n-2].

Die Impulsantwort erhältst du, indem du jetzt die Sequenz x = {1, 0, 0, 
0, 0} einsetzt. Die wäre für die ersten fünf Werte
h = {2, 0, -1.5, 0, 1.125}.

Die Impulsantwort aus Parallelschaltung von H1 und H2 erhältst du durch 
simple Addition von h1 und h2 (und ggf. Skalierung der Koeffizienten mit 
0.5).
Die Serienschaltung kannst du mit der Faltung berechnen. Die 
Impulsantwort von H2 ist zwar unendlich, aber wenn du die jeweils ersten 
5 Werte von h1 und h2 vorliegen hast und dann conv(h1, h2) auch nur von 
n=0 bis n=4 berechnest, sind diese Werte korrekt.
Also
h12[0] = h1[0] * h2[0]
h12[1] = h1[1] * h2[0] + h1[0] * h2[1]
h12[2] = h1[2] * h2[0] + h1[1] * h2[1] + h1[0] * h2[2]
...
Oder du nimmst wieder die Differenzengleichung her, berechnest die 
Ausgangssequenz vom ersten Filter, wenn die Eingangssequenz der Dirac 
ist (heraus kommt die bekannte Impulsantwort). Und diese Ausgangsfolge 
nutzt du dann wiederum als Eingangsfolge, die du in die 
Differenzengleichung des zweiten Filters einsetzt.
Das ganze ist kommutativ, du kannst also auch die Impulsantwort des 
zweiten Filters in die Differenzengleichung des ersten einsetzen und 
erhältst das selbe Ergebnis.

von Benjamin Sellak (Gast)


Lesenswert?

Du kannst natürlich auch direkt H1 mit H2 multiplizieren und dann invers 
z-transformieren. Du erhältst so die Differenzengleichung der 
reihengeschaltenen Systeme und durch Einsetzten von x = {1, 0, 0, 0, 0} 
die gesuchte Impulsantwort.

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.