logo资料库

振动信号的预处理方法.docx

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
振动信号的预处理方法 @ 去趋势项 @ 五点三次平滑法 1,去趋势项(detrending) 在振动测试中采集到的振动信号数据,由于放大器随温度变化产生的零点漂移、 传感器频率范围外低频性能的不稳定以及传感器周围的环境干扰等,往往会偏离 基线,甚至偏离基线的大小还会随时间变化。偏离基线随时间变化的整个过程被 称为信号的趋势项。趋势项直接影响信号的正确性,应该将其去除。常用的消除 趋势项的方法是多项式最小二乘法。 在 MATLAB 中提供 detrend()函数进行去趋势项操作,但只能去除均值和线性趋 势项,所以如果使用该函数进行操作,即承认传感器所含趋势项是线性的。如果 认为趋势项是非线性的,则需要用 polyfit()和 ployval()组成的函数进行操作 (如:Liu_detrend(t,y,m))。在实际振动信号数据处理中,通常取 1~3 次多项 式来对采样数据进行多项式趋势项消除的处理。 -------------------------------------------------------------- function y2 = Liu_detrend(t,y,m) temp = polyfit(t,y,m); %t 为时间序列,y 为信号,m 为拟合多项式的次 y2 = y - polyval(temp,t); -------------------------------------------------------------- 2,五点三次平滑法(cubical smoothing algorithm with five-point approximation)
五点三次平滑法可以用作时域和频域信号平滑处理。该处理方法对于时域数据的 作用主要是能减少混入振动信号中的高频随机噪声。而对于频域数据的作用则是 能使谱曲线变得光滑,以便在模态参数识别中得到较好的拟合效果。需要注意的 一点是频域数据经过五点三次平滑法会使得谱曲线中的峰值降低,体形变宽,可 能造成识别参数的误差增大。因此,平滑次数不宜过多。下面给出的是其 MATLAB 实现程序: -------------------------------------------------------------- function b = Liu_smoothing(a,m) n = length(a); for k=1:m b(1)=(69*a(1)+4*(a(2)+a(4))-6*a(3)-a(5))/70; b(2)=(2*(a(1)+a(5))+27*a(2)+12*a(3)-8*a(4))/35; for j=3:n-2 b(j)=(-3*(a(j-2)+a(j+2))+12*(a(j-1)+a(j+1))+17*a(j))/3 5; end b(n-1)=(2*(a(n)+a(n-4))+27*a(n-1)+12*a(n-2)-8*a(n-3))/35; b(n)=(69*a(n)+4*(a(n-1)+a(n-3))-6*a(n-2)-a(n-4))/70; a=b; end --------------------------------------------------------------
3,实例 1 图 1 1)对比 Figure3 和 Figure4,可以看出:在趋势项为非线性时,detrend()的作 用有限。 2)对比 Figure3 和 Figure5,可以看出:在趋势项为非线性时,Liu_detrend(t,y,2) 可以很好的进行去趋势项。 4,实例 2
图 2 1)对比 Figure1 和 Figure2,可以看出:在趋势项为线性时,使用 detrend() 和 Liu_detrend(t,y,1)是没有区别的。 2)对比 Figure2 和 Figure3,可以看出:经五点三次平滑法后,明显减少了混 入振动信号中的高频随机噪声。 5,结论 一般来讲,使用 detrend()进行去趋势项即可,即认为传感器的零点漂移是线 性变化的(如图 3)。然后进行五点三次平滑。将原始数据经此两处理过程(预 处理)后,再进行后续的数据处理工作是有必要的。
图 3:某传感器随温度变化的零点漂移图
分享到:
收藏