# Compressive Sensing: Reconstruct Gap in Antenna Array

I have an antenna array with $N$ elements spaced half a wavelength apart. I have a second, identical antenna array that is the distance $D$ apart from the first one.

Could I use compressive sensing to reconstruct the full antenna array?

If so, how big can $D$ be and what are my limitations?

• What do you mean by "full array"? An $N \times N$ array? – MBaz Dec 12 '17 at 17:16
• It is a one dimensional array of size Nx1 – torpedo Dec 12 '17 at 20:05

In general: no. What you can and cannot reconstruct will depend a lot on your model.

If you assume that you have:

• point sources in the far field of the antenna array
• these point sources emit narrow-band, mutually uncorrelated signals
• you can observe them over a long window in which they are stationary then you can use co-array processing to virtually fill the missing elements between your two arrays.

Let's see how it works for a single source and let us emit noise for now for clarity (it's not hard to add it later). The observation vectors in your two subarrays can be expressed as $$\mathbf x_i(t) = \mathbf a_i \cdot s(t)$$, $$i=1,2$$, where $$\mathbf a_i$$ are the array steering vectors and $$s(t)$$ is the emitted signal. Let $$\mathbf x(t) = [\mathbf x_1(t)^T, \mathbf x_2(t)^T]^T$$ be the vector of all observations. Then, its covariance matrix for a single source is given by $$\mathbf R = \mathbb{E}\{\mathbf x(t) \mathbf x(t)^H\} = \mathbf a \cdot \mathbf a^H \cdot P_s,$$ where $$P_s$$ is the variance of $$s(t)$$ (remember it was assumed stationary) and $$\mathbf a = [\mathbf a_1^T, \mathbf a_2^T]^T$$. Now, the trick is to vectorize $$\mathbf R$$. Using the Kronecker-vectorization identity, this gives $$\mathbf r = {\rm vec}\{\mathbf R \}= (\mathbf a^* \otimes \mathbf a) \cdot P_s,$$ where $$^*$$ denotes complex conjugation and $$\otimes$$ is the Kronecker product. Now, this looks like a single observation with an array that has an array steering vector given by $$\mathbf a^* \otimes \mathbf a$$, which we refer to as the co-array of $$\mathbf a$$.

For a ULA with half-wavelength spacing, your array steering vectors take the form $$\mathbf a_1 = [{\rm e}^{0}, {\rm e}^{\jmath \mu}, {\rm e}^{2\jmath \mu}, \ldots, {\rm e}^{(N-1) \jmath \mu}]^T$$ and $$\mathbf a_2 = [{\rm e}^{D \jmath \mu}, {\rm e}^{(D+1)\jmath \mu}, \ldots, {\rm e}^{(D+N-1) \jmath \mu}]^T$$, where $$\mu = \pi \sin(\theta)$$ is the electric angle. Therefore, $$\mathbf a^* \otimes \mathbf a$$ contains terms $${\rm e}^{p \jmath \mu}$$, where $$p=-(N-1), \ldots, (N-1)$$ (from $$\mathbf a_1^* \otimes \mathbf a_1$$ and $$\mathbf a_2^* \otimes \mathbf a_2$$) and $$p=-D-N+1, ..., D-N+1$$ and $$p=N-D+1, ..., N+D-1$$ (from $$\mathbf a_1^* \otimes \mathbf a_2$$) [give or take a $$\pm$$, I guess you get the idea].

Given that, for $$D, you've created a virtual ULA that is completely filled. I'll let you do the math how many elements it has in total.

Note that you will in general need to apply spatial smoothing if you want to estimate more than one source.

That said, compressive sensing is the wrong term here. It is co-array processing, which is somehow linked to sparsity-based processing (which became popular in the compressive sensing field, leading to many people confusing the two).

Regardless of your sensing technique the coherence length of the wavefront would determine the maximum $D$. Propagation media often introduces random perturbations. Any upper limit on the maximum $D$ is because of the physics.