Hallo! Folgender Aufbau: Signal Generator (1 Hz, 100 mVpp) => Oszilloskop (1 MEG Ohm Eingang) Das Signal ist im ersten Plot zu sehen. Der zweite Plot enthält die vom Oszilloskop berechnte FFT. Da ist auch mein 1 Hz Signal gut zu erkennen. Eingestellt war ein Span von 20 Hz, mitte auf 10 Hz und Skalierung auf 20 dB. Die Daten für die ersten zwei Plots kommen direkt aus dem Oszilloskop. Der letzte Plot entsteht durch das in Matlab berechnte Periodogram. Allerdings wundere ich mich warum das Signal so kantig ist, bzw. so wenig Datenpunkte vorhanden sind? Das Oszilloskop stand auf 1s/div, was im ganzen 10 s Samplezeit ergibt. Desweiteren hat es mit 100 Sa/s Daten aufgenommen. Daher: <source lang="c"> Fs=100; % Sampling % Periodogram [Pxx, F] = periodogram(u, rectwin(length(u)), length(u), Fs); Uxx=sqrt(Pxx*1e6); % 1 MEG Ohm Eingangswiderstand, Spannung ausgerechnet % U=sqrt(P*R) figure; subplot(3,1,1); % Signal plot(t, u*1000); xlabel('time [s]'); ylabel('amplitude [mV]'); title('signal'); subplot(3,1,2); plot(f_fft,u_fft); % FFT Aus Oszi xlabel('Frequency [Hz]'); ylabel('amplitude [dBV]'); title('FFT Oscilloscope'); subplot(3,1,3); loglog(F,Uxx); grid on; title('Periodogram'); xlabel('Frequency [Hz]'); ylabel('amplitude '); </source> Was mache ich falsch, bzw. was kann ich besser machen?
zuerst einmal solltest Du die Achsen gleich skalieren, d.h. sowohl die Frequenz-Achse, als auch die Y-Achse. Letztere ist einmal logarithmisch und einmal linear. Des Weiteren berechnet die Periodogram-Funktion von Matlab, sofern ich mich richtig erinnere, nicht nur das Frequenzspektrum, sondern das Leistungsdichtespektrum, also sozusagen das Quadrat der Frequenzspektrums (mathematisch nicht ganz richtig, kann man sich aber so vorstellen).
Moin, Marius schrieb: > Allerdings wundere ich mich warum das Signal so kantig ist, bzw. so > wenig Datenpunkte vorhanden sind? Deine Frequenzachse ist logarithmisch, deine Daten aus der FFT sind fuer linear gestaffelte Frequenzen - klar sind da links eher wenige Daten/cm im Diagramm... Gruss WK
Auch wenn die Achsen linear sind, sieht es sehr "zerhackt" aus. Ich habe mit der Zeile Uxx=sqrt(Pxx*1e6); versucht die Spannung zu berechnen. Wie kann ich das ganze in die Form Volt/sqrt(Hz) bringen?
Marius schrieb: > Allerdings wundere ich mich warum das Signal so kantig ist, bzw. so > wenig Datenpunkte vorhanden sind? Dir ist aber schon klar daß bei 10 Sekunden Aufzeichnungsdauer die Frequenzauflösung nur 0.1 Hz ist? Gruß Anja
Marius schrieb: > Auch wenn die Achsen linear sind, sieht es sehr "zerhackt" aus. bei deinem zweiten Versuch ist die y-Achse beim Oszi weiter logarithmisch (Pegelangabe), die y-Achse des Matlab-Plots aber linear - also wieder nicht besonders gut vergleichbar. Weiter sieht es für mich so aus, als wäre bei der Oszi-FFT eine Fensterfunktion verwendet worden (evtl. Flat-Top?), bei der Matlab-FFT aber entweder keine Fensterung (oder eine andere Fensterfunktion) Marius schrieb: > Das Oszilloskop stand auf 1s/div, was im ganzen 10 s Samplezeit ergibt. > Desweiteren hat es mit 100 Sa/s Daten aufgenommen. Dann sollten die Frequenzbins der FFT 0,1Hz auseinander liegen. Das passt ganz gut zu der "Eckigkeit" der Matlab-FFT.
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.