Forum: Digitale Signalverarbeitung / DSP / Machine Learning Fouriertransformation (Verständnis) Problem


von Electribe (Gast)


Lesenswert?

Hallo!
Ich habe ein Problem beim Verständnis einer FFT Analyse, die ich am 
Rechner gemacht habe. Ich habe mit einem Oszillogramm eines Oszilloskops 
(Eingangssignal: 400mVpp Sinus, 10Hz, +1V offset) in Excel eine 
Fouriertransformation gemacht. Sicher wäre Matlab oä besser geeignet - 
aber das hatte ich leider nicht zur Hand.
Wende ich auf meine Eingangsdaten (es sind 4096 Werte mit 1MS 
abgetastet) die Fouriertransformation an, bekomme ich genau so viele 
komplexe (fourier)Werte wieder raus. Von diesen habe ich den Betrag 
ausgerechnet und ihn durch die Anzahl der Werte geteilt (den letzten 
Schritt mache ich nur, weil ich ihn in einem fertigen Excel Script 
gesehen habe).
Lasse ich mir das Ergebnis grafisch darstellen, sieht auf den ersten 
Blick alles richtig aus. Die "Amplitude" bei 0Hz sollte ja dem 
arithmetischen Mittelwert meiner Eingangswerte entsprechen - genau das 
macht er auch, bis auf die letzte Kommastelle. Rechne ich aber von Hand 
aus, wie hoch die Amplitude des Sinuspeaks in der Fourierdarstellung 
sein müsste (Effektivwert des 400mVpp Sinus etwa bei 142mV), stimmt sie 
nicht mit der angezeigten von 105mV überein.

Irgendwo habe ich einen Denkfehler, da ich davon ausgehe, dass die 
Transformation richtig ist ;)

Ich wäre jedem sehr dankbar, der mir weiter helfen würde!

Viele Grüße, Electribe

von schroeder (Gast)


Lesenswert?

Also, 4096 Werte eines 10Hz Signals bei 1MHz Abtastung - das macht 4.1ms 
Signalausschnitt bei einer eigentlichen Periodenlänge von 100ms. D.h., 
du analysierst garnicht den Sinus. Erhöhe die Anzahl der Eingangswerte.

von Electribe (Gast)


Lesenswert?

Hey, erstmal vielen Dank für deine Antwort. Ich hab mich ein bisschen 
blöd ausgedrückt: Ich bekomme aus dem Oszilloskop (beim Speichern des 
aktuellen Screens) immer 10000 Werte, es nimmt den Sinus mit 1s/Div auf. 
Da Excel für die Fourierberechnung max. 4096 Werte verarbeiten kann, 
habe ich also etwa die Hälfte der Messwerte über Bord geschmissen und 
die anderen transformiert. Hoch genau aufgelöst müsste das Signal doch 
so trotzdem sein, oder?

von schroeder (Gast)


Angehängte Dateien:

Lesenswert?

Hatte mich schon gewundert, dass du da überhaupt einen Peak bekommst.

Also verstehe ich recht, dass du 100 Perioden (der Screeen hat 10 Divs, 
bei 10Hz und 1s/Div also 100 Perioden) auf insgesamt 10kSamples 
bekommst? Im Plot das Ergebnis von MATLAB.

> Rechne ich aber von Hand
> aus, wie hoch die Amplitude des Sinuspeaks in der Fourierdarstellung
> sein müsste (Effektivwert des 400mVpp Sinus etwa bei 142mV), stimmt sie
> nicht mit der angezeigten von 105mV überein.

Angezeigt wo?

von Electribe (Gast)


Lesenswert?

> Also verstehe ich recht, dass du 100 Perioden (der Screeen hat 10 Divs,
> bei 10Hz und 1s/Div also 100 Perioden) auf insgesamt 10kSamples
> bekommst?

