我是 FFT 和 DSP 的新手,我想问你一些关于在 Matlab 中计算 FFT 的问题。以下代码来自 Matlab 帮助,我只是去除了噪音。
如果我选择信号长度 L > NFFT 会发生什么?那么选择 L 种不同形式的 NFFT 又如何呢?
在下面的代码中,我不确定我是否正确使用了窗口。但是当我使用window(在下面的代码中)时,我无法获得幅度的确切值?
当 L 和 NFFT 得到不同的值时(我的意思是当我改变 L 和 NFFT 时),那么幅度的值也不同。如何获得输入信号幅度的确切值?
非常感谢您,并期待收到您的来信:)
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.