MATLAB中xcorr函数⽤法解析
xcorr是⽤于求解序列⾃相关和互相关的函数,通过help命令可以调出其具体说明,MATLAB中提供的⼏种⽤法如下:
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(...)
这⾥只简单的举⼏个例⼦作分析,注:这⾥只分析线性卷积和线性相关,⾄于圆周卷积和圆周相关不做介绍(其涉及到圆周移位,主要⽤于周期序列)。
其实说到相关,我们很容易想到卷积,回顾下线性卷积的⼏个主要步骤
1.翻褶-2移位-3相乘-4相加(积分)
再回顾下线性相关的步骤,很容易分辨两者的共同点和不同点
1.移位(左移右移)-2相乘-3.相加
很明显,线性相关的步骤相⽐于线性卷积⽽⾔,只是少了翻褶这⼀步骤
(1)我们举例⾃相关⽤法:
a=xcorr([1 2 3],[1 2 3])
a =
3    8    1
4    8    3
这句语句是求解序列[1 2 3]的⾃相关输出,在MATLAB中式如何算的呢,下⾯分析
原序列  1  2  3---左右移位得到
1 2 3
1 2 3            =1x1+2x2+3x3=14
1 2 3        =2x1+3x2=8
1 2 3      =3x1=3
8 =1x2+2x3=          1 2 3
3=1x3=      1 2 3
这样⼀分析就很好理解了,⾄于互相关,操作过程和上⾯是⼀样的,但是需要注意的是,当个2个序列的长度不⼀样时,
MATLAB会将较短的序列补0操作,补⾄和较长序列⼀样的长度,其实这和理论上的操作也是⼀致的。
sscanf函数用法详解 x