劉譽楷,劉榮科,2*,陳祺治
(1.北京航空航天大學 電子信息工程學院,北京 100191;2.深圳北航新興產業技術研究院,廣東 深圳 518063)
衛星互聯網技術可以利用衛星信道連接全球范圍內的用戶,在現代通信系統中發揮了至關重要的作用。它不僅能夠提供高速穩定的接入服務,且不受地理和地形的限制,可以滿足各種應用需求,在電信、航天等各個領域都有著廣泛的應用前景[1-3]。
在衛星通信系統中,信號調制與解調是實現高速數據傳輸的關鍵技術之一[4]。連續相位調制(Continuous Phase Modulation,CPM)技術通過控制信號的相位變化來調制信號,相較于其他的數字調制技術,CPM可以在較低誤碼率下提供更高的頻譜效率[5]。此外CPM具有恒包絡的特點,可以有效降低高功率放大器非線性效應的影響[6],適合應用于衛星等功放受限的場景。
多指數連續相位調制(Multi-h Continuous Phase Modulation,Multi-h CPM)是CPM的一種擴展形式。Multi-h CPM通過采用不同的調制指數,改變調制信號的相位偏移量。與傳統的CPM技術相比,Multi-h CPM可以通過選擇不同的調制指數來適應不同的信道環境,提高數據的傳輸效率,改善系統的容錯性能[7]。
目前Multi-h CPM接收機中最常采用的算法是最大似然序列檢測(Maximum Likelihood Sequence Detection,MLSD)算法[8]。但是由于Multi-h CPM相比于CPM信號,其解調的復雜度較高,還需要采用一些簡化算法來降低算法的復雜度。降低Multi-h CPM的解調復雜度有兩個主要方向:降低匹配濾波器數量和減少網格狀態數。降低匹配濾波器數量的簡化算法主要包括脈沖幅度調制(Pulse Amplitude Modulation,PAM)分解[9-10]、Walsh分解[11]、奇異值分解(Singular Value Decomposition,SVD)[12]、狀態空間分類(State Space Partitioning,SSP)算法[13]和虛擬指數集解調算法[14]等。降低網格狀態數的簡化算法主要包括傾斜相位(Tilted Phase,TP)算法[15]、頻率脈沖截斷(Frequency Pulse Truncation,FPT)算法[16]和減狀態序列檢測(Reduced State Sequence Detection,RSSD)算法[17]等。以上算法中,除了TP算法之外,其他算法都會降低接收機的解調性能。在實際的系統設計時,通常將幾種降低復雜度的算法聯合應用,通過犧牲部分解調性能的方式,顯著降低接收機系統的實現復雜度。
為了實現高效的Multi-h CPM解調,保證接收機的高速數據處理能力,除了降低解調算法的計算復雜度之外,還需要在硬件架構設計時,通過高度并行化的數據處理方案,提高系統的吞吐率。
現場可編程門陣列(Field Programmable Gate Array,FPGA)作為一種可編程的邏輯器件,具有可重構性強、高并發性能、高速運算能力、低功耗和靈活性等優點,可以支持多個邏輯電路并行計算,進行復雜的邏輯電路設計與實現,在信號處理和通信領域得到了廣泛應用[18]。
因此本文設計并實現了基于FPGA平臺下的Multi-h CPM解調系統,完成了Multi-h CPM的軟輸出維特比算法(Soft Output Viterbi Algorithm,SOVA)[19-20]、時頻同步等功能,并且采用了TP算法和FPT算法,大幅度降低了系統的解調復雜度。通過仿真和實驗驗證,本文的Multi-h CPM接收機具有良好的系統性能,可有效滿足實際應用需求。
Multi-h CPM的復基帶信號可以表示為:
(1)
式中:ES為信號能量,T為碼元周期,φ(t;a)為信號相位,其可以進一步表示為:
(2)
式中:ai∈{±1,±3,…,±(M-1)}為傳輸的M進制符號序列,hi∈{h1,h2,…,hn}為調制指數集,q(t)為相位脈沖響應,可以表示為頻率脈沖響應g(t)的積分,即:
(3)
目前Multi-h CPM調制中最常用的脈沖函數為升余弦脈沖,其表達式為:
(4)
式中:L為關聯長度。當L=1時,生成的Multi-h CPM信號為全響應信號;當L>1時,生成的信號為部分響應信號。
Multi-h CPM信號在確定了調制參數的情況下,信號相位φ(t;a)僅與累加相位和關聯長度內的傳輸符號有關,因此式(2)可以改寫為:
(5)
式中:φn為累加相位,φ(t;a)為相關相位。
考慮到調制指數hi為有理數,因此Multi-h CPM信號的累加相位狀態是有限的。令hi=m/k,其中m和k是互斥的兩個質數,則累加相位的所有狀態集合為:
(6)
綜合考慮累加相位和相關相位的影響,Multi-h CPM信號的相位可以由下述狀態序列決定:
sn={an-L+1,an-L+2,…,an-1,φn-L}。
(7)
相位狀態轉移的表達式為:
(8)
假設Multi-h CPM的調制進制數M=2,關聯長度L=1,調制指數h={1/4,1/2},其相位狀態轉移如圖1所示。從狀態轉移圖中可以看到,Multi-h CPM的信號相位具有周期性的網格結構,根據網格圖的轉移關系可以清楚地描述當前的信號狀態和下一碼元對輸出信號的影響。

