首页 文章

在Matlab中信号处于rawData时,在频率轴上计算FFT

提问于
浏览
0

我有一个频率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 回答

  • 1

    您可以在another post中找到相应的频率,我将回答您的其他问题:

    • 包括您所有数据在大多数情况下是最佳选择 . fft 只是将输入数据截断为请求的长度,这可能不是您想要的 . 如果您知道单个输入的周期,则可以将其截断为包含整数个周期 . 如果你不知道,一个窗口(例如汉宁)可能很有趣 .

    • 如果更改 NFFT ,则在fft计算中使用更多数据,这可能会略微改变给定频率的幅度 . 您还可以在 0Fs/2 (采样频率的一半)之间的更多频率处计算振幅 .

    • 问题不明确,请提供 NL 的定义 .

    • 这取决于您的申请 . 如果噪音与您的信号频率相同,则无法将其分开 . 否则,您可以使用过滤器(例如带通)来提取感兴趣的频率 .

相关问题