2
$\begingroup$

I want to minimise S, which is given by,

$S = \sum_{i,j} \frac{1}{\sigma^2_{ij}}|V_{ij} - g_i g^*_j V^{model}_{ij}|^2$,

where $V_{ij}$ and $V^{model}_{ij}$ are the observed and model complex visibilities (this is a (M x 1) vector) both of which are known, $\sigma_{ij}$ is the error and $g_i$ and $g_j$ are the complex gains that I am minimising S for.

In my case I am only interested to solve for the phases of the complex gains assuming their amplitude is 1. I can therefore write the following:

$V^{model, corrupted}_{ij} = g_i g^*_j V^{model}_{ij} = e^{i (\phi_i - \phi_j)} V^{model}_{ij} = e^{i f \phi} V^{model}_{ij}$,

where f is a (M x N) matrix and $\phi$ is a (N x 1) vector of the gain phases (for N=4 antennas I have M=N(N-1)/2 visibilities), so that

$\begin{pmatrix} \phi_1 - \phi_2 \\ \phi_1 - \phi_3 \\ \phi_1 - \phi_4 \\ \phi_2 - \phi_3 \\ \phi_2 - \phi_4 \\ \phi_3 - \phi_4 \\ \end{pmatrix} = \begin{pmatrix} 1 & -1 & 0 & 0 \\ 1 & 0 & -1 & 0 \\ 1 & 0 & 0 & -1 \\ 0 & 1 & -1 & 0 \\ 0 & 1 & 0 & -1 \\ 0 & 0 & 1 & -1 \\ \end{pmatrix} \cdot \begin{pmatrix} \phi_1 & \phi_2 & \phi_3 & \phi_4 \end{pmatrix} = f\phi$

I can now minimise the expression S, using for example a gradient descent algorithm, for the vector $\phi$. However, as you can imagine as the number of antennas increases the problem becomes more and more computationally demanding.

I was wondering if there is a more efficient way to approach my problem, either analytic (doubtful) or with a more sophisticated algorithm that takes advantage of the fact that my solution has the form that I want (i.e. $g_j = e^{i \phi_j}$).

$\endgroup$
7
  • $\begingroup$ I'm confused: are the $\sigma_{ij}$ known quantities? Do they depend on the $g_i$? $\endgroup$ – Ben Grossmann Jul 13 '20 at 14:03
  • $\begingroup$ The $\sigma_{ij}$ are also known. Sorry forgot to mention that. $\endgroup$ – Sketos Jul 13 '20 at 14:15
  • $\begingroup$ Is $V^{model}$ real and symmetric, by the way? $\endgroup$ – Ben Grossmann Jul 13 '20 at 16:49
  • $\begingroup$ $V^{model}_{ij}$ is a complex (M x 1) vector ands so is $V_{ij}$. $\endgroup$ – Sketos Jul 13 '20 at 17:11
  • $\begingroup$ I'm confused by that. Are you saying that for each $i,j$, $V_{ij}$ is an $M \times 1$ vector? That is, $V$ could be thought of as an $N \times N \times M$ tensor? $\endgroup$ – Ben Grossmann Jul 13 '20 at 18:06
0
$\begingroup$

I assume that the $\sigma_{ij}$ are known.

Let $\Sigma$ denote the matrix with entries $\sigma_{ij}$. Let $U$ denote the matrix $$ U = \exp\operatorname{diag}(\phi_1,\phi_2,\phi_3) = \pmatrix{e^{i\phi_1 }\\ & e^{i \phi_2}\\ & & e^{i \phi_3}}. $$ Note that the matrix whose entries are $V_{ij}g_ig_j^*$ can be written as $UVU^*$. With that, your objective function can be expressed as $$ S = \sum_{i,j} \frac{1}{\sigma^2_{ij}}|V_{ij} - g_i g^*_j V^{model}_{ij}|^2 = \|\Sigma \odot (V - UV^{\text{model}}U^*)\|_F^2, $$ where $\odot$ denotes a Hadamard product. With that, a gradient with respect to the vector $\phi = (\phi_1,\phi_2,\phi_3)$ can be computed.


We have: $$ dS = d\|\Sigma\odot(V - UV^MU^*)\|_F^2 = 2 \operatorname{Re}\operatorname{tr}[(\Sigma\odot(V - UV^MU^*))^*d(\Sigma\odot(V - UV^MU^*))]. \\ d[\Sigma\odot(V - UV^MU^*)] = \Sigma \odot d(UV^MU^*).\\ d [UV^MU^*] = U(\phi + d\phi)V^MU^*(\phi + d\phi) - UV^MU^* \\ = U V^M[\operatorname{diag}(i e^{i\phi}d\phi)]^* + [\operatorname{diag}(i e^{i\phi}d\phi)]V^MU^*.\\ $$ To find the entries of the gradient, plug in $dx = e_j$ (the standard basis vectors). We have $dx = e_j \implies$ $$ d [UV^MU^*] = UV^M\operatorname{diag}(i e^{i\phi_j} e_j)^* + \operatorname{diag}(i e^{i\phi_j} e_j)V^MU^*\\ = -ie^{-i\phi_j} U (V^M e_j)e_j^T + ie^{i\phi_j}e_j(e_j^T V^M)V^MU^*.\\ d[\Sigma\odot(V - UV^MU^*)] = \Sigma \odot [-ie^{-i\phi_j} U (V^M e_j)e_j^T + ie^{i\phi_j}e_j(e_j^T V^M)V^MU^*].\\ dS =\\ 2 \operatorname{Re}\operatorname{tr}[(\Sigma\odot(V - UV^MU^*))^*(\Sigma \odot [-ie^{-i\phi_j} U (V^M e_j)e_j^T + ie^{i\phi_j}e_je_j^TV^MU^*])] \\ = 2 \operatorname{Re}\operatorname{tr}[\Sigma^{\odot2} \odot ((V - UV^MU^*)^*[-ie^{-i\phi_j} U (V^M e_j)e_j^T + ie^{i\phi_j}e_je_j^T V^MU^*])] \\ = 2 \operatorname{Re}[ -ie^{-i\phi_j} e_j^T( \Sigma^{\odot2} \odot [(V - UV^MU^*)^* U V^M ])e_j\\ \quad +ie^{-i\phi_j} e_j^T( \Sigma^{\odot2} \odot [(V - UV^MU^*)^* V^MU^*])e_j]. $$

$\endgroup$
4
  • $\begingroup$ Thanks for your answer. Would you be able to work out the calculation of the gradient? $\endgroup$ – Sketos Jul 13 '20 at 14:20
  • $\begingroup$ @Sketos I will if I get the chance later today. It's a bit involved, but ultimately straightforward $\endgroup$ – Ben Grossmann Jul 13 '20 at 14:36
  • $\begingroup$ Appreciate it if it's not too much trouble. There are symbols in there that I have not seen before and might take too long to convince myself that I am doing everything right. $\endgroup$ – Sketos Jul 13 '20 at 14:50
  • $\begingroup$ thank you for providing a derivation of the gradient. Correct if I am wrong but in order to find the exact solution for the vector $\phi$ I need to set the gradient $dS/d\phi = 0$. This would give me a expression of the following form: $sin\phi [\Sigma^{\odot 2} \odot [(V - U V^M U^*)^* U V^M] - \Sigma^{\odot 2} \odot [(V - U V^M U^*)^* V^M U*]]= 0$ I don't see how I getting a solution for $\phi$. Am I missing something (or did I mess up the calculation)? $\endgroup$ – Sketos Jul 14 '20 at 10:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.