Forum: Digitale Signalverarbeitung / DSP / Machine Learning FFT und Phase mit MATLAB


von Tomsawyer (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

 ich hab ein verständnisproblem was FFT betrifft.

 Meine Aufgabe war eigentlich ein analoges Signal mit 400 Khz abzutasten 
und und 2000 Samples in einem Diagram zu zeigen (in Schleife).
 Ich hab dazu 3 Graphen zugefügt die die Amplituden-Betrag, 
logarithmische Amplitude(Magnitude) und Phase des analogen Signals 
zeigen. Das Signal enthält einen 40kHz Frequenz wobei ich auch einen 
Peek in ungefähr 39 kHz im FFT Graphen sehen kann.

 hier ist die Funktion die ich benutze:
%%___________________________________________________________
function [f,p, betrag, mag] = localDaqfft(data,Fs,blockSize)

%%Fs ist die Abtastfrequenz = 400 kHz


% fft von data rechnen.
xFFT = fft(data);   % data enhält die 2000 Spannungswerte
xfft = abs(xFFT);


index = xfft == 0;
xfft(index) = 1e-17;

p = angle(xFFT);

p = p * 180/pi;
betrag = xfft;


mag = 20*log10(xfft);
mag = mag(1:blockSize/5);       % blockSize ist 2000
betrag = betrag(1:blockSize/5);

p = p(1:blockSize/5);
f = (0:length(mag)-1)* Fs/blockSize;
f = f(:);
%%_____________________________________________________________


Die Frage ist nun ob ich alles richtig tue? Ich hab bemerkt das die 
Frequenzamplituden zu hoch sind. Zum Beipiel wenn das analoge Signal die 
größte Amplitude bei 1 ms besitzt (ungefähr 1,7V),ist die Amplitude der 
Frequenz Peek bei 40 kHz 140, und die der magnitude 45 dB.

von branadic (Gast)


Lesenswert?

Hallo,

ob alles richtig funktioniert kannst du ja mit einem einfachen 
Testsignal prüfen.
Erzeuge dir einen Datensatz mit einem Sinussignal konstanter Frequenz 
mit vollständigen Perioden und fester Amplitude und dann lass deine 
Analyse drüber laufen.

branadic

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
Noch kein Account? Hier anmelden.