自相关矩阵和互相关矩阵的matlab实现_(^ω^) (^ω^)_百度空间
一维实值信号x的自相关矩阵Rxx应为实对称的toeplitz矩阵,而一维实值信号x,y的互相关矩阵Rxy为非对称的toeplitz阵,matlab提供的corrmtx函数产生的并非通常意义下的autocorrelation matrix 事实上,我们可以利用xcorr+toeplitz和corrmtx两种方法实现自相关阵Rxx和互相关阵Rxy 一、 Rxx 1)% implementation with xcorr and toeplitz m= ;%define 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 corrmtx m= ;%defined the time lag m+1,and m+1<=n rx=corrmtx(x,m); Rxx=rx'*rx; 二、Rxy 1)% implementation with xcorr and toeplitz m= ;%define 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) matrix Rxy=RR(1:m,n:n+m);%the exact location of Rxy in RR; 2)% implementation with corrmtx m= ;%define 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是一个主对角线{jd1}占优阵,也就是说,主对角线的值远大于其它对角线 这样svd(Rxx)得到的奇异值和eig(Rxx)得到的特征值几乎相同,这也是为什么有的论文用svd方法求主分量,有的则用evd(eigen value decomposition)求主分量了。 以上纯属个人观点(包括简单的程序等),意在抛砖引玉,如有雷同,纯属偶然,故不承担任何法律后果。。。。


郑重声明:资讯 【自相关矩阵和互相关矩阵的matlab实现_(^ω^) (^ω^)_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——