圖1 Multi-h CPM相位狀態轉移圖Fig.1 Phase state transition in Multi-h CPM system
在Multi-h CPM中,進制數M將會影響到狀態轉移的復雜程度。當M=2時,每個狀態有兩條轉移路徑,而當M=4時,每個狀態有4條轉移路徑。而進制數M、關聯長度L和調制指數h共同決定了網格狀態數,隨著Multi-h CPM調制進制數的提升和關聯長度的提升,都會導致整個系統的狀態數呈指數增長,進而導致解調的復雜度上升。
假設信道為加性高斯白噪聲信道(Additive white Gaussian Noise,AWGN),接收信號r(t)可以表示為:
r(t)=s(t;a)+n0(t),
(9)
式中:n0(t)為零均值高斯白噪聲。
根據MLSD準則,接收機在所有可能的結果中搜索距離接收信號的歐氏距離最近的一組序列值作為檢測結果,該檢測器可以表示為:
(10)
MLSD的目標是通過求解似然函數來在所有可能序列中尋找使式(10)最小的序列。考慮到Multi-h CPM信號的恒包絡特點,計算式(10)的最小值可以等價為計算式(11)的最大值。
(11)
由于Multi-h CPM信號具有相位網格特性,可以使用Viterbi算法完成信號解調工作。Viterbi算法中狀態轉移的度量值計算公式為:
(12)
整個Viterbi算法包括了分支度量計算、路徑度量值更新、路徑選擇和路徑回溯等幾個步驟。分支度量計算通過計算接收信號和每個不同的符號序列下的相關值,獲得不同狀態下的不同路徑度量值。路徑度量值更新是將計算得到的分支度量與上一時刻對應狀態下的累計度量值進行累加,獲得當前時刻下的所有路徑的累計度量值。路徑選擇是對比每個狀態下所有路徑的累計度量值,選擇最大路徑的度量值結果作為新的累計度量值。重復上述步驟,從而完成整個序列的搜索過程。路徑回溯是選擇度量值最大的狀態,沿著度量值更新的路徑進行路徑回溯,最終實現Multi-h CPM的信號解調。
由于傳統的Viterbi算法在進行路徑回溯后,只能獲取符號序列的硬判決結果,而在通信系統中,解調器之后一般會級聯譯碼器。考慮到譯碼器的糾錯性能,譯碼器輸入軟信息相比于硬判決結果,可以獲得更大的編碼增益。在Multi-h CPM接收機解調時,為了能夠給后級的譯碼器提供軟信息,因此采用了軟輸出Viterbi算法。
圖2中實線為t-6~t時刻最大累計度量值的回溯路徑,即幸存路徑。虛線為t-6~t時刻次大累計度量值的回溯路徑,即競爭路徑。節點Si在t時刻下的可靠性度量值Δt(Si)可以表示為幸存路徑下的累計度量值和競爭路徑下的累計度量值之差,即:

