首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab中的FFT作图

Matlab中的FFT作图
EN

Stack Overflow用户
提问于 2014-03-05 18:50:38
回答 2查看 1K关注 0票数 1

我有一个信号发生器的60 is正弦波的小输入信号,这是破坏与50 is的市电频率。我想用FFT测量60 it信号的振幅,因为它在示波器中很小。

Matlab FFT代码:

代码语言:javascript
复制
y = data;    
Fs = 2048;
[r, L] = size(y);
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2+1))) 

但是FFT曲线图在50和60 50没有给出明显的峰值。该图如下所示:

连续点的振幅高低交替,呈锯齿状。为甚麽呢?60赫兹的振幅会受此影响吗?

EN

回答 2

Stack Overflow用户

发布于 2014-03-05 19:28:33

可能有两种影响

  1. 如果测量信号的时间窗口,这将不可避免地导致信号模式的开始和结束之间的相位差。间隙或矩形信号的FFT会引起高频振荡。这些由边界效应引起的振荡可以由于窗口函数而被抑制,窗口函数使到达边界的信号平滑。
  2. 在离散频谱分析中。如果一个人测量的信号与这些离散模式中的任何一个都不匹配,则需要更多的频率来重建原始信号。
票数 0
EN

Stack Overflow用户

发布于 2014-03-06 06:02:03

您的50 Hz信号可能不是一个纯粹的完美正弦波。与理想正弦波的任何差异(如限幅或失真)都等同于将在频谱中产生边带的调制。

对其周期不是FFT长度的精确子倍数的信号进行加窗也将使加窗伪影与该信号卷积。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22195586

复制
相关文章

相似问题

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