How can we get back a vector if we have a matrix consisting of product of that vector?

176 Views Asked by At

Let $x \in \mathbb{C}^N$ be a $N$ dimensional complex coloumn vector. Now let a matrix $A = x x^H \in \mathbb{C}^{N \times N}$ be what we have. Is it possible to recover the vector $x$ if we have this matrix?

From what I have till now lets take a simple case where $N = 2$. Let $$ x = \begin{bmatrix}a e^{-j\theta_1} \\ b e^{-j\theta_2} \end{bmatrix}.$$ Then the matrix $A$ can be written as $$A = \begin{bmatrix} a^2 & ab e^{-j (\theta_1- \theta_2)} \\ ab e^{-j (\theta_2- \theta_1)} & b^2 \end{bmatrix}$$

While we can extract the magnitude of the vectors, is there a way to get out the phase since we just have the phase difference in the matrix?

Edit: I found a solution in an already asked question here in SE.

2

There are 2 best solutions below

2
On

No it is not possible since you can multiply the vector $x$ with any complex scalar on the unit circle $e^{j\theta}$ and get the same $xx^*$ ( starring conjugate transpose ).


Edit One way you can do it (disregarding magnitudes $a,b$) is for example like this:

$$x = \left[\begin{array}{cc} 1&\phi_1\\ 0&1\\ -1&0\\ \phi_2&-1 \end{array}\right]$$

then $$xx^T = \left[\begin{array}{cccc} *&*&*&\phi_2-\phi_1\\ *&*&*&\phi_2+\phi_1\\ \phi_2+\phi_1&*&*&*\\ \phi_2-\phi_1&*&*&* \end{array}\right]$$

And then you can reconstruct $\phi_1,\phi_2$ from sums and differences.

3
On

(Edit: This answer was based on the question when it read transpose, not conjugate transpose. The basic idea should work, but the conclusion will be different.)

Yes, up to a sign anyway. This is, incidentally, related to a construction in algebraic geometry called the "Veronese embedding."

The basic idea is as follows:

Suppose that vector $v$ is $(a,b)$. Then we have entries $a^2, ab, b^2$ in the matrix of products. Assume $v \not = 0$ (you can treat this case separately). We can compute $a / b = ab / b^2 $ or $b / a = ab / a^2$, since one of $a$ or $b$ is nonzero. This tells us the vector $(a,b)$ up to scaling, since up to scalar $v$ was $(1, b / a)$ (if $a \not = 0$), or $(a/b,1)$ (if $b \not = 0$). We can compute $(a/b)^2$, so up to sign we can then multiply through an reproduce the original vector.

Note that $(1,1)$ and $(-1,-1)$ will produce the same matrix of products.

For general vector $v = (a_1, \ldots, a_n)$ in $\mathbb{C}^N$, you try the same idea ... the products you have access to are $a_i a_j$. Assume that $a_n \not = 0$. Then we can compute $a_i / a_n = (a_i a_n) / (a_n^2)$. Again you can recover $a_n$ from $a_n^2$, up to sign, and then you can multiply $(a_1 / a_n, \ldots, a_n / a_n = 1)$ by $\pm a_n$ to get $\pm v$.