纵坐标能量幅值的问题?
时间信号x(n),n=1,2,...,N;经FFT后得X(k),k=1,2,...,N。我的程序在FFT后X处为什么幅值很大,就是FFT后频谱图横坐标的第一个点。
而这个点并不是基频。是否应该消除?怎样消除? 第一个是频率为0的分量
去均值就可以消除 本帖最后由 wdhd 于 2016-9-8 15:02 编辑
原帖由 zhlong 于 2008-1-31 10:45 发表
第一个是频率为0的分量
去均值就可以消除
怎么去均值? X(1)= X(1)/N(采样点数)吗? 在时间域上消去直流分量:
xmean=mean(x);
x=x-xmean; 本帖最后由 wdhd 于 2016-9-8 15:02 编辑
原帖由 songzy41 于 2008-1-31 12:24 发表
在时间域上消去直流分量:
xmean=mean(x);
x=x-xmean;
我先声明一点,我用的不是matlab,我也不会用。
我的程序是用C++写的。所以mean(x)是什么意思我不懂。
怎么个平均法?
[ 本帖最后由 erdgzw 于 2008-1-31 13:47 编辑 ] 我用C++写了一下,不知道对不。
double avg;
for(int i=0; i < Count; i++)
avg+=wave(i);
avg/=Count;
for(int i = 0; i < Count; i++)
wave(i)-=avg;
不管对不对结果最后还真去掉了。
但还是不明白,为什么会这样? 频率轴上的刻度为*fs/N N——信号长度
所以第一根谱线是频率为0的分量,即直流分量;去均值,就是减去直流分量。 那是否应该消除?
页:
[1]