一、时域分析
(1)mean:均值
s=mean(x)
s=mean(x,dim)
默认dim=1,对每一列求均值。
(2)std:标准差
s=std(x)
s=std(x,0)
上面两个命令用下面的公式计算标准差
s=std(x,1)
这个命令用的是下面的公式计算标准差。
(3) var:方差
s=var(x):计算样本方差的无偏估计值;
s=var(x,1):计算输出样本方差s。
s=var(x,w):w=0等同于var(x),w=1等同于var(x,1)
(4)mad:平均绝对偏差
y=mad(x):等同于mean(abs(x-mean(x)));
y=mad(x,1):等价于median(abs(x-median(x)));
y=mad(x,0):等价于mean(abs(x-mean(x));
(5)kurtois:峰度
k=kurtosis(x):峰度用于度量x偏离某公布的情况,正态分布的峰度为3,曲线峰值比正态分布高时,峰度大于3,当低时,峰度小于3.
k=kurtosis(x,flag):指定是否校正系统偏差,当flag=0时进行校正,flag=1时不校正。默认不校正。
(6)skewness:偏度
y=skewness(x):偏度用于衡量x的对称性。若偏度为负,则x均值左侧的离散度比右侧强;若偏度为正,则左侧比右侧弱。正态分布偏度为0。
y=skewness(x,flag):指定是否校正系统偏差,当flag=0时进行校正,flag=1时不校正。默认不校正。
(7)xcorr
估计随机过程中的互相关序列,自相关时xcorr特例。
c=xcorr(x,y)
c=xcorr(x)
c=xcorr(x,y,'option'):
option:“biased”为有偏的互相关函数估计;
“unbiased”为无偏的互相关函数估计;
“coeff”为零延时的正规化序列的自相关计算;
“none”为原始的互相关计算。
c=xcorr(x,'option')
c=xcorr(x,y,maxlags)
maxlags返回一个延迟范围为[-maxlags,maxlags]的互相关函数序列,c的程度为2*maxlags+1.
c=xcorr(x,maxlags)
c=xcorr(x,y,maxlags,'option')
c=xcorr(x,maxlags,'option')
[c,lags]=xcorr(...)
返回一个c进行相关估计的延迟矢量lags,范围为[-maxlags:maxlags]。
例1:求一个带噪声干扰的正弦信号和白噪声信号的自相关函数。
clc
clear
fs=256;
t=0:1/fs:2-1/fs;
p=length(t);
lag=100;
randn('state',0);
y=sin(2*pi*30.*t)+0.6*randn(1,p);
[c,lags]=xcorr(y,lag,'unbiased');
ns=randn(1,p);
[cns,lags]=xcorr(ns,lag,'unbiased');
figure(221)
subplot(221)
plot(t,y)
xlabel('时间/s');
ylabel('y(t)')
title('带噪音干扰的正弦信号');
subplot(222)
plot(lags/fs,c)
xlabel('时间/s');
ylabel('Ry(t)')
title('带噪音干扰的正弦信号的自相关');
subplot(223)
plot(t,ns)
xlabel('时间/s');
ylabel('ns(t)')
title('噪音的信号')
subplot(224)
plot(lags/fs,cns);
xlabel('时间/s')
ylabel('Rns(t)')
title('噪音的信号的自相关')
例2: 以西储大学轴承数据为例,计算时域分析的参数
load 107.mat
x=X107_DE_time
plot(x)
xlabel('时间')
ylabel('幅值')
title('时域图')
axis tight
截取其中一部分查看
tt=100:200;
plot(tt,x(tt))
xlabel('时间')
ylabel('幅值')
title('100-200段时域图')
axis tight
时域参数计算:
x_mean=mean(x)
x_std=std(x)
x_var=var(x)
x_mad=mad(x)
x_kurtois=kurtosis(x)
x_skewness=skewness(x)
输出:
x_mean =
0.0046
x_std =
0.2995
x_var =
0.0897
x_mad =
0.2137
x_kurtois =
5.5638
x_skewness =
0.0904
lag=100;
[c,lags]=xcorr(x,lag,'unbiased');
subplot(121)
plot(x)
xlabel('时间/s');
ylabel('x(t)')
title('x的时域图');
axis tight
subplot(122)
plot(lags,c)
xlabel('时间/s');
ylabel('R(t)')
title('x信号的自相关');
axis tight
参考资料:
[1] 张玲玲 《基于matlab的机械故障诊断技术案例教程》