??? 摘 要: 軟件鎖相環(huán)" title="軟件鎖相環(huán)">軟件鎖相環(huán)是軟件接收機中執(zhí)行載波恢復(fù)功能的關(guān)鍵部分。提出了一種48位定點擴展精度" title="擴展精度">擴展精度的算法,可以有效地實現(xiàn)軟件鎖相環(huán)。與浮點算法" title="浮點算法">浮點算法比較,能極大地降低DSP的運算量,降低功耗,同時保證動態(tài)范圍" title="動態(tài)范圍">動態(tài)范圍和運算精度。
??? 關(guān)鍵詞: 低軌道衛(wèi)星? 軟件接收機? 軟件鎖相環(huán)? 定點擴展精度算法
?
??? 低軌小衛(wèi)星通信是近年來衛(wèi)星通信應(yīng)用中一個方興未艾的重要領(lǐng)域,“創(chuàng)新一號”小衛(wèi)星是我國研制的具有完全自主知識產(chǎn)權(quán)的存儲與轉(zhuǎn)發(fā)通信小衛(wèi)星,cascom手持終端是專門為這顆小衛(wèi)星研制的低功耗地面手持通信終端,支持調(diào)制數(shù)據(jù)速率達(dá)76.8kbps的BPSK窄帶信道?;赥I公司的低功耗16位定點數(shù)字信號處理器TMS320VC5510(最高運算能力為200MIPS),完全用軟件實現(xiàn)低中頻數(shù)字接收機,其中包括執(zhí)行載波恢復(fù)功能的軟件鎖相環(huán)SPLL(Software Phase-Locked Loops)。在用浮點算法實現(xiàn)軟件鎖相環(huán)時,由于TMS320VC5510是一個定點DSP處理器,沒有浮點處理單元,只能用編譯器產(chǎn)生模擬浮點運算" title="浮點運算">浮點運算的指令,運算量需要67.2MIPS,效率很低,因此需要一種能在TMS320VC5510上執(zhí)行的定點算法,有效地降低運算量。本文提出了一種48位定點擴展精度算法實現(xiàn)SPLL,提高了效率,減少了運算量,同時保證了環(huán)路計算的精度和動態(tài)范圍。?
1 軟件鎖相環(huán)?
1.1 軟件鎖相環(huán)的結(jié)構(gòu)?
??? 圖1表示軟件數(shù)字接收機中的解調(diào)器。它包括一個由改進的costas環(huán)路[1]構(gòu)成的載波跟蹤環(huán)路。?
?
?
??? 采樣后的中頻信號經(jīng)過數(shù)字混頻,濾掉高頻分量,通過改進的costas環(huán)路產(chǎn)生控制信號,控制數(shù)控振蕩器(NCO)得到新的本振參考信號。其中的相位檢測器和環(huán)路濾波器結(jié)構(gòu)如圖2所示。?
?
?
1.2 軟件鎖相環(huán)的設(shè)計?
??? 由圖2可見,SPLL的計算由計算相位誤差和更新環(huán)路中間變量、輸出控制信號兩部分組成。算法描述可用偽碼表示:?
?
??? 算法描述中的中斷周期就是環(huán)路采樣時間間隔。?
??? 中斷發(fā)生后,第一步讀取基帶同相項數(shù)據(jù)和正交項數(shù)據(jù)?
??? A是基帶信號幅度,θe是相位誤差。第二步計算硬判決的同相數(shù)據(jù)乘以相位誤差。?
???
??? 由式(3)、(5)和(6)得:?
??? 即把同相數(shù)據(jù)硬判決后結(jié)果乘以正交項數(shù)據(jù)后再乘以歸一化因子K_norm。K_norm初始值由I_baseband和Q_baseband的初始值決定,?
???
??? 由于定時恢復(fù)環(huán)路和AGC(自動增益控制)環(huán)路的作用,K_norm在解調(diào)過程中近似保持恒定。第三步更新環(huán)路中間變量s_pll(n),?
???
??? f0是固定的NCO中心頻率。至此,一次完整的SPLL計算完成。?
??? 在第三步和第四步計算中,環(huán)路濾波器系數(shù)C1,C2可以通過環(huán)路采樣時間間隔T(或者環(huán)路更新時間間隔)、環(huán)路自由頻率ωn及環(huán)路阻尼系數(shù)ζ確定,如下兩式[2]:?
???
??? Kd為相位檢測器的增益,由于在實現(xiàn)軟件鎖相環(huán)時,基帶信號的同相和正交分量都經(jīng)過歸一化處理,故Kd=1;K0為數(shù)控振蕩器的增益,K0=2πT。T為調(diào)制數(shù)據(jù)速率的倒數(shù)(1/76800),ζ一般取0.707。在啟動載波恢復(fù)之前有一個頻率捕獲過程,通過1024點的FFT,可保證接收的中頻信號與本振信號之間的頻率差Δf0最大不超過75Hz。另外系統(tǒng)設(shè)計要求SPLL的捕獲時間(pull in time)小于50ms,由此可以確定環(huán)路自由頻率ωn。ωn>150(rad·Hz),取ωn=300(rad·Hz)。將K0、Kd、ζ、ωn、T代入式(3)、(4)得,C1=67.3273309,C2=0.1859953。?
2 48位定點擴展精度算法?
??? 圖3描述的算法在TMS320VC5510上用C語言直接利用浮點運算實現(xiàn)時,只能通過C編譯器產(chǎn)生模擬浮點運算的定點指令。這種方法效率很低,每次環(huán)路計算需耗費875個指令周期。在調(diào)制數(shù)據(jù)速率為76.8kbps的數(shù)字接收機中,需要67.2MIPS的運算量。為了降低環(huán)路計算的運算量,同時保持浮點運算具有動態(tài)范圍大、精度高的優(yōu)點,筆者提出了一種48位定點擴展精度計算的方法。參加運算的每個操作數(shù)由三個16位定點數(shù)W2、W1、W0級聯(lián)表示,其中高16位為二進制補碼的整數(shù)部分,低32位為二進制補碼的小數(shù)部分,符號位在最高位,也可稱為Q15.32格式,如圖3所示。?
?
?
??? 一個Q15.32數(shù)的表示范圍是(-32768,32768),小數(shù)分辨率是遠(yuǎn)遠(yuǎn)超過16位定點表示的精度,以下用加(ADD_48)、減(SUB_48)、乘(MULT_48)三種基本運算來說明定點擴展精度算法。操作數(shù)X由X2、X1、X0構(gòu)成,操作數(shù)Y由Y2、Y1、Y0構(gòu)成,結(jié)果W由W2、W1、W0構(gòu)成。執(zhí)行48位加法運算時,W2W1W0=X2X1X0+Y2Y1Y0,首先把小數(shù)部分X1X0和Y1Y0相加,結(jié)果保存到W1W0中,產(chǎn)生的進位位CARRY與X2、Y2相加,結(jié)果保存到W2。執(zhí)行48位減法運算時,W2W1W0=X2X1X0-Y2Y1Y0,首先X1X0減去Y1Y0,結(jié)果保存到W1W0,產(chǎn)生借位位BORROW,再由X2減去Y2和借位位BORROW,結(jié)果保存到W2。兩個Q15.32數(shù)相乘時,乘積是一個Q30.64數(shù),出于前面實現(xiàn)SPLL時對動態(tài)范圍和計算精度的要求,該Q30.64數(shù)可以雙向截位為Q15.32的48位定點數(shù)。具體做法是保留符號位和整數(shù)部分的低15位以及小數(shù)部分的高32位。48位定點數(shù)的乘法由圖4所示。?
?
?
??? 除了以上加、減、乘三種基本運算外,48位定點擴展精度算法還包括取負(fù)(NEG_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位定點擴展精度算法實現(xiàn)SPLL。在實現(xiàn)過程中,采取了模塊化的思路。首先,把SPLL整個環(huán)路計算封裝成一個可調(diào)用的C語言函數(shù)。函數(shù)參數(shù)包括C1、C2、K_norm、基帶信號的I及Q分量、環(huán)路中間變量、調(diào)整頻率。DSP的中斷例程(ISR)可以直接調(diào)用環(huán)路計算函數(shù),而且通過輸入不同的C1、C2,適用于不同的載波恢復(fù)環(huán)路中。另外,在函數(shù)內(nèi)部用匯編語言進行編程,以充分利用DSP的計算能力,把48位定點擴展精度算法的五個基本操作封裝成用匯編指令寫的宏(macro),對照計算流程,調(diào)用這些宏,完成SPLL的核心計算部分。經(jīng)統(tǒng)計,每次環(huán)路計算需132個指令周期,總的運算量10.1MIPS,是浮點算法運算量(67.2MIPS)的14%。?
??? 用48位擴展精度算法實現(xiàn)軟件接收機中的SPLL,解決了浮點算法運算量大的問題,同時還具備浮點算法動態(tài)范圍大、精度高的優(yōu)點,已經(jīng)成功應(yīng)用于“創(chuàng)新一號”小衛(wèi)星地面手持低功耗通信終端中。另外,本文提出的SPLL實現(xiàn)算法,通過修改環(huán)路濾波器系數(shù),也可以應(yīng)用在其他軟件接收機中,具有很好的擴展性。?
參考文獻(xiàn)?
1 J.K. Holmes. Coherent Spread Spectrum Systems. New York:?Wiley,1982?
2 Bong-Young Chung, Charles Chien, Henry Samueli, Rajeev?Jain. Performance Analysis of an All-Digital BPSK DirectSequence Spread-Spectrum IF Receiver Architecture.IEEE?Journal on Selected Areas in Communication, September 1993:?(7):1099?
3 Best,Roland E. Phase-locked loops: theory,design and applications(2nd edition.).McGraw-Hill,1993?
4 TMS320C55x DSP CPU Programmer's Reference Supplement?(Rev.A).http://www-s.ti.com/sc/psheets/spru652/spru652.pdf?
5 TMS320C55x Optimizing C/C++ Compiler User's Guide?(Rev.E).http://www-s.ti.com/sc/psheets/spru281e/spru281e.pdf.?
6 TMS320C55x DSP Algebraic Instruction Set Reference Guide?(Rev. G).http://www-s.ti.com/sc/psheets/spru375g/spru375g.pdf