Genau so. Von diesen 10kSamples benutze ich (wegen der Beschränkung in 
Excel) die besagten 4096. Der Wert von etwa 105mV im Peak bei 10Hz wird 
mir von meinem Excel Plot angezeigt/von Excel ausgerechnet... aber wie 
ich an deinem Matlab Plot sehe kommt ja nahezu das gleiche raus - warum 
ist der Peak bei 0.1V? Müsste er nicht dem Effektivwert der 
Wechselspannung entsprechen? Ich sehe nicht den Zusammenhang zwischen 
400mVpp und dem 100mV Peak in der Fouriertransformation?

PS: Danke für deine Hilfe und das du's in Matlab geplottet hast - eines 
Tages gibt's ein Bier dafür! ;)

von schroeder (Gast)


Lesenswert?

Wieso den Effektivwert? Der Betrag der komplexen Schwingung ist der 
Scheitelwert, hier also 200mVp. Im Spektrum teilt sich dieser Betrag auf 
zwei Spektralanteile auf, um es mal salopp zu formulieren - also 2 mal 
100mVp.

Deine kleine Abweichung kann durch Rauschen etc. kommen.

von Electribe (Gast)


Lesenswert?

Aaaah! So macht's natürlich Sinn. Ich war ursprünglich vom Scheitelwert 
ausgegangen und bin dann davon abgekommen, weil die Werte so weit 
auseinander lagen ;) Dann wild mit irgendwelchen Faktoren multiplizieren 
ums schön zu rechnen ist zugegeben nich der beste Weg.

Eine letzte Frage noch: Um mein Excel Script fertig zu machen, würde ich 
die Frequenzachse nur bis zur Nyquistfrequenz (in dem Fall 500kHz) 
darstellen und dann einfach alle Spektralanteile mit 2 multiplizieren.
Der Gleichanteil ist aber doch auch ohne diese Umrechnung "richtig"? 
(Anders gesagt, wenn ich ihn auch mal 2 nehme wird er falsch) Was ich 
meine: z.B. in deinem Matlab Plot ist 1V bei 0Hz angezeigt - teilt sich 
dieser Wert denn nicht auf 2 Spektralanteile auf?

von schroeder (Gast)


Lesenswert?

> Was ich meine: z.B. in deinem Matlab Plot ist 1V bei 0Hz angezeigt -
> teilt sich dieser Wert denn nicht auf 2 Spektralanteile auf?

Der bei n = 0 und n = N/2 "teilen sich nicht auf". Das kann man sich am 
Einheitskreis deutlich machen (konjugiert komplex).

von Electribe (Gast)


Lesenswert?

Danke für deine Hilfe!

von Faber (Gast)


Lesenswert?

Hallo zusammen, interessante Konversation. Noch zu meinem Verständnis, 
weshalb teilt sich die Grundschwingung in 2 Spektrallinien auf? Ist das 
wegen dem Abtasten?

von Niels (Gast)


Lesenswert?

Hi. Besser spät als gar nicht:
Nein, nicht wegen des Abtastens. FT gibt als Ergebnis komplexe 
Schwingungen (Zeiger) an. Bedenke dabei:
cos(w) = 0.5e^(jw) + 0.5e(-jw)
Darauf solltest du auch beim Skalieren/Ablesen der Amplitude im Spektrum 
achten.
Viele Grüße, Niels.

von Michael L. (Gast)


Lesenswert?

> Hallo zusammen, interessante Konversation. Noch zu meinem Verständnis,
> weshalb teilt sich die Grundschwingung in 2 Spektrallinien auf? Ist das
> wegen dem Abtasten?

Du hast in der Regel reellwertige Zeitsignale vorliegen, die Du als 
Summe von komplexe e-Funktionen darstellen willst.

Das geht nur dann, wenn sich die Imaginärteile der komplexen 
e-Funktionen bei der Summation aufheben. Diese Aufgabe übernimmt der 
"zweite" Peak. Sein Wert ist konjugiert komplex zum ersten Peak.


Gruß,
  Michael

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.