張 繁,何明亮
(上海諾基亞貝爾股份有限公司,江蘇 南京 210037)
矩陣求逆在接收抗干擾信號處理中應(yīng)用廣泛。相比傳統(tǒng)的矩陣求逆算法,基于cholesky分解的矩陣求逆算法,大大簡化了求逆運算量。在接收抗干擾處理和權(quán)值更新的過程中,用時越長,則定位誤差越大。用FPGA的流水線設(shè)計來實現(xiàn)cholesky分解求逆算法,則能充分體現(xiàn)出“實時”特性,對抗干擾處理有十分重要的意義。矩陣求逆算法RTL編碼在FPGA設(shè)計中開發(fā)難度大、效率低,這里研究了一種基于自相關(guān)矩陣的cholesky分解求逆算法在FPGA中的實現(xiàn)。
Cholesky分解矩陣[1]方法是利用協(xié)方差矩陣A厄米特(Hermitian)正定的特性,將協(xié)方差矩陣A分解為上/下三角矩陣L及其共軛矩陣的乘積。計算出上/下三角矩陣的逆矩陣P,通過求取上/下三角矩陣的逆矩陣的共軛矩陣PH及矩陣P的乘積,即可得到原協(xié)方差矩陣A的逆矩陣。下面以分解為下三角矩陣為例介紹Cholesky分解[2-3]求逆算法。
Am是對稱正定矩陣,是矩陣的Choleksy分解,其中Lm是一個具有正的對角線元素的下三角矩陣,即:
采用分塊法計算Lm矩陣。令Lm由分塊矩陣L11、0、L1和Lm-1構(gòu)成。其中,L11為1×1的標(biāo)量;0為1×(m-1)的行向量;L1為(m-1)×1的列向量;Lm-1為 (m-1)×(m-1)的矩陣。
同理,將Am由分塊矩陣a11、a1和Am-1構(gòu)成。
可以得出,Lm第一列的值可由Am的第一列的值算出,即:
由此產(chǎn)生的新矩陣為:
按照上述相同的矩陣分塊的方法,即可計算出Lm-1第1列的值,即Lm第二列的值;以此類推,即可計算出下三角矩陣Lm的值。
Am的求逆運算公式為:
Lm的值已經(jīng)求出,下面就是對Lm求逆。
設(shè)Pm為Lm的逆矩陣,即,則有:
分析式(9)可以得出Pm也為下三角矩陣,而Pm主對角線的值分別為:
次對角線計算方法如下。
由:
可得:
依次類推,可以計算出Pm矩陣第三對角線以及所有其他元素的值。
根據(jù)計算的下三角矩陣Pm,實現(xiàn)Pm與Pm共軛矩陣的相乘,最終得到矩陣Am的逆矩陣:
以m=9為例,基于FPGA實現(xiàn)9×9復(fù)數(shù)矩陣的求逆運算。圖1為基于矩陣求逆的抗干擾模塊實現(xiàn)框圖。
其中,關(guān)于9×9復(fù)數(shù)矩陣A的求逆運算模塊如圖2所示。
圖1 基于矩陣求逆的抗干擾實現(xiàn)模塊
圖2 9×9復(fù)數(shù)矩陣求逆模塊
對9×9復(fù)數(shù)矩陣A進行Cholesky分解過程的模塊框圖如圖3所示。
圖3 9×9矩陣Cholesky分解模塊
圖4為9×9矩陣Cholesky分解模塊框圖,該模塊完成9×9下三角復(fù)數(shù)矩陣L的求逆[4]運算,矩陣L的主對角線為實數(shù)。公式L*P=E中,L的逆矩陣P也是9×9下三角矩陣,P的主對角線為L的主對角線的倒數(shù)。下三角矩陣求逆模塊,如圖5所示。
圖4 循環(huán)展開框
圖5 下三角矩陣求逆模塊
表1為四陣元、三干擾以及干擾強度為-65 dBm的環(huán)境下Matlab的仿真結(jié)果。
表1 Matlab仿真結(jié)果對比
在該種環(huán)境下選取24×24矩陣為最優(yōu)結(jié)構(gòu)。圖6為24×24矩陣結(jié)構(gòu)下Matlab的運算結(jié)果。
圖6 Matlab仿真結(jié)果
基于Cholesky分解的矩陣求逆算法,利用FPGA流水線設(shè)計特點在FPGA中實現(xiàn)該算法,其實時性在接收抗干擾應(yīng)用中有著十分重要的意義。結(jié)合實際環(huán)境、需求以及FPGA設(shè)計資源等因素,可以合理選取最優(yōu)結(jié)構(gòu)進行抗干擾處理。