尤紅雨 王 垚 王 翔 黃知濤
(國防科技大學電子科學學院,湖南長沙 410073)
為了實現(xiàn)穩(wěn)定可靠的通信,信道編碼技術被廣泛應用于各類數(shù)字通信系統(tǒng)中,該技術的合理應用可以有效提高信息傳輸?shù)馁|(zhì)量[1]。隨著無線通信信道環(huán)境日趨復雜,以及太空等通信領域?qū)π畔鬏斮|(zhì)量的要求越來越高,對信道編碼的抗噪性能也提出了更高的要求。BCH(Bose-Chaudhuri-Hocquenghem)碼、RS(Reed-Solomon)碼和卷積碼等單一編碼方式逐漸難以適應復雜的信道環(huán)境,復合編碼因其優(yōu)異的抗噪性能得到了人們的重視。TPC(Turbo-Product-Codes)碼作為一種復合編碼,能夠同時糾正信息序列中的隨機錯誤和突發(fā)錯誤,且構造簡單,適用于信道環(huán)境復雜的通信系統(tǒng)。目前,TPC碼廣泛應用于衛(wèi)星通信、深空通信,以及無線接入系統(tǒng)中,如WiMAX、IEEE 802.20、數(shù)字視頻廣播衛(wèi)星(DVB-S)系統(tǒng)等[2]。對于智能通信、頻譜監(jiān)視等應用領域,能否利用接收序列獲得所采用的編碼參數(shù)對后續(xù)譯碼等過程非常關鍵,TPC 碼作為一種應用廣泛的復合編碼,目前對其盲識別的研究成果不足以支撐實際需求。因此,對TPC 碼進行盲識別的研究具有重要價值。
TPC 碼作為一種復合編碼,目前應用的結構可分為二維TPC 碼和三維TPC 碼,即在不同維度方向上利用子碼對序列進行編碼,中間通過矩陣交織完成碼字序列的行列變換。TPC碼常采用的子碼有擴展?jié)h明碼、擴展BCH 碼、RS碼等[3],三維結構中也存在(n,n-1)偶校驗碼。在衛(wèi)星通信系統(tǒng)中,子碼為擴展BCH碼的TPC碼最為常見[4],且碼率較高。因此,對TPC 碼進行盲識別,子碼的研究識別必不可少。目前對BCH 碼和RS 碼的研究,主要將其作為分組碼進行盲識別,很少從TPC 碼子碼的角度研究。針對本原BCH 碼識別問題,文獻[5]提出了一種利用碼根差熵和碼根統(tǒng)計的本原BCH 碼識別方法,但在高誤碼率情況下,碼根差熵適應誤碼能力變差,且算法計算量較大。文獻[6]利用共軛根的性質(zhì)簡化了伽羅華域的傅里葉變換運算,計算量降低40%,且能夠在不遍歷整個候選數(shù)據(jù)集的情況下識別BCH 編碼參數(shù)。文獻[7]提出了一種基于平均余弦符合度的識別算法,引入軟判決信息對本原BCH 碼進行識別,利用軟判決信息對碼根的分布情況進行統(tǒng)計,檢驗量充分利用了軟判決信息,識別效果較好。針對RS碼識別,文獻[8]從提高容錯性能出發(fā),提出基于GFFT 的識別算法,雖然算法具有一定的容錯性能,但是運算量隨著碼長會急劇增加。文獻[9]基于部分碼根校驗匹配的識別方法,建立了二元域統(tǒng)計判決模型,引入了能夠衡量校驗關系成立大小的平均校驗符合度概念,通過遍歷的方式對參數(shù)進行匹配,該算法具有較好的低信噪比適應能力。現(xiàn)有研究成果,均利用先驗信息,通過遍歷可能的參數(shù)取值,選取符合度最高的參數(shù)作為識別結果,能夠滿足本原BCH 碼和RS 碼的識別需求。而擴展 BCH 碼作為TPC 碼常用的子碼,碼長與伽羅華域冪次不再有直接的約束關系,碼字不再具有循環(huán)移位特性,已有BCH碼的識別方法并不適用于擴展BCH碼。
從公開發(fā)表的文獻來看,關于TPC 碼盲識別的文獻甚少。文獻[10]研究了衛(wèi)星通信中TPC碼的識別與譯碼算法,提出了基于獨特碼檢測的TPC 碼長識別算法與基于線性方程組求解法的BCH碼識別算法,通過識別TPC 碼子碼,確定TPC 碼類型和參數(shù)。線性方程組求解結果雖然能夠清晰地得到各種編碼參數(shù),但該方法需要求解的數(shù)據(jù)中不包含誤碼,需要尋找數(shù)據(jù)質(zhì)量很好的部分解方程,實際接收到的數(shù)據(jù)難以滿足這一需求。而且該方法涉及到的參數(shù)較多,需要多次求解,找到合適的參數(shù),才能解出正確的結果。容錯性差和計算步驟復雜,使得該算法的適用性受到很大的限制。文獻[2]研究了噪聲條件下TPC 碼的參數(shù)盲估計,使用參數(shù)遍歷和高斯消元法確定子碼的參數(shù),該方法雖然比文獻[10]提高了抗噪性能,但該方法是基于本原BCH 碼、RS 碼作為TPC 碼子碼進行研究的,對實際中由擴展BCH 碼構造的TPC碼無法進行識別?,F(xiàn)有算法對TPC碼的識別和參數(shù)估計,都需要采用參數(shù)遍歷的方法對子碼空間進行搜索,導致算法過程復雜,計算量較大,均未深入研究實用中TPC 碼的子碼類型及其相關性質(zhì),對誤碼條件下應用的TPC碼無法進行有效識別。
針對上述問題,本文對TPC 碼編碼過程展開研究,深入分析其結構和子碼性質(zhì),推導出三維TPC碼的校驗部分也存在編碼結構,提出了TPC 碼盲識別算法。通過對TPC 碼常用子碼擴展?jié)h明碼、擴展BCH 碼和偶校驗碼的碼重性質(zhì)進行研究,分析得到了碼重奇偶性與碼長之間的關系,提出基于碼重奇偶性的碼長識別算法,實現(xiàn)子碼碼長的估計。從而進一步識別TPC 碼的結構,通過幀長與各子碼碼長乘積之間的大小關系,判別是否存在二維TPC 碼。若存在,在二維TPC碼結構識別的基礎上,識別三維TPC碼和復用式三維TPC碼,實現(xiàn)TPC碼的盲識別。仿真結果表明,該算法能夠有效識別出TPC 碼的碼型和結構,且能夠較好地適應高誤碼率的信道環(huán)境。
TPC碼是由兩個或多個短分組碼簡單而有效地構造,通過兩個或多個編碼器的串行級聯(lián)而成,這些編碼器被矩陣交織器分隔開。其構造過程是將編碼數(shù)據(jù)輸入到一個q維超立方體排列,第i維子碼使用線性分組碼Ci(ni,ki,di)進行編碼,其中ni表示碼長,ki為信息長,di代表最小漢明距離。若第i維子碼的碼率為ri=ki/ni,則q維TPC 碼的碼長L=,信息長K=,碼率R=,最小漢明距離d=,糾錯能力t=(d-1)/2。實際應用中,考慮到信息傳輸速率和糾錯能力等因素,一般采用二維或三維TPC碼。
以二維TPC 碼為例,由兩個系統(tǒng)線性分組碼C1(n1,k1,d1)和C2(n2,k2,d2)組成,其結構如圖1 所示。將二維TPC 碼平面形式化為X-Y二維平面,則X維對應分組碼C1(n1,k1,d1),Y維對應分組碼C2(n2,k2,d2),二維TPC碼的編碼步驟如下[11]:
圖1 二維TPC碼結構Fig.1 Two-dimensional TPC code structure
(1)將k1×k2個信息位按照k2行k1列排列;
(2)對k2行使用C1(n1,k1,d1)進行分組編碼;
(3)對n1列使用C2(n2,k2,d2)進行分組編碼。
對于二維TPC 碼,碼長L=n1×n2,信息長K=k1×k2,碼率R=r1×r2,最小漢明距離d=d1×d2。實際應用中,通常采用行列編碼方式相同的碼字作為TPC 碼的子碼,并且在行列編碼時增加一個奇偶校驗位以增大碼字間最小距離[3],從而增強碼字的糾錯能力。二維TPC 碼常采用的子碼是擴展BCH碼,一些典型的參數(shù)如表1所示,表中TPC碼組成的第一個子碼對應二維TPC 碼的X維編碼,第二個子碼對應Y維編碼。
表1 一些二維TPC碼參數(shù)Tab.1 Some two-dimensional TPC code parameters
對于三維TPC 碼,編碼結構在二維TPC 碼X-Y平面化形式的基礎上,增加了Z維編碼,對應的是X-Y-Z三維立體空間。增加的Z維編碼,使用C3(n3,k3,d3)分組編碼器對k3個大小為n1×n2的碼字矩陣進行編碼,三維TPC 碼結構圖如圖2 所示。三維TPC 碼的一些典型參數(shù)如表2 所示,維度與碼型對應與表1 類似,增加的第三個子碼對應Z維分組碼,表中(8,7)、(16,15)為偶校驗碼,其他均為擴展BCH碼。
表2 一些三維TPC碼的參數(shù)Tab.2 Some 3D TPC code parameters
圖2 三維TPC碼結構Fig.2 3D TPC code structure
結合表1 和表2 可知,相比于同樣子碼構造的二維TPC 碼,三維TPC 碼的碼塊大小更大,對應的糾錯能力更強。但隨著編碼維度的增加,碼率則會出現(xiàn)較為明顯的下降,使得信息傳輸效率降低。而實際通信需要的編碼是希望在糾錯能力一定的條件下,編碼效率越大且編、譯碼越簡單越好。
考慮到衛(wèi)星通信中的實際使用情況,一般采用的三維TPC 碼并非圖2 所示的結構,而是由N個二維TPC 碼連接在一起,加上同步碼,形成一個長幀結構,這樣構成的TPC 碼結構稱為復用式三維TPC碼[10],結構如圖3所示。
圖3 復用式三維TPC碼結構Fig.3 Multiplex 3D TPC code structure
相比二維TPC 碼,這樣的結構在不降低碼率的情況下,碼長的選擇變得更加靈活。相比于三維TPC碼,其碼長同樣能夠很長,而不降低碼率,部分參數(shù)如表3所示,維度與碼型對應與表1類似,Z維方向N表示二維TPC碼的個數(shù),表中碼型均為擴展BCH碼。
表3 一些復用式三維TPC碼參數(shù)Tab.3 Some parameters of multiplex 3D TPC codes
綜上所述,目前應用的TPC 碼主要包括二維、三維以及復用式三維這三種結構,通常采用的子碼為擴展?jié)h明碼、擴展BCH 碼和偶校驗碼。TPC 碼的參數(shù)選取靈活,由子碼能夠構造出合適的碼長、信息長、糾錯能力和碼率,從而滿足應用的需求。
根據(jù)信道編碼識別在信號處理中的位置,編碼類型是對解調(diào)后的二進制數(shù)據(jù)進行識別。TPC碼在傳輸?shù)倪^程中,往往加入幀同步后進行再發(fā)送。本文是在幀同步后,去掉幀同步頭后,已知TPC 碼碼長的條件下,通過識別不同維度子碼碼長,確定存在分組碼,并對識別結果進行驗證判別,最終確定TPC碼的碼型及結構,識別過程如圖4所示。
圖4 TPC碼識別總體框圖Fig.4 Overall block diagram of TPC code identification
對于TPC 碼的盲識別,關鍵在于編碼結構和子碼的識別,通過識別子碼能夠確定碼型是否為TPC碼。但TPC 碼的碼長通常較大(1000 以上),結構較為復雜,需要首先估計TPC 碼的碼長。由于TPC 碼的特性,一般碼長估計的算法很難適用于TPC 碼長估計,通常需要結合信道幀結構分析確定碼長。TPC碼在實際傳輸過程中,都是以同步碼字為序列幀頭,然后再與二維或三維編碼結合進行組合傳輸,如圖5所示。文獻[10]提出了基于同步碼快速檢測來確定TPC碼的幀結構,去掉同步碼即為TPC碼的碼長。
圖5 TPC碼傳輸模型Fig.5 TPC code transfer model
在實際的通信系統(tǒng)中,采用分組碼的比特流序列通常具有固定的幀結構和同步碼[12],且已有方法能夠?qū)崿F(xiàn)幀同步碼的盲識別,故本文假設已完成幀同步[13-14]。因此,對于TPC碼的盲識別,是在幀同步的基礎上,幀長度已知,可通過識別每幀排成的碼字矩陣是否同時存在行、列線性分組子碼,判斷TPC碼是否存在,若存在,可通過分析子碼的參數(shù)進一步確定TPC碼的參數(shù),包括信息塊大小、碼率等。
對于三維TPC 碼和復用式三維TPC 碼,主要的區(qū)別在于Z維上是否存在編碼,即三維TPC碼的Z維存在分組編碼,而復用式三維TPC 碼不存在,如圖2和圖3所示。由圖2可知,三維TPC碼,Z維方向是由k3個n1×n2大小的二維TPC碼作為信息位,n3-k3個平面作為校驗位構成。由表2可知,Z維方向使用的編碼分為(n,k)擴展BCH碼和(n,n-1)偶校驗碼,其中k≠n-1,擴展BCH 碼是由BCH 碼和偶校驗碼復合而成,下面分別研究兩種類型校驗位的編碼情況。
對于Z維方向使用的編碼為(n,k)擴展BCH碼,先進行本原BCH 碼編碼,再進行擴展碼編碼。本原BCH 碼和偶校驗位作為系統(tǒng)線性分組碼,從系統(tǒng)線性分組碼的基本性質(zhì),研究Z維方向校驗位的關系。系統(tǒng)線性分組碼的生成關系如式(1)、(2)所示[4]。
由式(2)可得,生成矩陣G的左邊是一個k×k的單位矩陣,右邊是一個k×(n-k)的矩陣塊,該矩陣塊的每一列可由單位矩陣的某幾列線性組合而成。因此,對于信息組m=(mk-1,mk-2,…,m1,m0),可由式(1)得到線性分組編碼,即信息組保持不變,校驗位由式(3)的關系得到。
根據(jù)式(3)的關系可知,本原BCH碼的校驗位是信息位之間的線性組合,不同校驗位對應的組合系數(shù)不同。對于三維TPC 碼,以X-Z平面為例進行研究,Y-Z平面同理。在X-Z平面上,X方向為C1(n1,k1,d1)線性分組碼,Z方向則是對n1個k3位的信息位矩陣進行編碼,得到(n3-k3-1)×n1大小的校驗位矩陣。對于n1個(n3-k3-1)位的校驗位,每個都是k3個信息位按照式(3)線性組合而成,Z方向上(n3-k3-1)個n1位的校驗比特是由k3個線性分組碼線性組合而成,結合引理1,可得到命題1。
引理1[4]:對于同一編碼類型和參數(shù)的系統(tǒng)線性分組碼,任意個不同編碼之間的線性組合,得到的碼組仍然是該類型的編碼。
命題1:對于子碼為擴展BCH碼、偶校驗碼構造的三維TPC 碼,在Z軸方向上,校驗部分的X-Y平面仍然是二維TPC 碼,對應的X維和Y維為擴展BCH碼或偶校驗碼。
若子碼均是擴展BCH 碼,則Z方向上(n3-k3-1)個n1位的校驗比特是k3個C1(n1,k1,d1)擴展BCH碼的線性組合,每個n1位的校驗比特就是一個參數(shù)為C1(n1,k1,d1)的擴展BCH 碼。對于Z軸方向使用的編碼為(n,n-1)偶校驗碼,以及擴展BCH碼的擴展位,均滿足公式(4)。在X-Z平面X方向上,n3-1個本原BCH 碼按照式(4)計算擴展位,Z方向上,n1個n3-1位信息位,每個按照式(4)得到擴展位。因此,在三維TPC碼Z方向上的最后一個平面,其每行、列均滿足公式(4),即每行、列也是(n,n-1)偶校驗碼。
實際應用中,TPC碼子碼主要包括擴展?jié)h明碼、擴展BCH碼和偶校驗碼,對于碼長為2m-1、糾單個錯誤的BCH碼就是漢明碼[15],因此,本文中涉及的漢明碼按照BCH 碼進行研究。擴展BCH 碼就是在原碼BCH碼的基礎上,擴展一位奇偶校驗位得到。
對于參數(shù)為(n,k,d)的分組碼,設d為奇數(shù),對每一個碼字v=(vk-1,vk-2,…,v1,v0),增加一個校驗位,其值為二進制“0”或者“1”,滿足如下二進制運算關系:
若原碼字的重量為奇數(shù),由式(4)加上校驗位后碼重變?yōu)榕紨?shù),原碼重為偶數(shù)的則校驗位為“0”。由式(4)變換后,碼的最小重量變?yōu)閐+1,碼長變?yōu)閚+1,因此,稱(n+1,k,d+1)碼為(n,k,d)碼的擴展碼[4]。偶校驗碼的參數(shù)為(n,n-1),生成關系也滿足式(4),碼重均為偶數(shù)。擴展BCH 碼,在(n,k)或(n-b,k-b)BCH 碼的基礎上,按照式(4)的關系得到,碼重也均為偶數(shù)。
綜上所述,可得命題2,下文將基于該命題給出TPC子碼碼長識別的算法。
命題2:擴展?jié)h明碼、擴展BCH碼和偶校驗碼的碼重均為偶數(shù)。
設去除幀同步的碼流r每幀長度為L,按照式(5)對不同碼組長度n進行分塊,得到個碼組,i∈[1,S],ri,j表示碼元“0”或“1”。
不考慮誤碼情況,若碼長估計正確,所有碼組的重量均為偶數(shù),遍歷碼長若不是實際碼長,按照碼重分布隨機理論,奇數(shù)碼重和偶數(shù)碼重的碼組各占總碼組的50%左右。當存在誤碼時,導致碼重發(fā)生變化,其奇偶性也可能隨之變化,若發(fā)生奇數(shù)個錯誤,則碼重變?yōu)槠鏀?shù),若發(fā)生偶數(shù)個錯誤,則碼重仍為偶數(shù)。但在一定的誤碼范圍內(nèi),碼長估計正確時,其偶數(shù)碼重的碼組所占比例仍然較大,由此可估計子碼碼長。
子碼碼長估計的具體步驟如下:
步驟1對于不同的遍歷碼長n,按照式(5)、(6)構建S×n大小的矩陣R。
步驟2統(tǒng)計每個碼組的碼重wi(v),并判斷其奇偶性,如圖6所示。
圖6 碼重奇偶性判別示意圖Fig.6 Schematic of parity discrimination of code weight
步驟3統(tǒng)計偶數(shù)碼重的個數(shù)D(n),并計算其占所有碼組的比例E(n)=D(n)/S。
步驟4對E(n)求平均值得到mean(E(n)),然后計算E(n)與均值的差值,如下式:
對TPC 碼的識別,不僅要識別是否存在,還需要識別TPC 碼的結構,區(qū)分二維TPC 碼、三維TPC碼和復用式三維TPC 碼。而每幀中,可能存在不止一個二維TPC 碼,這是區(qū)分不同結構的關鍵所在,如圖7 所示。設二維TPC 碼按照X維由上至下逐行發(fā)送,三維TPC 碼在二維TPC 碼平面的基礎上,從前到后逐面發(fā)送。
圖7 每幀TPC碼結構Fig.7 TPC code structure of each frame
按照圖5的結構,去除同步碼后,使用碼重奇偶性識別每幀的碼流中是否存在X維碼長,若存在,則按此長度將每幀數(shù)據(jù)排列成矩陣,識別Y維上是否存在碼長。若每幀數(shù)據(jù)排成矩陣后,行、列均存在碼長,比較幀長L與n1×n2之間的關系,兩者相等,則認為是二維TPC 碼。如果兩者不相等,對每幀按照n1列排列的矩陣進行Y維上分段碼長識別,分段長為碼長n2,根據(jù)分段識別產(chǎn)生的峰值,判斷Z維上二維TPC 碼的個數(shù)。若此個數(shù)與L/(n2×n1)相等,則再次利用碼重奇偶性識別Z維上是否存在碼長,區(qū)分三維TPC 碼和復用式三維TPC 碼,從而完成TPC碼的識別和結構的區(qū)分,過程如圖8所示。
圖8 TPC碼識別流圖Fig.8 TPC code identification flow diagram
實驗仿真生成TPC 碼,所選碼型來自表1、表2和表3,不失一般性,設噪聲環(huán)境為通信系統(tǒng)中最常用的二進制對稱信道。仿真編碼為二進制數(shù)據(jù),過信道后,取同步碼之后的數(shù)據(jù)進行識別。
本小節(jié)主要考察本文算法對TPC 碼識別和結構區(qū)分的有效性。
1)二維TPC碼識別有效性分析
對表1 中子碼為(44,31)、(43,30)擴展BCH 碼的TPC 碼進行驗證,其他碼型同理。該TPC 碼碼長為1892 比特,仿真中取數(shù)據(jù)幀數(shù)M為15,信道誤碼率τ=0.01,結果如圖9所示。
圖9 長度為1892的二維TPC碼在τ=0.01條件下識別結果Fig.9 Recognition result of two-dimensional TPC code with length of 1892 under τ=0.01 condition
可以發(fā)現(xiàn),當X維碼長n識別正確時,碼長n處所對應的差值V(n)最大。在碼長n整數(shù)倍處,也存在局部峰值,如圖9(a)所示。產(chǎn)生峰值的原因是碼長正確時或者是碼長整數(shù)倍時,碼組內(nèi)碼字之間存在約束關系,碼重的奇偶性不存在隨機性。一定的誤碼范圍內(nèi),部分偶數(shù)碼重變?yōu)槠鏀?shù)碼重,偶數(shù)碼重仍然占據(jù)大多數(shù),此時差值V(n)取到最大值,判斷為實際碼長。由圖9可知,每幀數(shù)據(jù)排成矩陣后,按行識別存在碼長為44的編碼,按列識別存在碼長為43的編碼,且44×43=1892,即兩維碼長相乘等于TPC碼長,由此可判斷為二維TPC碼。
2)三維TPC碼識別有效性分析
對表2中子碼為(16,11)、(32,26)擴展BCH碼以及(8,7)偶校驗碼構造的TPC碼進行驗證,其他碼型同理。該TPC碼碼長為4096比特,仿真中取數(shù)據(jù)幀數(shù)M為15,信道誤碼率τ=0.02,結果如圖10所示。
圖10 長度為4096的三維TPC碼在τ=0.02條件下識別結果Fig.10 Recognition results of 3D TPC code with length of 4096 under τ=0.02 condition
按照圖8 所示的流程,使用碼重奇偶性和分段識別的方式對三維TPC 碼進行識別,結合圖10(a)、圖10(b)可知,識別到其中X維的碼長為16,按此長度排列碼字矩陣,再次識別到Y維的碼長為32。然后每幀數(shù)據(jù)按照矩陣16×256 大小排列,以碼長32進行分段碼長識別,識別存在的峰值,由圖10(c)可知,256的長度中存在8個間隔為32的峰值,可判斷Z維方向上有8 個二維TPC 碼?;诖a重奇偶性,再次對TPC 碼的Z維進行長度識別,由圖11(d)可知,存在長度為8的編碼,且該值為4096/(16×32),即TPC 碼碼長除以二維TPC 碼的值。綜上識別結果,可判斷為三維TPC碼,每個維度都存在編碼。
圖11 長度為65536的復用式三維TPC碼在τ=0.005條件下識別結果Fig.11 The multiplexed 3D TPC code with length of 65536 was identified under τ=0.005 condition
3)復用式三維TPC碼識別有效性分析
對表3 中子碼為(64,57)、(128,120)擴展BCH碼構造的三維復用式TPC 碼進行驗證,取N為8,其他碼型同理。該TPC 碼碼長為65536 比特,仿真中取數(shù)據(jù)幀數(shù)M為10,信道誤碼率τ=0.005,結果如圖11所示。
復用式三維TPC碼與三維TPC碼的區(qū)別是Z維方向上是否存在編碼,按照圖8所示的流程,對復用式三維TPC 碼進行識別,由圖11(a)、圖11(b)可知,識別到其中X維的碼長為64,按此長度排列碼字矩陣,再次識別到Y維的碼長為128。然后每幀數(shù)據(jù)按照矩陣64×1024大小排列,以碼長128進行分段碼長識別,識別存在的峰值,由圖11(c)可知,1024的長度中存在8個間隔為128的峰值,可判斷Z維方向上有8個二維TPC 碼。為了與三維TPC 碼進行區(qū)別,再次對TPC 碼的Z維進行長度識別,由圖11(d)可知,Z維上碼長識別不存在明顯的峰值,且峰值不位于碼長為8 處。綜上識別結果,該TPC 碼為復用式三維結構,每幀由8 個大小為64×128 的二維TPC碼復用而成。
本節(jié)主要考察不同幀數(shù)、子碼及碼長對TPC 碼識別性能的影響。設仿真中數(shù)據(jù)通過二進制對稱信道,誤碼率范圍為10-3~3×10-2,間隔為2×10-3,蒙特卡洛仿真次數(shù)為500。
1)不同幀數(shù)對識別性能的影響
本節(jié)主要考察碼字幀數(shù)對TPC 碼識別的影響。三維TPC 碼的識別是建立在二維TPC 碼基礎上的,因此,以二維TPC 碼的識別為例,研究不同幀數(shù)對識別性能的影響。理論上,對于同一誤碼率,幀數(shù)越多,識別出TPC 碼的概率就越高,但所需的時間也越長,需要綜合考慮識別準確率與時間的關系,在識別準確率相差不大的時候,所需要的幀數(shù)盡可能少,以便加快識別速度。仿真使用的編碼為表1中碼長為2944 的TPC 碼,其子碼分別為(64,57)、(46,39)擴展BCH 碼。設接收到的TPC 碼字幀數(shù)M分別為5、10、15、20、25 和30,統(tǒng)計不同誤碼率下TPC碼識別的準確率,結果如圖12所示。
圖12 子碼為BCH(64,57)*(46,39)TPC碼在不同誤碼率下的識別準確率Fig.12 Identification accuracy of TPC code with sub code BCH(64,57)*(46,39)under different bit error rates
由圖12 可以看出,隨著TPC 碼幀數(shù)的增加,識別準確率也有所提升,主要是因為隨著碼字幀數(shù)的增加,所求得的結果更具有穩(wěn)健性,使識別結果準確率更高。以誤碼率為0.015 為例,碼字幀數(shù)M由5 增加到20 時,準確率提升明顯,當碼字幀數(shù)達到20 以上時,性能提升趨緩,但均到達了90%以上的識別準確率。因此,取20 幀以上的數(shù)據(jù)進行處理,基本能夠滿足識別需求。
2)子碼及碼長對識別性能的影響
本節(jié)主要考察不同子碼及碼長對TPC 碼識別的影響,碼型為表1、表2和表3中設定的參數(shù),設定識別的幀數(shù)為25,其他條件同上,研究子碼及碼長對識別性能的影響,表3 中的N與對應三維TPC 碼的Z維子碼碼長相同。
表1中各種TPC 碼在不同誤碼率條件下的識別準確率如圖13 所示,由圖可知,由相同子碼構造的TPC 碼,碼長越長,相同誤碼率情況下,識別準確率越低,這是因為子碼長度越長,碼重奇偶性出錯的概率越大。而對于碼長相同、信息長不同的子碼構造的TPC 碼,識別準確率基本相同。對于X維子碼相同,Y維子碼長度在不超過X維子碼長度的情況下,長度越短,識別準確率越低。這是由于子碼長度的識別會受到另一維子碼長度的影響,一維子碼長度變短,對應的另一維子碼識別的碼組數(shù)就會減少,識別準確率就會降低。
圖13 表1中TPC碼在不同誤碼率下的識別準確率對比Fig.13 Table 1 comparison of TPC code recognition accuracy under different bit error rates
表2 和表3 中TPC 碼在不同誤碼率條件下的識別準確率如圖14 所示,由圖可知,對于三維TPC 碼和復用式三維TPC 碼,隨著誤碼率的升高,識別準確率呈現(xiàn)下降趨勢。在碼長和X維、Y維相同的情況下,本文算法對三維TPC 碼的識別率高于復用式三維TPC 碼,這是由于算法會將部分三維復用式TPC碼識別為三維TPC碼。
圖14 表2和表3中TPC碼在不同誤碼率下的識別準確率對比Fig.14 Table 2 and table 3 comparison of TPC code recognition accuracy under different bit error rates
設去除幀同步之后的TPC碼每幀硬判決序列長度為L,識別幀數(shù)為M。遍歷X維子碼不同碼長,碼長遍歷范圍為1~n1,n1可取150 左右,每幀得到S=個碼組,共得到M×S個碼組。在X維子碼遍歷碼長估計時,計算量主要體現(xiàn)在碼重統(tǒng)計和奇偶性判斷上,碼重統(tǒng)計需要×S×n次加法,奇偶性判斷可等效為M×S次加法和M×S次乘法。在得到X維子碼碼長n1后,將每幀數(shù)據(jù)按照n1列S行進行排列,識別Y維子碼碼長,碼長遍歷范圍為1~n2,n2=L/n1。計算量也體現(xiàn)在碼重統(tǒng)計和奇偶性判斷上,碼重統(tǒng)計需要×n1×n次加法,奇偶性判斷可等效為M×n1次加法和M×n1次乘法。同理,Z維子碼碼長復雜度為×n1×n2×n,奇偶性判斷可等效為M×n1次加法和M×n1次乘法,其中N=L/(n1×n2)。因此,本文算法識別TPC 碼的算法復雜度與維度有關,根據(jù)維數(shù)將上述的乘法和加法次數(shù)求和即可得到總的復雜度。本文仿真實驗在i7-8700處理器平臺進行。設接收到的幀數(shù)M為5,以表1 中的TPC(128,120)*(128,120)碼為例,取n1為150,誤碼率為0.005,則完成一次二維TPC 碼識別所需的時間為6.3 s左右。
本文提出了一種基于子碼識別的TPC 碼盲識別方法。該方法利用子碼共有的特性,使用碼重奇偶性對TPC 碼的每一維度存在的編碼長度進行估計,在二維TPC 碼識別正確的基礎上,進一步識別存在的三維TPC 結構。碼重奇偶性能夠識別出子碼擴展?jié)h明碼、擴展BCH 碼、偶校驗碼的碼長,分段識別的結果能夠進一步驗證Z維方向上存在二維TPC 碼的個數(shù)。仿真結果表明,文章提出的方法能夠?qū)φ`碼條件下三種TPC 碼結構進行有效盲識別,具有較高的實用價值。