时间序列分析的matlab自相关函数autocorr

本文介绍时间序列分析中的autocorr和crosscorr函数用法。autocorr用于计算并描绘单变量随机时间序列的自相关函数及其置信区间,crosscorr则用于计算并描绘两时间序列的互相关函数。
摘要由CSDN通过智能技术生成

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')                % make output reproducible使结果可复现
x = randn(1000, 1);           % 1000 Gaussian deviates ~ N(0, 1).
y = filter([1 -1 1], 1, x);   % Create an MA(2) process.创建MA(2)过程

[ACF, lags, bounds] = autocorr(y, [], 2)  % Compute the ACF with 95 percent confidence.就算95%置信度下的相关系数

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')                % make output reproducible
x = randn(100, 1);       % 100 Gaussian deviates, N(0, 1)

% 创建上面序列的延迟副本

y = lagmatrix(x, 4);    % Delay it by 4 samples

y(isnan(y)) = 0;

% 计算XCF互相关函数

[XCF, Lags, Bounds] = crosscorr(x, y);

crosscorr(x, y)

image

可以看到延迟在4处很显著。

Note:在信号处理中经常要研究两个信号的相似性,或研究一个信号经过一段延迟后与自身的相似性,以实现信号的检测、识别与提取等。相关函数是描述随机信号的重要统计量,有着广泛的用途,例如噪声中信号的检测、信号中隐含周期性的检测、信号相关性的检测、信号时延长度的测量等。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值