圖2 幸存路徑和競爭路徑網格圖Fig.2 Trellis diagram of survivor path and competing path
Δt(Si)=|MS(Si,t)-MC(Si,t)|。
(13)
由圖2可以看出,幸存路徑和競爭路徑在t-5時刻開始分離,并且幸存路徑和競爭路徑的比特判決結果并不是完全相同。在t-4和t-2時刻,幸存路徑的比特判決結果是1,競爭路徑的比特判決結果是0。因此僅通過t時刻幸存路徑和競爭路徑下的度量值之差,不能完全表征可靠性度量值,還需要考慮幸存路徑和競爭路徑的比特判決結果,對可靠性度量值進行修正。
對于t時刻下的狀態節點Si,可靠性度量值的更新算法計算過程如下:
① 存儲節點Si的可靠性度量值Δt(Si),如果競爭路徑不唯一,計算幸存路徑和所有競爭路徑的度量值之差,并將最小值存儲到Δt(Si)。
② 將狀態節點Si的可靠性數值初始化為+∞。
③ 比較狀態節點Si下的幸存路徑與競爭路徑的判決結果,并計算判決結果不同的時刻與節點所在時刻下的差值,將結果記錄到MEM。
④ 在所有的MEM>0的時刻中,找到可靠性數值未更新過的最小的MEM,記為MEMlow。
⑤ 將MEM=0到MEM=MEMlow時刻之間,可靠性最小的數值更新為MEMlow的可靠性。
通過可靠性更新算法之后,可以獲得狀態節點Si的可靠性度量值。結合路徑回溯的硬判決結果與狀態節點的可靠性數值,就可以得到譯碼器所需要的軟信息結果。
2.3.1 傾斜相位算法
傾斜相位算法可以通過引入參考相位的手段將相位樹從時變轉化為非時變的形式,并且在無性能損失的前提下可以實現網格狀態數減半。
在式(2)中,φ(t;a)的相位定義在實數域上,而考慮真實的物理相位,相位差為2π整數倍的相位是不能被區分的,所以對φ(t;a)進行如下處理:
(14)

在Multi-h CPM中,信號的相位轉移既與傳輸的信息有關,也與當前時刻有關,增加了信號解調的復雜度。為了解決此問題,使用單極性符號Un取代雙極性符號an,其轉換公式為:
(15)
使用單極性符號后,令第n個符號間隔內的時間t=τ+nT,信號相位可以重新表示為:
(16)
對式(16)的相位進行模2π,可以得到:
(17)

(18)

(19)
沒有進行符號映射前,Multi-h CPM的信號相位是模2P。通過TP算法對信號的相位坐標系進行轉換后,信號相位從模2P變成了模P。在進行Viterbi解調時,相位狀態數降低為原來的1/2,可以有效地降低Viterbi解調的計算復雜度。由于TP算法只是通過坐標系變換重新映射了信號相位,因此不會影響到Multi-h CPM接收機的系統性能。
2.3.2 頻率脈沖響應截斷算法
針對部分響應Multi-h CPM信號,可以采用頻率脈沖響應截斷算法降低系統的計算復雜度。對于部分響應信號的CPM信號,由于其頻率脈沖兩端的幅度較小,對信號相位的影響可以忽略,因此考慮對頻率脈沖響應曲線進行截斷,去掉低能量部分,等效的降低了信號的相關長度L。
假設Multi-h CPM的調制參數M=4,L=3,h={5/16,6/16},其 FPT算法截斷方式如圖3所示。Multi-h CPM信號的頻率脈沖響應函數在0T~0.5T和2.5T~3T這兩個區間取值設置為0。由于其0.5T~2.5T區間內的能量占據了總能量的95%左右,因此通過截取頻率脈沖響應,可以在僅損失少量信號能量的同時,有效降低響應長度。

(a) 頻率脈沖響應

(b) 截斷后的頻率脈沖響應

(c) 相位脈沖響應

