Autor Beitrag
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 01.12.10 23:28 
Hallo zusammen ;)

Ich möchte die Faltung zweier diskreter Signale berechnen. Hierzu wollte ich die Papierstreifenmethode benutzen, die in diesem Paper hier genannt wird: www.gunnar-eisenberg...stiges/FIRFilter.pdf

Gegeben sind dort die Eingabevektoren [2 5] und [-4 3 1]. Die Papierstreifenmethode ergibt das dort angegebene Ergebnis: [2 11 7 -20].
Wenn ich das Ganze allerdings als Polynom-Multiplikation darstelle:
(2x+5)*(-4x²+3x+1)
erhalte ich:
-8x³-14x²+17x+5
also den Ergebnisvektor: [-8 -14 17 5].
Was mich an der Papierstreifenmethode noch verwundert ist, dass sie nicht kommutativ zu sein scheint. Vertauscht man die Vektoren, erhält man das Ergebnis in Umgekehrter Reihenfolge.

Wie sind diese unterschiedlichen Ergebnisse zu erklären? :shock:
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 02.12.10 06:14 
Achte mal auf die genaue Verfahrensweise:

n=0 multipliziert 2*1 + 5*0
n=1 multipliziert 2*3 + 5*1
n=2 multipliziert 2*-4 + 5*3
n=3 multipliziert 2*0 + 5*-4
n=4 multipliziert 2*0 + 5*0

HTH.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 02.12.10 11:11 
hm, tut mir leid, aber mir will es nicht ins Auge springen :roll:
Oliver Marx
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 80
Erhaltene Danke: 18

Win 7 Prof.
Delphi XE Prof.
BeitragVerfasst: Do 02.12.10 11:29 
Hi,

die Faltung ist im Zeitkontinuierlichen als Integral von minus bis plus unendlich definiert. Die Funktion, die dabei nach der Variablen x integriert wird, lautet: s1(x) * s2(t-x). Schau dir die Funktion mal genau an.

Viele Grüße

Oliver
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 02.12.10 12:00 
Wenn ich mir dieses Applet hier anschaue: www.jhu.edu/~signals...reteconv2/index.html
Dann sieht das ziemlich genau so aus wie die Papierstreifenmethode. Ich berechne zunächst x[n-k][k] als Funktion von k (3. Bild von oben) und Integriere diese dann. Im diskreten Fall bedeutet das, dass ich die einzelnen Koeffizienten aufsummiere. Dann erhalte ich die Faltung (Bild 4).

Wenn ich in dem Applet zum Beispiel [2 2 2 2] mit sich selbst falte, bekomme ich auch das gleiche Ergebnis [4 8 12 16 12 8 4], wie bei der Polynom-Methode. Die Papierstreifenmethode scheint hier ausnahmsweise auch das selbe Ergebnis zu liefern.

EDIT: Ich sehe, es kommt doch irgendwie auf die Reihenfolge an.
Oliver Marx
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 80
Erhaltene Danke: 18

Win 7 Prof.
Delphi XE Prof.
BeitragVerfasst: Do 02.12.10 13:47 
Hi,

beide Methoden, die du hier benutzt, bzw. gennant hast, führen zum richtigen Ergebnis. Du musst bei deiner Polynommethode nur einen Inputstream umdrehen wegen dem s2(t-x). Für die Polynommethode eignet sich die z-Transformation eines Zeitsignals, da diese die zeitliche Folge des Inputstreams besser wieder gibt.

Viele Grüße

Oliver
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 02.12.10 15:13 
Das heißt, die Polynom-Methode, so wie ich sie verwende, liefert ein falsches Ergebnis? Matlab (conv(x,h)) bekommt interessanterweise das selbe heraus.

€: ich glaub jetzt hab ichs. Bei der Papierstreifen-Methode muss ich einen der beiden Eingangsvektoren zunächst umdrehen, bevor ich mit dem Verfahren beginne, dann bekomme ich auch das richtige Ergebnis.
Oliver Marx
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 80
Erhaltene Danke: 18

Win 7 Prof.
Delphi XE Prof.
BeitragVerfasst: Do 02.12.10 16:03 
Hi,

sorry, ich hab mir das Dokument erst jetzt angesehen und habe gesehen, dass du die verlesen hast. Der Inputstream bei der Papierstreifenmethode ist invertiert. Dass heißt, dass der Inputstream im Beispiel [1 3 -4] lautet. Im Dokument steht daher auch am Anfang der Zeile v(-k). Daher musst du als Folgen [2 5] und [1 3 -4] wählen und du erhälst mit allen Methoden das richtige Ergebnis.
Deine Methode mit den Polynomen ist also richtig, wenn du den umgedrehten Stream der Papierstreifenmethode wieder richtig herum drehst.

Viele Grüße

Oliver

Für diesen Beitrag haben gedankt: F34r0fTh3D4rk
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 02.12.10 16:49 
Vielen Dank, dann wäre für mich alles geklärt :D