# An Effective Off-Grid DOA Estimation Algorithm Using Difference Coarrays with Limited Snapshots
## 2 Signal Model  
The linear array element positions are indexed by,  
\[\mathbf{S}=\{x_{i},i=1,2,\ldots,N\}, \tag{1}\]  
where \(x_{i}=c_{i}d\) denote the sensor positions. \(d=\lambda/2\) represents the unit inter-element spacing and \(c_{i}\) are the integer indices. The corresponding difference coarray comprises the set of all possible inter-element spacing for arbitrary sensor pairs [30].  
Assume there are \(K\) far-field, narrow-band sources with incident angles \(\theta=[\theta_{1},\ldots,\theta_{K}]\). The array output at time instant \(t\) is given by  
\[\mathbf{y}(t)=\mathbf{A}\mathbf{s}(t)+\mathbf{n}(t),\quad t=1,\ldots,T, \tag{2}\]  
where \(\mathbf{s}(t)=[s_{1}(t),\ldots,s_{K}(t)]^{T}\) is the source signal, assumed to be deterministic and orthogonal, and \(\mathbf{n}(t)=[n_{1}(t),\cdots,n_{N}(t)]^{T}\) is zero-mean complex white Gaussian noise. The array manifold matrix \(\mathbf{A}=[\mathbf{a}(\theta_{1}),\ldots,\mathbf{a}(\theta_{K})]\) comprises steering vectors \(\mathbf{a}(\theta_{k})=[e^{i\epsilon_{1}\pi\sin\theta_{k}},\ldots,e^{i\epsilon _{N}\pi\sin\theta_{k}}]^{T},k=1,\ldots,K\). Thus, the covariance matrix \(\mathbf{R}\) is written as  
\[\mathbf{R}=E[\mathbf{y}(t)\mathbf{y}^{H}(t)]=\mathbf{A}\mathbf{R}_{s}\mathbf{ A}^{H}+\sigma_{n}^{2}\mathbf{I}. \tag{3}\]  
Here, the diagonal matrix \(\mathbf{R}_{s}=diag\{\sigma_{1}^{2},\cdots,\sigma_{K}^{2}\}\) is the source covariance matrix, where the diagonal entries correspond to the power of each source signal. \(\sigma_{n}^{2}\) represents the noise power. \(\mathbf{A}^{H}\) denotes the conjugate transpose of the matrix \(\mathbf{A}\).  
Then, the covariance matrix can be vectorized and calculated as,  
\[\tilde{\mathbf{y}}=\mathrm{vec}(\mathbf{R})=\tilde{\mathbf{A}}\mathbf{p}+ \sigma_{n}^{2}\tilde{\mathbf{x}}, \tag{4}\]  
where \(\mathbf{p}=[\sigma_{1}^{2},\sigma_{2}^{2},\cdots,\sigma_{K}^{2}]^{T},\tilde{ \mathbf{i}}=\mathrm{vec}(\mathbf{I})\) and \(\tilde{\mathbf{A}}=[\tilde{\mathbf{a}}(\theta_{1}),\cdots,\tilde{\mathbf{a}} (\theta_{K})]\). Each column vector \(\tilde{\mathbf{a}}(\theta_{k})\) is expressed as,  
\[\tilde{\mathbf{a}}(\theta_{k})=\mathbf{a}^{*}(\theta_{k})\otimes\mathbf{a}( \theta_{k}). \tag{5}\]  
Here, \(\mathbf{a}^{*}(\theta_{k})\) refers to the conjugate of \(\mathbf{a}(\theta_{k})\) and \(\otimes\) stands for the Kronecker product.  
By removing the repeated elements, we can obtain,  
\[\mathbf{\hat{y}}=\mathbf{\hat{J}}\tilde{\mathbf{y}}=\tilde{\mathbf{A}}\mathbf{ p}+\sigma_{n}^{2}\tilde{\mathbf{i}}, \tag{6}\]  
where the array manifold matrix is \(\tilde{\mathbf{A}}=[\tilde{\mathbf{a}}(\theta_{1}),\cdots,\tilde{\mathbf{a}} (\theta_{k})]\). The length of the coarray is \(N_{c}\) and the element index is denoted as \(\tilde{c}_{i}\). The central entry of the vector \(\tilde{\mathbf{i}}\) is equal to one and the other elements are equal to zero. The matrix \(\mathbf{J}\) is defined as  
\[\mathbf{J}=\mathbf{\
abla}\mathbf{G}^{-1}(\mathbf{\Phi}\otimes\mathbf{\Phi}) ^{-1}, \tag{7}\]where \(\mathbf{\Psi}\) is a \(N\times(c_{N}+1)\) matrix, and the \((c_{i}+c_{N}+1)\)-th entry of the \(i\)-th row is equal to one. \(\mathbf{\Phi}\) is a \(N_{c}\times(2c_{N}+1)\) matrix with the \((c_{i}+1)\)-th element of the \(i\)-th row being equal to one. The matrix \(\mathbf{G}\) contains an identity matrix positioned along its anti-diagonal.  
Under limited snapshot conditions, the received data are modeled as,  
\[\mathbf{\bar{y}}=\mathbf{J}\mathrm{vec}(\mathbf{\hat{R}})=\mathbf{\bar{y}}+ \mathbf{\bar{e}}, \tag{8}\]  
where the sample covariance matrix \(\mathbf{\hat{R}}=(1/T)\sum_{t=1}^{T}\mathbf{y}(t)\mathbf{y}^{H}(t)\). \(\mathbf{\bar{e}}\) characterizes the estimation error resulting from the limited number of snapshots.  
To accurately estimate the off-grid DOAs using the coarray data \(\mathbf{\bar{y}}\), we propose a two-stage algorithm including initial DOA estimation and fine DOA estimation in the following section.