在线等待:均方根值在时域与频域中大小一样吗?
时域点算出的均方根值与fft后算出的均方根值差别很大啊,是本来就不一样吗?我随后在MATLAB中进行了实验:
>> t=(0:1/99:1);
>> x=sin(2*pi*15*t);
>> y=fft(x);
>> m=abs(y);
>> c=norm(m)
c =
70.3562
>> d=norm(x)
d =
7.0356
这个里面差了十倍,为什么啊
[ 本帖最后由 tanwencai 于 2010-3-29 15:42 编辑 ] 基本一样,一般只有一定误差。
某些情况下,误差影响较大。 本帖最后由 wdhd 于 2016-9-20 13:42 编辑
原帖由 Galaxy163 于 2010-3-29 15:13 发表
基本一样,一般只有一定误差。
某些情况下,误差影响较大。
那怎么来修复这种很大的误差呢?
回复 板凳 tanwencai 的帖子
http://forum.vibunion.com/forum/viewthread.php?tid=79597&highlight=fft回复 地板 hcharlie 的帖子
那个帖子我懂,但不是我问的原意,你看上面两个差了10倍,是不是因为这样啊:离散的时域点的傅里叶变换是连续谱,fft后离散为离散的频域点,
>> y=fft(x);
>> m=abs(y);
>> c=norm(m),这样的计算的话,少算了很多的点,因为谱是连续的。所以和直接对时域点进行norm运算相比,小了很多。
另外功率谱也可以算出均方根值,我觉得那样会准确点,因为我们算的是功率谱线下的面积
请问我理解的正确与否?
回复 楼主 tanwencai 的帖子
http://forum.vibunion.com/forum/thread-71227-2-1.html[ 本帖最后由 ChaChing 于 2010-3-30 00:32 编辑 ]
回复 5楼 tanwencai 的帖子
m要除以100,即数据长度。看一下fft的公式。回复 7楼 ydiok 的帖子
我也试过除了,但除了之后,那个数值就是>> t=(0:1/99:1);>> x=sin(2*pi*15*t);
>> y=fft(x);
>> m=abs(y)/100;
>> c=norm(m)
c =
0.7036
还是差十倍啊
页:
[1]