基於定點DSP的軟體鎖相環的設計和實現

2021-04-20 03:22:05 字數 2983 閱讀 3379

[日期:2008-9-11]

[字型:大

中 小]

低軌小衛星通訊是近年來衛星通訊應用中乙個方興未艾的重要領域,「創新一號」小衛星是我國研製的具有完全自主智財權的儲存與**通訊小衛星,cascom手持終端是專門為這顆小衛星研製的低功耗地面手持通訊終端,支援調製資料速率達76.8kbps的bpsk窄帶通道。基於ti公司的低功耗16位定點數字訊號處理器tms320vc5510(最高運算能力為200mips),完全用軟體實現低中頻數字接收機,其中包括執行載波恢復功能的軟體鎖相環spll(software phase-locked loops)。在用浮點演算法實現軟體鎖相環時,由於tms320vc5510是乙個定點dsp處理器,沒有浮點處理單元,只能用編譯器產生模擬浮點運算的指令,運算量需要67.2mips,效率很低,因此需要一種能在tms320vc5510上執行的定點演算法,有效地降低運算量。本文提出了一種48位定點擴充套件精度演算法實現spll,提高了效率,減少了運算量,同時保證了環路計算的精度和動態範圍。 

1 軟體鎖相環

1.1 軟體鎖相環的結構

圖1表示軟體數字接收機中的解調器。它包括乙個由改進的costas環路[1]構成的載波跟蹤環路。 

取樣後的中頻訊號經過數字混頻,濾掉高頻分量,通過改進的costas環路產生控制訊號,控制數控振盪器(nco)得到新的本振參考訊號。其中的相位檢測器和環路濾波器結構如圖2所示。 

1.2 軟體鎖相環的設計

由圖2可見,spll的計算由計算相位誤差和更新環路中間變數、輸出控制訊號兩部分組成。演算法描述可用偽碼表示: 

演算法描述中的中斷週期就是環路取樣時間間隔。 

中斷發生後,第一步讀取基帶同相項資料和正交項資料 

a是基帶訊號幅度,θe是相位誤差。第二步計算硬判決的同相資料乘以相位誤差。 

由式(3)、(5)和(6)得: 

即把同相資料硬判決後結果乘以正交項資料後再乘以歸一化因子k_norm。k_norm初始值由i_baseband和q_baseband的初始值決定, 

由於定時恢復環路和agc(自動增益控制)環路的作用,k_norm在解調過程中近似保持恆定。第三步更新環路中間變數s_pll(n), 

f0是固定的nco中心頻率。至此,一次完整的spll計算完成。 

在第三步和第四步計算中,環路濾波器係數c1,c2可以通過環路取樣時間間隔t(或者環路更新時間間隔)、環路自由頻率ωn及環路阻尼係數ζ確定,如下兩式[2]: 

kd為相位檢測器的增益,由於在實現軟體鎖相環時,基帶訊號的同相和正交分量都經過歸一化處理,故kd=1;k0為數控振盪器的增益,k0=2πt。t為調製資料速率的倒數(1/76800),ζ一般取0.707。在啟動載波恢復之前有乙個頻率捕獲過程,通過1024點的fft,可保證接收的中頻訊號與本振訊號之間的頻率差δf0最大不超過75hz。另外系統設計要求spll的捕獲時間(pull in time)小於50ms,由此可以確定環路自由頻率ω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語言直接利用浮點運算實現時,只能通過c編譯器產生模擬浮點運算的定點指令。這種方法效率很低,每次環路計算需耗費875個指令週期。在調製資料速率為76.8kbps的數字接收機中,需要67.2mips的運算量。為了降低環路計算的運算量,同時保持浮點運算具有動態範圍大、精度高的優點,筆者提出了一種48位定點擴充套件精度計算的方法。參加運算的每個運算元由三個16位定點數w2、w1、w0級聯表示,其中高16位為二進位制補碼的整數部分,低32位為二進位制補碼的小數部分,符號位在最高位,也可稱為q15.32格式,如圖3所示。 

