Gegeben zwei endliche Sequenzen x (i) und y (i), i = 1 ... n. I bekannt, daß der diskreten Fourier-Transformation (DFT) des punktuellen Produkt xy gleich zwischen zwei DFT von x und y einer Faltungs:Covolution von zwei diskreten Fourier-Transformationen
DFT(x.y) = (DFT(x) * DFT(y))/n
Jetzt I-Test in Python diesen einfachen Code:
import numpy as np
x = np.array([1,2,3])
y = np.array([0.1, 1, 0.5])
Dftxy = np.fft.fft(x*y) # DFT(x.y)
Dftx = np.fft.fft(x)
Dfty = np.fft.fft(y)
CDftxy = np.convolve(Dftx,Dfty,'same')/3 # (DFT(x)*DFT(y))/n
das Ergebnis ist:
Dftxy = [3.60+0.j, -1.65-0.4330127j, -1.65+0.4330127j]
CDftxy = [-2.10-0.40414519j, -1.65+0.4330127j, 0.40+0.j]
die Werte von Dftxy und CDftxy unterschiedlich sind. Gibt es einen Fehler in meinem Code?
Vielen Dank Mohammed Li, ich habe versucht, in Python mit numpy zu testen, aber das Ergebnis ist nicht korrekt. Der Code wird in meiner geänderten Frage angezeigt. – phan
Lasst uns einfach die Mützen vermeiden, es wird als Schreien betrachtet und nicht sehr freundlich. Ich bekomme die Downvotes nicht. Wenn Sie so schlau sind, zeigen Sie ein Beispiel, das funktioniert. – roadrunner66