張培欣, 王建新, *, 任 鵬, 楊樹(shù)樹(shù), 宋海偉
(1. 南京理工大學(xué)電子工程與光電技術(shù)學(xué)院, 江蘇 南京 210094; 2. 南京電子設(shè)備研究所, 江蘇 南京 210007)
船舶自動(dòng)識(shí)別系統(tǒng)(automatic identification system, AIS)是一種廣為人知且被廣泛使用的船舶自動(dòng)追蹤系統(tǒng)[1-4],該系統(tǒng)由國(guó)際海事組織(international maritime organization, IMO)、國(guó)際航標(biāo)協(xié)會(huì)(international association of marine aids to navigation and lighthouse authorities, IALA)等國(guó)際有關(guān)組織于20世紀(jì)90年代提出[5-7]。隨著國(guó)際海事貿(mào)易的日漸繁盛,海上航行安全、海事態(tài)勢(shì)感知、港口安全等需求也與日俱增,AIS早已不堪重負(fù)。因此,甚高頻數(shù)據(jù)交換系統(tǒng)(very high frequency data exchange system, VDES)應(yīng)運(yùn)而生[8-12]。VDES整合了甚高頻數(shù)據(jù)交換(very high frequency data exchange, VDE)、應(yīng)用特定消息(application-specific messages, ASM)以及AIS,特有的功能及技術(shù)參數(shù),并且根據(jù)各種使用場(chǎng)景又細(xì)分為多種格式。
ASM主要被用于船與船、船與岸基站、船與衛(wèi)星之間傳遞特定的應(yīng)用消息[13]。根據(jù)ITU與IALA共同起草的建議書(shū)[14-15],ASM被劃分為10種格式,分別用鏈路配置編號(hào)1~10表示,其中4~10號(hào)采用了Turbo編碼,而1~3號(hào)沒(méi)有。眾所周知,Turbo編碼是一種能顯著提升信道容量的前向糾錯(cuò)(forward error correction,FEC)編碼方式[16-20],這使得采用了Turbo編碼的4~10號(hào)ASM信號(hào)即使在較低信噪比(signal to noise ratio, SNR)下也有不錯(cuò)的解碼性能,而沒(méi)有采用Turbo編碼的1~3號(hào)ASM信號(hào)的解碼性能則相對(duì)較差。本文利用ASM信號(hào)中同樣具有冗余信息的循環(huán)冗余校驗(yàn)(cyclic redundancy check, CRC)字段糾錯(cuò),從而提高1~3號(hào)ASM信號(hào)的解碼性能。
傳統(tǒng)的基于CRC的糾錯(cuò)算法主要有兩種:一種是查表式CRC糾錯(cuò)算法[21],另一種是基于CRC的維特比糾錯(cuò)算法[22-24]。顧名思義,查表式CRC糾錯(cuò)方法首先需要一張表,這張表是根據(jù)參與CRC運(yùn)算的信息比特長(zhǎng)度以及CRC多項(xiàng)式生成的。當(dāng)接收到的比特信息無(wú)法通過(guò)CRC時(shí),就把接收到的信息比特按制表規(guī)則做相同運(yùn)算,若在表中查到運(yùn)算結(jié)果,則可根據(jù)查到的位置確定出錯(cuò)比特位置。最簡(jiǎn)單的查表式CRC糾錯(cuò)算法僅能糾正1 bit錯(cuò)誤,也有學(xué)者開(kāi)發(fā)出了能糾正2 bits錯(cuò)誤的查表式CRC糾錯(cuò)算法[25],結(jié)合置信度判定,更是能實(shí)現(xiàn)多比特糾錯(cuò)[26]。查表式CRC糾錯(cuò)算法對(duì)解調(diào)性能確實(shí)有所提高,但提高幅度有限。相比于查表式CRC糾錯(cuò)算法,基于CRC的維特比糾錯(cuò)算法能糾正的錯(cuò)誤比特?cái)?shù)并不受限制,因此其糾錯(cuò)性能要比查表式CRC糾錯(cuò)算法優(yōu)異?;贑RC的維特比糾錯(cuò)算法是在維特比解碼的過(guò)程中,讓CRC寄存器狀態(tài)也參與路徑轉(zhuǎn)移,最后在所有能通過(guò)CRC的路徑中,挑選與接收信號(hào)相關(guān)程度最大的路徑做后續(xù)解碼。基于CRC的維特比糾錯(cuò)算法的缺點(diǎn)也很明顯,即計(jì)算量太大。其性能嚴(yán)重依賴于路徑的數(shù)目,因?yàn)槁窂綌?shù)目越多,嘗試的可能性越多,越有可能找到正確的結(jié)果。也有一些文章嘗試降低其計(jì)算量,例如符號(hào)狀態(tài)數(shù)減少的維特比算法[27-28],以及部分CRC輔助糾錯(cuò)算法[29]。然而這些算法都需要在性能與計(jì)算量之間取舍。除了計(jì)算量太大這一問(wèn)題以外,傳統(tǒng)維特比算法及其改進(jìn)算法的分支度量設(shè)計(jì)過(guò)于理想化,其導(dǎo)致的性能損失也是不容忽視的一個(gè)問(wèn)題。
為提高1~3號(hào)ASM信號(hào)的解碼性能,本文綜合了符號(hào)狀態(tài)數(shù)減少的維特比算法和部分CRC輔助糾錯(cuò)算法,在盡量減少犧牲性能的前提下降低了計(jì)算量。同時(shí),為了解決傳統(tǒng)分支度量計(jì)算公式的設(shè)計(jì)缺陷導(dǎo)致的性能下降,重新設(shè)計(jì)了路徑度量,并基于此推導(dǎo)出了新的分支度量。仿真表明,新的分支度量解決了傳統(tǒng)分支度量設(shè)計(jì)過(guò)于理想化導(dǎo)致的性能損失;使用12個(gè)CRC移位寄存器參與糾錯(cuò)能夠?qū)崿F(xiàn)1 dB的誤幀率(packet error rate,PER)性能提升;同時(shí),采用合理的符號(hào)狀態(tài)數(shù)降低策略,能在幾乎不損失性能的前提下進(jìn)一步將計(jì)算量降低3/4。
根據(jù)ITU與IALA共同起草的建議書(shū)[14-15],ASM根據(jù)應(yīng)用場(chǎng)景的不同又分為兩大類:岸基ASM(terrestrial component of ASM,ASM-TER)和星載ASM(satellite component of ASM,ASM-SAT)。本文研究的1~3號(hào)ASM屬于ASM-TER,因此,本文所有內(nèi)容也都基于ASM-TER。ASM-TER幀格式如圖1所示。

