康 超,陳麗婷,陳建斌
(上海航天電子技術(shù)研究所,上海 201109)
GMSK信號(hào)[1]的調(diào)制指數(shù)為0.5,相位連續(xù),可以理解為一種特殊的FSK信號(hào)。GMSK的基帶信號(hào)經(jīng)高斯濾波后提高了頻帶利用率但同時(shí)也引入了碼間干擾。本文采用通用數(shù)字環(huán)+Viterbi算法完成GMSK信號(hào)的相干解調(diào)。
文獻(xiàn)[2-4]指出,存在碼間干擾時(shí)使用最佳似然準(zhǔn)則(MLSE)可以達(dá)到最佳譯碼性能,通常選擇用Viterbi算法[5]實(shí)現(xiàn)GMSK信號(hào)解調(diào)來(lái)提升接收靈敏度。Viterbi算法對(duì)載波環(huán)的相位誤差要求較高,本文通過(guò)Matlab仿真得出相位誤差要求控制在6°。文獻(xiàn)[6-8]分析了GMSK相干解調(diào)載波同步的方法和性能,文獻(xiàn)[9]的通用數(shù)字環(huán)是一種適于數(shù)字化處理的低運(yùn)算量鎖相環(huán),性能可以滿足Viterbi算法的要求。
Viterbi算法基于最大似然準(zhǔn)則選取路徑度量最大的匹配路徑進(jìn)行回溯譯碼,需要大量的匹配濾波器,會(huì)導(dǎo)致硬件資源消耗過(guò)多甚至不夠。此外路徑度量值LS隨著算法的持續(xù)運(yùn)算是個(gè)發(fā)散的無(wú)窮大數(shù),在工程實(shí)現(xiàn)時(shí)無(wú)法處理。本文針對(duì)以上2個(gè)問(wèn)題進(jìn)行了研究并提出了解決方法。利用GMSK信號(hào)特點(diǎn)和三角函數(shù)特性減少了3/4的匹配濾波器數(shù)量,對(duì)Viterbi算法解調(diào)過(guò)程進(jìn)行分析提出了LS減操作處理方法,使LS收斂在460附近,使GMSK的Viterbi算法解調(diào)可以在FPGA上實(shí)現(xiàn)。
GMSK信號(hào)可以表示為[10]:
(1)
(2)
式中,αi為+1或-1的發(fā)送碼元序列;調(diào)制指數(shù)h=0.5;q(t)是一個(gè)相位脈沖相位函數(shù)。文獻(xiàn)[11]指出了BT(B為高斯濾波器3 dB帶寬)值越小,GMSK信號(hào)帶寬越窄,但碼間干擾也越嚴(yán)重。當(dāng)BT值趨近于無(wú)窮大時(shí)相當(dāng)于沒(méi)有經(jīng)過(guò)高斯整形,GMSK信號(hào)成為MSK信號(hào)。文獻(xiàn)[12]指出GMSK信號(hào)的波形主要集中在(-2.5T~2.5T)中,因此本文截取5個(gè)碼元長(zhǎng)度,即關(guān)聯(lián)長(zhǎng)度L=5。
文獻(xiàn)[13]指出了不同BT值下GMSK信號(hào)的功率譜能量分布情況,在BT=0.25時(shí)GMSK信號(hào)的99.8%的能力集中在1.09Rb,即11 MHz帶寬內(nèi)。本文使用Matlab仿真得到不同BT值下GMSK信號(hào)的解調(diào)性能如表1所示。綜合考慮頻帶利用率和解調(diào)性能,本文選擇BT=0.25。
表1 不同BT值GMSK信號(hào)解調(diào)性能
BT誤碼率9.4?10-5時(shí)Eb/N0值/dB0.209.40.259.00.508.7∞8.7
式(2)可展開為[14-15]:
(3)
(4)
文獻(xiàn)[16-17]指出GMSK的相位狀態(tài)僅有0、π/2、π和3π/2四種取值,由式(4)可以看出Sn+1狀態(tài)唯一增加的信息就是輸入碼源an。本文的關(guān)聯(lián)長(zhǎng)度L=5,因此可以列出64個(gè)節(jié)點(diǎn)狀S1=(0,0000),S2=(0,0001),……S17=(π/2,0000),S18=(π/2,0001),……S33=(π,0000),S34=(π,0001),……S49=(3π/2,0000),S50=(3π/2,0001) ……S63=(3π/2,1110),S64=(3π/2,1111)。依次可以畫出任意碼源的GMSK信號(hào)狀態(tài)轉(zhuǎn)移路徑圖,例如在初向?yàn)?時(shí)碼源0100110101的狀態(tài)轉(zhuǎn)移路徑為S1>S49>S34>S19>S5>S57>S2>S51>S38>S27>S38。
對(duì)于任意碼源序列的GMSK信號(hào)都會(huì)有一條狀態(tài)轉(zhuǎn)移路徑與之匹配,基于Viterbi算法的GMSK信號(hào)解調(diào)就是一種順序網(wǎng)格搜索算法實(shí)現(xiàn)最大似然解調(diào)。GMSK信號(hào)任一節(jié)點(diǎn)在下一個(gè)碼源周期只有2個(gè)對(duì)應(yīng)的路徑終點(diǎn),因此對(duì)于關(guān)聯(lián)長(zhǎng)度L=5的GMSK信號(hào)共有128條路徑。Viterbi算法將接收信號(hào)r(t)分別與128條可能路徑信號(hào)s(t)進(jìn)行相關(guān)運(yùn)算等到128個(gè)路徑度量增量A(Si→Sj)。將每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的2條路徑的A(Si→Sj)與前一碼源周期的該節(jié)點(diǎn)的路徑度量LSi相加,取大的作為當(dāng)前時(shí)刻的路徑度量LSj。在每個(gè)碼源周期都按上述方法計(jì)算64個(gè)節(jié)點(diǎn)的LS值,取LS中最大節(jié)點(diǎn)的狀態(tài)轉(zhuǎn)移路徑作為匹配路徑,對(duì)匹配路徑進(jìn)行回溯便可得到碼源信息完成GMSK信號(hào)的解調(diào)。匹配路徑的長(zhǎng)度稱為記憶長(zhǎng)度Nt,Nt=9。上文中GMSK信號(hào)關(guān)聯(lián)長(zhǎng)度L=5,因此Viterbi算法回溯解調(diào)后得到的是之前14個(gè)碼源時(shí)刻的信息an-14。路徑度量增量計(jì)算公式為[18]:
(5)
式中,r(t)為接收信號(hào);si→j(t)為本地匹配路徑信號(hào);I(t)和Q(t)為r(t)的正交分量;cosφ(t)和sinφ(t)為si→j(t)的正交分量。
本文采用AD公司的AD9361芯片+Xilinx公司的XC7K160T平臺(tái)實(shí)現(xiàn)GMSK信號(hào)的Viterbi解調(diào)算法。信號(hào)頻率390 MHz,碼速率10 Mbps,AD采樣率50 Mbps,每個(gè)碼源周期內(nèi)有5個(gè)采樣點(diǎn)。AD9361芯片完成GMSK信號(hào)的低噪放、下變頻、增益控制和AD轉(zhuǎn)換,將轉(zhuǎn)換后的I、Q兩路數(shù)據(jù)發(fā)送給FPGA。由于輸出的是I、Q兩路數(shù)據(jù),所以實(shí)際數(shù)據(jù)量為100 Mbps。為了保證信號(hào)完整性,采用雙端數(shù)據(jù)傳輸模式(Double Data Rate),因此AD9361與FPGA的實(shí)際通信速率為200 Mbps。FPGA對(duì)GMSK信號(hào)進(jìn)行載波同步和Viterbi解調(diào),解調(diào)后的碼源信息在進(jìn)行基帶處理后通過(guò)USB口發(fā)送給計(jì)算機(jī)。硬件平臺(tái)實(shí)物如圖1所示。
圖1 硬件平臺(tái)
實(shí)現(xiàn)Viterbi算法的步驟如下[19-20]:
① 按照式(5)計(jì)算128條路徑度量增量A(Si→Sj);
② 計(jì)算64個(gè)節(jié)點(diǎn)的路徑度量LSi:
LSi=max{(LSx+A(Sx→Si)),(LSy+A(Sy→Si)},
(6)
式中,A(Sx→Si)和A(Sy→Si)為到達(dá)i節(jié)點(diǎn)的2條路徑度量增量;LSx和LSy為前一碼源周期節(jié)點(diǎn)X和節(jié)點(diǎn)Y的路徑度量值;
③ 選出當(dāng)前時(shí)刻路徑度量值最大的節(jié)點(diǎn)LSmax=max{LS1,LS2,LS3……LS64};
④ 根據(jù)路徑度量值最大節(jié)點(diǎn)的匹配路徑找出初始節(jié)點(diǎn)回溯出碼源信息an-14;
⑤ 在下一碼源周期重復(fù)步驟①~④。
FPGA實(shí)現(xiàn)Viterbi算法軟件框圖如圖2所示,主要為“加、比、選和譯”4部分。
匹配濾波器:完成“加”功能。本文每個(gè)碼源周期內(nèi)為5個(gè)采樣點(diǎn),按式(5)計(jì)算相當(dāng)于在每一個(gè)碼源周期內(nèi)對(duì)I路和Q路分別進(jìn)行5次乘加操作,可利用FIR濾波器實(shí)現(xiàn)此功能。
圖2 FPGA實(shí)現(xiàn)Viterbi算法軟件
LS計(jì)算及匹配路徑更新:完成“比”功能。緩存上一碼源周期64個(gè)節(jié)點(diǎn)的路徑度量值及匹配路徑,并按照式(6)更新當(dāng)前碼源周期64個(gè)節(jié)點(diǎn)的路徑度量值及匹配路徑。
最大LSi選擇:使用流水操作完成64選1,選出最大的LSmax。同時(shí)選出4個(gè)初始相位節(jié)點(diǎn)的最小LSmin(1~16)、LSmin(17~32)、LSmin(33~48)和LSmin(49~64)用于后續(xù)LS減操作。
回溯解調(diào):根據(jù)LSmax的匹配路徑找到起始節(jié)點(diǎn),根據(jù)起始節(jié)點(diǎn)狀態(tài)完成Viterbi解調(diào)回溯出之前的碼源信息an-14。
3.3.1 匹配濾波器數(shù)量?jī)?yōu)化
需計(jì)算128條匹配路徑A(Si→Sj),所以需要256個(gè)5階FIR濾波器即1 280個(gè)乘法器和1 024個(gè)加法器,耗費(fèi)的FPGA硬件資源過(guò)多,必須進(jìn)行優(yōu)化設(shè)計(jì)否則無(wú)法實(shí)現(xiàn)。
本文利用GMSK信號(hào)只有(0,π/2,π,3π/2)4種初相的特點(diǎn)和三角函數(shù)特性對(duì)本地匹配濾波器數(shù)量進(jìn)行優(yōu)化。對(duì)于任一匹配路徑信號(hào):
si→j(t)=cos{φ0+Δφ(t)}+jsin{φ0+Δφ(t)},
(7)
式中,φ0為初始相位;Δφ(t)為一個(gè)碼源周期內(nèi)相位的變化。三角函數(shù)特性為:
(8)
將式(8)帶入式(7)可以看出,對(duì)初始相位相差π/2的2條匹配波形而言I路相反Q路相同,對(duì)初始相位相差π的2條匹配波形而言I路、Q路都相反。假設(shè)初始相位為0的64條匹配路徑信號(hào)為I′和Q′,根據(jù)式(5)和式(8)便可以得出如表2所示的4個(gè)初始相位下128條匹配路徑A(Si→Sj)的計(jì)算結(jié)果,所以本文最終僅需64個(gè)FIR濾波器,節(jié)省了3/4的FPGA硬件資源。
表2 不同初始相位下計(jì)算結(jié)果
初始相位A(Si→Sj)0∫(n+1)TnTI(t)?I′(t)dt+∫(n+1)TnTQ(t)?Q′(t)dtπ2-∫(n+1)TnTI(t)?I′(t)dt+∫(n+1)TnTQ(t)?Q′(t)dtπ-∫(n+1)TnTI(t)?I′(t)dt-∫(n+1)TnTQ(t)?Q′(t)dt3π2∫(n+1)TnTI(t)?I′(t)dt-∫(n+1)TnTQ(t)?Q′(t)dt
3.3.2 路徑度量LS減操作設(shè)計(jì)
由式(5)可知,與接收信號(hào)完全匹配的A(Si→Sj)值應(yīng)該為5,則理論上每個(gè)碼源周期匹配路徑的LSmax都以5累加下去,是個(gè)發(fā)散的無(wú)窮大數(shù)值,因此必須對(duì)LS進(jìn)行處理減操作處理,否則FPGA無(wú)法實(shí)現(xiàn)。
將64個(gè)節(jié)點(diǎn)的LS值按照初始相位狀態(tài)劃分為4個(gè)范圍:LS(0):LS1~LS16、LS(π/2):LS17~LS32、LS(π):LS33~LS48和LS(3π/2):LS49~LS64。從表2可以看出,初始相位相差π的2條匹配路徑A(Si→Sj)的計(jì)算結(jié)果為相反數(shù),同時(shí)接收信號(hào)的碼源信息中0和1是等概率出現(xiàn)的,因此在一段時(shí)間后初始相位相差π的32個(gè)節(jié)點(diǎn)LS值應(yīng)該是相近的,即LS(0)≈LS(π),LS(π/2)≈LS(3π/2)。初始相位相差π/2的2條匹配路徑因?yàn)檎魂P(guān)系,A(Si→Sj)計(jì)算結(jié)果的絕對(duì)值應(yīng)該是一個(gè)趨于5,另一個(gè)趨于0。在Viterbi算法中與接收信號(hào)匹配節(jié)點(diǎn)的LS始終以趨于5的數(shù)累加,而與接收信號(hào)正交的節(jié)點(diǎn)始終以趨于0的數(shù)累加。因此在一段時(shí)間后初始相位相差π/2的32個(gè)節(jié)點(diǎn)的LS值相差很大,即LS(0)和LS(π)會(huì)遠(yuǎn)遠(yuǎn)大于或者小于LS(π/2)和LS(3π/2)。
節(jié)點(diǎn)間LS值的差距是Viterbi算法解調(diào)的依據(jù),所以在做減操作時(shí)一定要保持好節(jié)點(diǎn)間LS距離否則會(huì)導(dǎo)致誤碼。通過(guò)分析可知LSmax會(huì)遠(yuǎn)大于LSmin,所以簡(jiǎn)單地將所有節(jié)點(diǎn)LS值減去一個(gè)最小值LSmin無(wú)法解決發(fā)散問(wèn)題?,F(xiàn)假設(shè)LS(0)和LS(π)遠(yuǎn)遠(yuǎn)大于LS(π/2)和LS(3π/2),則幸存路徑會(huì)在節(jié)點(diǎn)S1~S16和S33~S48間產(chǎn)生,所以僅需對(duì)這些節(jié)點(diǎn)的LS值減去同一個(gè)較大的數(shù)值便可解決發(fā)散問(wèn)題,同時(shí)又不會(huì)導(dǎo)致誤碼。
本文設(shè)定了閾值A(chǔ)和減操作數(shù)B,若同時(shí)滿足LSmax>A&LSmin(1~16)>B&LSmin(33~48)>B,則節(jié)點(diǎn)LS1~LS16和LS33~LS48都減去B。LS17~LS32和LS49~LS64同此處理方法。按此方法進(jìn)行Matlab建模,在碼源長(zhǎng)度為1×105的情況下,仿真結(jié)果表明LSmax會(huì)收斂在460附近,Viterbi算法解調(diào)正常。
3.3.3 參數(shù)確定
對(duì)Viterbi算法進(jìn)行Matlab建模,使用Simulink搭建GMSK信號(hào)源,在碼源長(zhǎng)度為1×105的情況下,確定了載波環(huán)相位誤差、LS精度和A(Si→Sj)精度參數(shù)要求。
① 載波環(huán)相位誤差要求:在不同相位差和信噪比的情況下,仿真結(jié)果如表3所示。可以看出相位差6°解調(diào)性能惡化1 dB,相位差9°解調(diào)性能惡化2 dB,所以本文要求載波環(huán)相位誤差控制在6°。
表3 不同相位差下解調(diào)結(jié)果
信噪比/dB相位差/(°)誤碼個(gè)數(shù)10 02101870110 92410 5611 9811 6212 92
②LS精度要求:仿真結(jié)果表明最大的LS為
454.907 029 934 009 190,
次大的LS為
454.905 751 877 149 070,
所以LS的精度要求至少為0.001,即不少于10 bit小數(shù)。
③A(Si→Sj)精度要求:仿真結(jié)果表明最大的A(Si→Sj)=4.974 687 266 176 164,次大的A(Si→Sj)= 4.973 404 437 429 079,所以A(Si→Sj)的精度要求為0.000 1(多保留一級(jí)余量),即不少于13 bit小數(shù)。
本文使用RS信號(hào)源SMW200A測(cè)試工程實(shí)現(xiàn)Viterbi算法的解調(diào)所需信噪比Eb/N0。信號(hào)源頻率390 MHz,信號(hào)強(qiáng)度設(shè)置為-40 dBm,高斯白噪聲帶寬設(shè)置12 MHz,80 Byte偽隨機(jī)碼本循環(huán)發(fā)送,測(cè)試結(jié)果表明當(dāng)誤碼率為9.4×10-5時(shí)Eb/N0=9.5 dB。
從表1中可看出同等量級(jí)誤碼率下Eb/N0理論值為9 dB,工程實(shí)現(xiàn)結(jié)果僅比理論值惡化0.5 dB。上文提到BT=0.25時(shí)GMSK信號(hào)的99.8%的能力集中在1.09 Rb即11 MHz帶寬內(nèi),而本文測(cè)試時(shí)為匹配工程實(shí)現(xiàn)射頻前端模擬濾波器的帶寬將高斯噪聲帶寬設(shè)置為12 MHz,所以帶內(nèi)噪聲要大于表1中理論仿真時(shí)信號(hào)噪聲等帶寬的情況。AD9361在對(duì)GMSK信號(hào)進(jìn)行低噪放和增益控制時(shí)芯片自身熱噪聲也會(huì)使信號(hào)信噪比惡化,同時(shí)印制板走線和FPGA定點(diǎn)等造成的解調(diào)損耗也會(huì)影響解調(diào)性能。綜上所述,工程實(shí)現(xiàn)結(jié)果僅比理論值惡化0.5 dB,表明本文充分發(fā)揮了Viterbi算法的最佳譯碼性能。
在同一硬件平臺(tái)測(cè)試10 Mbps碼速率下(信號(hào)帶寬為17 MHz)FSK信號(hào)解調(diào)性能,未采用多符號(hào)檢測(cè)技術(shù)(MSD)時(shí)Eb/N0為12.6 dB,采用MSD技術(shù)時(shí)Eb/N0為8 dB。說(shuō)明在同樣使用最佳似然準(zhǔn)則的情況下,F(xiàn)SK信號(hào)接收靈敏度要優(yōu)于GMSK信號(hào)。
對(duì)基于Viterbi算法的GMSK信號(hào)解調(diào)進(jìn)行了研究并在FPGA上實(shí)現(xiàn)。針對(duì)所需匹配濾波器過(guò)多問(wèn)題進(jìn)行了優(yōu)化設(shè)計(jì),利用GMSK信號(hào)特點(diǎn)和三角函數(shù)特性將匹配濾波器數(shù)量由256個(gè)降為64個(gè)。針對(duì)路徑度量LS發(fā)散FPGA無(wú)法處理問(wèn)題,對(duì)Viterbi算法解調(diào)過(guò)程進(jìn)行分析,提出了LS減操作處理方法,使LS收斂在460附近。
工程實(shí)測(cè)解調(diào)信噪比Eb/N0=9.5 dB,在噪聲帶寬大于理論分析值和AD9361芯片自身熱噪聲等影響下僅比理論值惡化0.5 dB,充分發(fā)揮了Viterbi算法的最佳譯碼性能。與未使用多符號(hào)檢測(cè)技術(shù)的FSK體制相比,通信帶寬節(jié)省了5 MHz同時(shí)提升了3 dB接收靈敏度。
[1] MUROTAK,HIRADE K.GMSK Modulation for Digital Mobile Radio Telephone[J].IEEE Trans.on Commun,1981,COM-29(7):1044-1050.
[2] OHNO K,ADACHI F.Application of MLSE to GMSK Signal Reception Using Frequency Demodulator[J].Electronics Letters,1988,24(25):1539-1540.
[3] TUNG C,LIVINGSTON J N.Vierbi Detector for Narrow-band Digital FM with Limiter-discriminator Detection[C].Communications Theory Mini-conference Record,1994:201-205.
[4] PFONSEKA J P.Noncoherent Detection with Viterbi Decoding for GMSK Signals[J].IEEE Proceeding Communications,1996,143(6):373-379.
[5] FOMEY G D.The Viterbi Algorithm[J].Proceedings of the IEEE,1973,461(3):268-278.
[6] 熊于菽.GMSK調(diào)制解調(diào)技術(shù)研究[D].重慶:重慶大學(xué),2007:30-31.
[7] 孫仁琦,陳文萍.一種新的MSK調(diào)制解調(diào)器的設(shè)計(jì)及實(shí)現(xiàn)[J].南京郵電大學(xué)學(xué)報(bào),1991(7):1-3.
[8] WUY C,NG T S.New Implementation of a GMSK Demodulator in Linear Software Radio Receiver[J].IEEE Pimrc,2000:1049-1053.
[9] 張宗攀,秦玉峰.一種全數(shù)字GMSK解調(diào)方法[J].空間電子技術(shù),2011(2):50-53.
[10] 張力軍.數(shù)字通信[M].北京:電子工業(yè)出版社,2003:151-157.
[11] 陳志堂.全數(shù)字GMSK調(diào)制器的仿真與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2011:6-7.
[12] 漆剛.小BT參數(shù)突發(fā)GMSK信號(hào)解調(diào)技術(shù)研究[D].綿陽(yáng):中國(guó)工程物理研究院,2013:15-17.
[13] 張邦寧.GMSK信號(hào)相干解調(diào)和載波同步方法[J].衛(wèi)星與微波通信,1998(2):34-39.
[14] 曾佐琪,李贊,王新梅.基于Viterbi算法的GMSK信號(hào)解調(diào)性能分析與仿真[J].重慶郵電大學(xué)學(xué)報(bào),2007(20):132-138.
[15] 王鋒.深空通信GMSK調(diào)制體制應(yīng)用分析與研究[D].長(zhǎng)沙:湖南大學(xué),2012:12-18.
[16] AULIN T M.Breadth-first Maximum Likehood Sequence Detection[J].IEEE Transactions on Communicaitons,1999,47(2):208-216.
[17] RIMOLDI B.Exact Formula for the Minimum Square Euclidean Distance of CPFSK[J].IEEE Transactions on Communicaitons,1991,39(9):1280-1282.
[18] MATHIS H.Differential Detection of GMSK Signals with Low BT Using the SOVA[J].IEEE Transactions on Communications,1998,46(4):428-430.
[19] Anderson J,AULIN T.Digital Phase Modulation[M].New York:Plenum,1986:253-271.
[20] 許華.連續(xù)相位調(diào)制技術(shù)研究及其實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2009:28-32.