DSP Theorie

  • Ersteller Metalmachine69
  • Erstellt am
M
Metalmachine69
Registrierter Benutzer
Zuletzt hier
13.09.22
Registriert
09.09.09
Beiträge
510
Kekse
1.676
Kennt sich hier im Forum jemand mit digitaler Signalverarbeitung aus?

Ich hänge seit gestern an folgender Problematik:
Ich habe in MATLAB ein einfaches Signal erzeugt.
t = cos(2*pi*200*time) ; time = linspace(0,1,1024)
Also quasi einen Kosins mit 200 Hz.

Davon mache ich eine Fouriertransformation und schaue mir Betrag und Phase im Frequenzbereich an. Der Betrag weist wie zu erwarten nur eine Spitze auf, deren Breite von der Auflösung des Zeitbereichssignals, bzw der Punkteanzahl der FFT abhängt.

Den Phasenplot verstehe ich nicht. (x-Achse: Samples; y-Achse: Phase/pi)

untitled.jpg

Ich hätte eine Null-Linie erwartet, weil es nur bei f = 200 Hz überhaupt ein Signal gibt, das wiederum ein zeitlich nicht verschobener Kosinus ist. Statt dessen sehe ich einen Verlauf von 0 bis Pi mit einem Phasensprung um -Pi bei der Signalfrequenz. Wer kann mir das erklären?

*Keine Ahnung in welchem Unterforum dieses Thema am besten aufgehoben ist, aber da der Hintergrund meiner Frage die Verarbeitung von Audio-Signalen ist, dachte ich es passt hier hin. Wenn dem nicht so ist, bitte verschieben...
*edit Und schon wurde es vorschoben, danke! :)
 
Eigenschaft
 
Zuletzt bearbeitet:
Hallo,

kann es mit der Komplexen Darstellung zu tun haben?
Ein cos ist ja 0.5*( exp(iwt)+exp(-iwt) ).
Die Phase des zweiten Terms, wenn man ihn in die Form exp(-iwt)=exp{i (wt - 2wt)} "zwingt", hat dann eine Phasennacheilung, die mit der Zeit zunimmt (die Phase wäre dann -2wt).
Ab 180° zählt man die Phase aber nicht weiter positiv, sondern negativ (wegen der Periodizität): 180° Phase ist das gleiche wie -180° Phase.

Vieleicht hängt es damit zusammen?

Gruß
 
Was is die einheit von deinem phasenplot? Rad?
 
Gute Frage....

Was sind denn die beiden Einheiten jeweils an den beiden Achsen?

Gruß
 
Probier mal mit: time = linspace(0,(1-1/1024),1024).
Dann dürften die Ergebnisse sauberer werden. :)

LG
Jakob
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Bei der FFT wird dein Sample als Ausschnitt eines periodischen Signals betrachtet. Wenn die Samples also nicht genau eine Periode abdecken, gibt es links und rechts von deinem Zeitfenster einen Knick bw. Sprung im analysierten Signal, daher der Phasenverlauf. Mit dem Ansatz von Jakob sollte dies passen und du die Signalfrequenz genau erwischen, d. h. ein Peak im Frequenzdiagramm dargestellt werden.
 
  • Gefällt mir
Reaktionen: 1 Benutzer
ich dachte, damit hätte ich genug zu den Achsen geschrieben: "(x-Achse: Samples; y-Achse: Phase/pi)"
Was ich damit sagen wollte war: Die Einheit der Y-Achse ist rad, dargestellt in Vielfachen von Pi.

Vielen Dank euch! Besonders an Jakob.
Wenn ich das Detail im Zeit-Vektor korrigiere, passt es. Wie klaatu geschrieben habe, wird das Signal dadurch stetig.

Ich mache das ganze, weil ich die DFT selbst implementiert habe und sie mit der Matlab-eigenen FFT vergleichen wollte. Dabei ist mir das mit der Phase aufgefallen. Die korrigierte Zeit-Definition führt für DFT und FFT dazu, dass man erstmal nur Rauschen im Phasenplot sieht. (Aufgrund des sehr kleinen Betrags.) Wenn ich in meiner DFT den Real- und Imaginärteil jeweils runde (zB auf die 6. Nachkommastelle), entspricht das Ergebnis dem, was ich erwartet habe und es ergibt sich eine Null-Linie ohne Peaks. Wenn ich dann einen Sinus bei einer zweiten Frequenz zum Signal addiere, sehe ich bei dessen Frequenz einen -Pi/2 Peak in der Phase. So habe ich mir das vorgestellt :)
 
  • Gefällt mir
Reaktionen: 1 Benutzer

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben