gxj2008 发表于 2010-4-18 16:08

fft变换后的幅值问题:时域幅值与频域幅值有何关系?

对于函数y=5*sin(100*t)+2,取时间间隔dt=0.001s,采样点128个,通过origin的fft变换后得到如下图所示的频谱图,为什么50Hz处的幅值不是5,而是2.8左右呢?而且0Hz处的值也不是2,而是2.7左右呢,麻烦各位给分析一下时域幅值与频域幅值有何关系?

[ 本帖最后由 gxj2008 于 2010-4-18 20:03 编辑 ]

hcharlie 发表于 2010-4-19 07:58

回复 楼主 gxj2008 的帖子

取128点应该是取整数周期。你试取dt=2PI/128/50=0.00098175试试看。

gxj2008 发表于 2010-4-19 10:32

回复hcharlie

本帖最后由 wdhd 于 2016-9-20 14:04 编辑

原帖由 hcharlie 于 2010-4-19 07:58 发表
取128点应该是取整数周期。你试取dt=2PI/128/50=0.00098175试试看。
我试了一下改变dt=0.00098175后幅值还是原来的样子,不知道取dt=2PI/128/50=0.00098175的原因是什么?
顺便说明一下原帖中有点错误,帖子中的函数应为y=5*sin(100*PI*t)+2,不好意思。

cboboc 发表于 2010-4-19 10:33

回复 沙发 hcharlie 的帖子

请问,你的这个dt采用这个是整周期采样了,但是我想请问,这个dt是根据什么来确定的呢?因为我看改后的dt和原始的dt的差也是比较小的?

cboboc 发表于 2010-4-19 10:34

回复 板凳 gxj2008 的帖子

采取这样的dt是为了满足fft的整周期采样的要求,如果不是整周期采样的话还要进行修正

songzy41 发表于 2010-4-19 10:37

请参看一下该帖子
http://forum.vibunion.com/forum/thread-23665-1-1.html

ren_atp 发表于 2010-4-21 20:06

第一 去掉直流分量
第二 除点数乘以2

ren_atp 发表于 2010-4-21 20:10

另外y=5*sin(100*t)+2这个也不是50HZ的 y=5*sin(2*pi*50*t)+2

gxj2008 发表于 2010-4-25 16:26

本帖最后由 wdhd 于 2016-9-20 14:04 编辑

原帖由 ren_atp 于 2010-4-21 20:10 发表
另外y=5*sin(100*t)+2这个也不是50HZ的 y=5*sin(2*pi*50*t)+2
不好意思,我用的是y=5*sin(100*pi*t),上面已经更正过了。
去除直流分量后再乘2除以点数,我也试过了,还是幅值不对应。取这个函数作图只是一个验证,我处理的是很多离散的数据(计算获得的时域的加速度级),本来时域的幅值(去除直流分量后)变化是很大的,可是经过fft变换后频域的最大幅值总比时域的小很多。我看到论坛里也有其他人遇到这种问题,好像没有彻底的解决,望各位指点,说明原因及解决方法。谢谢!

[ 本帖最后由 gxj2008 于 2010-4-25 16:30 编辑 ]

hcharlie 发表于 2010-4-25 18:42

回复 9楼 gxj2008 的帖子

这回取dt=0.00078125,取128点FFT试试看。
50*0.00078125*128=5
5个整周期。
页: [1]
查看完整版本: fft变换后的幅值问题:时域幅值与频域幅值有何关系?