matlab相关系数的计算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

matlab相关系数的计算
1. ⾸先说说⾃相关和互相关的概念。

这个是信号分析⾥的概念,他们分别表⽰的是两个时间序列之间和同⼀个时间序列在任意两个不同时刻的取值之间的相关程度,即互相关函数是描述随机信号 x(t),y(t)在任意两个不同时刻t1,t2的取值之间的相关程度,⾃相关函数是描述随机信号x(t)在任意两个不同时刻t1,t2的取值之间的相关程度。

⾃相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度;互相关函数给出了在频域内两个信号是否相关的⼀个
判断指标,把两测点之间信号的互谱与各⾃的⾃谱联系了起来。

它能⽤来确定输出信号有多⼤程度来⾃输⼊信号,对修正测量中接⼊噪声源⽽产⽣
的误差⾮常有效.
事实上,在图象处理中,⾃相关和互相关函数的定义如下:设原函数是f(t),则⾃相关函数定义为R(u)=f(t)*f(-t),其中*表⽰卷积;设两个函数分别是f(t)和g(t),则互相关函数定义为R(u)=f(t)*g(-t),它反映的是两个函数在不同的相对位置上互相匹配的程度。

那么,如何在matlab中实现这两个相关并⽤图像显⽰出来呢?
dt=.1; t=[0:dt:100]; x=cos(t); [a,b]=xcorr(x,'unbiased'); plot(b*dt,a) 上⾯代码是求⾃相关函数并作图,对于互相关函数,稍微修改⼀下就可以了,即把[a,b]=xcorr(x,'unbiased');改为[a,b]=xcorr(x,y,'unbiased');便可。

2. 实现过程:在Matalb中,求解xcorr的过程事实上是利⽤Fourier变换中的卷积定理进⾏的,即R(u)=ifft(fft(f)×fft(g)),其中 ×表⽰乘法,注:此公式仅表⽰形式计算,并⾮实际计算所⽤的公式。

当然也可以直接采⽤卷积进⾏计算,但是结果会与xcorr的不同。

事实上,两者既然有定理保证,那么结果⼀定是相同的,只是没有⽤对公式⽽已。

下⾯是检验两者结果相同的代码: dt=.1; t=[0:dt:100]; x=3*sin(t); y=cos(3*t); subplot(3,1,1); plot(t,x); subplot(3,1,2); plot(t,y);
[a,b]=xcorr(x,y); subplot(3,1,3); plot(b*dt,a); yy=cos(3*fliplr(t)); % or use: yy=fliplr(y); z=conv(x,yy); pause; subplot(3,1,3); plot(b*dt,z,'r'); 即在xcorr中不使⽤scaling。

3. 其他相关问题:(1)相关程度与相关函数的取值有什么联系?
相关系数只是⼀个⽐率,不是等单位量度,⽆什么单位名称,也不是相关的百分数,⼀般取⼩数点后两位来表⽰。

相关系数的正负号只表
⽰相关的⽅向,绝对值表⽰相关的程度。

因为不是等单位的度量,因⽽不能说相关系数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 ⾼度相关
(2)matlab计算⾃相关函数autocorr和xcorr有什么不⼀样的?
分别⽤这两个函数对同⼀个序列计算,为什么结果不太⼀样?因为xcorr是没有将均值减掉做的相关,autocorr则是减掉了均值的。

⽽且,⽤离散信号做⾃相关时,信号截取长度(采样点N)不⼀样,⾃相关函数就不⼀样。

(3)xcorr是计算互相关函数,带有⼀个option的参数: a=xcorr(x,y,'option') option=baised时,是计算互相关函数的有偏估计;
option=unbaised时,是计算互相关函数的⽆偏估计; option=coeff时,是计算归⼀化的互相关函数,即为互相关系数,在-1⾄1之间;option=none,是缺省的情况。

所以想要计算互相关系数,可⽤'coeff'参数。

*************************************************************************
⽤这个xcorr函数作离散互相关运算时要注意,当x, y是不等长向量时,短的向量会⾃动填0与长的对齐,运算结果是⾏向量还是列向量就与x ⼀样。

互相关运算计算的是x,y两组随机数据的相关程度,使⽤参数coeff时,结果就是互相关系数,在-1⾄1之间,否则结果不⼀定在这范围,有可能很⼤也有可能很⼩,这视乎x, y数据的⼤⼩,所以⼀般要计算两组数据的相关程度,⼀般选择coeff参数,对结果进⾏归⼀化。

所谓归⼀化简单理解就是将数据系列缩放到-1到1范围,正式的就是⼀种简化计算的⽅式,即将有量纲的表达式,经过变换,化为⽆量纲的表达式,成为纯量。

变换式为X=(X实测--Xmin)/(Xmax-Xmin)。

⼀般来说选择归⼀化进⾏互相关运算后,得到结果绝对值越⼤,两组数据相关程度就越⾼。

相关文档
最新文档