la Longueur du signal dans le calcul de la FFT

Je veux vous poser quelques questions au sujet de la dernière question de la mienne donc je ne veux pas à poster dans un autre thread. Ma question contient un code, je ne peux donc pas poster un commentaire. J'ai donc modifier mon ancienne question dans un nouveau. Veuillez prendre un coup d'oeil et de l'aide. Merci.

Je suis nouveau à la FFT et le DSP et je voudrais vous poser quelques questions sur le calcul de la FFT de Matlab. Le code suivant est à partir de Matlab aider, j'ai juste enlevé le bruit.

  1. Puis-je choisir la longueur du signal de L différent de NFFT?
  2. Je ne sais pas si j'ai utilisé de la fenêtre correctement. Mais lorsque j'utilise la fenêtre de hanning dans le code suivant), je ne peux pas obtenir les valeurs exactes des amplitudes?
  3. Lorsque L et NFFT obtenir des valeurs différentes, alors les valeurs des amplitudes étaient différentes aussi. Comment puis-je obtenir la valeur exacte de l'amplitude du signal d'entrée? (dans le code suivant, j'ai utilisé un déjà connu signal pour vérifier si le code fonctionne correctement. Mais au cas où, j'ai eu le signal provenant d'un capteur et je ne sais pas à l'avance son amplitude, comment puis-je vérifier?)

Je vous remercie beaucoup et attendons avec impatience de vous 🙂

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.

OriginalL'auteur Mai | 2012-08-20