低軌小衛(wèi)星通信是近年來(lái)衛(wèi)星通信應(yīng)用中一個(gè)方興未艾的重要領(lǐng)域,"創(chuàng)新一號(hào)"小衛(wèi)星是我國(guó)研制的具有完全自主知識(shí)產(chǎn)權(quán)的存儲(chǔ)與轉(zhuǎn)發(fā)通信小衛(wèi)星,cascom手持終端是專(zhuān)門(mén)為這顆小衛(wèi)星研制的低功耗地面手持通信終端,支持調(diào)制數(shù)據(jù)速率達(dá)76.8kbps的BPSK窄帶信道。基于TI公司的低功耗16位定點(diǎn)數(shù)字信號(hào)處理器TMS320VC5510(最高運(yùn)算能力為200MIPS),完全用軟件實(shí)現(xiàn)低中頻數(shù)字接收機(jī),其中包括執(zhí)行載波恢復(fù)功能的軟件鎖相環(huán)SPLL(Soft-ware Phase-Locked Loops)。在用浮點(diǎn)算法實(shí)現(xiàn)軟件鎖相環(huán)時(shí),由于TMS320VC5510是一個(gè)定點(diǎn)DSP處理器;沒(méi)有浮點(diǎn)處理單元,只能用編譯器產(chǎn)生模擬浮點(diǎn)運(yùn)算的指令,運(yùn)算量需要67.2MIPS,效率很低,因此需要一種能在TMS320VC5510上執(zhí)行的定點(diǎn)算法,有效地降低運(yùn)算量。本文提出了一種48位定點(diǎn)擴(kuò)展精度算法實(shí)現(xiàn)SPLL,提高了效率,減少了運(yùn)算量,同時(shí)保證了環(huán)路計(jì)算的精度和動(dòng)態(tài)范圍。
1 軟件鎖相環(huán)
1.1 軟件鎖相環(huán)的結(jié)構(gòu)
圖1表示軟件數(shù)字接收機(jī)中的解調(diào)器。它包括由改進(jìn)的costas環(huán)路構(gòu)成的載波跟蹤環(huán)路。
采樣后的中頻信號(hào)經(jīng)過(guò)數(shù)字混頻,濾掉高頻分量,通過(guò)改進(jìn)的costas環(huán)路產(chǎn)生控制信號(hào),控制數(shù)控振蕩器(NCO)得到新的本振參考信號(hào)。其中的相位檢測(cè)器和環(huán)路濾波器結(jié)構(gòu)如圖2所示。
1.2 軟件鎖相環(huán)的設(shè)計(jì)
由圖2可見(jiàn),SPLL的計(jì)算由計(jì)算相位誤差和更新環(huán)路中間變量、輸出控制信號(hào)兩部分組成。算法描述可用偽碼白表示:
//中斷發(fā)生
{
//讀取基帶數(shù)據(jù)
I_baseband=I(n)
Q_baseband=Q(n)
//計(jì)算相相位誤差d(n)
d(n)=sign(I_baseband)×K_norm**×Q_baseband
//更新環(huán)路中間變量s_pll(n)
s_pll(n)=C2×d(n)+s_pll(n-1)
//輸出控制信號(hào)Δf(n)
Δf(n)=C1×d(n)+s_pll(n)
//設(shè)置NCO載波頻率f(n)
f(n)=Δf(n)+f0***
}//end
注:**K_norm是歸一化因子,由I_baseband和Q_baseband和初始值決定:
***f0是固定的NCO中心頻率
算法描述中的中斷周期就是環(huán)呼采樣時(shí)間間隔。
中斷發(fā)生后,第一步讀取基帶同相項(xiàng)數(shù)據(jù)和正交項(xiàng)數(shù)據(jù)
I_baseband=I(n)=Acosθe (1)
Q_baseband=Q(n_=Asinθe (2)
A是基帶信號(hào)幅度,θe是相位誤差。第二步計(jì)算硬判決的同相數(shù)據(jù)乘以相位誤差。
d(n)=sign(I_baseband)×θe (3)
其中硬判決函數(shù)如式(4),
以及θe≈sinθe. (5)
由式(1)和(2)得:
由式(3)、(5)和(6)得:
即把同相數(shù)據(jù)硬判決后結(jié)果乘以正交項(xiàng)數(shù)據(jù)后再乘以歸一化因子K_norm。K_norm初始值由I_baseband和Q_baseband的初始值決定,
由于定時(shí)恢復(fù)環(huán)路和AGC(自動(dòng)增益控制)環(huán)路的作用,K_norm在解調(diào)過(guò)程中近似保持恒定。第三步更新環(huán)路中間變量s_pll(n),
s_pll(n)=C2×d(n)+s_pll(n) (9)
第五步設(shè)置NCO載波頻率f(n),
f(n)=Δf(n)+f0 (10)
fo是固定的NCO中心頻率。至此,一次完整的SPLL計(jì)算完成。
在第三步和第四步計(jì)算中,環(huán)路濾波器系數(shù)Cl,C2可以通過(guò)環(huán)路采樣時(shí)間間隔T(或者環(huán)路更新時(shí)間間隔)、環(huán)路自由頻率ωn及環(huán)路阻尼系數(shù)ξ確定,如下兩式:
C1=(1/K0Kd)(8ξωnT)(4+4ωnT+(ωnT) 2 (11)
C2=1/K0Kd(4(ωnT)2/(4+4ξωnT+(ωnT )2 (12)
Kd為相位檢測(cè)器的增益,由于在實(shí)現(xiàn)軟件鎖相環(huán)時(shí),基帶信號(hào)的同相和正交分量都經(jīng)過(guò)歸一化處理,故Kd=1;K0為數(shù)控振蕩器的增益,K0=2πT。T為調(diào)制數(shù)據(jù)速率的倒數(shù)(1/76800),ξ一般取0.707。在啟動(dòng)載波恢復(fù)之前有一個(gè)頻率捕獲過(guò)程,通過(guò)1024點(diǎn)的FFT,可保證接收的中頻信號(hào)與本振信號(hào)之間的頻率差△f0最大.
2 48位定點(diǎn)擴(kuò)展精度算法
圖3描述的算法在TMS320VC5510上用C語(yǔ)言直接利用浮點(diǎn)運(yùn)算實(shí)現(xiàn)時(shí),只能通過(guò)C編譯器產(chǎn)生模擬浮點(diǎn)運(yùn)算的定點(diǎn)指令。這種方法效率很低,每次環(huán)路計(jì)算需花費(fèi)875個(gè)指令周期。在調(diào)制數(shù)據(jù)速率為76.8kbps的數(shù)字接收機(jī)中,需要67.2MIPS的運(yùn)算量。為了降低環(huán)路計(jì)算的運(yùn)算量,同時(shí)保持浮點(diǎn)運(yùn)算具有動(dòng)態(tài)范圍大、精度高的優(yōu)點(diǎn),筆者提出了一種48位定點(diǎn)擴(kuò)展精度計(jì)算的方法。參加運(yùn)算的每個(gè)操作數(shù)由三個(gè)16位定點(diǎn)數(shù)W2、W1、W0級(jí)聯(lián)表示,其中高16位為二進(jìn)制補(bǔ)碼的整數(shù)部分,低32位為二進(jìn)制補(bǔ)碼的小數(shù)部分,符號(hào)位在最高位,粵可稱(chēng)為Q15.32格式,如圖3所示。
一個(gè)Q15.32 數(shù)的表示范圍是(-32768,32768),小數(shù)分辨率是1/232(2﹒3283e-10),遠(yuǎn)遠(yuǎn)超過(guò)16位定點(diǎn)表示的精度,即3e-5(1/2^15-1)。以下用加(ADD_ 48)、減(SUB_48)、乘(MULT_48)三種基本運(yùn)算來(lái)說(shuō)明定點(diǎn)擴(kuò)展精度算法。操作數(shù)X由X2、X1、X0構(gòu)成,操作數(shù)Y由Y2、Y1、Y0構(gòu)成,結(jié)果W由W2、W1、W0構(gòu)成。執(zhí)行48位加法運(yùn)算時(shí),W2W1W0=X2X1X0十Y2Y1Y0,首先把小數(shù)部分X1X0和Y1Y0相加,結(jié)果保存到W1W0中,產(chǎn)生的進(jìn)位位CARRY與X2、Y2相加,結(jié)果保存到W2。執(zhí)行48位減法運(yùn)算時(shí),W2W1W0=X2X1X0-Y2Y1Y0,首先X1X0減去Y1Y0,結(jié)果保存到W1W0,產(chǎn)生借位位BORROW,再由X2減去Y2和借位位BORROW,結(jié)果保存到W2。兩個(gè)Q15.32數(shù)相乘時(shí),乘積是一個(gè)Q30.64數(shù),出于前面實(shí)現(xiàn)SPLL時(shí)對(duì)動(dòng)態(tài)范圍和計(jì)算精度的要求,該Q30.64數(shù)可以雙向截位為Q15.32的48位定點(diǎn)數(shù)。具體做法是保留符號(hào)位和整數(shù)部分的低15位以及小數(shù)部分的高32位。48位定點(diǎn)數(shù)的乘法由圖4所示。
除了以上加、減、乘三種基本運(yùn)算外,48位窄點(diǎn)擴(kuò)展精度算法還包括取負(fù)(NEC-48)、數(shù)據(jù)拷貝(MOVE_48)兩種操作。取負(fù)操作即將X1X0取負(fù),結(jié)果保存到W1W0,產(chǎn)生借位位BORROW,再用0減去X2和借位位BORROW,結(jié)果保存到w2;數(shù)據(jù)拷貝,即把X1X0拷貝到W1W0,X2拷貝到W2。
在TMS320VC5510可編程DSP的基礎(chǔ)上,利用48位定點(diǎn)擴(kuò)展精度算法實(shí)現(xiàn)SPLL。在實(shí)現(xiàn)過(guò)程中,采取了模塊化的思路。首先,把SPLL整個(gè)環(huán)路計(jì)算封裝成一個(gè)可調(diào)用的C語(yǔ)言函數(shù)。函數(shù)參數(shù)包括C1、C2、K_norm、基帶信號(hào)的I及Q分量、環(huán)路中間變量、調(diào)整頻率。DSP的中斷例程(ISR)可以直接調(diào)用環(huán)路計(jì)算函數(shù),而且通過(guò)輸入不同的Cl、C2,適用于不同的載波恢復(fù)環(huán)路中。另外,在函數(shù)內(nèi)部用匯編語(yǔ)言進(jìn)行編程,以充分利用DSP的計(jì)算能力,把48位定點(diǎn)擴(kuò)展精度算法的五個(gè)基本操作封裝成用匯編指令寫(xiě)的宏(macro),對(duì)照計(jì)穿流程,調(diào)用這些宏,完成SPLL的核心計(jì)算部分。經(jīng)統(tǒng)計(jì),每次環(huán)路計(jì)算需132個(gè)指令周期,總的運(yùn)算量10.1MIPS,是浮點(diǎn)算法運(yùn)算量(67.2MIPS)的14%。
用48位擴(kuò)展精度算法實(shí)現(xiàn)軟件接收機(jī)中的SPLL,解決了浮點(diǎn)算法運(yùn)算量大的問(wèn)題,同時(shí)還具備浮點(diǎn)算法動(dòng)態(tài)范圍大、精度高的優(yōu)點(diǎn),已經(jīng)成功應(yīng)用于"創(chuàng)新一號(hào)"小衛(wèi)星地面手持低功耗通信終端中。另外,本文提出的SPLL實(shí)現(xiàn)算法,通過(guò)修改環(huán)路濾波器系數(shù),也可以應(yīng)用在其他軟件接收機(jī)中,具有很好的擴(kuò)展性。
評(píng)論
查看更多