1)为什么x轴(频率)在500处结束?我怎么知道没有更多的频率或者它们被忽略了吗?
2)我怎么知道频率在0到500之间?难道FFT不应该告诉我频率的范围吗?FFT只返回幅度值而不是频率吗?
感谢任何提示!
问题示例:
考虑以1000 Hz采样的数据。形成一个包含振幅为0.7的50 Hz正弦波和振幅为1的120 Hz正弦波的信号,并用一些零均值随机噪声进行干扰:
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sample time
L = 1000; % Length of signal
t = (0:L-1)*T; % Time vector
% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t)); % Sinusoids plus noise
plot(Fs*t(1:50),y(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('time (milliseconds)')
将信号y转换为频域,通过快速傅里叶变换(FFT)可得到噪声信号y的离散傅里叶变换。NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')