(d) 截斷后的相位脈沖響應圖3 頻率脈沖響應截斷算法示意圖Fig.3 Frequency pulse truncation algorithm
檢測區間發生變化后,Multi-h CPM的匹配濾波器構造如下:
(20)
使用了FPT算法之后,由于降低了響應長度L,Viterbi解調的網格狀態數也降低為原來的1/M,從而有效降低了解調器的資源開銷。但是不同于TP算法,FPT算法本質上是一個近似方法,會帶來一定的串擾導致系統性能發生損失,不過其損失較小,對系統的影響可以忽略不計。
2.4.1 定時同步算法
式(9)中,接收信號僅考慮噪聲的影響,但在實際系統中,接收信號存在鏈路衰減、鏈路延遲和多普勒頻偏等,因此實際的接收信號重新寫作:
r(t)=Aej(2π(fc+Δf)(t-τ(t))+φ(t-τ(t);a))+n0(t),
(21)
式中:A是信號幅度,fc是中頻頻率,Δf是多普勒頻移,τ(t)是鏈路延遲。因此接收機在進行Multi-h CPM信號解調時,需要保證接收機的本地信號和接收信號的時頻同步。
假設僅存在定時偏差而不存在頻率偏差時,Viterbi解調的累計度量值可以表示為:
(22)

圖4給出了Multi-h CPM信號中定時誤差對Viterbi解調的累計度量值的影響。可以看出,當接收機存在定時偏差時,Viterbi解調的累計度量值將會降低。利用該特點,可以采用超前-滯后門結構進行Multi-h CPM的定時同步。
超前支路信號rE和滯后支路信號rL可以表示為:
(23)
在[-0.5T,0.5T),超前支路累計度量值λE及滯后支路累計度量值λL相對于定時誤差表現為凸函數,利用該特點可設計定時歸一化度量值β來衡量超前支路累計度量值及滯后支路累計度量值的差值,其計算公式為:
(24)
當Multi-h CPM的調制參數確定后,定時歸一化度量值β相對歸一化定時誤差Δt/T的曲線是固定的。從圖5中可以看出,在[-0.5T,0.5T),定時歸一化度量值β(Δt)與定時誤差Δt近似成線性關系,在設計中作為定時誤差估計曲線使用。基于上述曲線,在計算獲取了超前支路累計度量值λE及滯后支路累計度量值λL后,通過計算定時歸一化度量值,對照定時誤差曲線,即可獲得Multi-h CPM接收機的定時誤差,修正定時誤差即可完成定時同步。
2.4.2 頻率同步算法
假設僅存在頻率偏差而不存在定時偏差時,Viterbi解調的度量值可以表示為:
(25)
頻率誤差與累計度量值的關系圖如圖6所示,可以看出,當接收機存在頻率誤差時,累計度量值將會降低。與定時同步類似,可以采用升降頻門結構進行頻率同步。

圖6 頻率誤差與累計度量值的關系圖Fig.6 Effect of frequency error on metric values
升頻支路的信號rU可以表示為:
(26)
降頻支路的信號rD可以表示為:
(27)
對升頻支路和降頻支路的累計度量值進行歸一化,可以得到頻率歸一化度量值:
(28)
當Multi-h CPM的數據速率為50 Mbit/s時,接收機的載波頻率誤差Δf對累計度量值的影響在[-80 kHz,80 kHz]呈現為凸函數,通過上述歸一化設計后可以獲取頻率度量曲線,如圖7所示。計算頻率歸一化度量值β(Δf),可以通過其曲線獲取接收機的頻率誤差,修正頻率誤差即可完成頻率同步。

圖7 歸一化頻率誤差曲線圖Fig.7 Normalized frequency error curve
整個Multi-h CPM接收機整體結構如圖8所示。接收機主要包括了信號預處理模塊、SOVA解調模塊、定時同步模塊和頻率同步模塊。

圖8 Multi-h CPM接收機整體框圖Fig.8 System block diagram of the Multi-h CPM receiver
信號預處理模塊主要完成信號的預處理操作,包括對接收的中頻信號進行去載波、為定時同步模塊生成超前-滯后信號以及為頻率同步模塊生成升降頻信號等操作。
SOVA解調模塊主要完成Multi-h CPM的解調并生成軟信息。整個SOVA過程中需要完成度量值計算、加比選以及路徑回溯等操作。
定時同步主要修正接收機的定時誤差,需要計算超前支路和滯后支路的累計度量值并且獲取定時同步的誤差值。
頻率同步主要修正接收機的頻率誤差,需要計算升頻支路和降頻支路的累計度量值并且獲取頻率同步的誤差值。
接收機從ADC處獲取到高速中頻數據流之后,首先對信號進行去載波操作,將信號從中頻信號轉為基帶信號。降頻處理由DDS載波生成器和FIR低通濾波器構成,其中DDS生成載波的具體數值由頻率控制字決定,其計算公式為:

(29)
式中:fCLK為接收機主頻,fIF為中頻信號頻率。為了保證DDS生成的信號頻率精度,采用了32 bit的頻率控制字,可以保證接收機生成的正弦信號頻率誤差小于0.1 Hz。
同樣,升頻支路和降頻支路的信號也是通過DDS和FIR濾波器生成,通過更改頻率控制字即可生成所需的不同頻率信號。
對于超前支路和滯后支路的信號,通過對ADC的數據流進行延遲操作得到。未延遲的信號作為超前支路信號,延遲一次的信號作為正常的接收信號,而延遲兩次的信號作為滯后支路信號。
如圖9所示,SOVA解調模塊在接收到預處理模塊的基帶Multi-h CPM信號后進行信號解調,并且根據整個解調算法的處理步驟,可以細分為分支度量值計算單元、加比選單元、路徑回溯單元和控制單元。

圖9 SOVA解調示意圖Fig.9 SOVA demodulator
控制單元為分支度量計算單元、加比選單元和路徑回溯單元提供調制參數信息,并且對3個模塊進行流程控制和協調,保證輸入的基帶信號可以以流水線形式完成數據處理。
分支度量計算單元接收前級預處理模塊輸入的I、Q兩路基帶信號與控制單元輸入的調制參數信息。分支度量計算單元根據調制參數確定本地信號的生成,并且由內置的符號計時器計時確定當前的調制指數h。在得到相關的信息之后生成接收機本地信號,然后通過矩陣乘法完成分支度量的計算,將分支度量矩陣的結果輸入到加比選單元。
加比選單元接收到分支度量計算單元不同狀態下各個支路的分支度量值之后,通過控制單元輸入調制指數信息,確定加比選的執行邏輯。加比選單元會在每個狀態前一個符號周期存儲的累計度量值的基礎上,由當前的調制指數選擇該狀態所對應的分支度量值矩陣的分支,并將前一狀態的累計度量值與對應的分支度量值相加,計算得到的新的分支度量值,并取度量值最大的路徑作為幸存路徑,次大的路徑作為競爭路徑,并將兩個路徑的信息輸入到路徑回溯單元。
路徑回溯單元根據幸存路徑的路徑編號回溯度量值矩陣,并且根據回溯過程的各個狀態確定解調的硬判決結果。此外,路徑回溯單元利用幸存路徑和競爭路徑的累計度量值和比特硬判決結果,更新內部可靠性度量矩陣。完成路徑回溯后,獲取當前時刻累計度量值最大的狀態和狀態對應的可靠性度量,計算其對數似然比并作為最終軟信息結果。
3.3.1 分支度量計算單元
分支度量計算單元的基本結構如圖10所示。SOVA解調控制單元輸入的調制參數信息,一方面,輸入到修正參數計算器中,控制傾斜相位修正ROM地址,從本地存儲的傾斜相位ROM中讀取對應的傾斜值,與輸入的I、Q兩路信號進行復乘從而獲取對應的經TP處理后的I、Q路信號。另一方面,調制參數輸入到本地濾波器地址控制器中,經過地址控制器的計算后轉換為本地濾波器地址,本地濾波器地址從本地濾波器ROM陣列中讀取形成所有匹配濾波器對應的接收機本地信號。本地信號與經過TP處理的I、Q基帶信號進行并行相關,即可得到SOVA解調的分支度量值。

圖10 分支度量計算單元示意圖Fig.10 Branch metrics computing unit
并行相關器是分支度量計算單元的核心。以Multi-h CPM的調制參數M=4,L=3,h={5/16,6/16}為例,為了提高解調器的數據處理能力,在進行分支度量計算時需要對所有狀態下的所有分支進行并行計算。即使采用了TP算法和FPT算法,Multi-h CPM依舊存在64個網格狀態,256路分支路徑,完全并行計算需要消耗大量的計算資源。為了簡化并行相關器的計算復雜度,將整個相關運算拆解為接收信號復乘16組本地信號和對復乘結果進行兩級相位旋轉修正兩個步驟完成。
考慮到對于單一復數a+bi,對其進行角度為π/2、π和3π/2的相位旋轉后得到的結果分別為b-ai、-a-bi和-b+ai。在256路分支路徑計算過程中,存在周期為4的相位旋轉角度為π/2整數倍的情況,因此通過計算其中64路的分支路徑結果,就可以得到所有的256路分支度量值。而在進行64路分支度量值的計算過程中,可以再一次利用相位旋轉的思想進一步簡化計算量。假設所有本地信號的初相為0,64路本地信號就可以進一步被簡化成16路信號,計算得到16路相關值后,對相關結果乘以π/8、π/4和3π/8的信號相位,可獲得剩余的48路相關結果。整個并行相關器的硬件實現架構如圖11所示。