圖1 ASM-TER幀格式Fig.1 ASM-TER frame format
本文的重點(diǎn)是解碼,因此圖1中其他部分在此不多作介紹,只重點(diǎn)介紹信息序列。信息序列是整個(gè)數(shù)據(jù)幀中真正待傳輸?shù)臄?shù)據(jù),但它并非是由待傳輸?shù)脑级M(jìn)制信息直接填充而來(lái),而是要經(jīng)過(guò)補(bǔ)零、CRC、FEC、比特加擾等一系列操作后得到的。根據(jù)標(biāo)準(zhǔn),CRC采用32 bit的ITU-T V.42 {RD-5}計(jì)算(生成多項(xiàng)式以16進(jìn)制表示為0x04C11DB7,移位寄存器初始狀態(tài)為全1);1~3號(hào)ASM信號(hào)的FEC倍率為1,即不使用FEC,所以在此不多作介紹;比特加擾多項(xiàng)式表示為F(x)=1+x-14+x-15,初始狀態(tài)設(shè)定為100 101 010 000 000。
生成ASM-TER幀后,按照標(biāo)準(zhǔn),還要將幀按照π/4四相相移鍵控(quadrature phase shift keying,QPSK)方式映射。實(shí)際中,接收端一般會(huì)將π/4 QPSK信號(hào)調(diào)整成QPSK信號(hào)以便于解調(diào),對(duì)于ASM-TER信號(hào),只要將相角為π/2整數(shù)倍的符號(hào)逆時(shí)針旋轉(zhuǎn)π/4即可。
rn=sn(α)+wn
(1)
式中:wn是復(fù)高斯白噪聲,其分布服從N(0,γN)(γN表示噪聲功率)。
本文提出的算法是在傳統(tǒng)基于CRC的維特比糾錯(cuò)算法基礎(chǔ)上改進(jìn)實(shí)現(xiàn)的。維特比算法是由Viterbi于1967年提出的一種可用于任何符號(hào)序列的最大似然判決器[30-31]。其基本思想是構(gòu)造馬爾可夫鏈,然后在所有的可能路徑中,找出可能性最大的路徑,其對(duì)應(yīng)的符號(hào)序列即最終的解碼結(jié)果。為直觀理解維特比算法的思路和過(guò)程,下面以QPSK信號(hào)為例介紹維特比算法。
根據(jù)文獻(xiàn)[16]所述,對(duì)α的最優(yōu)非相干估計(jì)可表示為
(2)


