用过Matlab的人都知道,Matlab的命令总是能一石三鸟,通过改变输入参数的注释项即可实现不同功能,如今xcorr命令的难点就在于其有四个注释项,这些注释项使得计算的结果各有不同,本文将详细介绍对应每个注释项Matlab是如何计算的,当然本文考虑输入的是一个简单一维序列x=[1,2,3],序列中数据对应的序号依次为1,2,3(请读者在阅读下文时,不要把序号和数据值弄混,这里只是个特例),其他情况读者可以轻松扩展得到。首先确定一下,该序列的均值为2,方差值为0.6667.这个应该不用说怎么算的吧。然后读者需要了解的是该命令意在计算序列中间隔不同距离的数据之间的关系。
第一:缺省注释项,[a,b]=xcorr(x),通过该命令计算的结果为:a=3 8 14 8 3;b=-2 -1 0 1 2.
下面介绍一下,该过程计算机是如何计算的,首先讲b的计算,设一维序列的长度为N,则序列中任意两个数据序号相减,最小值为1-N,最大值为N-1,且能取遍两者之间的所有整数,将这些数从小到大排列得到的就是b;然后讲a的计算,在缺省注释项的情况下,a的计算是这样的,a的每一项是对应b的每一项的
1、当b(1)=-2时,计算a(1)时只用到一组数据——(3,1)注意顺序,只有这两个数据的序号相减(后面数据的序号减去前面的)满足b=-2,因此a(1)的计算公式为:3*1=3
2、当b(2)=-1时,计算a(2)时用到两组数据——(2,1)和(3,2),这两组数据的序号相减(后面数据的序号减去前面的)满足b=-1,因此a(2)的计算公式为:2*1+3*2=8