Matlab中求自相关函数xcorr和autocorr的区别
1个回答
2015-04-03 · 知道合伙人互联网行家
关注
展开全部
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详细说明
但是对于向量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详细说明
Sievers分析仪
2024-10-13 广告
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询