Suppose we have an M$\times$N complex matrix $H$ and its singular value decomposition $H=U\Lambda V^*$ and an N$\times$N covariance matrix $R_s$ with its eigendecomposition $R_s = U_s\Lambda_sU_s^*$. We also have the eigendecomposition of $HR_sH^*$ as $U_A\Lambda_AU_A^*$. In my research problem setting, I know $U_A$, $H$ but not $R_s$ and $\Lambda_A$. I want to find $U_s$ using $H$ and $U_A$. I was wondering if there exists any connection between them.
- $\begingroup$ When you say that you don't know $R_d$, do you mean $R_s$? (Also, does "solve $U_s$" mean "find $U_s$"?) $\endgroup$LSpice– LSpice2018-06-08 18:41:28 +00:00Commented Jun 8, 2018 at 18:41
- $\begingroup$ Yes, you are right and I have corrected my wording based on what you suggested. $\endgroup$Jiawei Liu– Jiawei Liu2018-06-08 18:51:11 +00:00Commented Jun 8, 2018 at 18:51
- $\begingroup$ @Jiawei Liu Does my answer adequately answer your question? $\endgroup$Mark L. Stone– Mark L. Stone2018-06-10 11:41:29 +00:00Commented Jun 10, 2018 at 11:41
- $\begingroup$ @Jiawei Liu Does my answer address your question? $\endgroup$Mark L. Stone– Mark L. Stone2018-06-12 10:54:32 +00:00Commented Jun 12, 2018 at 10:54
- $\begingroup$ It does address my question. Appreciate it a lot @Mark L. Stone $\endgroup$Jiawei Liu– Jiawei Liu2018-06-12 22:03:26 +00:00Commented Jun 12, 2018 at 22:03
1 Answer
$U_s$ is not recoverable from $H$ and $U_A$.
Consider the following examples, one each for $M < N, M > N, M = N$. In each example, there are 2 different $R$'s, $R1$ and $R2$, having different $U_s$'s while having the same $U_A$.
MATLAB output for $M=2, N=3$ example:
>> disp(H) 1 0 0 0 2 0 >> disp(R1) 2 1 1 1 2 1 1 1 2 >> [U_s_R1,lambda_R1]=eig(R1) U_s_R1 = 0.408248290463863 0.707106781186547 0.577350269189626 0.408248290463863 -0.707106781186547 0.577350269189625 -0.816496580927726 0 0.577350269189626 lambda_R1 = 0.999999999999999 0 0 0 1.000000000000000 0 0 0 3.999999999999999 >> disp(R2) 9.999999999999929 4.999999999999965 0.984522053823275 4.999999999999965 9.999999999999929 0.984522053823275 0.984522053823275 0.984522053823275 9.999999999999929 >> [U_s_R2,lambda_R2]=eig(R2) U_s_R2 = 0.707106781186548 0.177730756491407 0.684406150028616 -0.707106781186547 0.177730756491407 0.684406150028616 0 -0.967896459542024 0.251349246280978 lambda_R2 = 4.999999999999966 0 0 0 9.638432711095330 0 0 0 15.361567288904492 >> [U_A_R1,lambda_A_R1]=eig(H*R1*H') U_A_R1 = -0.957092026489053 0.289784148688430 0.289784148688430 0.957092026489053 lambda_A_R1 = 1.394448724536011 0 0 8.605551275463990 >> [U_A_R2,lambda_A_R2]=eig(H*R2*H') U_A_R2 = -0.957092026489053 0.289784148688430 0.289784148688430 0.957092026489053 lambda_A_R2 = 6.972243622680004 0 0 43.027756377319641 As can be seen, U_A_R1 = U_A_R2, but U_s_R1 shares only one column with U_s_R2, i.e., R1 has only one eigenvector in common with R2.
MATLAB output for $M=3, N=2$ example
>> disp(H) 1 0 0 2 1 1 >> disp(R1) 1 1 1 2 >> [U_s_R1,lambda_R1]=eig(R1) U_s_R1 = -0.850650808352040 0.525731112119133 0.525731112119133 0.850650808352040 lambda_R1 = 0.381966011250105 0 0 2.618033988749895 >> disp(R2) 10.000000000000000 2.500000000000000 2.500000000000000 10.000000000000000 >> [U_s_R2,lambda_R2]=eig(R2) U_s_R2 = -0.707106781186547 0.707106781186547 0.707106781186547 0.707106781186547 lambda_R2 = 7.500000000000000 0 0 12.500000000000000 >> [U_A_R1,lambda_A_R1]=eig(H*R1*H') U_A_R1 = 0.666666666666668 0.711452386093986 0.222240990541188 0.333333333333332 -0.551270143087020 0.764846467096310 -0.666666666666666 0.435817314550478 0.604664224089342 lambda_A_R1 = 0.000000000000002 0 0 0 0.675444679663242 0 0 0 13.324555320336762 >> [U_A_R2,lambda_A_R2]=eig(H*R2*H') U_A_R2 = 0.666666666666667 0.711452386093987 0.222240990541187 0.333333333333333 -0.551270143087020 0.764846467096309 -0.666666666666666 0.435817314550477 0.604664224089342 lambda_A_R2 = 0.000000000000005 0 0 0 13.782917548737156 0 0 0 61.217082451262840 As can be seen, U_A_R1 = U_A_R2, but U_s_R1 doesn't share any columns with U_s_R2, i.e., R1 has no eigenvectors in common with R2.
MATLAB output for $M=2, N=2$ example
>> disp(H) 1 0 0 2 >> disp(R1) 1 1 1 2 >> [U_s_R1,lambda_R1]=eig(R1) U_s_R1 = -0.850650808352040 0.525731112119133 0.525731112119133 0.850650808352040 lambda_R1 = 0.381966011250105 0 0 2.618033988749895 >> disp(R2) 9.999999999998895 4.285714285713818 4.285714285713818 9.999999999998892 >> [U_s_R2,lambda_R2]=eig(R2) U_s_R2 = 0.707106781186547 -0.707106781186548 -0.707106781186548 -0.707106781186547 lambda_R2 = 5.714285714285076 0 0 14.285714285712711 >> [U_A_R1,lambda_A_R1]=eig(H*R1*H') U_A_R1 = -0.966499648764670 0.256667935157024 0.256667935157024 0.966499648764670 lambda_A_R1 = 0.468871125850725 0 0 8.531128874149275 >> [U_A_R2,lambda_A_R2]=eig(H*R2*H') U_A_R2 = -0.966499648764669 0.256667935157025 0.256667935157025 0.966499648764669 lambda_A_R2 = 7.723733396502248 0 0 42.276266603492211 As can be seen, U_A_R1 = U_A_R2, but U_s_R1 doesn't share any columns with U_s_R2, i.e., R1 has no eigenvectors in common with R2.
- $\begingroup$ I think your answer makes total sense to me, Mark! Thanks for your input! $\endgroup$Jiawei Liu– Jiawei Liu2018-06-12 22:00:17 +00:00Commented Jun 12, 2018 at 22:00