Hey Leute, ich bin gerade dabei die Sprungantwort für meinen Moving Average filter herzuleiten. Dies Versuche ich über die Z-transformierte. H(z)=1/M * (1-z^-M)/(1-z^-1), das 1/M lass ich im späteren Verlauf aber mal weg, weil es nur ein konstanter Faktor ist. Die Sprungantwort A(z) = H(z)*S(z); wobei S(z)=z/(z-1) der unit step ist Nun komme ich auf A(z)=(1-z^-M)/(1-2z^-1-z^-2) Um zurück in den Zeitbereich zu kommen versuche ich die Partialbruchzerlegung. Die Polstellen sind: z1=1+sqrt2=a und z2=1-sqrt2=b Zuvor musste ich aber Nenner und Zähler mit z^2 erweitern. Nun habe ich: A(z)=(z^2-z^(-M+2))/((z-a)*(z-b)) So und hier weiß ich nun nicht weiter... Könnte mir einer Grundsätzlich die Formel für die Sprungantwort im Zeitbereich für einen Moving Average sagen oder bei der weiteren Herleitung einen Tipp geben? Gruß Stefan
Gast
#4245529
Grundsätzlich ist das bei einem Moving-Average ohne große Rechnung recht einfach: Du hast im Prinzip ein Rechteckfenster(Folge von M dirac-stoßen mit der Amplitude 1/M), welches du über dein Signal (hier: Sprungfunktion von 0 auf 1) verschiebst. In dem Bereich wo dein Eingangsignal 0 ist, ist auch dein Ausgangsignal 0. Nun kommt schließlich der Übergang wo der Sprung stattfindet. An der Stelle wo das erste Sample vom Sprung mit eingeht, mittelst du ja über M Werte die bis auf einen alle Null sind. Also ist das Ausgangssignal an dieser Stelle 1/M. An der nächsten Stelle gehen schon zwei Samples mit dem Wert 1 ein, d.h. 2/M. usw. Also: eine aufsteigende Treppe mit M-Stufen und ab dann konstant auf 1 Im Endeffekt: Sprungfunktion gefaltet mit einem Rechteckfester
Das macht auf jedenfall Sinn. Die Faltung im Zeitbereich entspricht ja der Multiplikation im Frequenzbereich. Ich schau mir das ganze nochmal genauer an und melde mich dann :) Gruß Stefan
Gast
#4246160
Hm... der MA hat keine Pole. Du könntest zuerst die Differenzengleichung aufstellen und dann mit dem Verschiebungssatz z-transformen.
@ Matthias: Wenn ich zuerst die Differenzengleichung für meinen rekursiven MA aufstelle und dann in den z-Bereich transformiere, hab ich ja nur wieder meine Übertragungsfunktion im z-Bereich oder verstehe ich dich da falsch? Hab mal in Matlab versucht die Sprungantwort zu plotten. Da der Filter Kernel eine endliche Länge hat, sieht es wie ein Trapez aus. Ist das soweit richtig?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
Gast
#4248862
Ich meinte, dass der MA eine andere H(z) hat. Im Zeitbereich geht die Sprungantwort einfacher auszurechnen als mit hin und her transformieren...
S(z)H(z)= 1/M * (1-z^-M)/(1-z^-1) * z/(z-1) = = (1/M * z^2 / (z-1)^2) - (1/M * z^-M * z^2/(z-1)^2) = = (1/M z * z/(z-1)^2) - (1/M * z^(-M+1) * z/(z-1)^2) z/(z-1)^2 <=> n*s[n] für |z|>1 => 1/M * (n+1) * s[n+1] - 1/M * (n-M+1) * s[n-M+1] lg Markus PS: Rechenfehler darf sich jeder selbst behalten :) PS2: S(z) <=> s[n] "union step"
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

