Ich versuche, eine inverse FFT in Matlab zu tun, aber ich kann nicht scheinen, dass die inverse Arbeit richtig funktioniert. Hier ist mein Code:inverse fft mit Matlab funktioniert nicht
data = [-0.0005
-0.0004
-0.0003
-0.0002
-0.0001
-0.0000
0.0001
0.0001
0.0001
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0003
0.0004
0.0005
0.0006
0.0007
0.0009
0.0010
0.0011
0.0011
0.0012
0.0011
0.0011
0.0011
0.0010 ];
%plot data
figure(1)
plot(data)
%FFT
N = 100;
X = fft(data, N);
F = [-N/2:N/2-1]/N;
F = F/0.0125;
X = fftshift(X);
figure(2)
plot(F, abs(X))
%inverse FFT
y = ifft(X);
figure(3)
plot(F,y)
Abbildung 1 und 3 sollten identisch sein, sind aber in keiner Weise. Ich habe dafür gesorgt, dass ich ifft
des absoluten Wertes von fft
nicht nehme, deshalb ist mir nicht klar, was falsch ist.
Das schnell war. Wenn mein 'N' zu groß gewählt wird, werden die Werte einfach auf 0 gesetzt. Warum ist das so, sollte ich dann überhaupt kein' N' passieren? – BillyJean
Standardmäßig ist 'N' die Länge Ihres Signals. Wenn Ihr 'N' größer ist als die Länge Ihres Signals, wird es mit Null gepolstert. – Suever
Empfehlen Sie, dass ich den Standardwert verwende, oder ist es besser, dass ich es manuell behebe? – BillyJean