分享

(1)Matlab中求自相关函数xcorr和autocorr的区别(转)

 成长中辉煌 2014-12-08

(赵伟峰写于2011.9.5)http://poemunfinished.blog.163.com/blog/static/32082132201185105325810/


       Matlab中有两个现成的函数可以求自相关:方法1是利用互相关函数xcorr;方法2是自相关函数autocorr。
       但是对于向量x,只是进行xcorr(x)和autocorr(x),求的的结果却差别很大。除了xcorr求得的序列是一个中心对称的偶函数序列外,数值的大小也不对应。
       看了help,然后自己实验了一下,终于找到了原因。首先,autocorr是对序列减去均值后做的自相关,最后又进行了归一化。而且由于自相关本身是偶函数,而xcorr本身是计算互相关的,所以xcorr最终的结果是2*N-1,而autocorr只是取了以中心点N为起始的后面N个序列。因此,如果以向量x为例,x长为N。则用autocorr(x,N-1)能得到的N长度结果。用xcorr需要有以下几步:

 E = mean(x);
 X2 =x-E;
 c =xcorr(x2);
 d =c./c(N);
 f =d(N:2*N-1);

       可见,求自相关还是用autocorr更方便一些。另外,这里为了方便,只是采用了默认的调用方式,两个函数的具体参数变化还是要看help详细说明,暂不讨论。

也就是说,autocorr加了一些额外的数据处理工作,先减均值后归一化了,而xcorr是直接对数据进行操作得到的2*N-1的数据。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多