
自相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度设原函数是f(t),则自相关函数定义为R(u)=f(t)f(-t),其中表示卷积
给个例子:
dt=1;
t=[0:dt:100];
x=cos(t);
[a,b]=xcorr(x,'unbiased');
plot(bdt,a)
上面代码是求自相关函数并作图,
matlab中查看帮助时,
help xcorr 解释其意思是:
C(m) = E[A(n+m)conj(B(n))] = E[A(n)conj(B(n-m))];
但是,在调用xcorr函数求自相关时,有 scaleopt参数
r=xcorr(s,SCALEOPT)
SCALEOPT有
'biased' - scales the raw cross-correlation by 1/M
'unbiased' - scales the raw correlation by 1/(M-abs(lags))
'coeff' - normalizes the sequence so that the auto-correlations
at zero lag are identically 10
'none' - no scaling (this is the default)
注意观察下面的测试:
s = [1 2 3]
r = xcorr(s);
r =
30000 80000 140000 80000 30000
当用r=xcorr(s,'unbiased')时就能得到
r =30000 40000 46667 40000 30000
1 横坐标代表信号的延迟时间,因为自相关的定义是一个信号经过延迟后与(未延迟的)自身相乘积分。纵坐标的单位是信号单位的平方乘以时间,比如信号是电压(V)那么纵坐标的单位就是(V^2 s)表示能量。能量越大表明相关性越强。
2 如果你要看两个信号的相关性 应该作互相关。
自相关函数用xcorr或autocorr
偏相关不太清楚autocorr用法:autocorr(y,[],2)
autocorr()函数是时间序列自相关函数
y
:
一个时间序列数据
[]:
表示计算这个时间序列数据的自相关函数的延迟
2:
表示自相关函数在>2的所有延迟的自相关系数看作为0
因为python与matlab是两种不同编程语言。python是一种动态的、面向对象的脚本语言,而matlab是面向对象的解释性语言。所以执行同样的函数python的运行速度要比matlab快。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)