首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Matlab中用rawData计算信号在频率轴上的快速傅立叶变换

在Matlab中用rawData计算信号在频率轴上的快速傅立叶变换
EN

Stack Overflow用户
提问于 2017-04-28 11:24:28
回答 1查看 235关注 0票数 0

我的信号频率为10 MHz,采样频率为100毫秒/秒。如何用matlab计算信号在rawData中时的频率( rawData的长度为100000)

  1. NFFT的最佳长度应该是什么。(即,NFFT取决于什么因素)
  2. 为什么我的振幅(Y轴)随NFFT而变化
  3. NFFT、N和L的区别在于如何计算信号的长度。
  4. 如何从单个信号(在rawData中)中分离噪声和信号

这是我的密码

代码语言:javascript
复制
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]);
EN

回答 1

Stack Overflow用户

发布于 2017-04-28 13:52:20

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

  1. 在大多数情况下,包括所有数据都是最好的选择。fft只是将输入数据截断到所请求的长度,这可能不是您想要的。如果您知道输入单次的周期,则可以截断它以包含完整的句点。如果你不知道,一扇窗户(前)。(汉宁)可能很有趣。
  2. 如果您改变NFFT,您使用更多的数据在您的快速傅立叶变换计算,这可能会轻微地改变一个给定频率的振幅。你也可以计算0Fs/2之间更多频率的振幅(采样频率的一半)。
  3. 问题尚不清楚,请提供NL__的定义。
  4. 这取决于你的申请。如果噪音与你的信号频率相同,你就无法分离它。否则,您可以使用过滤器(例如。提取感兴趣的频率。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43679069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档