# ESPRIT Algorithm – The Son of MUSIC

The MUSIC(Multiple Signal Classification) algorithm has inspired a new elegant extension by utilizing an invariance principle that exists naturally for discrete sequences. The new algorithm is referred to as ESPRIT (Estimation of Signal Parameters via Rational Invariance Techniques).

ESPRIT imposes a particular geometric constraint on the array, but it has a tremendous computational advantage over MUSIC, and further, it eliminates the required array calibration.

This short paper the basic idea and implementation are described. Its use for resolving multiple sound sources with antenna array is discussed.

For arrays with certain geometry configuration, we may separate each array into two subsets such that the following equations hold true, $x_1\left(t\right)=As\left(t\right)+n_1\left(t\right)$, $x_2\left(t\right)=A \Phi s\left(t\right)+n_2\left(t\right)$,

where, the rotation matrix, $\Phi=\begin{bmatrix} e^{j \phi_1} & & \\ & \ddots & \\ & & e^{j\phi_N} \\ \end{bmatrix}$

and $\phi_i=-2k\Delta sin\left(\theta_i\right)$, for $1 \le i \le N$, $N$ is the number of sound sources, $\Delta$ is a constant. Obviously, a linear array can satisfy the above constraint. We focus on linear arrays in this discussion.

The correlation matrices can be defined as below, $R_{11}=E\left[x_1\left(t\right)x_1^H\left(t\right)\right]$ $R_{22}=E\left[x_2\left(t\right)x_2^H\left(t\right)\right]$

From eigen-decomposition, we can construct the signal subspaces $E1$ and $E2$, and further, the following matrix, $C=\left[ \begin{matrix} E_1^H \\ E_2^H \\ \end{matrix}\right] \left[ E_1 E_2 \right] = E_c\Lambda E_c^H$.

where $E_c$ and $\Lambda$ are the eigenvectors and eigenvalues.

By further partitioning $E_c$, $E_c=\left[\begin{matrix}E_{11}&E_{12}\\E_{21}&E_{22}\\ \end{matrix}\right]$.

The rotational matrix, $\Phi=- E_{12} E_{22}^-1$

For the ith eigenvalue, we can derive the angle of arrival by the following, $\theta_i={\sin}^{-1}{\left(\frac{\arg{\left(\Lambda_i\right)}}{k\Delta}\right)}$

The algorithm works in signal subspace rather than in the noise subspace.