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
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.
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?
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?
> 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! ;)
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.
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?
> 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).
Hallo zusammen, interessante Konversation. Noch zu meinem Verständnis, weshalb teilt sich die Grundschwingung in 2 Spektrallinien auf? Ist das wegen dem Abtasten?
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.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.