摘要:擴頻通信技術(shù)中信號的捕獲是擴頻體制的關(guān)鍵。從快速捕獲的角度出發(fā),對傳統(tǒng)捕獲方法和基于FFT的快速捕獲方法的原理進行了對比,并對不同捕獲方法的計算量進行了分析和比較。獲得基于FFT的循環(huán)相關(guān)捕獲方法其計算量比傳統(tǒng)方法少了3個數(shù)量級以上的結(jié)果。得到該方法在硬件實現(xiàn)中與傳統(tǒng)滑動相關(guān)法相比大大節(jié)省了資源,減少了耗時的結(jié)論。
關(guān)鍵詞:擴頻;快逮捕獲;FFT;計算量
0 引言
直接序列擴頻通信技術(shù),具有抗干擾、保密性強、可實現(xiàn)碼分多址通信和高精度測量的優(yōu)點,其中信號的快速捕獲是擴頻體制的關(guān)鍵。最常用的碼捕獲方法是滑動相關(guān)法,但該方法捕獲時間過長,因此考慮采用計算速度較快的基于FFT的循環(huán)相關(guān)捕獲方法。本文將對這兩種方法的計算量進行比較。
1 擴頻信號的捕獲方法
在擴頻通信中,傳統(tǒng)的偽碼捕獲是通過相關(guān)運算和能量檢測來完成的,成功實現(xiàn)偽碼捕獲的一個必要前提是獲得輸入擴頻信號載波的準(zhǔn)確值,因此整個捕獲過程是一個載波頻率、偽碼相位的二維捕獲過程。捕獲又稱初始同步或粗同步,其任務(wù)是完成對偽隨機序列的粗同步,對偽隨機序列的相位同步精度一般小于一個或1/2個偽碼碼片時長。
在高動態(tài)條件下,發(fā)射裝置與接收裝置的相對運動造成接收端不同程度的多普勒頻率偏移,這會對偽隨機碼擴頻信號捕獲造成一定的影響,因此在捕獲的過程中要將多普勒頻移考慮進去。最大的多普勒頻移大約在±5 kHz的范圍內(nèi)??紤]發(fā)射端和接收端均為高速運動,多普勒頻移的最大值在±10 kHz比較合理,以便覆蓋高速飛行器產(chǎn)生的多普勒頻移。
1.1 滑動相關(guān)法
常用的碼捕獲方法包括發(fā)射參考信號法、前置同步碼法、匹配濾波器法和滑動相關(guān)法。其中最常用的是滑動相關(guān)法。
設(shè)通信開始時系統(tǒng)處于失步狀態(tài),積分清洗檢測器的輸出只有噪聲并低于捕獲門限,捕獲判決器的輸出控制本地偽碼產(chǎn)生器使之處于搜索狀態(tài),每隔一個積分周期,對PN碼相位進行調(diào)整(提前或退后一個相位)。捕獲判決器每隔一個積分周期對捕獲情況進行一次判決,決定是否需要繼續(xù)調(diào)整本地偽碼的相位。當(dāng)捕獲判決器有信號輸出并超過預(yù)定門限時,即認(rèn)為它開始捕獲到信號。但為了防止噪聲或干擾引起偶然的假捕獲,通常要連續(xù)觀察幾次,等到捕獲判決器的輸出信號超過門限的次數(shù)累計到規(guī)定值后,才認(rèn)為滑動相關(guān)捕獲檢測器確實捕獲到了信號。流程如圖1所示。
在各種擴頻系統(tǒng)中,因為滑動相關(guān)法實現(xiàn)簡單,而且不需要任何先驗信息,使用的最為廣泛。對碼長較短的偽隨機碼序列,該方法是較好的捕獲方案。但滑動相關(guān)法存在一個突出的缺點:當(dāng)兩個偽碼之間的相位差很大,而且偽碼長度又很長時,要逐位檢查(滑動)以達到捕獲的時間可能很長。
取偽碼長度N=1 023,信息碼速率為1.2 Kb/s,M=5,則可得最長捕獲時間為:
如果在捕獲的過程中考慮信號載波的同步問題,那么最大捕獲時間還會成倍增加。顯然,捕獲時間過長是實際系統(tǒng)所不能接受的。因此,必須設(shè)法減小捕獲時間。
1.2 基于FFT的循環(huán)相關(guān)捕獲方法
將FFT(快速傅里葉變換)應(yīng)用于擴頻信號的捕獲源于20世紀(jì)90年代,它在當(dāng)時是為導(dǎo)航系統(tǒng)而引進的一種新的擴頻碼捕獲技術(shù)。這種技術(shù)使用FFT來計算相關(guān)函數(shù),因而消除了碼相位滑動過程所需的時間?;贔FT的捕獲方法的優(yōu)勢在于FFT計算的快速性。
1.2.1 基本原理
循環(huán)相關(guān)捕獲的示意圖如圖2所示,它是在時域中表示的,且只給出21個本地碼的其中一個。如果用5 MHz對輸入信號采樣,輸入電文長1 ms,含有5 000個數(shù)據(jù)點。可以認(rèn)為輸入電文與本地電文位于兩個圓柱體表面,為了去匹配輸入電文,本地碼要旋轉(zhuǎn)5 000次。換句話說,一個圓柱體相對于另一個圓柱體旋轉(zhuǎn)5 000次。
在每一步,5 000個輸入電文與5 000個本地電文點對點相乘,相乘結(jié)果加到一起。包含本地碼與輸入碼所有可能的乘積需要5 000步,乘積中最高幅值被記錄下,若大于門限值,就是我們的期望值。
從基本原理上講,這種方法與滑動相關(guān)法是等同的,都是通過滑動碼片來尋找最大值。不同的是,循環(huán)相關(guān)法每一次滑動后不用逐一相乘后相加,而是將時域信號進行快速傅里葉變換(FFT)轉(zhuǎn)換成頻域信號,在頻域中求循環(huán)相關(guān)運算,直接求出了5 000次滑動中每一次滑動的相關(guān)值。在硬件實現(xiàn)中,可以利用自帶的IP核直接進行FFT運算,這大大節(jié)約了資源。FFT的運算量分析在后文中將進行介紹。
1.2.2 具體步驟
采用如上所述的基于FFT的循環(huán)相關(guān)捕獲方法,假定捕獲的頻率搜索范圍是±10 kHz,步進1 kHz,總共有21個頻率分量。本地碼lsi可表示為:
式中:下標(biāo)s代表衛(wèi)星編號,下標(biāo)i=1,2,…,21,Cs是衛(wèi)星s的C/A碼,fi=fc,-10,-9,…,9,10 kHz。這21組數(shù)據(jù)代表了間隔1 kHz的21個頻率。將他們與輸入信號進行相關(guān)運算,如果本地產(chǎn)生信號的C/A碼和頻率都正確的話,當(dāng)C/A碼相位對準(zhǔn)時,輸出達到峰值。
對輸入數(shù)據(jù)進行捕獲操作的具體步驟如下:
(1)對1 ms的輸人數(shù)據(jù)x(n)進行FFT變換,將輸入數(shù)據(jù)變換到頻域X(k),n=k=0~4 999;
(2)取X(k)的復(fù)共軛,值為X*(k);
(3)用式(2)生成21個本地碼lsi(n),i=1,2,…,21。每個lsi(n)都有5 000個數(shù)據(jù)點。
(4)對lsi(n)取FFT,轉(zhuǎn)換為頻域中的Lsi(k)。
(5)將Lsi(k)與X*(k)逐點相乘,結(jié)果為Rsi(k)。
(6)求Rsi(k)的FFT逆變換,變換到時域rsi(n),求絕對值|rsi(n)|,總共有105 000(5 000×21)個|rsi(n)|。
(7)在輸入電文200 ns的時間分辨率和載波頻率為1 kHz分辨率的條件下,|rsi(n)|最大值中的第n位和第i個載波頻率給出了C/A碼的初始點。
圖3給出了基于FFT的捕獲流程示意圖。
2 不同捕獲方法的計算量比較
從理論上講,滑動相關(guān)法與基于FFT的循環(huán)相關(guān)捕獲法都是利用數(shù)據(jù)點進行相關(guān)計算并比較求得最大值。其不同之處在于計算量的差距上,采用基于FFT的循環(huán)相關(guān)法計算量大大的減少,下面對其進行分析。
2.1 傳統(tǒng)滑動相關(guān)法
使用傳統(tǒng)滑動相關(guān)法進行捕獲,考慮21個多普勒頻率分量,由于它們進行相同的操作,只對這21組數(shù)據(jù)的某一組進行討論。
輸入數(shù)據(jù)和C/A碼各含有5 000個數(shù)據(jù)點,根據(jù)滑動相關(guān)法的原理,要將C/A碼滑動5 000次,每滑動一次碼片都要將C/A碼與數(shù)據(jù)進行5 000點的復(fù)乘,這樣,在每個頻率分量上要進行5 000×5 000次乘法運算,則21個頻率分量共進行:
S=5 000×5 000×21=5.25×108 (3)
次運算。由此可見,這種方法在硬件實現(xiàn)中非常浪費資源。
2.2 基于FFT的循環(huán)相關(guān)法
2.2.1 FFT算法計算量簡介
采用快速FFT/IFFT運算,可以顯著降低運算的復(fù)雜度,在這里簡單介紹一下如何計算IFFT的運算量。FFT的運算量與此相同,不做贅述。
對于常用的基2IFFT算法來說,其復(fù)數(shù)乘法的次數(shù)僅為(N/2)log N。隨著N的增加,算法復(fù)雜度之間的差距越明顯,IDFT的計算復(fù)雜度會隨著N的增加而呈現(xiàn)二次方增長,IFFT的計算復(fù)雜度的增加速度只是稍微快于線形變化。
對于計算點數(shù)比較多的系統(tǒng),可以采用基4FFT算法。在4點的IFFT運算中,只存在與{1,-1,j,-j)的相乘運算,因此不需要采用完整的乘法器來實施這種乘法,只需要通過簡單地加、減以及交換實部和虛部的運算(當(dāng)與-j,j相乘時)來實現(xiàn)這種乘法。在基4算法中,IFFT變換可以被分為多個4點的IFFT變換,這樣就只需要在兩個級別之間執(zhí)行完整的乘法操作。因此,N點的基4IFFT算法中只需要執(zhí)行(3/8)·N·(log N-2)次復(fù)數(shù)乘法或相位旋轉(zhuǎn),以及N·log N次復(fù)數(shù)加法。
圖4說明了4點的IFFT運算,稱做基4蝶型運算。4個輸入x0,x1,x2,x3經(jīng)過簡單的相加和相位旋轉(zhuǎn),生成4個輸出y0,y1,y2,y3,例如y1=x0+jx1-x2-jx3。
基4蝶型算法可以用于高效的計算大規(guī)模的IFFT。圖5說明了利用基4蝶型算法實施16點的IFFT,其中包括2級運算,每級內(nèi)包含4個基4蝶型運算,在兩級之間存在中間過渡級別,用于對16個中間過渡結(jié)果實施相位旋轉(zhuǎn)ωi,其中ωi=exp(j2πi/N)。在N=16的情況下,當(dāng)i=0,2,4,8,12時,與ωi相乘就可以簡化為與{1,-1,j,-j)相乘。
2.2.2 計算量分析
根據(jù)1.2.2節(jié)中介紹的循環(huán)相關(guān)捕獲的具體步驟以及FFT算法的計算量,對基于FFT的循環(huán)相關(guān)捕獲法計算量分析如下。
首先,根據(jù)式(2)將21個頻率分量下的C/A碼與射頻相乘,需要運算次數(shù)為:
S1=21·N (4)
另外,N點基4FFT的運算量為(3/8)·N·(log N-2),考慮21個多普勒頻率分量以及FFT和IFFT雙向變換,計算量為:
S2=2·21·(3/8)·N·(log N-2) (5)
因此,總的計算量為:
S=S1+S2=21·N·[(3/4)(log N-2)+1] (6)
這里數(shù)據(jù)點數(shù)N=5 000,則總計算量為915 180次,與滑動相關(guān)法相比,少了3個數(shù)量級。
3 結(jié)語
本文從擴頻信號捕獲的角度出發(fā),描述了傳統(tǒng)捕獲方法和基于FFT的快速捕獲方法的原理和步驟,并對不同捕獲方法的計算量進行了分析和比較。在文中可以看到,基于FFT的循環(huán)相關(guān)捕獲法其計算量比傳統(tǒng)方法少了3個數(shù)量級以上,該方法在硬件實現(xiàn)中,與傳統(tǒng)滑動相關(guān)法相比大大節(jié)省了資源,減少了耗時,是一種比較好的捕獲方法。