注:本博文为本人阅读论文、文章后的原创笔记,未经授权不允许任何转载或商用行为,否则一经发现本人保留追责权利。有问题可留言联系,欢迎指摘批评,共同进步!!!
算法简述
ESPRIT算法全称为:Estimation of Signal Parameters using Rotational Invariance Techniques.与Root_MUSIC算法相同,也是一种参数估计技术。
ESPRIT算法基于一个事实:在旋转矢量中,一个元素上的信号来源于更早期元素信号的相移。
算法要得到什么
在Root_MUSIC算法的叙述中,我们已经设定z m = e j k d c o s ϕ m z_m=e^{jkd\ cos\phi_m}zm=ejkd cosϕm。并且根据式R s = S A S H \mathbf{R_s}=\mathbf{SAS^H}Rs=SASH可知,在矩阵A \mathbf{A}A确定的情况下,相关矩阵就是依赖于矩阵S \mathbf{S}S的,它是一个( N × M ) (N \times M)(N×M)大小的旋转矢量矩阵。因此矩阵S \mathbf{S}S可以写为:
S = [ 1 1 ⋯ 1 z 1 z 2 ⋯ z M ⋮ ⋮ ⋱ ⋮ z 1 N − 2 z 2 N − 2 ⋯ z M N − 2 z 1 N − 1 z 2 N − 1 ⋯ z M N − 1 ] . \mathbf{S} = \begin{bmatrix} 1 & 1 & \cdots & 1\\ z_1 & z_2 & \cdots & z_M\\ \vdots & \vdots & \ddots & \vdots\\ z^{N-2}_1 & z^{N-2}_2 & \cdots & z^{N-2}_M\\ z^{N-1}_1 & z^{N-1}_2 & \cdots & z^{N-1}_M \end{bmatrix}.S=⎣⎡1z1⋮z1N−2z1N−11z2⋮z2N−2z2N−1⋯⋯⋱⋯⋯1zM⋮zMN−2zMN−1⎦⎤.
其中每一列代表一个信号的旋转矢量,例如第i ii列代表s ( ϕ i ) \mathbf{s(\phi_i)}s(ϕi)。
然后,我们可以将矩阵S \mathbf{S}S分成两个矩阵,分别包含矩阵S \mathbf{S}S的前( N − 1 ) (N-1)(N−1)行和后( N − 1 ) (N-1)(N−1)行:
S 0 = [ 1 1 ⋯ 1 z 1 z 2 ⋯ z M ⋮ ⋮ ⋱ ⋮ z 1 N − 2 z 2 N − 2 ⋯ z M N − 2 ] S 1 = [ z 1 z 2 ⋯ z M ⋮ ⋮ ⋱ ⋮ z 1 N − 2 z 2 N − 2 ⋯ z M N − 2 z 1 N − 1 z 2 N − 1 ⋯ z M N − 1 ] \begin{aligned} \mathbf{S_0} &= \begin{bmatrix} 1 & 1 & \cdots & 1\\ z_1 & z_2 & \cdots & z_M\\ \vdots & \vdots & \ddots & \vdots\\ z^{N-2}_1 & z^{N-2}_2 & \cdots & z^{N-2}_M \end{bmatrix} \\ \mathbf{S_1} &= \begin{bmatrix} z_1 & z_2 & \cdots & z_M\\ \vdots & \vdots & \ddots & \vdots\\ z^{N-2}_1 & z^{N-2}_2 & \cdots & z^{N-2}_M\\ z^{N-1}_1 & z^{N-1}_2 & \cdots & z^{N-1}_M \end{bmatrix} \end{aligned}S0S1=⎣⎡1z1⋮z1N−21z2⋮z2N−2⋯⋯⋱⋯1zM⋮zMN−2⎦⎤=⎣⎡z1⋮z1N−2z1N−1z2⋮z2N−2z2N−1⋯⋱⋯⋯zM⋮zMN−2zMN−1⎦⎤
得到上面两个矩阵后,我们可以看到,S 0 \mathbf{S_0}S0和S 1 \mathbf{S_1}S1是存在等式关系的。
定义一个对角阵Φ \mathbf{\Phi}Φ:
Φ = [ z 1 0 ⋯ 0 0 z 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ z M ] \begin{aligned} \mathbf{\Phi}= \begin{bmatrix} z_1 & 0 & \cdots & 0\\ 0 & z_2 & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \cdots & z_M \end{bmatrix} \end{aligned}Φ=⎣⎡z10⋮00z2⋮0⋯⋯⋱⋯00⋮zM⎦⎤
那么矩阵S 0 \mathbf{S_0}S0和S 1 \mathbf{S_1}S1的关系为:
S 1 = S 0 Φ \mathbf{S_1} = \mathbf{S_0 \Phi}S1=S0Φ
如我们所见,只要我们能估计出矩阵Φ \mathbf{\Phi}Φ,那么就能得到信号的DOA。
如何得到矩阵Φ \PhiΦ
如果我们已知了S 0 \mathbf{S_0}S0和S 1 \mathbf{S_1}S1两个矩阵,那么很容易就能得到矩阵Φ \PhiΦ。但是,显然,S 0 \mathbf{S_0}S0和S 1 \mathbf{S_1}S1两个矩阵是未知的,因此需要寻找代替物来得到相同的结果。
ESPRIT算法有一个前提:承认一个事实,就是矩阵S \mathbf{S}S中的旋转矢量涵盖了和矩阵Q s \mathbf{Q_s}Qs相同的子空间(信号子空间)。因此矩阵Q s \mathbf{Q_s}Qs与矩阵S \mathbf{S}S一定存在变换关系,设定为Q s = S C \mathbf{Q_s}=\mathbf{SC}Qs=SC,其中矩阵C \mathbf{C}C是一个可逆矩阵。
有上面的前提条件,那么矩阵Q s \mathbf{Q_s}Qs也能模仿矩阵S \mathbf{S}S分解成两个矩阵Q 0 \mathbf{Q_0}Q0和Q 1 \mathbf{Q_1}Q1,分别包含矩阵Q s \mathbf{Q_s}Qs的前( N − 1 ) (N-1)(N−1)行和后( N − 1 ) (N-1)(N−1)行。
那么对应地,矩阵Q 0 \mathbf{Q_0}Q0、Q 1 \mathbf{Q_1}Q1分别与矩阵S 0 \mathbf{S_0}S0和S 1 \mathbf{S_1}S1存在转换关系:
Q 0 = S 0 C Q 1 = S 1 C = S 0 Φ C \begin{aligned} \mathbf{Q_0} &= \mathbf{S_0C}\\ \mathbf{Q_1} &= \mathbf{S_1C} = \mathbf{S_0 \Phi C} \end{aligned}Q0Q1=S0C=S1C=S0ΦC
因此你可以找到矩阵Q 0 \mathbf{Q_0}Q0和Q 1 \mathbf{Q_1}Q1之间的关系为:
Q 1 C − 1 Φ − 1 C = S 0 C = Q 0 \mathbf{Q_1C^{-1}\Phi^{-1}C} = \mathbf{S_0C} = \mathbf{Q_0}Q1C−1Φ−1C=S0C=Q0
由此,我们可以设定一个新的矩阵为Ψ \mathbf{\Psi}Ψ,满足:
Ψ − 1 = C − 1 Φ − 1 C ⇒ Q 1 Ψ − 1 = Q 0 ⇒ Q 1 = Q 0 Ψ \begin{aligned} \mathbf{\Psi^{-1}} &= \mathbf{C^{-1}\Phi^{-1}C} \\ \Rightarrow \mathbf{Q_1 \Psi^{-1}} &= \mathbf{Q_0} \\ \Rightarrow \mathbf{Q_1} &= \mathbf{Q_0 \Psi} \end{aligned}Ψ−1⇒Q1Ψ−1⇒Q1=C−1Φ−1C=Q0=Q0Ψ
其中,矩阵Ψ = C − 1 Φ C \mathbf{\Psi} = \mathbf{C^{-1} \Phi C}Ψ=C−1ΦC.由该等式可知矩阵Ψ 与矩阵 Φ \mathbf{\Psi}与矩阵\mathbf{\Phi}Ψ与矩阵Φ相似,而矩阵Φ \mathbf{\Phi}Φ又恰好是对角阵,根据相似矩阵的性质,矩阵Φ \mathbf{\Phi}Φ对角线上的元素就是矩阵Ψ \mathbf{\Psi}Ψ的特征值!!!
因此,我们只要得到矩阵Ψ \mathbf{\Psi}Ψ,再求其特征值,就可以得到我们想要的矩阵Φ \mathbf{\Phi}Φ,进而求出DOA.
注意!因为矩阵Q 0 \mathbf{Q_0}Q0和矩阵Q 1 \mathbf{Q_1}Q1我们都能得到,因此可以用矩阵的最小二乘法来拟合出矩阵Ψ \mathbf{\Psi}Ψ,再进行之后的运算。
ESPRIT算法的步骤
- 用式R = 1 K ∑ k = 1 K x k x k H \mathbf{R} = \frac{1}{K} \sum_{k=1}^{K}\mathbf{x_k}\mathbf{x^H_k}R=K1∑k=1KxkxkH来估计出相关矩阵R \mathbf{R}R,再对其进行特征分解:R = Q Λ Q H \mathbf{R} = \mathbf{Q \Lambda Q^H}R=QΛQH.得到矩阵Q \mathbf{Q}Q;
- 从矩阵Q \mathbf{Q}Q中获得矩阵Q s \mathbf{Q_s}Qs(对应于矩阵Q \mathbf{Q}Q的M MM个最大的特征值),代表信号子空间;
- 分别取矩阵Q s \mathbf{Q_s}Qs的前( N − 1 ) (N-1)(N−1)行和后( N − 1 ) (N-1)(N−1)行,分别形成矩阵Q 0 \mathbf{Q_0}Q0、Q 1 \mathbf{Q_1}Q1;
- 使用最小二乘法(或完全最小二乘法)拟合出变换矩阵Ψ \mathbf{\Psi}Ψ;
- 求出矩阵Ψ \mathbf{\Psi}Ψ的特征值,这些特征值就是待估计的z m z_mzm;
- 使用下式获得DOA:

参考文献(仅写文章的标题,以做记录)
[1]. Direction of Arrival Estimation