(3)

(4)
式(4)的每次計(jì)算都需要將n時(shí)刻之前的接收信號(hào)和假設(shè)信號(hào)進(jìn)行相乘累加,浪費(fèi)了巨大的計(jì)算量。同時(shí)可以觀察到,當(dāng)前時(shí)刻的路徑度量與下一時(shí)刻的路徑度量存在簡(jiǎn)單的數(shù)學(xué)關(guān)系:
(5)
因此,路徑度量可以迭代計(jì)算而不用每次重新計(jì)算。代表相鄰時(shí)刻路徑度量之間迭代關(guān)系的式被定義為分支度量。為了限制計(jì)算量,可以僅使用當(dāng)前時(shí)刻附近NT個(gè)符號(hào)計(jì)算分支度量(NT被稱之為記憶長(zhǎng)度):
(6)
同時(shí)可以用n時(shí)刻前NT-1個(gè)符號(hào)定義當(dāng)前的符號(hào)狀態(tài):
(7)
基于式(7)對(duì)于符號(hào)狀態(tài)的定義,式(6)可改寫(xiě)為
(8)
(9)
有了轉(zhuǎn)移路徑度量和分支度量的計(jì)算公式,只需要在每個(gè)時(shí)刻將所有的可能轉(zhuǎn)移情況代入公式,計(jì)算出對(duì)應(yīng)的分支度量和轉(zhuǎn)移路徑度量即可;對(duì)于下一時(shí)刻的每個(gè)狀態(tài),在所有轉(zhuǎn)移到當(dāng)前符號(hào)狀態(tài)的分支中,挑選轉(zhuǎn)移路徑度量最大的作為幸存路徑,同時(shí)將其轉(zhuǎn)移路徑度量作為自己的路徑度量,并記錄下路徑信息;最后,挑選路徑度量最大的一支,根據(jù)記錄的路徑信息依次前推,根據(jù)符號(hào)狀態(tài)與碼元的對(duì)應(yīng)關(guān)系查找碼元即可實(shí)現(xiàn)回溯解調(diào)。為了方便查詢,將所有可能的符號(hào)狀態(tài)列出即可得到符號(hào)狀態(tài)表。同理,將所有可能的轉(zhuǎn)移情況列出可構(gòu)成符號(hào)狀態(tài)轉(zhuǎn)移表。符號(hào)狀態(tài)表用于最后根據(jù)符號(hào)狀態(tài)查詢對(duì)應(yīng)的碼元從而實(shí)現(xiàn)解調(diào),符號(hào)狀態(tài)轉(zhuǎn)移表用于轉(zhuǎn)移過(guò)程中查詢可能的轉(zhuǎn)移過(guò)程。
維特比算法的思路是嘗試多種可能的碼序列,從中找出可能性最大的作為解碼結(jié)果。嘗試的組合越多,可能得到正確的結(jié)果的可能性越大,這種思路適合用于糾錯(cuò)。一種簡(jiǎn)單的思想[22]就是,將CRC移位寄存器中的值也作為狀態(tài)的一部分,參與路徑的轉(zhuǎn)移。這種方法就要求在每個(gè)分支計(jì)算分支度量和路徑度量的同時(shí),也計(jì)算該分支對(duì)應(yīng)的CRC校驗(yàn)碼。直到最后,在所有能通過(guò)CRC的路徑中,挑選可能性最大的一支作為解碼結(jié)果。
需要注意的是,由于標(biāo)準(zhǔn)中規(guī)定經(jīng)過(guò)CRC后的序列還需經(jīng)過(guò)比特加擾,因此在對(duì)接收信號(hào)進(jìn)行糾錯(cuò)解碼之前,要先進(jìn)行解擾。由于加擾操作實(shí)際上等同于將原序列與一特定偽隨機(jī)序列進(jìn)行模二加,因此只要將接收信號(hào)與同一偽隨機(jī)序列進(jìn)行一次模二加即可實(shí)現(xiàn)解擾。
當(dāng)接收信號(hào)出現(xiàn)少量錯(cuò)誤時(shí),由于傳統(tǒng)維特比算法是尋找與接收信號(hào)相關(guān)性最大(傳統(tǒng)算法中體現(xiàn)為路徑度量最大)的路徑,所以也只能解出與接收信號(hào)匹配的錯(cuò)誤序列(對(duì)應(yīng)路徑記為路徑1)。而在基于CRC的維特比糾錯(cuò)算法中,雖然路徑1依然是路徑度量最大的,但它并不能通過(guò)CRC。而在路徑1附近的其他路徑,就有可能剛好嘗試了正確的符號(hào)組合(記為路徑2)。雖然路徑2的路徑度量不是最大的,但由于其與路徑1的差別很小,所以其路徑度量也只會(huì)比路徑1的略小。同時(shí)由于CRC的隨機(jī)性,其他能通過(guò)CRC的路徑與接收信號(hào)的相關(guān)性通常不會(huì)很大,對(duì)應(yīng)的路徑度量也不大。因此,只要在最后所有能通過(guò)CRC的路徑中,挑選相關(guān)性最大的一支解碼,即可實(shí)現(xiàn)糾錯(cuò)。
在基于CRC的維特比糾錯(cuò)算法中,由于CRC移位寄存器中的值也參與了路徑轉(zhuǎn)移,路徑的狀態(tài)也不僅僅由符號(hào)狀態(tài)決定,而是由符號(hào)狀態(tài)和CRC狀態(tài)共同決定,因此,定義擴(kuò)展?fàn)顟B(tài)
(10)


