FFT Oszilloskop und Periodogram aus Matlab

Gast #6330044
Lesenswert?

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?
Angehängte Dateien:
#6330072
Lesenswert?

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).
Gast #6330989
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren