一種基于DSP的MIMO系統(tǒng)空時編碼盲識別方法
(1)預(yù)白化。預(yù)白化的目的是去除信道對接收信號相關(guān)性的影響。白化矩陣W通過對分時相關(guān)矩陣P做特征值分解得到
,其中A-1為特征值矩陣Λ的廣義逆。W與原數(shù)據(jù)相乘便可得到解相關(guān)矩陣Y。 (2)計算時滯相關(guān)度。利用接收信號預(yù)白化后得到的解相關(guān)矩陣Y,依據(jù)統(tǒng)計學(xué)公式計算時滯相關(guān)范數(shù)
空時編碼矩陣的理論時滯相關(guān)特性僅與編碼矩陣本身有關(guān)。因此,應(yīng)用與式(1)相同的形式,可將編碼矩陣不同的列進(jìn)行矩陣乘加運算,并取F范數(shù)來表征。
由此得出計算空時編碼的時滯相關(guān)矩陣R(τ)
其中,空時編碼矩陣的每一列代表不同的發(fā)射時刻,A(u)是碼型A編碼矩陣的第u列,l為碼型分組長度。已預(yù)白化后的接收信號矩陣與發(fā)送端編碼矩陣,在時滯相關(guān)函數(shù)F范數(shù)上有如下關(guān)系
(3)判決碼型。遍歷候選碼集,計算出接收信號與候選碼集中每一種空時碼的相關(guān)度,取其中最相關(guān)的碼型便為判決碼型。
2.3 軟件設(shè)計
軟件系統(tǒng)采用模塊化結(jié)構(gòu)設(shè)計,程序流程如圖5所示。包括系統(tǒng)啟動、配置系統(tǒng)寄存器、設(shè)置全局變量和開啟中斷控制等。當(dāng)ADC模塊將采樣數(shù)據(jù)全部寫入SDRAM后,CPLD通知DSP觸發(fā)DMA中斷1,將SDRAM中的數(shù)據(jù)讀入DSP,讀取結(jié)束后DMA觸發(fā)中斷2,并對ADC采樣數(shù)據(jù)進(jìn)行處理:(1)預(yù)白化,去除新到對采樣數(shù)據(jù)相關(guān)性的影響。(2)計算采樣數(shù)據(jù)與候選集中每種碼字的時滯相關(guān)度。(3)根據(jù)上述計算結(jié)果,選取使時滯相關(guān)度最小的碼型為判決碼型。
通過對DMAC寄存器的設(shè)置,可控制DMA的流向、通道和方式,典型的數(shù)據(jù)讀取關(guān)鍵代碼如下:
數(shù)據(jù)處理部分的關(guān)鍵函數(shù)包括白化和時滯相關(guān)量計算,數(shù)據(jù)傳遞采用了單維讀入與多維傳遞的方式,即將多天線的數(shù)據(jù)按照天線順序依次讀入,但在DSP內(nèi)部數(shù)據(jù)傳遞時,多根天線的數(shù)據(jù)按照時間順序傳遞,在函數(shù)內(nèi)部手動尋址,即符合算法要求,又加快了數(shù)據(jù)處理的速度。數(shù)據(jù)處理時包括大量的矩陣轉(zhuǎn)置和乘加操作,在計算時優(yōu)化為內(nèi)積計算模式,使用ALU運算塊X和Y,每個周期并行計算時滯矩陣兩列之間的相關(guān)范數(shù),這便節(jié)省了內(nèi)存資源,減少了尋址次數(shù),且加快了計算速度。
本算法在不同參數(shù)下的Matlab性能仿真如圖6所示,采樣數(shù)據(jù)越長,接收天線數(shù)越多,識別性能也越好。實際測試證明與期望相一致,驗證了設(shè)計的合理性和正確性。
3 結(jié)束語
DSP芯片具有的特殊軟硬件結(jié)構(gòu)和指令系統(tǒng),使其能高速處理各種數(shù)字信號處理算法?;诖嗽O(shè)計的空時編碼盲識別方法具有速度快、精度高的特點。同時該系統(tǒng)依靠簡潔的外部硬件電路設(shè)計和合理的軟件程序設(shè)計,能夠?qū)崿F(xiàn)對常用空時編碼模式的正確識別。且該系統(tǒng)的可擴展性良好,當(dāng)需要識別最新的空時編碼時,只需將其放入編碼方式候選集中,為其分配顯示接口即可,而無需過多更改硬件設(shè)置及軟件程序。
c++相關(guān)文章:c++教程
評論