對(duì)于n+1時(shí)刻的每個(gè)擴(kuò)展?fàn)顟B(tài),都有可能由多條不同的路徑轉(zhuǎn)移而來(lái)。因此,對(duì)于n+1時(shí)刻的每個(gè)擴(kuò)展?fàn)顟B(tài),要從所有的可能轉(zhuǎn)移路徑中選取對(duì)應(yīng)轉(zhuǎn)移路徑度量最大的作為幸存路徑,同時(shí)將其轉(zhuǎn)移路徑度量作為自己的路徑度量,并記錄下路徑信息。以此類推,直到結(jié)束。最后,挑選能通過(guò)CRC的路徑中路徑度量最大的一支,根據(jù)記錄的路徑信息依次從后往前,根據(jù)符號(hào)狀態(tài)表查找碼元即可實(shí)現(xiàn)回溯解調(diào)。
傳統(tǒng)的基于CRC的維特比糾錯(cuò)算法雖然性能出色,但也有其弊端。以本文的應(yīng)用場(chǎng)景為例,假設(shè)NT=3,則符號(hào)狀態(tài)數(shù)NS=4NT-1=16,CRC狀態(tài)數(shù)NCRC=232≈4.295×109,總的擴(kuò)展?fàn)顟B(tài)數(shù)達(dá)到了驚人的6.872×1010,這顯然是不可接受的。為此,需要降低擴(kuò)展?fàn)顟B(tài)的數(shù)量。本文提出的算法通過(guò)兩個(gè)方面降低擴(kuò)展?fàn)顟B(tài)數(shù):降低符號(hào)狀態(tài)數(shù)和降低CRC狀態(tài)數(shù)。
除了計(jì)算量巨大這一問(wèn)題之外,傳統(tǒng)基于CRC的維特比糾錯(cuò)算法還有一個(gè)不容忽視的問(wèn)題,即由分支度量計(jì)算公式的設(shè)計(jì)缺陷導(dǎo)致的性能損失。為解決這一問(wèn)題,重新設(shè)計(jì)了新的路徑度量計(jì)算公式,并在此基礎(chǔ)上推導(dǎo)出了新的分支度量計(jì)算公式,彌補(bǔ)了傳統(tǒng)算法的性能損失。
符號(hào)狀態(tài)數(shù)的大小由記憶長(zhǎng)度NT和每個(gè)符號(hào)的可能狀態(tài)數(shù)M決定,NS=MNT-1。因此,要想降低符號(hào)狀態(tài)數(shù)NS,要么降低M,要么降低NT,或者兩者同時(shí)降低。
降低NT是直接以性能損失為代價(jià)的。這是因?yàn)榫S特比算法的一個(gè)特點(diǎn)就是嘗試的可能路徑越多,解碼正確的可能性越大,而NT直接決定了路徑數(shù)量。因此,降低NT的方法不做考慮。

