WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

fft liefert richtige Form aber falsche Werte

 

Magistus Obnoticus
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 11.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2020, 00:53     Titel: fft liefert richtige Form aber falsche Werte
  Antworten mit Zitat      
Hallöchen,

mein erster Beitrag hier! Also folgendes:
Ich habe mir die MATLAB-interne Hilfe angeschaut und dort das erste Beispiel ausprobiert. Etwas vereinfacht sieht es so aus:

Code:
Fs = 1000;            % Sampling frequency                    
T = 1/Fs;             % Sampling period      
L = 1500;             % Length of signal
t = (0:L-1)*T;        % Time vector

S = 0.7*sin(2*pi*50*t);

figure
plot(1000*t(1:50),S(1:50))

Y = fft(S);

P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

f = Fs*(0:(L/2))/L;
figure
plot(f,P1)


Die Ergebnisse sehen aus wie erwartet. Ein schöner Sinus im ersten Bild und im zweiten Bild ein scharfer Peak bei x = 50 Hz mit einer Höhe von y = 0,7. So weit, so gut.

Jetzt zur eigentlichen Anwendung:
Ich habe mit einem Oszilloskop ein Signal abgetastet, das eine Schaltung erzeugt, die ich gebastelt habe. Das Oszi zeigt den Hauptpeak bei etwa 57 GHz und einer Amplitude von etwa 100 mV. Beide Werte sind nicht ganz sauber (leider). Die Waveform habe ich abgespeichert und in MATLAB importiert. Wenn ich sie dort plotten lasse, dann sehe ein linear interpoliertes Signal, das in etwa die richtige Amplitude hat. Ich hänge zwei Bilder hier an. Eins zeigt den Anfang der Waveform und eins die ganze Waveform. Nun will ich auf die dieselbe Art wie in der Hilfe ein fft davon machen:

Code:
Fs = 200e+9;          % Sampling frequency                    
T = 1/Fs;             % Sampling period      
L = 800000;           % Length of signal
t = (0:L-1)*T;        % Time vector

S = importfile_csv(filename1);

Y = fft(S);

P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

f = Fs*(0:(L/2))/L;
figure
plot(f,P1)


Der Peak ist bei der richtigen Frequenz, aber er zeigt eine Amplitude von nur 32,97 mV an und ich kapier absolut nicht wieso! Ein Bild des Ergebnisses hänge ich auch an.

Hat wer ne Idee, was da schief läuft? Macht mich grad total kirre!
Danke schonmal!

Euer Maggi ...

edit/Nachtrag:
Kann es sein, daß die Sampling-Frequenz das Problem ist? Beim Beispiel ist die Sampling-Frequenz 1000 Hz bei einem Sinus mit 50 Hz. Also 20 Punkte pro Periode. Bei meiner Messung 200 GHz bei 57 GHz. Also "nur" 3 Punkte pro Periode. Ist das vielleicht zu wenig für den fft-Algorithmus von MATLAB?

imported_waveform_fft.jpg
 Beschreibung:

Download
 Dateiname:  imported_waveform_fft.jpg
 Dateigröße:  12.81 KB
 Heruntergeladen:  159 mal
imported_waveform_whole.jpg
 Beschreibung:

Download
 Dateiname:  imported_waveform_whole.jpg
 Dateigröße:  15.13 KB
 Heruntergeladen:  156 mal
imported_waveform.jpg
 Beschreibung:

Download
 Dateiname:  imported_waveform.jpg
 Dateigröße:  36.76 KB
 Heruntergeladen:  167 mal
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.