旋转不变子空间( ESPRIT) 算法
1.1 ESPRIT 算法模型
以均匀线阵为研究背景,假设有阵元数为,阵元间距为
的平面等间距线性天线阵列。设窄带远场信号的 DOA 估计的数学模型为
(1)
式中,为阵列流型阵( 导向矢量阵) 。
1.2 ESPRIT 算法原理
ESPRIT 算法的概念是由Roy和Kailath提出的。将阵列分成两个相同的子阵列。由于两个子阵的结构完全相同,对于同一个信号而言,两个子阵的输出只有一个相位差。下面假设两个子阵的接收数据如下:
(2)
(3)
子阵1的阵列流型 ,子阵2的阵列流型
。
从上面的数学模型可知,需要求解的是信号的方向,而信号的方向信息包含在和
中,由于
是一个对角阵,所以下面只考虑这个矩阵,即:
(4)
由上可知,只要得到两个子阵间的旋转不变关系,就可以方便得到关于信号到达角的信息。下面的任务就是从式(2)和(3)中得到两个子阵间的关系。先将两个子阵的模型进行合并,即,
(5)
在理想条件下,可得上式的协方差矩阵:
(6)
对上式进行特征分解,可得:
(7)
此时,存在一个惟一的非奇异矩阵,使得:
(8)
显然上述的结构对两个子阵都成立,所以有:
(9)
此时可知两个子阵的信号子空间的关系如下:
(10)
如果阵列流型是满秩矩阵,则由式( 10) 可以得到:
(11)
所以上式中的特征值组成的对角阵一定等于
,而矩阵
的各列就是矩阵
的特征矢量。所以一旦得到上述的旋转不变关系矩阵
,就可以直接利用式(4)得到信号的入射角度。这正是 ES-PRIT 研究中的核心关系。
1.3 ESPRIT****算法实现
1.3.1 LS-ESPRIT 算法
直接给出LS的旋转不变子空间算法的步骤:
① 两个子阵的接收数据,分别得到两个子阵的数据协方差矩阵。
② 将矩阵对进行特征分解,从而得到两个数据矩阵的信号子空间
和
。
③ 按照得到矩阵
,然后对其进行特征值分解,得到
个特征值就可以得到对应的
个信号的波达方向。
1.3.2 TLS-ESPRIT 算法
TLS ESPRIT 求解 DOA 的算法步骤:
① 两个子阵的接收数据,得到数据协方差矩阵。
② 将矩阵对进行特征分解,从而得到两个数据矩阵的信号子空间
。
③ 由构造矩阵
,并按照式
进行特征值分解得到矩阵
,然后按照式
将矩阵分为4个小的矩阵。
④ 按照式 得到矩阵
,然后对其进行特征值分解,得到
个特征值就可以得到对应的
个信号的波达方向。
1.3.3 TAM 算法
Toeplitz 近似简称 TAM 算法,其求解的准则是利用了空间的旋转不变性,也可以看成为 ESPRIT算法中的一种。下面就介绍其基本实现步骤:
① 数据协方差矩阵得到信号子空间及其特征值。
② 按式构造矩阵
,从而进一步得到
的前
行与后
行构成的矩阵
和
。
③ 按照式 得到矩阵
。其中
是
的前
行,
是
的后
行。
④ 对矩阵进行特征分解,由特征值就可以得到对应的
个信号的到达角。
总结上述所说,可以得到ESPRIT算法的流程图,如图所示。
ls_esprit算法和tls_esprit算法matlab仿真