我有一个频率10 MHz的信号,以100 MS / sec的速率采样 . 当我的信号在rawData中时,如何在matlab中根据频率计算FFT(此rawData的长度为100000),
-
这应该是NFFT的最佳长度(即,NFFT所依赖的因素)
-
为什么我的幅度(Y轴)随NFFT变化
-
NFFT,N和L之间的差异如何计算信号的长度
-
如何从单个信号中分离噪声和信号(在rawData中)
这是我的代码,
t=(1:40);
f=10e6;
fs=100e6;
NFFT=1024;
y=abs(rawData(:1000,2));
X=abs(fft(y,NFFT));
f=[-fs/2:fs/NFFT:(fs/2-fs/NFFT)];
subplot(1,1,1);
semilogy(f(513:1024),X(513:1024));
axis([0 10e6 0 10]);
1 回答
您可以在another post中找到相应的频率,我将回答您的其他问题:
包括您所有数据在大多数情况下是最佳选择 .
fft
只是将输入数据截断为请求的长度,这可能不是您想要的 . 如果您知道单个输入的周期,则可以将其截断为包含整数个周期 . 如果你不知道,一个窗口(例如汉宁)可能很有趣 .如果更改
NFFT
,则在fft计算中使用更多数据,这可能会略微改变给定频率的幅度 . 您还可以在0
和Fs/2
(采样频率的一半)之间的更多频率处计算振幅 .问题不明确,请提供
N
和L
的定义 .这取决于您的申请 . 如果噪音与您的信号频率相同,则无法将其分开 . 否则,您可以使用过滤器(例如带通)来提取感兴趣的频率 .