乙個q15.32數的表示範圍是(-32768,32768),小數解析度是遠遠超過16位定點表示的精度,以下用加(add_48)、減(sub_48)、乘(mult_48)三種基本運算來說明定點擴充套件精度演算法。運算元x由x2、x1、x0構成,運算元y由y2、y1、y0構成,結果w由w2、w1、w0構成。執行48位加法運算時,w2w1w0=x2x1x0+y2y1y0,首先把小數部分x1x0和y1y0相加,結果儲存到w1w0中,產生的進製位carry與x2、y2相加,結果儲存到w2。執行48位減法運算時,w2w1w0=x2x1x0-y2y1y0,首先x1x0減去y1y0,結果儲存到w1w0,產生借位位borrow,再由x2減去y2和借位位borrow,結果儲存到w2。兩個q15.32數相乘時,乘積是乙個q30.64數,出於前面實現spll時對動態範圍和計算精度的要求,該q30.64數可以雙向截位為q15.32的48位定點數。具體做法是保留符號位和整數部分的低15位以及小數部分的高32位。48位定點數的乘法由圖4所示。 

除了以上加、減、乘三種基本運算外,48位定點擴充套件精度演算法還包括取負(neg_48)、資料拷貝(move_48)兩種操作。取負操作即將x1x0取負,結果儲存到w1w0,產生借位位borrow,再用0減去x2和借位位borrow,結果儲存到w2;資料拷貝,即把x1x0拷貝到w1w0,x2拷貝到w2。 

在tms320vc5510可程式設計dsp的基礎上,利用48位定點擴充套件精度演算法實現spll。在實現過程中,採取了模組化的思路。首先,把spll整個環路計算封裝成乙個可呼叫的c語言函式。函式引數包括c1、c2、k_norm、基帶訊號的i及q分量、環路中間變數、調整頻率。dsp的中斷例程(isr)可以直接呼叫環路計算函式,而且通過輸入不同的c1、c2,適用於不同的載波恢復環路中。另外,在函式內部用組合語言進行程式設計,以充分利用dsp的計算能力,把48位定點擴充套件精度演算法的五個基本操作封裝成用彙編指令寫的巨集(macro),對照計算流程,呼叫這些巨集,完成spll的核心計算部分。經統計,每次環路計算需132個指令週期,總的運算量10.1mips,是浮點演算法運算量(67.2mips)的14%。 

用48位擴充套件精度演算法實現軟體接收機中的spll,解決了浮點演算法運算量大的問題,同時還具備浮點演算法動態範圍大、精度高的優點,已經成功應用於「創新一號」小衛星地面手持低功耗通訊終端中。另外,本文提出的spll實現演算法,通過修改環路濾波器係數,也可以應用在其他軟體接收機中,具有很好的擴充套件性。 

鎖相環的原理 ZT

1 鎖相環的基本組成 許多電子裝置要正常工作,通常需要外部的輸入訊號與內部的振盪訊號同步,利用鎖相環路就可以實現這個目的。因鎖相環可以實現輸出訊號頻率對輸入訊號頻率的自動跟蹤,所以鎖相環通常用於閉環跟蹤電路。鎖相環在工作的過程中,當輸出訊號的頻率與輸入訊號的頻率相等時,輸出電壓與輸入電壓保持固定的相...

DSP2812的軟體鎖相方法

1.鎖相 鎖相的意義是相位同步的自動控制,能夠完成兩個電訊號相位同步的自動控制閉環系統叫做鎖相環,簡稱pll.3種軟體鎖相的方法 指標歸零法,先調頻後調相法,調頻調相同時進行法。2.指標歸零法 指標歸零法是最簡單的軟體鎖相方法,在捕獲輸入電壓訊號過零點的cap1 中斷內,直接將發正弦點的指標歸零,以...

對PLL鎖相環的一些理解

在通訊機等所使用的振盪電路,其所要求的頻率範圍要廣,且頻率的穩定度要高。無論多好的lc振盪電路,其頻率的穩定度,都無法與晶體振盪電路比較。但是,晶體振盪器除了可以使用數位電路分頻以外,其頻率幾乎無法改變。如果採用pll 鎖相環 相位鎖栓迴路,phaselockedloop 技術,除了可以得到較廣的振...