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?


 Thread beobachten
 Thread beobachten Seitenaufteilung abschalten
 Seitenaufteilung abschalten