去均值(去趋势)
y = detrend(x)? ? ? % 从 x 的数据中去除最佳直线拟合线
y = detrend(x,n) % 去除 n 次多项式趋势。n指定为非负整数标量,或指定为 'constant'(等效于 0)或 'linear'(等效于 1)
如果 x 是向量,则 detrend 从 x 的元素中减去趋势。如果 x 是矩阵,则 detrend 分别对每列进行运算,从对应的列中减去每个趋势。
例如,当 n = 0 时,detrend 从 x 中删除均值。当 n = 1 时,detrend 去除线性趋势,这等效于上述语法。当 n = 2 时,detrend 去除二次趋势
matlab代码
data2=detrend(data,'constant')
Y = fft(data2,N); % N为信号长度
信号补零
频谱分辨率数值越小,频谱就越精细,分辨率越高,所以,在一个时间里,能采集的点越多越好。 特别是在采样率高的情况下,采样率作为分子,是降低分辨率的一个因素,因此高频采样中,能采集的点越多越好。
在采集点数不足时,有一个方法可以提高频谱分辨率,就是信号补零。注意,这个提高只是视觉上的提高,并没有再物理上有相应的提高。也就是没有的频率成分你补零之后还是没有。
matlab代码?
n=length(data); % data:信号
N=2^nextpow2(n);
一般如果信号不是2^n的长度,会补零把信号补到2^n的长度,这样是因为2^n长度的傅里叶信号计算会更快更准。
参考?
频谱分析-FFT之后的那些事情_尘中远的博客-CSDN博客_做fft变换后0频非常大
|