autocorr
功能:计算并描绘时间序列的自相关函数
格式:
autocorr(Series,nLags,M,nSTDs) % 计算并绘制单变量随机时间序列的样本ACF及置信区间,如果不想绘制置信区间,则设置nSTDs=0
[ACF,lags,bounds] = autocorr(Series,nLags,M,nSTDs) % 计算并返回ACF
说明:
Series--时间序列
nLags--延迟,当nLags=[]或缺省时,计算ACF时在延迟点0、1、2、。。。、T处,T=min([20 length(Series-1)])
M--非负整数,表示在多大延迟时理论ACF为0.autocorr假设序列为MA(M),并且使用Bartlett估计方法来计算大于M的延迟的标准误差。如果M=[]或缺省,则为0,函数假设序列为高斯白噪声。
nSTDs--样本ACF估计误差的标准差。
ACF--样本自相关函数
Lags--与ACF(0,1,2,。。。,nLags)相对应的延迟
Bounds--置信区间的近似上下限,假设序列为MA(M)过程。
如
rng('default')
x = randn(1000, 1);
y = filter([1 -1 1], 1, x);
[ACF, lags, bounds] = autocorr(y, [], 2)
autocorr(y, [], 2)
可以看到在延迟在2以后不再显著,说面这可能是一个MA(2)过程。
Note:此函数在判断MA过程时常用。
crosscorr
功能:计算并描绘两时间序列的互相关函数
格式:
crosscorr(Series1,Series2,nLags,nSTDs)
[ACF,lags,bounds] = crosscorr(Series1,Series2,nLags,nSTDs)
说明:
参数具体说明同autocorr函数
如
% 创建100个高斯分布的元素的时间序列
rng('default')
x = randn(100, 1);
% 创建上面序列的延迟副本
y = lagmatrix(x, 4);
% 计算XCF互相关函数
[XCF, Lags, Bounds] = crosscorr(x, y);crosscorr(x, y)
可以看到延迟在4处很显著。
Note:在信号处理中经常要研究两个信号的相似性,或研究一个信号经过一段延迟后与自身的相似性,以实现信号的检测、识别与提取等。相关函数是描述随机信号的重要统计量,有着广泛的用途,例如噪声中信号的检测、信号中隐含周期性的检测、信号相关性的检测、信号时延长度的测量等。