劉譽(yù)楷,劉榮科,2*,陳祺治
(1.北京航空航天大學(xué) 電子信息工程學(xué)院,北京 100191;2.深圳北航新興產(chǎn)業(yè)技術(shù)研究院,廣東 深圳 518063)
衛(wèi)星互聯(lián)網(wǎng)技術(shù)可以利用衛(wèi)星信道連接全球范圍內(nèi)的用戶,在現(xiàn)代通信系統(tǒng)中發(fā)揮了至關(guān)重要的作用。它不僅能夠提供高速穩(wěn)定的接入服務(wù),且不受地理和地形的限制,可以滿足各種應(yīng)用需求,在電信、航天等各個(gè)領(lǐng)域都有著廣泛的應(yīng)用前景[1-3]。
在衛(wèi)星通信系統(tǒng)中,信號調(diào)制與解調(diào)是實(shí)現(xiàn)高速數(shù)據(jù)傳輸?shù)年P(guān)鍵技術(shù)之一[4]。連續(xù)相位調(diào)制(Continuous Phase Modulation,CPM)技術(shù)通過控制信號的相位變化來調(diào)制信號,相較于其他的數(shù)字調(diào)制技術(shù),CPM可以在較低誤碼率下提供更高的頻譜效率[5]。此外CPM具有恒包絡(luò)的特點(diǎn),可以有效降低高功率放大器非線性效應(yīng)的影響[6],適合應(yīng)用于衛(wèi)星等功放受限的場景。
多指數(shù)連續(xù)相位調(diào)制(Multi-h Continuous Phase Modulation,Multi-h CPM)是CPM的一種擴(kuò)展形式。Multi-h CPM通過采用不同的調(diào)制指數(shù),改變調(diào)制信號的相位偏移量。與傳統(tǒng)的CPM技術(shù)相比,Multi-h CPM可以通過選擇不同的調(diào)制指數(shù)來適應(yīng)不同的信道環(huán)境,提高數(shù)據(jù)的傳輸效率,改善系統(tǒng)的容錯(cuò)性能[7]。
目前Multi-h CPM接收機(jī)中最常采用的算法是最大似然序列檢測(Maximum Likelihood Sequence Detection,MLSD)算法[8]。但是由于Multi-h CPM相比于CPM信號,其解調(diào)的復(fù)雜度較高,還需要采用一些簡化算法來降低算法的復(fù)雜度。降低Multi-h CPM的解調(diào)復(fù)雜度有兩個(gè)主要方向:降低匹配濾波器數(shù)量和減少網(wǎng)格狀態(tài)數(shù)。降低匹配濾波器數(shù)量的簡化算法主要包括脈沖幅度調(diào)制(Pulse Amplitude Modulation,PAM)分解[9-10]、Walsh分解[11]、奇異值分解(Singular Value Decomposition,SVD)[12]、狀態(tài)空間分類(State Space Partitioning,SSP)算法[13]和虛擬指數(shù)集解調(diào)算法[14]等。降低網(wǎng)格狀態(tài)數(shù)的簡化算法主要包括傾斜相位(Tilted Phase,TP)算法[15]、頻率脈沖截?cái)?Frequency Pulse Truncation,FPT)算法[16]和減狀態(tài)序列檢測(Reduced State Sequence Detection,RSSD)算法[17]等。以上算法中,除了TP算法之外,其他算法都會降低接收機(jī)的解調(diào)性能。在實(shí)際的系統(tǒng)設(shè)計(jì)時(shí),通常將幾種降低復(fù)雜度的算法聯(lián)合應(yīng)用,通過犧牲部分解調(diào)性能的方式,顯著降低接收機(jī)系統(tǒng)的實(shí)現(xiàn)復(fù)雜度。
為了實(shí)現(xiàn)高效的Multi-h CPM解調(diào),保證接收機(jī)的高速數(shù)據(jù)處理能力,除了降低解調(diào)算法的計(jì)算復(fù)雜度之外,還需要在硬件架構(gòu)設(shè)計(jì)時(shí),通過高度并行化的數(shù)據(jù)處理方案,提高系統(tǒng)的吞吐率。
現(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)作為一種可編程的邏輯器件,具有可重構(gòu)性強(qiáng)、高并發(fā)性能、高速運(yùn)算能力、低功耗和靈活性等優(yōu)點(diǎn),可以支持多個(gè)邏輯電路并行計(jì)算,進(jìn)行復(fù)雜的邏輯電路設(shè)計(jì)與實(shí)現(xiàn),在信號處理和通信領(lǐng)域得到了廣泛應(yīng)用[18]。
因此本文設(shè)計(jì)并實(shí)現(xiàn)了基于FPGA平臺下的Multi-h CPM解調(diào)系統(tǒng),完成了Multi-h CPM的軟輸出維特比算法(Soft Output Viterbi Algorithm,SOVA)[19-20]、時(shí)頻同步等功能,并且采用了TP算法和FPT算法,大幅度降低了系統(tǒng)的解調(diào)復(fù)雜度。通過仿真和實(shí)驗(yàn)驗(yàn)證,本文的Multi-h CPM接收機(jī)具有良好的系統(tǒng)性能,可有效滿足實(shí)際應(yīng)用需求。
Multi-h CPM的復(fù)基帶信號可以表示為:
(1)
式中:ES為信號能量,T為碼元周期,φ(t;a)為信號相位,其可以進(jìn)一步表示為:
(2)
式中:ai∈{±1,±3,…,±(M-1)}為傳輸?shù)腗進(jìn)制符號序列,hi∈{h1,h2,…,hn}為調(diào)制指數(shù)集,q(t)為相位脈沖響應(yīng),可以表示為頻率脈沖響應(yīng)g(t)的積分,即:
(3)
目前Multi-h CPM調(diào)制中最常用的脈沖函數(shù)為升余弦脈沖,其表達(dá)式為:
(4)
式中:L為關(guān)聯(lián)長度。當(dāng)L=1時(shí),生成的Multi-h CPM信號為全響應(yīng)信號;當(dāng)L>1時(shí),生成的信號為部分響應(yīng)信號。
Multi-h CPM信號在確定了調(diào)制參數(shù)的情況下,信號相位φ(t;a)僅與累加相位和關(guān)聯(lián)長度內(nèi)的傳輸符號有關(guān),因此式(2)可以改寫為:
(5)
式中:φn為累加相位,φ(t;a)為相關(guān)相位。
考慮到調(diào)制指數(shù)hi為有理數(shù),因此Multi-h CPM信號的累加相位狀態(tài)是有限的。令hi=m/k,其中m和k是互斥的兩個(gè)質(zhì)數(shù),則累加相位的所有狀態(tài)集合為:
(6)
綜合考慮累加相位和相關(guān)相位的影響,Multi-h CPM信號的相位可以由下述狀態(tài)序列決定:
sn={an-L+1,an-L+2,…,an-1,φn-L}。
(7)
相位狀態(tài)轉(zhuǎn)移的表達(dá)式為:
(8)
假設(shè)Multi-h CPM的調(diào)制進(jìn)制數(shù)M=2,關(guān)聯(lián)長度L=1,調(diào)制指數(shù)h={1/4,1/2},其相位狀態(tài)轉(zhuǎn)移如圖1所示。從狀態(tài)轉(zhuǎn)移圖中可以看到,Multi-h CPM的信號相位具有周期性的網(wǎng)格結(jié)構(gòu),根據(jù)網(wǎng)格圖的轉(zhuǎn)移關(guān)系可以清楚地描述當(dāng)前的信號狀態(tài)和下一碼元對輸出信號的影響。
圖1 Multi-h CPM相位狀態(tài)轉(zhuǎn)移圖Fig.1 Phase state transition in Multi-h CPM system
在Multi-h CPM中,進(jìn)制數(shù)M將會影響到狀態(tài)轉(zhuǎn)移的復(fù)雜程度。當(dāng)M=2時(shí),每個(gè)狀態(tài)有兩條轉(zhuǎn)移路徑,而當(dāng)M=4時(shí),每個(gè)狀態(tài)有4條轉(zhuǎn)移路徑。而進(jìn)制數(shù)M、關(guān)聯(lián)長度L和調(diào)制指數(shù)h共同決定了網(wǎng)格狀態(tài)數(shù),隨著Multi-h CPM調(diào)制進(jìn)制數(shù)的提升和關(guān)聯(lián)長度的提升,都會導(dǎo)致整個(gè)系統(tǒng)的狀態(tài)數(shù)呈指數(shù)增長,進(jìn)而導(dǎo)致解調(diào)的復(fù)雜度上升。
假設(shè)信道為加性高斯白噪聲信道(Additive white Gaussian Noise,AWGN),接收信號r(t)可以表示為:
r(t)=s(t;a)+n0(t),
(9)
式中:n0(t)為零均值高斯白噪聲。
根據(jù)MLSD準(zhǔn)則,接收機(jī)在所有可能的結(jié)果中搜索距離接收信號的歐氏距離最近的一組序列值作為檢測結(jié)果,該檢測器可以表示為:
(10)
MLSD的目標(biāo)是通過求解似然函數(shù)來在所有可能序列中尋找使式(10)最小的序列??紤]到Multi-h CPM信號的恒包絡(luò)特點(diǎn),計(jì)算式(10)的最小值可以等價(jià)為計(jì)算式(11)的最大值。
(11)
由于Multi-h CPM信號具有相位網(wǎng)格特性,可以使用Viterbi算法完成信號解調(diào)工作。Viterbi算法中狀態(tài)轉(zhuǎn)移的度量值計(jì)算公式為:
(12)
整個(gè)Viterbi算法包括了分支度量計(jì)算、路徑度量值更新、路徑選擇和路徑回溯等幾個(gè)步驟。分支度量計(jì)算通過計(jì)算接收信號和每個(gè)不同的符號序列下的相關(guān)值,獲得不同狀態(tài)下的不同路徑度量值。路徑度量值更新是將計(jì)算得到的分支度量與上一時(shí)刻對應(yīng)狀態(tài)下的累計(jì)度量值進(jìn)行累加,獲得當(dāng)前時(shí)刻下的所有路徑的累計(jì)度量值。路徑選擇是對比每個(gè)狀態(tài)下所有路徑的累計(jì)度量值,選擇最大路徑的度量值結(jié)果作為新的累計(jì)度量值。重復(fù)上述步驟,從而完成整個(gè)序列的搜索過程。路徑回溯是選擇度量值最大的狀態(tài),沿著度量值更新的路徑進(jìn)行路徑回溯,最終實(shí)現(xiàn)Multi-h CPM的信號解調(diào)。
由于傳統(tǒng)的Viterbi算法在進(jìn)行路徑回溯后,只能獲取符號序列的硬判決結(jié)果,而在通信系統(tǒng)中,解調(diào)器之后一般會級聯(lián)譯碼器。考慮到譯碼器的糾錯(cuò)性能,譯碼器輸入軟信息相比于硬判決結(jié)果,可以獲得更大的編碼增益。在Multi-h CPM接收機(jī)解調(diào)時(shí),為了能夠給后級的譯碼器提供軟信息,因此采用了軟輸出Viterbi算法。
圖2中實(shí)線為t-6~t時(shí)刻最大累計(jì)度量值的回溯路徑,即幸存路徑。虛線為t-6~t時(shí)刻次大累計(jì)度量值的回溯路徑,即競爭路徑。節(jié)點(diǎn)Si在t時(shí)刻下的可靠性度量值Δt(Si)可以表示為幸存路徑下的累計(jì)度量值和競爭路徑下的累計(jì)度量值之差,即:
圖2 幸存路徑和競爭路徑網(wǎng)格圖Fig.2 Trellis diagram of survivor path and competing path
Δt(Si)=|MS(Si,t)-MC(Si,t)|。
(13)
由圖2可以看出,幸存路徑和競爭路徑在t-5時(shí)刻開始分離,并且幸存路徑和競爭路徑的比特判決結(jié)果并不是完全相同。在t-4和t-2時(shí)刻,幸存路徑的比特判決結(jié)果是1,競爭路徑的比特判決結(jié)果是0。因此僅通過t時(shí)刻幸存路徑和競爭路徑下的度量值之差,不能完全表征可靠性度量值,還需要考慮幸存路徑和競爭路徑的比特判決結(jié)果,對可靠性度量值進(jìn)行修正。
對于t時(shí)刻下的狀態(tài)節(jié)點(diǎn)Si,可靠性度量值的更新算法計(jì)算過程如下:
① 存儲節(jié)點(diǎn)Si的可靠性度量值Δt(Si),如果競爭路徑不唯一,計(jì)算幸存路徑和所有競爭路徑的度量值之差,并將最小值存儲到Δt(Si)。
② 將狀態(tài)節(jié)點(diǎn)Si的可靠性數(shù)值初始化為+∞。
③ 比較狀態(tài)節(jié)點(diǎn)Si下的幸存路徑與競爭路徑的判決結(jié)果,并計(jì)算判決結(jié)果不同的時(shí)刻與節(jié)點(diǎn)所在時(shí)刻下的差值,將結(jié)果記錄到MEM。
④ 在所有的MEM>0的時(shí)刻中,找到可靠性數(shù)值未更新過的最小的MEM,記為MEMlow。
⑤ 將MEM=0到MEM=MEMlow時(shí)刻之間,可靠性最小的數(shù)值更新為MEMlow的可靠性。
通過可靠性更新算法之后,可以獲得狀態(tài)節(jié)點(diǎn)Si的可靠性度量值。結(jié)合路徑回溯的硬判決結(jié)果與狀態(tài)節(jié)點(diǎn)的可靠性數(shù)值,就可以得到譯碼器所需要的軟信息結(jié)果。
2.3.1 傾斜相位算法
傾斜相位算法可以通過引入?yún)⒖枷辔坏氖侄螌⑾辔粯鋸臅r(shí)變轉(zhuǎn)化為非時(shí)變的形式,并且在無性能損失的前提下可以實(shí)現(xiàn)網(wǎng)格狀態(tài)數(shù)減半。
在式(2)中,φ(t;a)的相位定義在實(shí)數(shù)域上,而考慮真實(shí)的物理相位,相位差為2π整數(shù)倍的相位是不能被區(qū)分的,所以對φ(t;a)進(jìn)行如下處理:
(14)
在Multi-h CPM中,信號的相位轉(zhuǎn)移既與傳輸?shù)男畔⒂嘘P(guān),也與當(dāng)前時(shí)刻有關(guān),增加了信號解調(diào)的復(fù)雜度。為了解決此問題,使用單極性符號Un取代雙極性符號an,其轉(zhuǎn)換公式為:
(15)
使用單極性符號后,令第n個(gè)符號間隔內(nèi)的時(shí)間t=τ+nT,信號相位可以重新表示為:
(16)
對式(16)的相位進(jìn)行模2π,可以得到:
(17)
(18)
(19)
沒有進(jìn)行符號映射前,Multi-h CPM的信號相位是模2P。通過TP算法對信號的相位坐標(biāo)系進(jìn)行轉(zhuǎn)換后,信號相位從模2P變成了模P。在進(jìn)行Viterbi解調(diào)時(shí),相位狀態(tài)數(shù)降低為原來的1/2,可以有效地降低Viterbi解調(diào)的計(jì)算復(fù)雜度。由于TP算法只是通過坐標(biāo)系變換重新映射了信號相位,因此不會影響到Multi-h CPM接收機(jī)的系統(tǒng)性能。
2.3.2 頻率脈沖響應(yīng)截?cái)嗨惴?/p>
針對部分響應(yīng)Multi-h CPM信號,可以采用頻率脈沖響應(yīng)截?cái)嗨惴ń档拖到y(tǒng)的計(jì)算復(fù)雜度。對于部分響應(yīng)信號的CPM信號,由于其頻率脈沖兩端的幅度較小,對信號相位的影響可以忽略,因此考慮對頻率脈沖響應(yīng)曲線進(jìn)行截?cái)?去掉低能量部分,等效的降低了信號的相關(guān)長度L。
假設(shè)Multi-h CPM的調(diào)制參數(shù)M=4,L=3,h={5/16,6/16},其 FPT算法截?cái)喾绞饺鐖D3所示。Multi-h CPM信號的頻率脈沖響應(yīng)函數(shù)在0T~0.5T和2.5T~3T這兩個(gè)區(qū)間取值設(shè)置為0。由于其0.5T~2.5T區(qū)間內(nèi)的能量占據(jù)了總能量的95%左右,因此通過截取頻率脈沖響應(yīng),可以在僅損失少量信號能量的同時(shí),有效降低響應(yīng)長度。
(a) 頻率脈沖響應(yīng)
(b) 截?cái)嗪蟮念l率脈沖響應(yīng)
(c) 相位脈沖響應(yīng)
(d) 截?cái)嗪蟮南辔幻}沖響應(yīng)圖3 頻率脈沖響應(yīng)截?cái)嗨惴ㄊ疽鈭DFig.3 Frequency pulse truncation algorithm
檢測區(qū)間發(fā)生變化后,Multi-h CPM的匹配濾波器構(gòu)造如下:
(20)
使用了FPT算法之后,由于降低了響應(yīng)長度L,Viterbi解調(diào)的網(wǎng)格狀態(tài)數(shù)也降低為原來的1/M,從而有效降低了解調(diào)器的資源開銷。但是不同于TP算法,FPT算法本質(zhì)上是一個(gè)近似方法,會帶來一定的串?dāng)_導(dǎo)致系統(tǒng)性能發(fā)生損失,不過其損失較小,對系統(tǒng)的影響可以忽略不計(jì)。
2.4.1 定時(shí)同步算法
式(9)中,接收信號僅考慮噪聲的影響,但在實(shí)際系統(tǒng)中,接收信號存在鏈路衰減、鏈路延遲和多普勒頻偏等,因此實(shí)際的接收信號重新寫作:
r(t)=Aej(2π(fc+Δf)(t-τ(t))+φ(t-τ(t);a))+n0(t),
(21)
式中:A是信號幅度,fc是中頻頻率,Δf是多普勒頻移,τ(t)是鏈路延遲。因此接收機(jī)在進(jìn)行Multi-h CPM信號解調(diào)時(shí),需要保證接收機(jī)的本地信號和接收信號的時(shí)頻同步。
假設(shè)僅存在定時(shí)偏差而不存在頻率偏差時(shí),Viterbi解調(diào)的累計(jì)度量值可以表示為:
(22)
圖4給出了Multi-h CPM信號中定時(shí)誤差對Viterbi解調(diào)的累計(jì)度量值的影響。可以看出,當(dāng)接收機(jī)存在定時(shí)偏差時(shí),Viterbi解調(diào)的累計(jì)度量值將會降低。利用該特點(diǎn),可以采用超前-滯后門結(jié)構(gòu)進(jìn)行Multi-h CPM的定時(shí)同步。
超前支路信號rE和滯后支路信號rL可以表示為:
(23)
在[-0.5T,0.5T),超前支路累計(jì)度量值λE及滯后支路累計(jì)度量值λL相對于定時(shí)誤差表現(xiàn)為凸函數(shù),利用該特點(diǎn)可設(shè)計(jì)定時(shí)歸一化度量值β來衡量超前支路累計(jì)度量值及滯后支路累計(jì)度量值的差值,其計(jì)算公式為:
(24)
當(dāng)Multi-h CPM的調(diào)制參數(shù)確定后,定時(shí)歸一化度量值β相對歸一化定時(shí)誤差Δt/T的曲線是固定的。從圖5中可以看出,在[-0.5T,0.5T),定時(shí)歸一化度量值β(Δt)與定時(shí)誤差Δt近似成線性關(guān)系,在設(shè)計(jì)中作為定時(shí)誤差估計(jì)曲線使用?;谏鲜銮€,在計(jì)算獲取了超前支路累計(jì)度量值λE及滯后支路累計(jì)度量值λL后,通過計(jì)算定時(shí)歸一化度量值,對照定時(shí)誤差曲線,即可獲得Multi-h CPM接收機(jī)的定時(shí)誤差,修正定時(shí)誤差即可完成定時(shí)同步。
2.4.2 頻率同步算法
假設(shè)僅存在頻率偏差而不存在定時(shí)偏差時(shí),Viterbi解調(diào)的度量值可以表示為:
(25)
頻率誤差與累計(jì)度量值的關(guān)系圖如圖6所示,可以看出,當(dāng)接收機(jī)存在頻率誤差時(shí),累計(jì)度量值將會降低。與定時(shí)同步類似,可以采用升降頻門結(jié)構(gòu)進(jìn)行頻率同步。
圖6 頻率誤差與累計(jì)度量值的關(guān)系圖Fig.6 Effect of frequency error on metric values
升頻支路的信號rU可以表示為:
(26)
降頻支路的信號rD可以表示為:
(27)
對升頻支路和降頻支路的累計(jì)度量值進(jìn)行歸一化,可以得到頻率歸一化度量值:
(28)
當(dāng)Multi-h CPM的數(shù)據(jù)速率為50 Mbit/s時(shí),接收機(jī)的載波頻率誤差Δf對累計(jì)度量值的影響在[-80 kHz,80 kHz]呈現(xiàn)為凸函數(shù),通過上述歸一化設(shè)計(jì)后可以獲取頻率度量曲線,如圖7所示。計(jì)算頻率歸一化度量值β(Δf),可以通過其曲線獲取接收機(jī)的頻率誤差,修正頻率誤差即可完成頻率同步。
圖7 歸一化頻率誤差曲線圖Fig.7 Normalized frequency error curve
整個(gè)Multi-h CPM接收機(jī)整體結(jié)構(gòu)如圖8所示。接收機(jī)主要包括了信號預(yù)處理模塊、SOVA解調(diào)模塊、定時(shí)同步模塊和頻率同步模塊。
圖8 Multi-h CPM接收機(jī)整體框圖Fig.8 System block diagram of the Multi-h CPM receiver
信號預(yù)處理模塊主要完成信號的預(yù)處理操作,包括對接收的中頻信號進(jìn)行去載波、為定時(shí)同步模塊生成超前-滯后信號以及為頻率同步模塊生成升降頻信號等操作。
SOVA解調(diào)模塊主要完成Multi-h CPM的解調(diào)并生成軟信息。整個(gè)SOVA過程中需要完成度量值計(jì)算、加比選以及路徑回溯等操作。
定時(shí)同步主要修正接收機(jī)的定時(shí)誤差,需要計(jì)算超前支路和滯后支路的累計(jì)度量值并且獲取定時(shí)同步的誤差值。
頻率同步主要修正接收機(jī)的頻率誤差,需要計(jì)算升頻支路和降頻支路的累計(jì)度量值并且獲取頻率同步的誤差值。
接收機(jī)從ADC處獲取到高速中頻數(shù)據(jù)流之后,首先對信號進(jìn)行去載波操作,將信號從中頻信號轉(zhuǎn)為基帶信號。降頻處理由DDS載波生成器和FIR低通濾波器構(gòu)成,其中DDS生成載波的具體數(shù)值由頻率控制字決定,其計(jì)算公式為:
(29)
式中:fCLK為接收機(jī)主頻,fIF為中頻信號頻率。為了保證DDS生成的信號頻率精度,采用了32 bit的頻率控制字,可以保證接收機(jī)生成的正弦信號頻率誤差小于0.1 Hz。
同樣,升頻支路和降頻支路的信號也是通過DDS和FIR濾波器生成,通過更改頻率控制字即可生成所需的不同頻率信號。
對于超前支路和滯后支路的信號,通過對ADC的數(shù)據(jù)流進(jìn)行延遲操作得到。未延遲的信號作為超前支路信號,延遲一次的信號作為正常的接收信號,而延遲兩次的信號作為滯后支路信號。
如圖9所示,SOVA解調(diào)模塊在接收到預(yù)處理模塊的基帶Multi-h CPM信號后進(jìn)行信號解調(diào),并且根據(jù)整個(gè)解調(diào)算法的處理步驟,可以細(xì)分為分支度量值計(jì)算單元、加比選單元、路徑回溯單元和控制單元。
圖9 SOVA解調(diào)示意圖Fig.9 SOVA demodulator
控制單元為分支度量計(jì)算單元、加比選單元和路徑回溯單元提供調(diào)制參數(shù)信息,并且對3個(gè)模塊進(jìn)行流程控制和協(xié)調(diào),保證輸入的基帶信號可以以流水線形式完成數(shù)據(jù)處理。
分支度量計(jì)算單元接收前級預(yù)處理模塊輸入的I、Q兩路基帶信號與控制單元輸入的調(diào)制參數(shù)信息。分支度量計(jì)算單元根據(jù)調(diào)制參數(shù)確定本地信號的生成,并且由內(nèi)置的符號計(jì)時(shí)器計(jì)時(shí)確定當(dāng)前的調(diào)制指數(shù)h。在得到相關(guān)的信息之后生成接收機(jī)本地信號,然后通過矩陣乘法完成分支度量的計(jì)算,將分支度量矩陣的結(jié)果輸入到加比選單元。
加比選單元接收到分支度量計(jì)算單元不同狀態(tài)下各個(gè)支路的分支度量值之后,通過控制單元輸入調(diào)制指數(shù)信息,確定加比選的執(zhí)行邏輯。加比選單元會在每個(gè)狀態(tài)前一個(gè)符號周期存儲的累計(jì)度量值的基礎(chǔ)上,由當(dāng)前的調(diào)制指數(shù)選擇該狀態(tài)所對應(yīng)的分支度量值矩陣的分支,并將前一狀態(tài)的累計(jì)度量值與對應(yīng)的分支度量值相加,計(jì)算得到的新的分支度量值,并取度量值最大的路徑作為幸存路徑,次大的路徑作為競爭路徑,并將兩個(gè)路徑的信息輸入到路徑回溯單元。
路徑回溯單元根據(jù)幸存路徑的路徑編號回溯度量值矩陣,并且根據(jù)回溯過程的各個(gè)狀態(tài)確定解調(diào)的硬判決結(jié)果。此外,路徑回溯單元利用幸存路徑和競爭路徑的累計(jì)度量值和比特硬判決結(jié)果,更新內(nèi)部可靠性度量矩陣。完成路徑回溯后,獲取當(dāng)前時(shí)刻累計(jì)度量值最大的狀態(tài)和狀態(tài)對應(yīng)的可靠性度量,計(jì)算其對數(shù)似然比并作為最終軟信息結(jié)果。
3.3.1 分支度量計(jì)算單元
分支度量計(jì)算單元的基本結(jié)構(gòu)如圖10所示。SOVA解調(diào)控制單元輸入的調(diào)制參數(shù)信息,一方面,輸入到修正參數(shù)計(jì)算器中,控制傾斜相位修正ROM地址,從本地存儲的傾斜相位ROM中讀取對應(yīng)的傾斜值,與輸入的I、Q兩路信號進(jìn)行復(fù)乘從而獲取對應(yīng)的經(jīng)TP處理后的I、Q路信號。另一方面,調(diào)制參數(shù)輸入到本地濾波器地址控制器中,經(jīng)過地址控制器的計(jì)算后轉(zhuǎn)換為本地濾波器地址,本地濾波器地址從本地濾波器ROM陣列中讀取形成所有匹配濾波器對應(yīng)的接收機(jī)本地信號。本地信號與經(jīng)過TP處理的I、Q基帶信號進(jìn)行并行相關(guān),即可得到SOVA解調(diào)的分支度量值。
圖10 分支度量計(jì)算單元示意圖Fig.10 Branch metrics computing unit
并行相關(guān)器是分支度量計(jì)算單元的核心。以Multi-h CPM的調(diào)制參數(shù)M=4,L=3,h={5/16,6/16}為例,為了提高解調(diào)器的數(shù)據(jù)處理能力,在進(jìn)行分支度量計(jì)算時(shí)需要對所有狀態(tài)下的所有分支進(jìn)行并行計(jì)算。即使采用了TP算法和FPT算法,Multi-h CPM依舊存在64個(gè)網(wǎng)格狀態(tài),256路分支路徑,完全并行計(jì)算需要消耗大量的計(jì)算資源。為了簡化并行相關(guān)器的計(jì)算復(fù)雜度,將整個(gè)相關(guān)運(yùn)算拆解為接收信號復(fù)乘16組本地信號和對復(fù)乘結(jié)果進(jìn)行兩級相位旋轉(zhuǎn)修正兩個(gè)步驟完成。
考慮到對于單一復(fù)數(shù)a+bi,對其進(jìn)行角度為π/2、π和3π/2的相位旋轉(zhuǎn)后得到的結(jié)果分別為b-ai、-a-bi和-b+ai。在256路分支路徑計(jì)算過程中,存在周期為4的相位旋轉(zhuǎn)角度為π/2整數(shù)倍的情況,因此通過計(jì)算其中64路的分支路徑結(jié)果,就可以得到所有的256路分支度量值。而在進(jìn)行64路分支度量值的計(jì)算過程中,可以再一次利用相位旋轉(zhuǎn)的思想進(jìn)一步簡化計(jì)算量。假設(shè)所有本地信號的初相為0,64路本地信號就可以進(jìn)一步被簡化成16路信號,計(jì)算得到16路相關(guān)值后,對相關(guān)結(jié)果乘以π/8、π/4和3π/8的信號相位,可獲得剩余的48路相關(guān)結(jié)果。整個(gè)并行相關(guān)器的硬件實(shí)現(xiàn)架構(gòu)如圖11所示。
圖11 并行相關(guān)器示意圖Fig.11 Parallel correlator
不利用分支度量的相位旋轉(zhuǎn),需要同時(shí)并行256路復(fù)數(shù)乘法器。采用了相位旋轉(zhuǎn)之后,只需要消耗16個(gè)復(fù)數(shù)乘法器和48個(gè)CODIC旋轉(zhuǎn)器,就可以有效降低整體的資源消耗。同理,經(jīng)過了分支度量單元之后,輸入信號數(shù)率從采樣速率降低到了符號速率,也降低了后級模塊的數(shù)據(jù)處理壓力。
3.3.2 加比選單元
加比選單元主要完成對各個(gè)狀態(tài)下所有分支路徑的度量值累加、比較和選擇。來自控制模塊的調(diào)制參數(shù)輸入映射表中,確定來自分支度量計(jì)算單元生成的分支度量結(jié)果的具體映射方案。
整個(gè)加比選單元的硬件結(jié)構(gòu)如圖12所示。加比選單元中的狀態(tài)分支度量映射實(shí)際是一個(gè)分選器,根據(jù)當(dāng)前時(shí)刻每個(gè)狀態(tài)的來源路徑將所有的分支度量值映射至不同的狀態(tài)中,即256路分支度量值每4個(gè)一組對應(yīng)到Viterbi解調(diào)的64狀態(tài)下。64個(gè)不同的狀態(tài)都會從公用的累計(jì)度量值存儲陣列中獲取其對應(yīng)的前一時(shí)刻累計(jì)度量值,隨后利用其私有的加法器將分支度量值與前一時(shí)刻累計(jì)度量值相加得到4個(gè)累計(jì)度量值。4個(gè)累計(jì)度量值通過一個(gè)選擇器,取其中最大的度量值作為當(dāng)前時(shí)刻幸存路徑的累計(jì)度量值,并將最大度量值所對應(yīng)的路徑記錄為幸存路徑,次大的累計(jì)度量值作為當(dāng)前時(shí)刻競爭路徑的累計(jì)度量值,其所對應(yīng)的路徑為競爭路徑。
圖12 加比選單元示意圖Fig.12 Add-compare-select unit
在本單元的設(shè)計(jì)中,其所處理的數(shù)據(jù)速率遠(yuǎn)低于分支度量計(jì)算單元的數(shù)據(jù)速率,因此相比于分支度量計(jì)算單元需要全并行計(jì)算,加比選單元可以采用串并結(jié)合的方式完成計(jì)算,有效降低FPGA資源消耗。
3.3.3 路徑回溯單元
路徑回溯單元中存儲有每個(gè)狀態(tài)對應(yīng)的可靠性度量矩陣。取SOVA的回溯長度為10,則每個(gè)狀態(tài)均需要存儲大小為10×4=40的可靠性度量矩陣。為了保證路徑回溯的處理能力,10路路徑回溯是并行處理。
整個(gè)路徑回溯單位的硬件架構(gòu)如圖13所示。輸入的路徑度量值會首先會通過緩存比較器選出累計(jì)度量值最大和次大的狀態(tài)。之后根據(jù)幸存路徑和競爭路徑的編號值,控制回溯地址從緩存陣列中獲取前一時(shí)刻的度量值進(jìn)行路徑回溯,并且在回溯的同時(shí)要計(jì)算當(dāng)前狀態(tài)下的可靠性,將可靠性數(shù)據(jù)存儲在可靠性度量矩陣之中。在計(jì)算可靠性數(shù)據(jù)的同時(shí)還需要對幸存路徑和競爭路徑下的解調(diào)比特結(jié)果進(jìn)行判決,當(dāng)幸存路徑和競爭路徑的硬判決比特結(jié)果不同時(shí),對可靠性數(shù)值進(jìn)行更新。
圖13 路徑回溯單元示意圖Fig.13 Traceback unit
當(dāng)回溯完成后,由于可靠性度量值矩陣中存儲的是M進(jìn)制符號的可靠性,還需要進(jìn)行解映射操作,計(jì)算信息比特的對數(shù)似然比信息,才能得到最終的軟信息結(jié)果。
時(shí)頻同步模塊的具體結(jié)構(gòu)如圖14所示。整個(gè)時(shí)頻同步過程包含了4個(gè)簡化的前向Viterbi計(jì)算,信號預(yù)處理模塊產(chǎn)生的超前-滯后信號和升降頻信號,通過前文所述的分支度量計(jì)算單元和加比選單元,分別計(jì)算超前支路、滯后支路、升頻支路和降頻支路的累計(jì)度量值。計(jì)算獲得累計(jì)度量值之后,不同于SOVA解調(diào)需要進(jìn)行路徑回溯,在升降頻模塊中僅需要計(jì)算各個(gè)支路的累計(jì)度量值的最大值。
圖14 時(shí)頻同步模塊示意圖Fig.14 Time and frequency synchronizer
將超前支路和滯后支路的最大值送入到歸一化模塊中,計(jì)算得到定時(shí)歸一化度量值,通過定時(shí)誤差鑒相器得到接收機(jī)的定時(shí)誤差。定時(shí)誤差鑒相器本質(zhì)上是一個(gè)查找表的ROM,其定時(shí)歸一化度量值即為查找表的數(shù)據(jù)地址,根據(jù)不同的歸一化度量值從ROM中獲取定時(shí)誤差??紤]到接收機(jī)數(shù)據(jù)存在噪聲,直接計(jì)算得到的定時(shí)誤差數(shù)值波動較大,因此通過一個(gè)環(huán)路濾波器,提高系統(tǒng)抗干擾能力。
頻率同步與定時(shí)同步類似,根據(jù)升頻支路和降頻支路的累計(jì)度量最大值,獲取頻率誤差結(jié)果。獲取到定時(shí)誤差和頻率誤差結(jié)果之后,將誤差值反饋到信號預(yù)處理模塊,修正定時(shí)誤差和頻率誤差,完成接收機(jī)的時(shí)頻同步。
本文在FPGA硬件板卡對Multi-h CPM接收機(jī)的性能進(jìn)行了測試。選取Multi-h CPM的信息速率為50 Mbit/s,調(diào)制進(jìn)制M=4,關(guān)聯(lián)長度L=3,采用的調(diào)制指數(shù)集h={5/16,6/16},并且在進(jìn)行SOVA解調(diào)時(shí),一次處理的數(shù)據(jù)塊包含了20個(gè)數(shù)據(jù)符號。通過FPGA內(nèi)部的集成邏輯分析儀(Integrated Logic Analyzer,ILA)抓取FPGA內(nèi)部的數(shù)據(jù)運(yùn)行結(jié)果,進(jìn)行結(jié)果分析。
由圖15可以看出,在初始的定時(shí)誤差設(shè)置為0.25T的情況下,硬件系統(tǒng)可以在200個(gè)符號內(nèi)完成定時(shí)同步的跟蹤與鎖定,且最終定時(shí)誤差穩(wěn)定在0附近,證明定時(shí)誤差得到了修正。同時(shí)可觀察到,在定時(shí)跟蹤前期由于起始相位越界,同步過程中出現(xiàn)了波動,但后續(xù)狀態(tài)穩(wěn)定后沒有發(fā)生類似的情況,證明FPGA環(huán)路能夠?qū)崿F(xiàn)穩(wěn)定的定時(shí)跟蹤。
(a) 符號速率同步過程
(b) 定時(shí)誤差修正值圖15 定時(shí)同步結(jié)果圖Fig.15 Timing synchronization results
由圖16可以看出,在初始的頻率誤差設(shè)置為150 kHz的情況下,硬件系統(tǒng)可以在200個(gè)符號內(nèi)完成頻率同步的跟蹤與鎖定,且最終頻率誤差穩(wěn)定在0附近,證明頻率定時(shí)誤差得到了修正。同時(shí)可知,在頻率跟蹤過程中存在過沖,但過沖的幅度不大,信號載波頻率波動較小,并且環(huán)路穩(wěn)定后沒有發(fā)生類似的情況,證明FPGA環(huán)路能夠?qū)崿F(xiàn)穩(wěn)定的頻率跟蹤。
(a) 本地載波頻率同步過程
(b) 頻率誤差修正值圖16 頻率同步結(jié)果圖Fig.16 Frequency synchronization results
在測試環(huán)境中追加150 kHz的多普勒頻移和50 kHz/s的動態(tài)多普勒變化率,測試整個(gè)接收機(jī)系統(tǒng)在高動態(tài)多普勒環(huán)境下的解調(diào)能力。從圖17的BER曲線可以確認(rèn)定時(shí)和頻率同步環(huán)路可以正常工作,沒有發(fā)生定時(shí)或者頻率同步環(huán)路失鎖的情況,即使在低信噪比情況下,定時(shí)同步和頻率同步依舊可以穩(wěn)定跟蹤時(shí)頻誤差。
圖17 誤碼率曲線Fig.17 BER curve
由圖17可以看出,相比在Matlab軟件中理想同步情況下的浮點(diǎn)仿真,基于FPGA平臺搭建Multi-h CPM解調(diào)系統(tǒng)后,誤碼率性能存在一定的劣化。在無多普勒情況下,BER=10-5時(shí)的劣化程度約達(dá)0.45 dB。該劣化一方面來源于FPGA內(nèi)部的定點(diǎn)量化損失,另一方面來源于定時(shí)同步損失。在高動態(tài)多普勒情況下,取BER=10-5為基準(zhǔn)進(jìn)行觀察,接收機(jī)的實(shí)測性能損失從無多普勒頻偏情況下的約0.45 dB提升至了1.2 dB,但該性能損失在實(shí)際系統(tǒng)中可以接受。
本文分析了Multi-h CPM調(diào)制解調(diào)原理和時(shí)頻同步方案,設(shè)計(jì)了基于FPGA平臺的Multi-h CPM接收機(jī)架構(gòu)。針對Multi-h CPM接收機(jī)復(fù)雜度較高的問題,通過采用TP算法和FPT算法簡化了Viterbi網(wǎng)格狀態(tài)數(shù),并且在FPGA中利用角度重映射思路,通過使用CODIC IP核代替了大量的復(fù)數(shù)乘法器,降低了系統(tǒng)的資源開銷,保證了解調(diào)系統(tǒng)可以在FPGA實(shí)現(xiàn)高并行處理,提高了系統(tǒng)吞吐率。
本文通過ILA驗(yàn)證了程序在FPGA內(nèi)部執(zhí)行的穩(wěn)定性和可靠性,結(jié)果表明本文設(shè)計(jì)的接收機(jī)架構(gòu)在高動態(tài)多普勒環(huán)境下可以穩(wěn)定實(shí)現(xiàn)時(shí)頻同步功能,并且接收機(jī)的性能損失較小,具有良好的應(yīng)用前景。