(11)
為了保證狀態(tài)轉(zhuǎn)移的唯一性,分組方式需要滿足兩個(gè)要求:
(1) 集合的數(shù)量Jk應(yīng)當(dāng)是非增長(zhǎng)的(J1≥J2≥…≥JK);
(2) 前一時(shí)刻的任一集合應(yīng)當(dāng)是下一時(shí)刻中某個(gè)集合的子集。

J=[J1,J2,…,JK]
(12)

經(jīng)過(guò)上述操作,每個(gè)符號(hào)的可能狀態(tài)數(shù)不再是M而是Jk,此時(shí)的符號(hào)狀態(tài)數(shù)應(yīng)當(dāng)是Jk的乘積,即
(13)
只要不是所有的Jk都等于M,那么符號(hào)狀態(tài)數(shù)就得到了降低。具體使用的時(shí)候,符號(hào)狀態(tài)表和符號(hào)狀態(tài)轉(zhuǎn)移表也要根據(jù)分組方式構(gòu)建。
傳統(tǒng)的基于CRC的維特比糾錯(cuò)算法需要將所有CRC移位寄存器狀態(tài)全部用于糾錯(cuò),這就導(dǎo)致了擴(kuò)展?fàn)顟B(tài)數(shù)急劇增大。以本文應(yīng)用場(chǎng)景為例,ASM-TER采用的是32位CRC,就算僅用兩個(gè)符號(hào)表示符號(hào)狀態(tài),擴(kuò)展?fàn)顟B(tài)數(shù)也達(dá)到了驚人的109量級(jí),并且CRC在這之中做出了極大的貢獻(xiàn)。很自然的就能想到,削減CRC參與糾錯(cuò)的長(zhǎng)度就能有效地以指數(shù)次冪減少擴(kuò)展?fàn)顟B(tài)數(shù)。
CRC狀態(tài)的本質(zhì)就是CRC移位寄存器中的值,可以將其進(jìn)行拆分[29]:
(14)



除了巨大的計(jì)算量,傳統(tǒng)的基于CRC的維特比糾錯(cuò)算法還有另外一個(gè)問(wèn)題,即由于其分支度量計(jì)算公式的設(shè)計(jì)過(guò)于理想化導(dǎo)致的性能損失。下面將結(jié)合實(shí)例闡述這一問(wèn)題。
為便于闡述,首先對(duì)式定義的分支度量進(jìn)行改寫(xiě)

(15)




要解決這一問(wèn)題,只能重新設(shè)計(jì)路徑度量,并基于此推導(dǎo)新的分支度量?,F(xiàn)在讓我們重新回顧維特比算法的基本思想:尋找可能性最大的路徑。式及其后續(xù)的簡(jiǎn)化變形都是用接收信號(hào)與假設(shè)信號(hào)之間的相關(guān)性衡量可能性,相關(guān)性越大則可能性越大。但是衡量可能性的方式不只相關(guān)性這一種,接收信號(hào)與假設(shè)信號(hào)之間的誤差也能用于衡量可能性,誤差越小可能性越大。因此,本文重新定義的路徑度量表示為
(16)

