Forum: Digitale Signalverarbeitung / DSP / Machine Learning Frage zur FFT


von Thomas (Gast)


Lesenswert?

Hallo Zusammen,

angenommen ich habe ein Sin-Signal mit einer best. Frequenz und möchte 
dieses auf 2fache art und weise abtasten:

fSignal = sin(w*t)

fAbtast = sin (w*n*t)
fAbtast2 = sin (w*n*(t+versatz))

Das bedeutet also, dass ich das selbe Signal mit der gleichen 
Abtastfrequenz abtaste, jedoch mit einem gewissen Versatz. Diese beiden 
Abtast-Ergebnisse möchte ich nun mittels FFT in ein Spektrum umwandeln - 
und diese Spektrum sollte gleich sein, zumindest war dies mein Gedanke. 
Es handelt sich schließlich um das selbe Ursprungs-Signal.

Wenn ich das ganze mit Matlab simuliere, kommen auch recht ähnliche 
Spektren heraus, allerdings nicht vollkommen identische. Ich denke das 
liegt daran, dass ich bei der FFT MATLAB nicht mitteile, dass das zweite 
abgetastete Signal mit einem zeitlichen versatz "aufgenommen" wurde.

Wie ich Matlab diesen versatz jedoch mitteile, habe ich bis jetzt noch 
nicht heraus gefunden, vielleicht könnt Ihr mir ja helfen?

Mit diesem Code erstelle ich das Spektrum:

L = length(v1);
NFFT = 2^nextpow2(L);
Y = fft(v1,NFFT)/L;
f = (f_Abtast)/2*linspace(0,1,NFFT/2+1);

Das funktioniert im Grunde sehr gut, den Code selbst habe ich mir von 
einer MATLAB Seite gesucht, da ich noch nie mit Fourier-Analysen 
gearbeitet habe. Mein Gedanke war, ob man hier nicht die Frequenz Achse 
("f") irgendwie anpassen müsste, um den zeitlichen Versatz während der 
Abtastung zu berücksichtigen.

Viele Grüße,
  Thomas

von russenbaer (Gast)


Lesenswert?

Servus,

Den Versatz im Zeitsignal siehst Du in der Phase wenn Du die zwei 
Spektren vergleichst.
Ich glaube das Du mit dieser Antwort nicht unbedingt zufrieden sein 
wirst, aber ich glaube das Du einiges Theorie lernen solltest ;)
Schau z.B. einmal in den Oppenheim, ... , "Zeitdiskrete 
Signalverarbeitung".

lg
Russenbaer

von Thomas (Gast)


Lesenswert?

Hey,

okay das klingt durchaus Plausibel - den Versatz sehe ich in der Phase. 
Was mir leider immernoch schleierhaft ist, ist dass das Betragsspektrum 
(vllt. habe ich mich da vorher zu ungenau ausgedrückt?) nicht gleich 
ist.

Oder ist es normal, dass sich bei einem zeitlichen Versatz auch das 
Betragsspektrum leicht ändert?

Viele Grüße,
  Thomas

von Stefan K. (Gast)


Lesenswert?

Ja das ist normal, da du mit dem Versatz des Signales verschied starke 
Sprünge in dein Signal bekommst. Die FFT gibt dir ja nur das Spektrum 
des Signales wieder, welches unendlich oft aneinander gesetzt wird.

von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Hey,
schonmal vielen Dank für die Antworten, so langsam steige ich dahinter 
:)

Etwas habe ich jedoch noch nicht ganz heraus gefunden, und zwar wie man 
gute Ergebnisse der FFT bekommt.

Aufgefallen ist mir folgendes:

Bei einem Sinus-Signal von 500kHz (Amplitude 1) und einer Abtastrate von 
2MHz bekomme ich ein deutlich besseres Ergebnis als bei einer Abtastrate 
von 3MHz. Die Anzahl der Abtastpunkte habe ich dabei auf 512 gewählt.

Das leuchtet mir nun leider nicht genau ein. Schließlich dürfte eine 
Steigerung der Abtastrate ja keinen Informationsverlust beinhalten.

Ich habe den Graphen mal angehängt. Man sieht deutlich dass die 2MHz 
genau die richtigen Daten meines Sinus-Signals anzeigen, während die 
3MHz nicht ganz korrekt sind.

Woran kann das liegen? Mir ist aufgefallen das bei Abtastfrequenzen von 
2^n* (f_Signal*2) (sprich 2MHz, 4MHz, 8MHz,..) immer gute Ergebnisse aus 
der FFT kommen, sonst nicht. Ist das so normal?

Grüße,
  Thomas

von Frank M. (aktenasche)


Lesenswert?

da 2MHz ein vielfaches von 500kHz ist, wirst du immer volle perioden 
deines abzutastenden sinus in den "messwerten" haben.

wenn du allerdings mit 3MHz abtastest, wirst du am anfang oder am ende 
deines abzutastenden signals eine unvollständige schwingung drin haben. 
die ändert natürlich dein spektrum.

aus diesem grund gibt es fensterfunktionen, die dein zu messendes signal 
vor der FFT modifizieren.

genau genommen fensterst du schon von grund auf mit einem rechteck, da 
deine messung nur eine unendliche dauer hat.

http://de.wikipedia.org/wiki/Fensterfunktion

mach deinen messvektor mal wesentlich länger und beobachte die 
veränderung.

€: ok vergiss das ganze, 3MHz ist ja auch ein vielfaches ^^ ich vermute 
trotzdem dass es in die richtung geht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.