FFT Oszilloskop und Periodogram aus Matlab

Gast #6330044
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:
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
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
Gast
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

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.