*2.1. CEM Algorithm*

#### 2.1.1. Principle of the CEM Algorithm

Let **X** ∈ **R***W*×*H*×*<sup>L</sup>* denote a HSI with *W* × *H* pixels (row of **X**) and *L* spectral bands (column of **X**). We may interpret **X** either as a collection of *L* 2D images (or bands) of size *N* (*N* = *W* × *H*), or as a collection of *W* × *H* spectral vectors of size *L*. The entire data matrix **X** = [**<sup>x</sup>**1, **x**2, **x**3, ..., **<sup>x</sup>***N*], where **x***i* is the *i*th sample pixel vector **x***i* = (*xi*1, *xi*2, ..., *xiL*)<sup>T</sup> for 1 ≤ *i* ≤ *N* and the signature **d** = (*d*1, *d*2, ..., *dL*)<sup>T</sup> of target is known. The basic purpose of CEM is to design a linear finite impulse response (FIR) filter with *L* filter coefficients denoted by an *L*-dimensional vector **w** = (*<sup>w</sup>*1, *w*2, ..., *wL*)<sup>T</sup> that minimizes the energy of the the output *yi* (1 ≤ *i* ≤ *N*) with the following constraint.

$$\mathbf{s}.\mathbf{t}.\mathbf{d}^{\mathrm{T}}\mathbf{w} = \mathbf{1} \tag{1}$$

$$\min\_{\mathbf{w}} \left( \mathbf{w}^T \mathbf{R} \mathbf{w} \right) \tag{2}$$

where **R** = 1*N* \*∑*Ni*=<sup>1</sup> **<sup>x</sup>***i***x**T*i* +is the global correlation matrix of **X**. The weighting vector **w** solved for Equation (1) and Equation (2) is given by

$$\mathbf{w} = \frac{\mathbf{R}^{-1}\mathbf{d}}{\mathbf{d}^{\mathrm{T}}\mathbf{R}^{-1}\mathbf{d}}\tag{3}$$

which yields the CEM described by

$$\mathbf{y}\_{i} = \delta\_{\rm CEM}(\mathbf{x}\_{i}) = (\mathbf{w}\_{\rm CEM})^{\rm T}\mathbf{x}\_{i} \tag{4}$$

2.1.2. Problem Analysis

The classical CEM algorithm is a global subpixel target detector, which uses all the pixels in HSI to calculate the correlation matrix. After the correlation matrix is obtained, the process of calculating the inverse matrix is executed through many complicated steps via QR decomposition. This is a typical large matrix inversion problem, which may be the main cause of a significant latency up to obtaining the final results.
