黃金磊,王建新,楊樹樹
(1.南京理工大學(xué)電子工程與光電技術(shù)學(xué)院,江蘇南京 210094;2.南京電子設(shè)備研究所,江蘇南京 210007)
2013 年,ITU-R 和IALA 共同提出了甚高頻數(shù)據(jù)交換系統(tǒng)(VHF Data Exchange System,VDES)[1]。VDES在保留AIS 系統(tǒng)原有功能的基礎(chǔ)上,引入了特殊應(yīng)用報文(Application Specific Messages,ASM)和寬帶甚高頻數(shù)據(jù)交換(VHF Data Exchange,VDE)[2]。
為了實現(xiàn)對AIS 和ASM 業(yè)務(wù)的實時接收處理[3],該文設(shè)計了一種AIS 與ASM 接收機,采用8 核處理,可同時接收六個信道的信號并實時解調(diào);采用SRIO接口實現(xiàn)數(shù)據(jù)傳輸,保證了FPGA 端和DSP 端數(shù)據(jù)傳輸?shù)男?;對?nèi)存進行了規(guī)劃重分配,降低了硬件資源的開銷;使用了恒虛警檢測算法[4],保證了噪聲環(huán)境下虛警概率保持不變。
國際電信聯(lián)盟將海上VHF頻段分配給AIS四個信道,分別是AIS1(161.975 MHz)、AIS2(162.025 MHz)、AIS3(156.775 MHz)、AIS4(156.825 MHz),信道帶寬為25 kHz,比特速率為9 600 bit/s。分配給ASM 兩個信道,分別是ASM1(161.950 MHz)、ASM2(162.000 MHz),信道帶寬為25 kHz,符號速率為9 600 symbol/s。
AIS 和ASM 將一分鐘分成2 250 個時隙,其中每個時隙占用的時間為26.67 ms。AIS 信號分為單時隙信號和雙時隙信號,其中僅有消息ID 為5 的AIS信號是雙時隙信號,單時隙信號總長為256 bit,雙時隙信號總長為512 bit,AIS3 和AIS4 信道是遠距離AIS 信道,僅傳輸單時隙信號[5]。AIS 信號幀格式如圖1 所示。
圖1 AIS信號幀格式
上升沿的長度為8 bit(00000000);同步字段長24 bit,由交替的0 和1 組成;開始標志和結(jié)束標志的長度為8 bit(01111110);幀校驗序列為16 bit,用于驗證接收到的AIS 消息是否正確;AIS1 和AIS2 信道的單時隙信號數(shù)據(jù)段長度為168 bit,雙時隙信號數(shù)據(jù)段長度為424 bit,其余部分兩者相同,緩沖段24 bit;AIS3 和AIS4 信道的信號數(shù)據(jù)段長度為96 bit,其他部分與AIS1 和AIS2 信道的單時隙信號相同,最后由緩沖段補足256 bit。數(shù)據(jù)段中存儲了消息ID、用戶ID 和其他輪船相關(guān)狀態(tài)信息。
ASM 信號的幀格式與AIS 信號類似,根據(jù)Link ID 的不同會影響數(shù)據(jù)段的長度,以及是否需要Turbo編碼,其通用幀格式如圖2 所示。
圖2 AIS信號幀格式
由圖2 可得,ASM 信號由上升沿、同步字段、Link ID、數(shù)據(jù)段、下降沿和保護間隔組成,其中數(shù)據(jù)段由數(shù)據(jù)、補零以及CRC 校驗碼組成。Link ID 的不同會影響數(shù)據(jù)段和保護間隔的長度。
AIS 信號的編碼方式為NRZI 編碼,在NRZI 編碼之前,為了防止數(shù)據(jù)段和幀校驗段出現(xiàn)01111110 的碼型,導(dǎo)致信號的結(jié)束標志定位出錯,AIS 消息的數(shù)據(jù)段和幀校驗段遵循比特填充原則:如果在待發(fā)射信號中檢測到五個連續(xù)的1,則在這五個連續(xù)的1 后插入一個0,在解調(diào)時相應(yīng)地也要經(jīng)過去零處理。
AIS 信號采用高斯最小頻移鍵控(Gaussian Minimum Shift Keying,GMSK)。GMSK 的調(diào)制過程就是信號在編碼后先通過一個高斯低通濾波器,使得調(diào)制信號的相位連續(xù)且波形平滑,再進行最小頻移鍵控調(diào)制。
ASM 信號的調(diào)制過程是首先對Link ID 采用一階Reed-Muller 編碼并加擾,再根據(jù)Link ID 確定是否需要對數(shù)據(jù)段進行Turbo 編碼,接著對數(shù)據(jù)段進行加擾,然后對整段信號做π/4 QPSK 調(diào)制,最后對ASM 信號進行整數(shù)倍內(nèi)插,再通過成形濾波器,提高數(shù)據(jù)速率[6-7]。
該文采用的A/D 轉(zhuǎn)換器是AD9684,以采樣頻率fs=288 MHz 對經(jīng)過前端濾波放大后的射頻信號進行帶通直接采樣,采樣后的信號先在A/D 中經(jīng)過預(yù)處理,再發(fā)送到FPGA 進行后續(xù)處理[8]。A/D 預(yù)處理流程框圖如圖3 所示。
圖3 A/D預(yù)處理流程框圖
AD9684 內(nèi)部直接數(shù)字頻率合成器的頻率控制字字長為12 位,126 MHz 本振頻率對應(yīng)的頻率控制字取值為1 792,因此沒有本振頻率誤差產(chǎn)生,得到的下變頻結(jié)果更加精準。濾波抽取部分使用A/D 中自帶的半帶濾波器實現(xiàn),16 倍的抽取用四個半帶濾波器級聯(lián)得到,前三級半帶濾波器只對信號進行8 倍抽取而不濾波,最后一級半帶濾波器進行2 倍抽取并濾波。在A/D 預(yù)處理之后,fs=288 MHz/16=18 MHz,此時信號頻譜圖如圖4 所示。
圖4 基帶信號頻譜圖
由圖4可知,在經(jīng)過A/D采樣、A/D預(yù)下變頻及濾波抽取后,AIS的四個信道分別被搬移到了-0.025 MHz、0.025 MHz、-5.225 MHz和-5.175 MHz,ASM 的兩個信道分別被搬移到了-0.05 MHz 和零頻,信號速率為18 MHz,在FPGA 中對信號再分別經(jīng)過正交下變頻與濾波抽取即可分離得到六個信道的復(fù)基帶信號。
解調(diào)系統(tǒng)要求送至DSP 解調(diào)的信號的數(shù)據(jù)速率為8 倍的符號速率,即76.8 kHz,因此FPGA 中的抽取倍數(shù)應(yīng)為D=18 MHz/76.8 kHz=234.375,由于小數(shù)倍抽取在FPGA 實現(xiàn)過于復(fù)雜,這里取抽取倍數(shù)D=234,以234 倍抽取后,數(shù)據(jù)速率變?yōu)?8 MHz/234=76.923 kHz。抽取可以采用級聯(lián)的方式,由于D=234=39×6,所以可以第一級用CIC 濾波器實現(xiàn)抽取因子D1=39 的濾波抽取,第二級用FIR 濾波器實現(xiàn)抽取因子D2=6 倍的濾波抽取[9]。
分離出六個信道的信號以后,對六個信道的信號做幀頭檢測,AIS 信號和ASM 信號都有固定的同步字段,可以通過同步字段的特點來實現(xiàn)幀頭檢測。
在信號通過幀頭檢測后,需要將FPGA 中的復(fù)基帶信號傳輸?shù)紻SP 中進行后續(xù)解調(diào),該文選擇SRIO 接口實現(xiàn)FPGA 與DSP 之間的數(shù)據(jù)傳輸[10]。該文采取以下傳輸方案:當(dāng)AIS1 和AIS2 信道檢測到信號后,向DSP 傳輸2×2 048=4 096 個數(shù)據(jù)點;當(dāng)AIS3和AIS4 信道檢測到信號后,向DSP 傳輸2 048 個數(shù)據(jù)點;當(dāng)ASM1 和ASM2 信道檢測到信號后,向DSP傳輸3×2 048=6 144 個數(shù)據(jù)點。這樣就可以保證該幀信號的信息不會有丟失。
由于解調(diào)系統(tǒng)的實時性要求能同時解調(diào)六個信道的信號,因此該文選擇用TMS320C6678 作為DSP平臺實現(xiàn)后續(xù)的解調(diào)工作。TMS320C6678 有八個核心子系統(tǒng),每個子系統(tǒng)有1.0 GHz 或1.25 GHz 的c66x定/浮點CPU 核。該文使用核0 完成一系列初始化工作與算法自檢,核1 至核4 分別完成一個AIS 信道的信號解調(diào),核5 與核6 完成兩個信道的ASM 信號解調(diào),核7 完成網(wǎng)口信息傳輸,每隔1 s 將解調(diào)的信息打包發(fā)送至上位機,秒脈沖由FPGA 通過EMIF 接口發(fā)送到DSP[11]。
由于DDR3 的存儲空間大,且六個核都可以對其進行存取操作,因此該文的設(shè)計是通過SRIO 將數(shù)據(jù)送至DDR3 存儲區(qū)。出于算法實時性的考慮,F(xiàn)PGA和DSP之間并不采用握手,DSP在DDR3存儲區(qū)開辟了六塊存儲空間,F(xiàn)PGA 將六個信道的數(shù)據(jù)分別送至該存儲區(qū)的指定地址,DSP 端不斷輪詢該地址的值,當(dāng)檢測到對應(yīng)地址收到數(shù)據(jù)時,DSP 的核1至核6 分別將對應(yīng)存儲區(qū)的數(shù)據(jù)取出處理。DSP 開辟的六個存儲區(qū)的地址如表1 所示。
表1 SRIO傳送數(shù)據(jù)的儲存地址
下面以AIS1 和AIS2 信道的雙時隙信號為例說明DSP 中AIS 信號的完整解調(diào)流程。由前文可知,當(dāng)AIS1 和AIS2 信道檢測到信號時,F(xiàn)PGA 傳送4 096個數(shù)據(jù)點,但是實際上AIS 信號僅在ID=5 時是雙時隙信號,大多數(shù)時候接收到的AIS 信號都是單時隙信號。因此該文的解調(diào)方案是先把所有信號當(dāng)成是單時隙信號,對前2 048 個數(shù)據(jù)點進行解調(diào),如果CRC 校驗失敗則去判斷消息ID,當(dāng)檢測到消息ID 為5 時,判斷為雙時隙信號,先保存前面解調(diào)的結(jié)果,再取后2 048 個數(shù)據(jù)點進行解調(diào),最后將兩次解調(diào)結(jié)果拼在一起再進行CRC 校驗,通過,則輸出信息,不通過,則丟棄這幀信號。此處可以利用內(nèi)存管理技術(shù),在保存好第一次解調(diào)出來的256 個采樣點后,前面解調(diào)過程產(chǎn)生的中間變量都可以被覆蓋,這就能節(jié)約一半的內(nèi)存空間。
DSP 中AIS 信號的解調(diào)流程如圖5 所示。
圖5 DSP中AIS信號的解調(diào)流程
ASM 的解調(diào)流程與AIS 類似,只不過ASM 信號是先利用同步字段估計出一個大頻偏,去除這個大頻偏之后就進行定時同步,降低數(shù)據(jù)速率,之后再通過M&M 算法得到殘余小頻偏,然后再進行相偏估計。
兩者的解調(diào)流程都是分段解調(diào),先解調(diào)一個時隙長度的數(shù)據(jù)也就是256 個符號,然后再根據(jù)解調(diào)結(jié)果中的ID 相應(yīng)地進行后續(xù)時隙內(nèi)容的解調(diào)。
常用的頻偏估計方法有差分相關(guān)法、最大似然估計法、鎖相環(huán)和二階矩估計法等。差分相關(guān)法在頻偏較大時,頻偏估計誤差很大,只能作為一種初步的頻偏估計,不能達到精確估計的要求。最大似然估計法的估計誤差取決于搜索步長,步長越小,估計誤差越小,但耗費的時間也越多。傳統(tǒng)的鎖相環(huán)在頻偏較大時的捕獲時間很長,不符合解調(diào)系統(tǒng)實時處理的要求。綜合測頻精度、計算復(fù)雜度以及GMSK信號自身特征等因素,該文采用二階循環(huán)累積量法來估計AIS 信號的頻偏。
ASM 信號通過M&M[12]算法來完成數(shù)據(jù)輔助的頻偏估計,接著先經(jīng)過匹配濾波和定時同步去除時延并降低數(shù)據(jù)速率,然后再通過M&M算法對256個符號進行非數(shù)據(jù)輔助頻偏估計來獲得更加精確的結(jié)果。
GMSK 是MSK 信號的特殊形式,因此,MSK 信號的符號定時同步方法也適用于GMSK 信號。該文AIS的定時同步算法采用LM定時法[13],ASM 的定時算法采用Q&M 算法[14]。
通過定時算法計算出來的時延代表信號的第一個采樣點與最佳采樣點距離的估計值,這個估計值一般不是整數(shù),如果需要提高精度,可采用插值的方法獲得最佳采樣點的值。該文將此估計值四舍五入取整后的值作為第一個采樣點與最佳采樣點的距離。
同時,從前文可知,由于小數(shù)倍抽取難以實現(xiàn),因此實際采樣周期與理論采樣周期有微小的誤差,作用到單個符號上時,時間非常短,誤差可以忽略,但是在一段連續(xù)時間的積累之后,誤差也會慢慢累積,而上述方法估計出的時延只是參與估計符號的平均時延,并不是每個符號的實際時延,如果參與估計的符號個數(shù)過多,會導(dǎo)致時延估計量與實際時延相差過大。因此該文將進行符號定時的數(shù)據(jù)進行了劃分,分小段進行時延估計,每段用64 個符號做一次時延估計。在進行定時同步前,需要先經(jīng)過匹配濾波器提高信號的信噪比,從而提升解調(diào)性能。
在去除頻偏與定時之后,ASM 信號比AIS 信號多了一個相偏估計的過程,與ASM 信號的頻偏估計類似,相偏估計也是通過兩步估計以得到更加精確的處理結(jié)果。首先通過同步字段作為已知信息進行基于數(shù)據(jù)輔助的相偏估計,去除掉這個大相偏之后,與定時同步的做法類似,將信號分段,每段用64 個符號通過V_V 算法進行非數(shù)據(jù)輔助相偏估計[14-15]。
AIS的解調(diào)算法有2bit差分解調(diào)、6bit差分解調(diào)、Viterbi算法等。2 bit差分解調(diào)實現(xiàn)簡單且受載頻相位偏差的影響較小,然而當(dāng)AIS 信號存在同頻干擾時,2 bit 差分解調(diào)的性能就會大大降低;6 bit 差分解調(diào)算法能獲得比2 bit 差分解調(diào)更好的結(jié)果,而且在時間和資源的消耗上不會有太多的增加,但是只有在較高的信噪比下才能得到正確的結(jié)果[16];Viterbi算法解調(diào)結(jié)果精確,但是耗時較長,且需要在白噪聲情況下才能得到較好的解調(diào)結(jié)果,因此在進行Viterbi 解調(diào)前還需要將數(shù)據(jù)通過一個白化濾波器。
以AIS 雙時隙信號為例,為了兼顧解調(diào)的速度和精度,該文的處理過程是在定時同步后先進行6 bit差分解調(diào),解調(diào)結(jié)果無法通過CRC 校驗則再對其進行Viterbi 解調(diào),如果仍然無法通過CRC 校驗則判斷信號的ID,如果判斷是雙時隙信號,則對后2 048 個數(shù)據(jù)點做上述一系列的處理。
ASM 信號在去除頻偏相偏后先對Link ID 做Reed-Muller 碼的譯碼,得到Link ID 后就可以知道這幀信號的各種信息參數(shù),包括調(diào)制方式、是否經(jīng)過Turbo 編碼、數(shù)據(jù)段長度等,接著針對得到的Link ID對數(shù)據(jù)段進行解調(diào),最后進行CRC 校驗。
在實現(xiàn)上述設(shè)計方案后,對接收機進行性能測試。在耗時方面,以AIS 單時隙信號為例,解調(diào)部分消耗總時間最長為8.9 ms,且在信噪比較高不需要經(jīng)過Viterbi 譯碼時整個過程僅需不到3.7 ms;以ASM單時隙信號為例,解調(diào)部分各流程消耗總時間最長為10.32 ms,若該單時隙信號為非Turbo 編碼的Link ID 為1 的ASM 信號,則僅需消耗6.52 ms;由此可見消耗的時間都遠小于單時隙信號占用的時間26.67 ms,由此證明該文的設(shè)計方案能夠滿足解調(diào)系統(tǒng)的實時性要求。
接著用信號源模擬發(fā)送報文信息,考慮到信道最擁擠的情況,AIS 的四個信道同時接連不斷地收到AIS 信號,ASM 的兩個信道也接連不斷地收到ASM信號[17-18]。以解調(diào)正確率90%為界,得到接收機對AIS 信號的靈敏度測試結(jié)果,如表2 所示。
表2 接收機對AIS信號的靈敏度
同理,以解調(diào)正確率90%為界,得到接收機對ASM 信號的靈敏度測試結(jié)果,如表3 所示。
表3 接收機對ASM信號的靈敏度
從表3 可以發(fā)現(xiàn),接收機對ASM 信號的靈敏度因為Link ID 的不同而有較大區(qū)別,
這是因為Link ID 為4、5、6、7 的ASM 信號是經(jīng)過Turbo 編碼的,信號可靠性提高了,因此靈敏度也有了一定提升。
該文提出了一種AIS 與ASM 多信道接收機,對接收機的設(shè)計、硬件平臺、解調(diào)算法做了詳細闡述,最終對工程實現(xiàn)產(chǎn)品進行了性能測試,測試結(jié)果表明,該文設(shè)計的多信道接收機可以實時處理解調(diào)四個AIS 信道和兩個ASM 信道的信號,甚至能在一個時隙的時間內(nèi)完成對多時隙信號的處理,并且具有較高的靈敏度,AIS 在輸入信號幅度為-119 dBm 的情況下能達到90%的解調(diào)率,ASM 在輸入信號幅度為-116 dBm 的情況下能達到90%的解調(diào)率,具有實際應(yīng)用價值。