圖11 并行相關器示意圖Fig.11 Parallel correlator
不利用分支度量的相位旋轉,需要同時并行256路復數乘法器。采用了相位旋轉之后,只需要消耗16個復數乘法器和48個CODIC旋轉器,就可以有效降低整體的資源消耗。同理,經過了分支度量單元之后,輸入信號數率從采樣速率降低到了符號速率,也降低了后級模塊的數據處理壓力。
3.3.2 加比選單元
加比選單元主要完成對各個狀態下所有分支路徑的度量值累加、比較和選擇。來自控制模塊的調制參數輸入映射表中,確定來自分支度量計算單元生成的分支度量結果的具體映射方案。
整個加比選單元的硬件結構如圖12所示。加比選單元中的狀態分支度量映射實際是一個分選器,根據當前時刻每個狀態的來源路徑將所有的分支度量值映射至不同的狀態中,即256路分支度量值每4個一組對應到Viterbi解調的64狀態下。64個不同的狀態都會從公用的累計度量值存儲陣列中獲取其對應的前一時刻累計度量值,隨后利用其私有的加法器將分支度量值與前一時刻累計度量值相加得到4個累計度量值。4個累計度量值通過一個選擇器,取其中最大的度量值作為當前時刻幸存路徑的累計度量值,并將最大度量值所對應的路徑記錄為幸存路徑,次大的累計度量值作為當前時刻競爭路徑的累計度量值,其所對應的路徑為競爭路徑。

圖12 加比選單元示意圖Fig.12 Add-compare-select unit
在本單元的設計中,其所處理的數據速率遠低于分支度量計算單元的數據速率,因此相比于分支度量計算單元需要全并行計算,加比選單元可以采用串并結合的方式完成計算,有效降低FPGA資源消耗。
3.3.3 路徑回溯單元
路徑回溯單元中存儲有每個狀態對應的可靠性度量矩陣。取SOVA的回溯長度為10,則每個狀態均需要存儲大小為10×4=40的可靠性度量矩陣。為了保證路徑回溯的處理能力,10路路徑回溯是并行處理。
整個路徑回溯單位的硬件架構如圖13所示。輸入的路徑度量值會首先會通過緩存比較器選出累計度量值最大和次大的狀態。之后根據幸存路徑和競爭路徑的編號值,控制回溯地址從緩存陣列中獲取前一時刻的度量值進行路徑回溯,并且在回溯的同時要計算當前狀態下的可靠性,將可靠性數據存儲在可靠性度量矩陣之中。在計算可靠性數據的同時還需要對幸存路徑和競爭路徑下的解調比特結果進行判決,當幸存路徑和競爭路徑的硬判決比特結果不同時,對可靠性數值進行更新。

圖13 路徑回溯單元示意圖Fig.13 Traceback unit
當回溯完成后,由于可靠性度量值矩陣中存儲的是M進制符號的可靠性,還需要進行解映射操作,計算信息比特的對數似然比信息,才能得到最終的軟信息結果。
時頻同步模塊的具體結構如圖14所示。整個時頻同步過程包含了4個簡化的前向Viterbi計算,信號預處理模塊產生的超前-滯后信號和升降頻信號,通過前文所述的分支度量計算單元和加比選單元,分別計算超前支路、滯后支路、升頻支路和降頻支路的累計度量值。計算獲得累計度量值之后,不同于SOVA解調需要進行路徑回溯,在升降頻模塊中僅需要計算各個支路的累計度量值的最大值。

