Phasenberechnung bei FFT in Octave

OP #1595896
Lesenswert?

1
octave> t=0:0.0001:1;
2
octave> x=sin(2*pi*100*t)+sin(2*pi*200*t)+sin(2*pi*300*t);
3
octave> plot(0.0001*abs(fft(x))(1:500))
4
octave> grid
5
octave>

erstmal gilt: sin(2*pi*fo*t)   o-o   -j/2(d(f-fo)-d(f+fo))

Das gibt mir das Betrag des Spektrums.
Wie erwartet sehe ich 0.5 an den Frequenzen 100, 200 und 300.
1
octave> t=0:0.0001:1;
2
octave> x=sin(2*pi*100*t)+sin(2*pi*200*t)+sin(2*pi*300*t);
3
octave> plot(angle(fft(x))(1:500))
4
octave> grid
5
octave>

Die Phase kann ich aber aus dem Bild nicht deuten.
Ich würde erwarten, dass an den Frequenzen der Wert -pi/2 einnimmt.
Etwa 1.57. Das tut es tatsächlich, aber schon vor 100!
Und geht genau bei 100 zu +pi/2. Ich hätte 0 erwartet.
Irgendwie hänge ich da bei der Interpretation.

Hoffe jemand kann es nachvollziehen.

Grüsse
Angehängte Dateien:
#1596117
Lesenswert?

Die Darstellung wird von Dir schon zu recht kritisiert - der Sinus hat 
ja die Fouriertransformierte
Der Phasengang müßte außerhalb des Bereichs der Delta-Impulse entweder 
bei +/-Pi oder 0 liegen, die Gewichtung  des "rechtsseitigen" 
Delta-Impulses wäre -i/2, die Phase also -Pi/2. Tücken der numerischen 
Datenverarbeitung.

Du mußt z.B. darauf achten daß Du ja keinen unendlichen Sinus sondern 
einen zeitbegrenzten Sinus analysierst. Das ist das Produkt der 
Sinusfunktion mit einer Rechteckfunktion. Im Frequenzbereich erhältst Du 
damit die Faltung der Delta-Impulse mit einer si()-Spaltfunktion. Da 
diese das Vorzeichen wechselt müßtest Du auch unererwartete 
Phasensprünge bekommen.

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