我的信号频率为10 MHz,采样频率为100毫秒/秒。如何用matlab计算信号在rawData中时的频率( rawData的长度为100000)
这是我的密码
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]);发布于 2017-04-28 13:52:20
由于您可以在another post中找到相应的频率,我将只回答您的其他问题:
fft只是将输入数据截断到所请求的长度,这可能不是您想要的。如果您知道输入单次的周期,则可以截断它以包含完整的句点。如果你不知道,一扇窗户(前)。(汉宁)可能很有趣。NFFT,您使用更多的数据在您的快速傅立叶变换计算,这可能会轻微地改变一个给定频率的振幅。你也可以计算0和Fs/2之间更多频率的振幅(采样频率的一半)。N和L__的定义。https://stackoverflow.com/questions/43679069
复制相似问题