我想询问一些与我上一个问题相关的问题,所以我不想在另一个线程中发布。我的问题包含代码,因此我不能将其作为评论发布。因此,我必须将旧的问题编辑为新的问题。请看一下并帮忙。谢谢。
我是FFT和DSP的新手,我想向您询问有关在Matlab中计算FFT的一些问题。以下代码来自于Matlab的帮助文档,我只是去掉了噪声。
1. 我可以选择与NFFT不同的信号长度L吗? 2. 我不确定我是否正确地使用了窗口。但是当我使用窗口(以下代码中的汉宁窗)时,我无法得到精确的幅度值? 3. 当L和NFFT获得不同的值时,幅度值也会有所不同。如何获得输入信号的准确幅度值?(在以下代码中,我使用已知信号来检查代码是否正确工作。但是,在某种情况下,我从传感器获得信号,我不知道其幅度,我该怎么办?)
非常感谢您,并期待您的回复 :)
我是FFT和DSP的新手,我想向您询问有关在Matlab中计算FFT的一些问题。以下代码来自于Matlab的帮助文档,我只是去掉了噪声。
1. 我可以选择与NFFT不同的信号长度L吗? 2. 我不确定我是否正确地使用了窗口。但是当我使用窗口(以下代码中的汉宁窗)时,我无法得到精确的幅度值? 3. 当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.