首页 > 编程知识 正文

matlab相关系数矩阵函数,matlab求自相关矩阵

时间:2023-05-05 07:39:53 阅读:266135 作者:1875

一维实值信号x的自相关矩阵Rxx应为实对称的toeplitz矩阵,而一维实值信号x,y的互相关矩阵Rxy为非对称的toeplitz阵,matlab提供的corrmtx函数产生的并非通常意义下的autocorrelation matrix
事实上,我们可以利用xcorr+toeplitz和corrmtx两种方法实现自相关阵Rxx和互相关阵Rxy 

一、 Rxx1)% implementation with xcorr and toeplitzm= 256;% dfine the time lag m+1, and m+1<=n;n=length(x);%location of rxx(0);rx=xcorr(x);%length of rx is 2*n-1;Rxx=toeplitz(rx(n:n+m))/n;2)%implementation with corrmtxm= 256;% dfine the time lag m+1,and m+1<=nrx=corrmtx(x,m);Rxx=rx'*rx;二、Rxy1)% implementation with xcorr and toeplitzm= 256;% dfine the time lag m+1, and m+1<=n;n=max(length(x),length(y));location of rxy(0);rxy=xcorr(x,y);%length of rxy is 2*n-1;RR=toeplitz(rxy)/n;%RR is a (2*n-1)*(2*n-1) matrixRxy=RR(1:m,n:n+m);%the exact location of Rxy in RR;2)% implementation with corrmtxm= 256;% dfine the time lag m+1, and m+1<=n;rx=corrmtx(x,m);ry=corrmtx(y,m);Rxy=rx'*ry; %on the other hand, Ryx=Rxy'

上面的方法实现了自相关和互相关的有偏矩估计(实际是用fft实现卷积的前提下做到的),也是做统计分析的常用手段,当然除了有偏矩估计,corrmtx还有很多可选参数,以供不同目的使用。
还有Rxy=Ryx',也就是说要求Ryx,只需要计算Rxy即可。
需要注意的是,当时延m+1接近于信号长度n的时候,xcorr后面的值(rx(m+1),rx(m),
r(m-1)...)估计的并不准确,这将严重影响滤波器设计等后续工作的效果,可以确信的是,n-m-1>100的时候,Rxx是可信的。
另外,自相关阵Rxx是一个主对角线绝对占优阵,也就是说,主对角线的值远大于其它对角线
这样svd(Rxx)得到的奇异值和eig(Rxx)得到的特征值几乎相同,这也是为什么有的论文用svd方法求主分量,有的则用evd(eigen value decomposition)求主分量了。
 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。