旋轉不變子空間( 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仿真