die Länge des Signals in der Berechnung der FFT
Möchte ich Euch bitten, einige Fragen im Zusammenhang mit der letzten Frage von mir, so will ich nicht zu post in einem anderen thread. Meine Frage enthält einen code, ich kann daher nicht posten Sie es als Kommentar. Also ich habe zum Bearbeiten meiner alten Frage in eine neue. Bitte werfen Sie einen Blick und helfen. Danke.
Ich bin neu in FFT und DSP, und ich möchte Sie bitten, einige Fragen über die Berechnung der FFT in Matlab. Der folgende code ist aus der Matlab-Hilfe, die ich gerade entfernt das Rauschen.
-
Kann ich wählen Sie die Länge des Signals L unterscheidet sich von NFFT?
-
Ich bin mir nicht sicher, wenn ich Fenster richtig. Aber wenn ich mit Fenster (hanning in den folgenden code), kann ich nicht die genauen Werte der Amplituden?
-
Wenn L und NFFT, um die verschiedenen Werte, dann werden die Werte des Amplituden waren auch anders. Wie bekomme ich den genauen Wert der amplitude des Eingangssignals? (im folgenden code, habe ich eine bereits bekannte signal zu überprüfen, ob der code richtig funktioniert. Aber im Falle, ich bekam das signal von einem sensor und ich weiß nicht, vor seiner amplitude, wie kann ich das überprüfen?)
Danke ich Ihnen sehr herzlich und freuen uns, von Ihnen zu hören 🙂
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sample time
L = 512; % Length of signal
NFFT=1024; % number of fft points
t = (0:L-1)*T; % Time vector
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); input signal
X = fft(hann(L).*x', NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
plot(f,2*abs(X(1:NFFT/2+1))) % Plot single-sided amplitude spectrum.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie eine Fenster-Funktion vor der FFT um konsistente Ergebnisse zu erhalten mit der Frequenz Komponenten, die nicht ganzzahligen Anzahl von Perioden innerhalb Ihrer sampling-Fenster.
Vielleicht wollen Sie auch zu prüfen, mit periodogram anstelle der Verwendung der FFT direkt - es kümmert sich um window-Funktionen und eine Menge von den anderen Zimmerreinigung für Sie.
L
ist die Anzahl der samples in Ihrem Eingangssignal. WennL < NFFT
dann wird die Differenz null aufgefüllt.Ich würde Ihnen empfehlen, Lesen Sie etwas über die Wirkung von zero-padding auf FFTs. In der Regel ist es am besten zu verwenden
L = NFFT
wie dies wird Ihnen die beste Darstellung Ihrer Daten.Vorbehalten eine Antwort auf die Verwendung von zero-padding und FFTs ist hier gegeben:
https://dsp.stackexchange.com/questions/741/why-should-i-zero-pad-a-signal-before-taking-the-fourier-transform
In Ihrem experiment, das Sie sehen, verschiedene Amplituden, da Sie eine unterschiedliche Höhe der spektrale Leckage mit jeweils unterschiedlichen
L
.