Ich experimentiere gerade mit der FFT in Octave und scheitere daran ein vernünftiges Ergebnis für die Phasenlage zu ermitteln. Ein minimales Beispiel ist das folgende - der erzeugte Plot ist im Anhang:
1 | % 1000 points from [0..1) |
2 | x = (0:999)/1000; |
3 | |
4 | % function to FFT and plot |
5 | y = 1/4*sin(2*pi*5*x + pi) + 1/2*sin(2*pi*10*x + pi/2) + sin(2*pi*20*x + pi/4); |
6 | |
7 | z = fft(y); |
8 | amplitudes = abs(z) ./ (length(z) ./ 2); |
9 | phases = angle(z); |
10 | |
11 | % plot 0..N |
12 | N = 50; |
13 | |
14 | % real parts - looks okay |
15 | subplot(4, 1, 1); |
16 | stem(0:N-1, real(z(1:N))); |
17 | |
18 | % imag parts - looks okay |
19 | subplot(4, 1, 2); |
20 | stem(0:N-1, imag(z(1:N))); |
21 | |
22 | % freuqnecy/amplitude - looks okay |
23 | subplot(4, 1, 3); |
24 | stem(0:N-1, amplitudes(1:N)); |
25 | |
26 | % frequency/phase - ??? |
27 | subplot(4, 1, 4); |
28 | stem(0:N-1, phases(1:N)); |
Die Frequenzanteile (3. Abbildung von oben) scheinen noch korrekt. Die Phasenlage (4. Abbildung von oben) finde ich jedoch sehr merkwürdig - die Werte erscheinen mir fast zufällig zu sein. Woran kann das liegen?