圖14 時頻同步模塊示意圖Fig.14 Time and frequency synchronizer
將超前支路和滯后支路的最大值送入到歸一化模塊中,計算得到定時歸一化度量值,通過定時誤差鑒相器得到接收機的定時誤差。定時誤差鑒相器本質上是一個查找表的ROM,其定時歸一化度量值即為查找表的數據地址,根據不同的歸一化度量值從ROM中獲取定時誤差。考慮到接收機數據存在噪聲,直接計算得到的定時誤差數值波動較大,因此通過一個環路濾波器,提高系統抗干擾能力。
頻率同步與定時同步類似,根據升頻支路和降頻支路的累計度量最大值,獲取頻率誤差結果。獲取到定時誤差和頻率誤差結果之后,將誤差值反饋到信號預處理模塊,修正定時誤差和頻率誤差,完成接收機的時頻同步。
本文在FPGA硬件板卡對Multi-h CPM接收機的性能進行了測試。選取Multi-h CPM的信息速率為50 Mbit/s,調制進制M=4,關聯長度L=3,采用的調制指數集h={5/16,6/16},并且在進行SOVA解調時,一次處理的數據塊包含了20個數據符號。通過FPGA內部的集成邏輯分析儀(Integrated Logic Analyzer,ILA)抓取FPGA內部的數據運行結果,進行結果分析。
由圖15可以看出,在初始的定時誤差設置為0.25T的情況下,硬件系統可以在200個符號內完成定時同步的跟蹤與鎖定,且最終定時誤差穩定在0附近,證明定時誤差得到了修正。同時可觀察到,在定時跟蹤前期由于起始相位越界,同步過程中出現了波動,但后續狀態穩定后沒有發生類似的情況,證明FPGA環路能夠實現穩定的定時跟蹤。

(a) 符號速率同步過程

(b) 定時誤差修正值圖15 定時同步結果圖Fig.15 Timing synchronization results
由圖16可以看出,在初始的頻率誤差設置為150 kHz的情況下,硬件系統可以在200個符號內完成頻率同步的跟蹤與鎖定,且最終頻率誤差穩定在0附近,證明頻率定時誤差得到了修正。同時可知,在頻率跟蹤過程中存在過沖,但過沖的幅度不大,信號載波頻率波動較小,并且環路穩定后沒有發生類似的情況,證明FPGA環路能夠實現穩定的頻率跟蹤。

(a) 本地載波頻率同步過程

(b) 頻率誤差修正值圖16 頻率同步結果圖Fig.16 Frequency synchronization results
在測試環境中追加150 kHz的多普勒頻移和50 kHz/s的動態多普勒變化率,測試整個接收機系統在高動態多普勒環境下的解調能力。從圖17的BER曲線可以確認定時和頻率同步環路可以正常工作,沒有發生定時或者頻率同步環路失鎖的情況,即使在低信噪比情況下,定時同步和頻率同步依舊可以穩定跟蹤時頻誤差。

圖17 誤碼率曲線Fig.17 BER curve
由圖17可以看出,相比在Matlab軟件中理想同步情況下的浮點仿真,基于FPGA平臺搭建Multi-h CPM解調系統后,誤碼率性能存在一定的劣化。在無多普勒情況下,BER=10-5時的劣化程度約達0.45 dB。該劣化一方面來源于FPGA內部的定點量化損失,另一方面來源于定時同步損失。在高動態多普勒情況下,取BER=10-5為基準進行觀察,接收機的實測性能損失從無多普勒頻偏情況下的約0.45 dB提升至了1.2 dB,但該性能損失在實際系統中可以接受。
本文分析了Multi-h CPM調制解調原理和時頻同步方案,設計了基于FPGA平臺的Multi-h CPM接收機架構。針對Multi-h CPM接收機復雜度較高的問題,通過采用TP算法和FPT算法簡化了Viterbi網格狀態數,并且在FPGA中利用角度重映射思路,通過使用CODIC IP核代替了大量的復數乘法器,降低了系統的資源開銷,保證了解調系統可以在FPGA實現高并行處理,提高了系統吞吐率。
本文通過ILA驗證了程序在FPGA內部執行的穩定性和可靠性,結果表明本文設計的接收機架構在高動態多普勒環境下可以穩定實現時頻同步功能,并且接收機的性能損失較小,具有良好的應用前景。