matlab在时间序列分析中的应用 - 小_樱

一、matlab中xcorr的用法(转自他处)

Matlab中用于计算自相关函数的指令是xcorr.比如矩阵A=[1 2 3];

xcorr(A)=3.0000 8.0000 14.0000 8.0000 3.0000

自相关函数是信号间隔的函数,间隔有正负间隔,所以n个长度的信号,有2n-1个自相关函数值,分别描述的是不同信号间隔的相似程度。

比如,上面的矩阵,最后得到5个结果,其中第三个是自己和自己相乘,最后相加的结果,值最大1*1+2*2+3*3=14。而第二个和第四个分别是间隔正负1的结果也就是1*2+2*3=8,2*1+3*2=8。第1个和第五个分别是间隔正负2,也就是1*3=3,3*1=3。

使用方法回目录

c = xcorr(x,y)

c = xcorr(x)

c = xcorr(x,y,\'option\')

c = xcorr(x,\'option\')

c = xcorr(x,y,maxlags)

c = xcorr(x,maxlags)

c = xcorr(x,y,maxlags,\'option\')

c = xcorr(x,maxlags,\'option\')

[c,lags] = xcorr(...)

功能描述回目录

xcorr来估计随机过程中的互相关序列,自相关是xcorr的一个特例。

互相关函数序列为:

x(n)和y(n)为统计的随机序列,-∞

c = xcorr(x,y) 返回矢量长度为2*N-1互相关函数序列,其中x和y的矢量长度均为N,如果x和y的长度不一样,则在短的序列后补零直到两者长度相等。

一般情况下,xcorr计算无正规化的原始相关系数。

输出矢量C通过c(m) = Rxy(m-N), m=1, ..., 2N-1.得到。

通常,互相关函数需要正规化来得到更准确的估计值。

c = xcorr(x) 为矢量x的自相关估计;

c = xcorr(x,y,\'option\') 为有正规化选项的互相关计算;其中选项为

"biased"为有偏的互相关函数估计;

"unbiased"为无偏的互相关函数估计;

"coeff"为0延时的正规化序列的自相关计算;

"none"为原始的互相关计算;

若需了解更多的有偏和无偏相关估计,请参阅文献[1].

c= xcorr(x,\'option\')特指以上某个选项的自相关估计。

c = xcorr(x,y,maxlags) 返回一个延迟范围在[-maxlags,maxlags]的互相关函数序列,输出c的程度为2*maxlags-1.

c = xcorr(x,maxlags) 返回一个延迟范围在[-maxlags,maxlags]的自相关函数序列,输出c的程度为2*maxlags-1.

c = xcorr(x,y,maxlags,\'option\') 同时指定maxlags和option的互相关计算.

c = xcorr(x,maxlags,\'option\') 同时指定maxlags和option的自相关计算.

[c,lags] = xcorr(...)返回一个在c进行相关估计的延迟矢量lag,其范围为[-maxlags:maxlags],当maxlags没有指定时,其范围为[-N+1,N-1]

总之,无论是互相关计算还是相关计算都是以序列中间位置进行0lags计算。

应用举例回目录

使用高斯白噪声进行自相关估计,其中lags=10;

ww = randn(1000,1);

[c_ww,lags] = xcorr(ww,10,\'coeff\');

stem(lags,c_ww)

) 相关程度与相关函数的取值有什么联系?

相关系数只是一个比率,不是等单位量度,无什么单位名称,也不是相关的百分数,一般取小数点后两位来表示。相关系数的正负号只表示相关的方向,绝对值表示相关的程度。因为不是等单位的度量,因而不能说相关系数0.7是0.35两倍,只能说相关系数为0.7的二列变量相关程度比相关系数为0.35的二列变量相关程度更为密切和更高。也不能说相关系数从0.70到0.80与相关系数从0.30到0.40增加的程度一样大。

对于相关系数的大小所表示的意义目前在统计学界尚不一致,但通常按下是这样认为的:

相关系数 相关程度

0.00-±0.30 微相关

±0.30-±0.50 实相关

±0.50-±0.80 显著相关

±0.80-±1.00 高度相关

matlab计算自相关函数autocorr和xcorr有什么不一样的?xcorr是没有将均值减掉做的相关,autocorr则是减掉了均值。