基于DSP的空時(shí)編碼盲識(shí)別設(shè)計(jì)和實(shí)現(xiàn)
摘要 提出了一種基于TigerSHARC TS201S實(shí)現(xiàn)的MIMO系統(tǒng)空時(shí)編碼盲識(shí)別方法的設(shè)計(jì)與實(shí)現(xiàn),該設(shè)計(jì)能夠在非合作條件下,利用空時(shí)編碼在時(shí)間分集和空間分集下,所表現(xiàn)出的不同時(shí)滯相關(guān)性,實(shí)現(xiàn)盲識(shí)別空時(shí)編碼方式。天線(xiàn)接收信號(hào)經(jīng)過(guò)預(yù)白化,時(shí)滯相關(guān)度計(jì)算,最終利用碼字表判決輸出。經(jīng)驗(yàn)證,該系統(tǒng)性能穩(wěn)定,易于實(shí)現(xiàn),且對(duì)空時(shí)編碼方式具有較高的盲識(shí)別精度。
關(guān)鍵詞 數(shù)字信號(hào)處理器;多輸入多輸出系統(tǒng);空時(shí)編碼;盲識(shí)別;時(shí)滯相關(guān)
空時(shí)編碼(Space—Time Block Coding,STBC)是達(dá)到或接近MIMO無(wú)線(xiàn)信道容量的一種有效的編碼方式。空時(shí)編碼方式的盲識(shí)別是通信對(duì)抗領(lǐng)域需迫切研究的領(lǐng)域,其能夠?yàn)镸IMO系統(tǒng)對(duì)抗技術(shù)提供基礎(chǔ)和技術(shù)支撐,具有重要的研究?jī)r(jià)值。
時(shí)滯相關(guān)算法是根據(jù)不同空時(shí)編碼的相關(guān)矩陣在不同時(shí)延統(tǒng)計(jì)下的差異性,采用逐級(jí)對(duì)比,實(shí)現(xiàn)對(duì)空時(shí)編碼方式的盲識(shí)別。擁有計(jì)算精度高,抗頻偏效果好等優(yōu)點(diǎn)。文中提出一種基于A(yíng)DI公司DSP芯片TigerSHARCTS201S的空時(shí)編碼盲識(shí)別方案設(shè)計(jì)和實(shí)現(xiàn)。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 系統(tǒng)硬件框圖
系統(tǒng)硬件框圖如圖1所示。由信號(hào)處理、信號(hào)采集、電源、時(shí)鐘4部分構(gòu)成,信號(hào)采集由CPLD和ADC組成,負(fù)責(zé)完成A/D轉(zhuǎn)換,信號(hào)處理由TS201S芯片及其外設(shè)組成,用于存儲(chǔ)A/D采樣的數(shù)據(jù),并進(jìn)行空時(shí)碼盲識(shí)別運(yùn)算處理。電源模塊為其他所有模塊提供正常工作所需的電壓,時(shí)鐘模塊中由晶振和倍頻芯片組成,提供系統(tǒng)所需時(shí)鐘。
系統(tǒng)工作時(shí),設(shè)備首先通電初始化,從Flash中載入用戶(hù)應(yīng)用程序,繼而通過(guò)CPLD控制ADC進(jìn)行數(shù)據(jù)采集,并利用DMA中斷方式讀取數(shù)據(jù)并進(jìn)行編碼識(shí)別運(yùn)算。
1.2 TigerSHARC TS201S簡(jiǎn)介
TigerSHARC TS201S兼有ASIC和FPGA的信號(hào)處理性能和指令集處理器的高度可編程性與靈活性,適用于高性能、大存儲(chǔ)量的信號(hào)處理與圖像應(yīng)用。
TS201S內(nèi)部分為DSP核和I/O接口兩部分,通過(guò)4條總線(xiàn)傳輸數(shù)據(jù)、地址和控制信息。并提供完全可中斷的編程模式,支持匯編和C/C++語(yǔ)言編程,32/40位的浮點(diǎn)運(yùn)算及最高64位的定點(diǎn)運(yùn)算。在600 MHz時(shí)鐘速率下,可達(dá)到每秒48億次乘加運(yùn)算。
1.3 電源、時(shí)鐘和總線(xiàn)方案設(shè)計(jì)
TS201S和AD7864對(duì)電源的要求較高,以TS201S內(nèi)核時(shí)鐘500 MHz為例,4個(gè)電源VDD、VDD_A、VDD_IO、VDD_DRAM的精度要求控制在5%以?xún)?nèi)。因此系統(tǒng)中的電源芯片采用了TPS54350,其精度可達(dá)1%。
時(shí)鐘模塊中,晶振產(chǎn)生27 MHz時(shí)鐘通過(guò)倍頻芯片得到54 MHz時(shí)鐘后進(jìn)入CPLD,一方面作為T(mén)S201S的系統(tǒng)時(shí)鐘SCLK,另一方面在CPLD內(nèi)12分頻后作為AD7864的工作時(shí)鐘信號(hào)AD_CLK。為防止其對(duì)系統(tǒng)電源產(chǎn)生耦合干擾,晶振和倍頻芯片的電源與本板電源之間要用電感或磁珠進(jìn)行隔離。
在系統(tǒng)總線(xiàn)負(fù)載較重的情況下,設(shè)計(jì)不當(dāng)會(huì)限制總線(xiàn)只能在低頻下工作甚至無(wú)法讀取數(shù)據(jù)。由于環(huán)形結(jié)構(gòu)上任一負(fù)載的變化均會(huì)影響到其他負(fù)載的工作,設(shè)計(jì)中采用了星形總線(xiàn)結(jié)構(gòu),如圖2所示。
1.4 信號(hào)采集方案設(shè)計(jì)
信號(hào)采集模塊由CPLD和兩片ADC組成,A/D轉(zhuǎn)換芯片采用AD公司生產(chǎn)的AD7864,其轉(zhuǎn)換精度12位,最高吞吐量520 ksample·s-1,轉(zhuǎn)換時(shí)間最快為1.65μs,采樣保持0.35μs,此外其單電源和低功耗特性最低可達(dá)20 Uw,其能夠滿(mǎn)足系統(tǒng)的要求,簡(jiǎn)化硬件設(shè)計(jì)。
信號(hào)采集前,需對(duì)AD7864的一些輸入引腳進(jìn)行配置,南Alterta公司的CPLD產(chǎn)品MAX3256完成。如圖3所示,CONVST為使能輸入引腳,置位高可控制AD7864啟動(dòng)。CS為片選信號(hào),低電平有效。RD為讀使能,低電平有效,當(dāng)CS有效且RD為低,才允許AD7864輸出轉(zhuǎn)換結(jié)果,此時(shí)WR必須為高。引腳SL1~SL4是AD7864的通道選擇輸入引腳,高電平有效。H/S SEL為高時(shí)表示將通過(guò)軟件方式來(lái)選擇A/D轉(zhuǎn)換通道,反之表示硬件選擇。當(dāng)轉(zhuǎn)換結(jié)束后,EOC引腳輸入低電平。
AD7864采用分時(shí)輸出方式,采樣信號(hào)來(lái)自TS201S的定時(shí)/計(jì)數(shù)器,每次計(jì)數(shù)器滿(mǎn)時(shí)TMROE引腳會(huì)產(chǎn)生4個(gè)總線(xiàn)時(shí)鐘的高電平,CPLD中對(duì)此信號(hào)做反向后作為AD7864的CONVST信號(hào),在數(shù)據(jù)傳輸中,片1占低位數(shù)據(jù)線(xiàn),片2占高位數(shù)據(jù)線(xiàn),分時(shí)可防止總線(xiàn)沖突。
1.5 顯示方案設(shè)計(jì)
系統(tǒng)采用FLAG PIN外接LED做為進(jìn)度顯示,DSP在執(zhí)行到不同的處理進(jìn)度時(shí)通過(guò)改變FLAG PIN口的電平控制對(duì)應(yīng)的LED導(dǎo)通,以指示當(dāng)前數(shù)據(jù)分析的步驟。圖4為外接LED的連接圖,每個(gè)FLAG PIN上的LED均不影響其他FLAG PIN接口,在LED后使用了一個(gè)上拉電阻接VCC。
系統(tǒng)復(fù)位時(shí),所有FLAG PIN置高電平,ADC采集完畢觸發(fā)DMA中斷,從SDRAM中讀取數(shù)據(jù),并進(jìn)入到預(yù)白化處理,此時(shí)FLAG PIN1至低電平,依據(jù)算法,對(duì)白化后的數(shù)據(jù)進(jìn)行時(shí)滯相關(guān)分析,并利用碼字表判決響應(yīng)碼型時(shí),并分別拉低FLAG PIN2和FLAG PIN3。
該種方法配置靈活、軟件簡(jiǎn)單,系統(tǒng)采用4個(gè)FLAGPIN來(lái)布置顯示,DSP擁有足夠的IO接口使用,在設(shè)計(jì)時(shí)充分利用了硬件資源,同時(shí)利用DMA中斷,有效提高了CPU的效率,也實(shí)現(xiàn)了資源的共享和并行處理,同時(shí)還在芯片運(yùn)算過(guò)程中及時(shí)發(fā)現(xiàn)故障并定位處理。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 空時(shí)編碼盲識(shí)別原理
STBC通過(guò)在時(shí)間與空間進(jìn)行聯(lián)合編碼達(dá)到提高系統(tǒng)傳輸性能的目的,因此在不同時(shí)刻從不同天線(xiàn)發(fā)送的數(shù)據(jù)具有一定的相關(guān)性,而不同空時(shí)編碼之間的相關(guān)度并不同,因此可利用該相關(guān)度來(lái)區(qū)分不同的碼型,從而將空時(shí)編碼的模式識(shí)別出來(lái)。
2.2 空時(shí)編碼盲識(shí)別方法
(1)預(yù)白化。預(yù)白化的目的是去除信道對(duì)接收信號(hào)相關(guān)性的影響。白化矩陣W通過(guò)對(duì)分時(shí)相關(guān)矩陣P做特征值分解得到
,其中A-1為特征值矩陣Λ的廣義逆。W與原數(shù)據(jù)相乘便可得到解相關(guān)矩陣Y。 (2)計(jì)算時(shí)滯相關(guān)度。利用接收信號(hào)預(yù)白化后得到的解相關(guān)矩陣Y,依據(jù)統(tǒng)計(jì)學(xué)公式計(jì)算時(shí)滯相關(guān)范數(shù)
空時(shí)編碼矩陣的理論時(shí)滯相關(guān)特性?xún)H與編碼矩陣本身有關(guān)。因此,應(yīng)用與式(1)相同的形式,可將編碼矩陣不同的列進(jìn)行矩陣乘加運(yùn)算,并取F范數(shù)來(lái)表征。
由此得出計(jì)算空時(shí)編碼的時(shí)滯相關(guān)矩陣R(τ)
其中,空時(shí)編碼矩陣的每一列代表不同的發(fā)射時(shí)刻,A(u)是碼型A編碼矩陣的第u列,l為碼型分組長(zhǎng)度。已預(yù)白化后的接收信號(hào)矩陣與發(fā)送端編碼矩陣,在時(shí)滯相關(guān)函數(shù)F范數(shù)上有如下關(guān)系
(3)判決碼型。遍歷候選碼集,計(jì)算出接收信號(hào)與候選碼集中每一種空時(shí)碼的相關(guān)度,取其中最相關(guān)的碼型便為判決碼型。
2.3 軟件設(shè)計(jì)
軟件系統(tǒng)采用模塊化結(jié)構(gòu)設(shè)計(jì),程序流程如圖5所示。包括系統(tǒng)啟動(dòng)、配置系統(tǒng)寄存器、設(shè)置全局變量和開(kāi)啟中斷控制等。當(dāng)ADC模塊將采樣數(shù)據(jù)全部寫(xiě)入SDRAM后,CPLD通知DSP觸發(fā)DMA中斷1,將SDRAM中的數(shù)據(jù)讀入DSP,讀取結(jié)束后DMA觸發(fā)中斷2,并對(duì)ADC采樣數(shù)據(jù)進(jìn)行處理:(1)預(yù)白化,去除新到對(duì)采樣數(shù)據(jù)相關(guān)性的影響。(2)計(jì)算采樣數(shù)據(jù)與候選集中每種碼字的時(shí)滯相關(guān)度。(3)根據(jù)上述計(jì)算結(jié)果,選取使時(shí)滯相關(guān)度最小的碼型為判決碼型。
通過(guò)對(duì)DMAC寄存器的設(shè)置,可控制DMA的流向、通道和方式,典型的數(shù)據(jù)讀取關(guān)鍵代碼如下:
數(shù)據(jù)處理部分的關(guān)鍵函數(shù)包括白化和時(shí)滯相關(guān)量計(jì)算,數(shù)據(jù)傳遞采用了單維讀入與多維傳遞的方式,即將多天線(xiàn)的數(shù)據(jù)按照天線(xiàn)順序依次讀入,但在DSP內(nèi)部數(shù)據(jù)傳遞時(shí),多根天線(xiàn)的數(shù)據(jù)按照時(shí)間順序傳遞,在函數(shù)內(nèi)部手動(dòng)尋址,即符合算法要求,又加快了數(shù)據(jù)處理的速度。數(shù)據(jù)處理時(shí)包括大量的矩陣轉(zhuǎn)置和乘加操作,在計(jì)算時(shí)優(yōu)化為內(nèi)積計(jì)算模式,使用ALU運(yùn)算塊X和Y,每個(gè)周期并行計(jì)算時(shí)滯矩陣兩列之間的相關(guān)范數(shù),這便節(jié)省了內(nèi)存資源,減少了尋址次數(shù),且加快了計(jì)算速度。
本算法在不同參數(shù)下的Matlab性能仿真如圖6所示,采樣數(shù)據(jù)越長(zhǎng),接收天線(xiàn)數(shù)越多,識(shí)別性能也越好。實(shí)際測(cè)試證明與期望相一致,驗(yàn)證了設(shè)計(jì)的合理性和正確性。
3 結(jié)束語(yǔ)
DSP芯片具有的特殊軟硬件結(jié)構(gòu)和指令系統(tǒng),使其能高速處理各種數(shù)字信號(hào)處理算法?;诖嗽O(shè)計(jì)的空時(shí)編碼盲識(shí)別方法具有速度快、精度高的特點(diǎn)。同時(shí)該系統(tǒng)依靠簡(jiǎn)潔的外部硬件電路設(shè)計(jì)和合理的軟件程序設(shè)計(jì),能夠?qū)崿F(xiàn)對(duì)常用空時(shí)編碼模式的正確識(shí)別。且該系統(tǒng)的可擴(kuò)展性良好,當(dāng)需要識(shí)別最新的空時(shí)編碼時(shí),只需將其放入編碼方式候選集中,為其分配顯示接口即可,而無(wú)需過(guò)多更改硬件設(shè)置及軟件程序。