基于式(16)的分支度量可表示為
(17)
同樣為了限制存儲(chǔ)空間和計(jì)算量,僅使用當(dāng)前時(shí)刻附近NT個(gè)符號(hào)計(jì)算分支度量:
(18)
此時(shí),對(duì)α的估計(jì)為
(19)
至此,我們完成了新路徑度量的設(shè)計(jì)和新分支度量的推導(dǎo)。本文提出的算法步驟總結(jié)如下。
步驟 1狀態(tài)表構(gòu)建:根據(jù)需求選取合適的分組方式和參與糾錯(cuò)的CRC寄存器位數(shù),并據(jù)此構(gòu)建符號(hào)狀態(tài)表、符號(hào)狀態(tài)轉(zhuǎn)移表。
步驟 2初始化:構(gòu)建路徑信息表與路徑度量表。路徑信息表用于記錄轉(zhuǎn)移到當(dāng)前符號(hào)狀態(tài)之前的有用信息,路徑度量表用于記錄當(dāng)前狀態(tài)的路徑度量。路徑度量表中,對(duì)應(yīng)CRC移位寄存器數(shù)值為全1的應(yīng)初始化為0,其他全部初始化為正無(wú)窮。

步驟 4狀態(tài)轉(zhuǎn)移:根據(jù)上步幸存的分支度量計(jì)算轉(zhuǎn)移路徑度量,同時(shí)計(jì)算CRC移位寄存器在轉(zhuǎn)移后的狀態(tài)。
步驟 5路徑幸存:在n+1時(shí)刻,每個(gè)擴(kuò)展?fàn)顟B(tài)都有多種可能的轉(zhuǎn)入路徑,選取其中轉(zhuǎn)移路徑度量最小的一條作為幸存路徑,并把其轉(zhuǎn)移路徑度量作為當(dāng)前擴(kuò)展?fàn)顟B(tài)的路徑度量,同時(shí)記錄下路徑信息。
步驟 6回溯解調(diào):當(dāng)算法運(yùn)行至最后一個(gè)時(shí)刻,只保留對(duì)應(yīng)CRC狀態(tài)為全0的路徑,選取其中路徑度量最小的一個(gè),并根據(jù)記錄的路徑信息逐步回溯解調(diào)。
采用1號(hào)ASM-TER信號(hào)進(jìn)行仿真,符號(hào)速率Rs=9 600 ksps,假設(shè)接收信號(hào)中無(wú)頻偏、相偏,蒙特卡羅仿真1 000次,使用PER衡量各算法的性能。
為考察新分支度量對(duì)性能的影響,本仿真中所有算法均不包含糾錯(cuò)功能且不降低符號(hào)狀態(tài)數(shù)?;谛路种Ф攘康木S特比算法性能如圖2所示。

圖2 基于新分支度量的維特比算法性能Fig.2 Performance of the new branch metric based Viterbi algorithm
圖2中SNR表示每比特能量比上噪聲功率譜密度(Eb/N0)。從圖2中可以看出,以PER=0.8為基準(zhǔn),記憶長(zhǎng)度NT=3時(shí)的傳統(tǒng)維特比算法與相干解調(diào)有著約1 dB不到的性能差距,隨著NT的增加,性能差距逐漸縮小,但直到NT=5時(shí)依然有約0.3 dB的性能損失。同時(shí)從圖2中也可以看到,基于本文提出的新分支度量的維特比算法在NT=3時(shí)的性能就幾乎與相干解調(diào)算法重合。這充分說(shuō)明了本文提出的新分支度量的有效性。
本小節(jié)仿真了改進(jìn)的基于CRC的維特比糾錯(cuò)算法在不同CRC狀態(tài)數(shù)降低策略下的性能,本節(jié)中統(tǒng)一NT=3且不降低符號(hào)狀態(tài)數(shù),具體性能如圖3所示。從圖3中可以看到,以PER=0.8為基準(zhǔn),對(duì)于改進(jìn)的基于CRC的維特比糾錯(cuò)算法,只用4個(gè)CRC寄存器參與糾錯(cuò)相比于相干解調(diào)算法幾乎沒(méi)有性能提升;當(dāng)參與糾錯(cuò)的CRC寄存器個(gè)數(shù)提高到8時(shí),性能有了約0.3 dB的提升;而當(dāng)使用12個(gè)CRC寄存器參與糾錯(cuò)時(shí),性能提升了約1 dB。圖3說(shuō)明,使用部分CRC參與糾錯(cuò)能獲得一定的性能提升。

圖3 本文提出算法在不同CRC寄存器個(gè)數(shù)下的性能Fig.3 Performance of the proposed algorithm with different number of CRC registers
本節(jié)仿真了改進(jìn)的基于CRC的維特比糾錯(cuò)算法在不同符號(hào)狀態(tài)數(shù)降低策略下的性能,本節(jié)中統(tǒng)一設(shè)定NT=3,參與糾錯(cuò)的CRC寄存器位數(shù)NCr=12。具體性能如圖4所示。

圖4 本文提出算法在不同符號(hào)狀態(tài)數(shù)降低策略下的性能Fig.4 Performance of the proposed algorithm with different strategy of reducing the number of symbol statuses
從圖4中可以看到,在使用12位CRC寄存器參與糾錯(cuò)的情況下,J=(4,4)、J=(4,2)以及J=(2,2)時(shí)PER性能幾乎相同,相較其他情況性能最好。同時(shí),J=(4,1)、J=(2,1)、J=(1,1)時(shí)PER性能有較大損失,其性能與相干解調(diào)算法幾乎相同。同時(shí)從圖4中也可以看到,雖然J=(4,1)、J=(2,2)兩種策略下分支數(shù)量相同,但J=(4,1)時(shí)的PER性能卻更差,很顯然這是由于符號(hào)分組策略跳躍過(guò)大造成的。圖4說(shuō)明,降低符號(hào)狀態(tài)數(shù)能在有效降低計(jì)算量的同時(shí)做到幾乎不損失性能。但符號(hào)狀態(tài)數(shù)也不能無(wú)限制降低,以本文應(yīng)用場(chǎng)景來(lái)說(shuō),綜合權(quán)衡性能與計(jì)算量,最合適的符號(hào)狀態(tài)數(shù)降低策略為J=(2,2)。
為提高1~3號(hào)ASM信號(hào)的解碼性能,本文提出了一種基于CRC的改進(jìn)維特比糾錯(cuò)算法。為解決基于CRC的維特比糾錯(cuò)算法計(jì)算量太大的問(wèn)題,本文從兩個(gè)方面減少了算法的路徑數(shù)從而減小計(jì)算量:一方面是通過(guò)將符號(hào)的可能狀態(tài)分組以降低符號(hào)狀態(tài)數(shù),同時(shí)詳細(xì)闡述了分組的基本要求和最佳分組方式;另一方面是通過(guò)削減CRC參與糾錯(cuò)的長(zhǎng)度減少CRC狀態(tài)數(shù),從而減少擴(kuò)展?fàn)顟B(tài)數(shù)。除了減少計(jì)算量,本文還詳細(xì)分析了傳統(tǒng)維特比算法分支度量的設(shè)計(jì)缺陷導(dǎo)致的性能損失。為解決這一問(wèn)題,基于維特比算法尋找可能性最大的路徑的思想,本文重新推導(dǎo)了一個(gè)新的分支度量。仿真表明,在其他條件相同的情況下,新分支度量解決了傳統(tǒng)分支度量導(dǎo)致的性能損失問(wèn)題,在僅用兩個(gè)符號(hào)定義符號(hào)狀態(tài)的情況下就幾乎與相干解調(diào)算法的性能一致。仿真還表明,對(duì)于ASM-TER信號(hào),用8個(gè)CRC寄存器參與糾錯(cuò),就能將誤幀率性能相對(duì)于相干解調(diào)提升0.3 dB,用12個(gè)能提升1 dB。通過(guò)仿真發(fā)現(xiàn),對(duì)于ASM-TER信號(hào)來(lái)說(shuō),最佳的符號(hào)狀態(tài)數(shù)降低策略為J=(2,2),該策略在幾乎不降低解碼性能的同時(shí),計(jì)算量?jī)H為J=(4,4)完全不分組策略計(jì)算量的1/4。