基于FPGA的部分響應CPM信號解調(diào)器的設計
在現(xiàn)有的民用、軍用通信系統(tǒng)的眾多應用領域中,為了實現(xiàn)高速率數(shù)據(jù)傳輸,提高頻譜利用率,必須采用帶寬效率更高的編碼、調(diào)制技術(shù)。在眾多的調(diào)制方式中,連續(xù)相位調(diào)制信號(CPM 信號)具有恒包絡特性,它用于承載信息的相位軌跡連續(xù)變化,因此該類信號擁有較高的帶寬效率?;贑PM信號的恒包絡、帶寬緊湊和能量利用率高等優(yōu)點,近幾年來,它受到廣泛的研究與應用。
文中分析了二進制,部分響應L=2 的連續(xù)相位調(diào)制方式,提出了一種該調(diào)制方式下解調(diào)器的FPGA 設計方法,并運用VHDL 硬件描述語言實現(xiàn)。
1 CPM 的基本原理
連續(xù)相位調(diào)制信號可以用式(1)表示:
式(1)中, b E 表示信號的碼元能量,T 是碼元間隔,即表示信號幅度。c f 是載波頻率,φ (t, I )是帶有傳輸信息的信號相位函數(shù),其中I 表示發(fā)生的符號序列。φ (t, I )的表達式如下:
其中n I 是M (M = 2,4,8,16……) 進制的符號信息,取值為{±1,±3,……,±(M -1)}。文中M 為二進制調(diào)制, n I 的取值為+1、-1。h 是調(diào)制指數(shù),g(t)是成形脈沖函數(shù)。脈沖函數(shù)g(t)采用升余弦脈沖RC:
式(3)中, L 又稱為關聯(lián)長度。
根據(jù)式(2)計算CPM 信號的基帶相位,根據(jù)相位計算基帶信號的I/Q 兩路,之后使用兩路信號相加就可以得到調(diào)制后的CPM 信號,見圖1。
圖1 CPM 信號調(diào)制
2 CPM 解調(diào)模塊的原理及其實現(xiàn)
2.1 解調(diào)器實現(xiàn)原理
對CPM 信號的接收、解調(diào),常采取的步驟為:解調(diào)-最大似然序列估計-Viterbi 譯碼-判決。首先將接收到的復包絡信號分為I,Q兩路,下變頻為基帶信號,分別與cos(ψ (t, a))和sin(ψ (t, a))相關后相加,從而得到節(jié)點的度量值。對于t時刻每個狀態(tài),可以根據(jù)其輸入值的不同,計算來自前一級節(jié)點的兩條路徑的路徑度量,并分別加上前一級節(jié)點的節(jié)點度量,然后從中選擇一個最小的度量值作為節(jié)點度量,并存儲前一級節(jié)點的信息。
2.2 解調(diào)器實現(xiàn)框圖
這里仿真采用二進制2RC 的調(diào)制方式,根據(jù)Viterbi 譯碼方式可知,調(diào)制信號共有8 個狀態(tài),將這些狀態(tài)分別編碼為000,001,010,011,100,101,110,111。輸入數(shù)據(jù)與狀態(tài)間轉(zhuǎn)移關系見表1。筆者在設計中將其分為四個模塊:分支度量模塊、加比選模塊、回溯模塊和控制模塊。其結(jié)構(gòu)設計如圖2 所示。
圖2 解調(diào)過程
(1)分支度量模塊
此模塊根據(jù)輸入數(shù)據(jù)計算分支度量值。在FPGA設計中,預先將每種基準狀態(tài)抽樣時刻的值存入STD 寄存器中,在計算分支度量時通過查表得到基準狀態(tài)的值。將輸入I,Q 兩路數(shù)據(jù)進行串/并轉(zhuǎn)換,得到一個碼元持續(xù)時間內(nèi)的調(diào)制信號后,與每種基準狀態(tài)的抽樣值相乘并相加,從而得到I,Q 兩路的路徑度量值。最后將I,Q 兩路度量值相加,便可以得到各狀態(tài)的分支度量值。
?。?)加比選ACS 模塊
此模塊分為兩部分:①計算路徑度量值;②選擇當前時刻最佳路徑。當前狀態(tài)的路徑度量值為該狀態(tài)下所有可能的路徑度量值中的最大值。最佳路徑為最大路徑度量值對應的上一狀態(tài)。在設計中采用確定CPM 調(diào)制的起始狀態(tài)的方法。
復位時將起始狀態(tài)的路徑度量值賦值為0;將其他狀態(tài)的路徑度量值賦值為一個較小的負數(shù)。采用這種方式有效避免解調(diào)時起始狀態(tài)的不確定性。
CPM 的解調(diào)在一定的譯碼數(shù)量后,路徑度量值的存儲器便會飽和溢出。該設計采用一種簡單方法防止溢出:每次路徑度量值計算完成后,判斷其最大值,如果最大值超過某一確定的正值,則所有的路徑度量值減去一個正值。再判斷是否有度量值小于一個確定的負數(shù),如果有,則將其值重新賦值為一個較小的負數(shù)。仿真中,證明了這種方法的可行性。
表1 輸入數(shù)據(jù)與狀態(tài)間轉(zhuǎn)移關系
?。?)回溯模塊
此模塊包括幸存路徑存儲和判決輸出。在模塊中比較當前時刻各狀態(tài)的路徑度量值,求得最大路徑度量值,以及對應的當前狀態(tài)。從表1 可知,狀態(tài)的最低位可以表現(xiàn)上一時刻的輸入值,最低位為0 時,表示上一時刻的輸入碼字為-1;最低位為1 時表示上一時刻的輸入碼字為1。
3 硬件實現(xiàn)、時序仿真和性能
這里選擇的FPGA 是Xilinx 公司的Virtex5 系列的XC5VSX95T 芯片,設計軟件為ISE, Synplify, Modelsim,Matlab,設計語言采用VHDL 硬件描述語言。
仿真中選擇二進制,關聯(lián)長度L 取2,升余弦脈沖的調(diào)制方式。仿真中波特率為5 MHz, 采用8 倍采樣,系統(tǒng)時鐘為120 MHz。假設輸入到調(diào)制器的雙極性比特流為{ } n b :1,1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1……分支度量仿真結(jié)果如圖3 所示。
圖3 分支度量仿真結(jié)果
加比選模塊仿真結(jié)果如圖4 所示。
圖4 加比選模塊仿真結(jié)果
幸存路徑存儲和判決輸出模塊仿真結(jié)果如圖5 所示。
圖5 幸存路徑存儲和判決輸出模塊仿真結(jié)果
譯碼碼字:1,1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1……當調(diào)制信號不加高斯白噪聲時,實現(xiàn)了誤碼率為0 的解調(diào)。仿真結(jié)果表明這里所設計的性能達到設計的要求。
4 結(jié)語
文中主要設計了該二進制2RC CPM 信號基于FPGA 的解調(diào)器。該方法針對Viterb 譯碼方法,提出了一種新的防止路徑度量值溢出方法。該設計的優(yōu)點是:幸存路徑存儲器中存入的只是路徑信息,不需要存儲路徑度量值,節(jié)省了存儲空間;當譯碼輸出時只需要讀出最大路徑度量值的狀態(tài)所對應的幸存路徑存儲單元的最低位狀態(tài)值,提高了譯碼速度。該方法有效地防止路徑度量值溢出。