1.引言
卷積碼的編碼器是由一個有k位輸入、n位輸出,且具有m位移位寄存器構(gòu)成的有限狀態(tài)的有記憶系統(tǒng),通常稱它為時序網(wǎng)絡(luò)。編碼器的整體約束長度為v,是所有k個移位寄存器的長度之和。具有這樣的編碼器的卷積碼稱作[n,k,v]卷積碼。對于一個(n,1,v)編碼器,約束長度v等于存儲級數(shù)m.卷積碼是由k個信息比特編碼成n(n>k)比特的碼組,編碼出的n比特碼組值不僅與當(dāng)前碼字中的k個信息比特值有關(guān),而且與其前面v個碼組中的v*k個信息比特值有關(guān)。
卷積碼有三種譯碼方式:序列譯碼、門限譯碼和概率譯碼。其中,概率譯碼根據(jù)最大似然譯碼原理在所有可能路徑中求取與接收路徑最相似的一條路徑,具有最佳的糾錯性能,維特比譯碼是概率譯碼中極重要的一種方式。
序列譯碼和門限譯碼則不一定能找出與接收路徑最相似的一條路徑。不同于維特比譯碼,門限譯碼與序列譯碼所需的計(jì)算量是可變的且對于給定信息分組的最終判決僅僅基于(m+1)個接收分組,而不是基于整個接收序列。
與維特比譯碼所使用的對數(shù)似然量度不同,序列譯碼所使用的量度為fano量度。在接收序列受擾嚴(yán)重的情況下,序列譯碼的計(jì)算量大于維特比譯碼所需的固定計(jì)算量,雖然序列譯碼要求的平均計(jì)算次數(shù)通常小于維特比譯碼。在采用并行處理的情況下,維特比譯碼的速度會優(yōu)于序列譯碼。在同樣碼率和存儲級數(shù)的條件下,門限譯碼的性能比維特比譯碼低大約3db.
維特比譯碼的數(shù)據(jù)輸出方式有硬判決及軟判決兩種方式,本文選取生成多項(xiàng)式為561,753的(2,1,8)卷積碼對硬判決的性能進(jìn)行分析,并依據(jù)維特比譯碼的原理以及卷積碼的特性,對卷積碼編碼和維特比譯碼過程在加性高斯白噪聲(awgn)信道下進(jìn)行仿真,并且根據(jù)仿真結(jié)果對維特比譯碼(硬判決)的結(jié)果進(jìn)行分析。由于卷積碼的生成可以看做一個馬爾科夫過程,因此,不同狀態(tài)間的轉(zhuǎn)移概率對描述這個過程有極關(guān)鍵的作用。本文則基于matlab對不同狀態(tài)間的轉(zhuǎn)移概率進(jìn)行求解,從而更準(zhǔn)確地分析維特比譯碼的性能。仿真結(jié)果表明卷積碼抗突發(fā)錯誤的能力不強(qiáng),生成多項(xiàng)式為561,753的(2,1,8)卷積碼在信噪比大于1db時,編碼增益體現(xiàn)明顯。在信噪比低于-1db時,編碼增益得不到體現(xiàn)。
2.卷積碼編碼譯碼原理
卷積碼編碼通過輸入序列與生成多項(xiàng)式的每一行做卷積,每次輸入k比特,輸出n個比特。在卷積碼編碼器中,每(m+1)個比特構(gòu)成譯碼器中的一個狀態(tài)。假設(shè)在一個二進(jìn)制輸入的離散無記憶信道上,有一個長度為k*l的信息序列u=(u0,u1,…,ul-1)被編碼成為長為t=n(l+m)的碼字c=(c0,c1,…,ct-1),接收到的序列為r=(r0,r1,…,rt-1)。維特比譯碼使用對數(shù)量度來衡量幸存路徑所編成的碼字與接收序列的相似度,量度越大,說明該幸存路徑是信息序列的概率越大。維特比譯碼選取那條量度最大的幸存路徑作為譯碼結(jié)果。
由于對離散無記憶信道:
其中p ( r l | v l )是信道轉(zhuǎn)移概率;logp(r|v)稱為和路徑v相關(guān)的量度,以m(r|v)表示;logp(rl|vl)稱為分支量度。
維特比譯碼的原理則是找出一條路徑,使得該路徑的累積量度最大。在譯碼過程中,如果在某一節(jié)點(diǎn)上發(fā)現(xiàn)某路徑已不可能是需要找到的那條路徑,就將此路徑去掉,不保存在幸存路徑之中。然后再在剩下的幸存路徑中選擇譯碼路徑,直到輸入所有譯碼器序列。理論上,搜索路徑需要無限長度,而實(shí)際應(yīng)用中考慮到試驗(yàn)因素搜索長度有限,搜索長度對譯碼性能有一定的影響,搜索路徑的長度一般為約束長度的四倍到五倍。維特比譯碼可以被總結(jié)成如下步驟:
第一步:在時間單元t=m開始,計(jì)算進(jìn)入每一狀態(tài)的單個路徑的部分量度,并存儲每一狀態(tài)下的路徑(幸存的)及其量度。
第二步:t增加1.將進(jìn)入每一狀態(tài)的分支量度與前一時間單元有關(guān)的幸存路徑的量度相加,計(jì)算進(jìn)入該狀態(tài)的所有2k路徑的部分量度;對每一狀態(tài),比較進(jìn)入該狀態(tài)的所有2k路徑的量度,選擇具有最大量度的路徑(幸存路徑),存儲該路徑及其量度,并刪除其他所有路徑。
第三步: 如果t < l + m , 重復(fù)步驟二;否則停止。
維特比譯碼性能分析:
假設(shè)一個二進(jìn)制序列經(jīng)bpsk調(diào)制后通過加性高斯白噪聲(awgn)信道后的誤比特率為e,因?yàn)楸疚牟捎玫纳啥囗?xiàng)式為561,753的(2,1,8)卷積碼編碼器,則有9*2=18個比特與當(dāng)前輸出比特相關(guān)。由于該卷積碼的自由距為12,因此如果一個比特出現(xiàn)譯碼錯誤,則留下的幸存路徑(也即最大似然路徑)經(jīng)編碼后的序列會與正確路徑的序列相差1 2比特,并且會對其后18個比特產(chǎn)生影響。
所以,維特比譯碼抗突發(fā)錯誤能力不強(qiáng),而實(shí)際應(yīng)用時往往在卷積編碼后加入交織編碼,使突發(fā)錯誤離散化。因?yàn)榫矸e碼的馬爾科夫性,可以推測出:當(dāng)不編碼時,若誤比特率足夠高,則編碼后序列的誤比特率會比不編碼更高。而仿真結(jié)果表明,當(dāng)未編碼序列的誤比特率達(dá)到8*10-2,隨著未編碼序列的誤比特率升高,編碼后序列的誤比特率會迅速升高。而在當(dāng)未編碼序列的誤比特率小于5*10-2時,編碼后序列的誤比特率升高得較為緩慢且編碼增益得到明顯體現(xiàn)。
3.卷積碼編碼及維特比譯碼仿真
自編函數(shù)對維特比譯碼仿真:
本文應(yīng)用matlab對卷積碼編碼器以及維特比譯碼器進(jìn)行仿真。由于卷積碼的馬爾科夫性,轉(zhuǎn)移概率是其中一個重要特性。顯然,如果其中一個比特譯碼錯誤,后面n個比特的誤比特率都會因此受到影響,所以需要求出一步轉(zhuǎn)移概率、兩步轉(zhuǎn)移概率…n步轉(zhuǎn)移概率。由于本文采用的是(2,1,8)卷積碼,n=8.
基于matlab首先編寫出模擬卷積碼編碼和維特比譯碼的函數(shù),再分類討論。在一定誤比特率情況下,當(dāng)影響第l個比特譯碼的2*9個比特中錯n(n=1,2,3…,18)個時,求得第(l+n)比特譯碼錯誤的轉(zhuǎn)移概率。假設(shè)bpsk調(diào)制的誤碼率為e;在影響第l比特譯碼結(jié)果的18個比特中有n個誤比特時,假設(shè)第(l+h)個比特經(jīng)譯碼后的誤比特率為p (h) n .
由于加性高斯白噪聲信道是非記憶信道,則譯碼后序列的誤比特率近似等于:
其中pr(n)是18個比特中有n比特錯的概率,當(dāng)誤比特率為e, ,n=18.
創(chuàng)建m文件,函數(shù)有三個輸入:生成多項(xiàng)式g、接收到的信道輸出誤比特率ber、影響第x比特譯碼結(jié)果的18比特中的誤比特?cái)?shù)n,輸出則是p (h) n .這里h的值為1~8.對于信道輸出序列的誤碼率為0.1時進(jìn)行分析,基于matlab仿真得到的所有p (h) n 如圖1所示。
由圖1中的結(jié)果可以算出當(dāng)接收到的信道輸出序列的誤碼率為0.1時,經(jīng)維特比譯碼后的誤比特率約為0.1071.
而且,當(dāng)信道輸出中連續(xù)1 8比特的誤比特?cái)?shù)大于3 時, 第( x + h ) 個比特的誤比特率遠(yuǎn)高于平均誤比特率,這表明維特比譯碼抗突發(fā)錯誤能力低下。
以n=4為例,根據(jù)圖1中數(shù)據(jù)可得出當(dāng)h=1,2,…,8時,第(x+h)個比特的平均誤比特率為0 . 3 9 2 2.當(dāng)n的值比較小時( n < 4 ),可以得到以下結(jié)論,當(dāng)h=1,2,…,8時,第(x+h)個比特的誤比特率隨h增加而增大。由于卷積碼的特性,第l個比特的譯碼結(jié)果可直接影響第(x+j)個比特(j=1,2,…,7)的譯碼結(jié)果,而第(x+j)個比特的譯碼結(jié)果又會直接影響第(x+h)個比特(h=1,2,…,8)的譯碼結(jié)果。因?yàn)檫@種迭代關(guān)系,第(x+h)個比特的誤碼率會隨h增大而增大,從而造成卷積碼抗突發(fā)錯誤性能低下。并且,在信道輸出的誤碼率較大時,碼字速率已經(jīng)大于信道容量,此時采用編碼不可能進(jìn)行可靠通信。
仿真結(jié)果表明:當(dāng)信噪比等于-1db時,一個序列通過加性高斯白噪聲信道后接收到的信道輸出誤比特率大于10-1,且該序列運(yùn)用[2,1,8]卷積碼編碼,維特比譯碼(硬判決)后所得的序列誤比特率升高。當(dāng)信噪比為2db時,一個序列通過加性高斯白噪聲信道后接收到的信道輸出誤比特率約為4*10-2,且該序列運(yùn)用[2,1,8]卷積碼編碼,維特比譯碼后所得的序列誤比特率小于10-3,誤碼率遠(yuǎn)低于不編碼時的誤碼率。因此卷積碼適用于信道輸出誤碼率比較低時候。
4.結(jié)論
本文基于matlab對卷積碼編碼和維特比譯碼進(jìn)行仿真,比較了未編碼序列的誤比特率和編碼后序列的誤比特率。依據(jù)卷積碼的馬爾科夫性,利用matlab仿真,對其轉(zhuǎn)移概率進(jìn)行了求解,并通過轉(zhuǎn)移概率得出了維特比譯碼的性能以及卷積碼抗突發(fā)錯誤能力不高的結(jié)論。當(dāng)信噪比為-1db時,生成多項(xiàng)式為561,753的(2,1,8)卷積碼的誤碼率約為1.27*10-1,而不編碼的bpsk的誤碼率約為1.04*10-1,編碼后誤碼率反而高于不編碼。在信道條件較好時,卷積碼的編碼增益體現(xiàn)明顯,當(dāng)信噪比為2db,生成多項(xiàng)式為561,753的(2,1,8)卷積碼的誤碼率約為8*10-4,而不編碼的bpsk的誤碼率約為4.64*10-2,編碼后誤碼率明顯降低。