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    14     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操作,补至和较长序列一样的长度,其实这和理论上的操作也是一致的。