Schnelle Faltung, Segmentierte Faltung

OP #603916
Lesenswert?

Hallo,

kennt sich jemand von euch mit Signaltheorie aus?

Mein Problem:
Ich möchte mit Hilfe von Matlab die Schnelle Faltung Implementieren.
Der Standard-Fall ist auch kein Problem und sieht so aus:
n = 10; % das ist die länge der beiden komplexen signale x,y
N = 2*n-1
X = fft (x, N)
Y = fft(y, N)
Z = x.* y % Multiplikation X(n) * Y(n) für n = 1,..., N
z = ifft(Z,N)

z ist dann auch dasselbe wie conv(x,y), was die direkte Faltung ist

Aber nun kommts. Bei der segmentierten Faltung steig ich aus.
Hier wird x(n) zerteilt in x1,x2,x3 usw. (x1,x2,x3 habe hier wieder die 
Länge n)
Dann werden diese Teile FFT transformiert mit y multipliziert und wieder 
zurück transformiert:
X1 = fft(x1,N)
X2 = fft(x2,N)
X3 = fft(x3,N)

Z1 = X1.*Y
Z2 = X2.*Y
Z3 = X3.*Y

z1 = ifft(Z1,N)
z2 = ifft(Z2,N)
z3 = ifft(Z3,N)

Nun müssen z1, z2 usw. überlagert werden.
Frage: Nach welcher Länge muss das genaus sein ? (müsste irgendwo in der 
Nähe von n liegen)
Der erste Teil von z1 müsste mit dem Anfang des gesamten Ergebnisses z 
übereinstimmen. Das ist bei mir nicht der Fall.
Müsste auch der Beginn von X1 und X (Frequenzbereich) übereinstimmen?

Hoffe ihr könnt was damit anfangen,

mit der Bitte um Hilfe
Bernhard
Gast #604049
Lesenswert?

danke. über die overlap-add methode hab ich einen artikel gefunden.
http://www.dspdesignline.com/howto/showArticle.jhtml?articleId=199901970&pgno=1

ich habe aber noch das problem, dass mein ergebnis vor der ersten 
überlagerung ja auch ohne diese stimmen müsste. das ist aber nicht der 
fall.
und ich hab leider keine ahnung was ich falsch gemacht hab.

ist leider etwas wage.
im anhang schick ich mal mein m-file

mfg bernhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren