Turbo码原理简介
Turbo碼原理簡介
?
1993年C.Berrou、A.Glavieux和P.Thitimajshiwa首先提出了稱之為Turbo碼的并行級聯(lián)編譯碼方案。Turbo碼性能取決于碼的距離特性。線性碼的距離分布同于重量分布,如果低重量的輸入序列經編碼得到的還是低重量的輸出序列,則距離特性變壞。該特性對于塊碼來說不存在問題;然而對于卷積碼,則是個非常嚴重的問題。因為卷積碼的距離特性是影響誤碼率的一個非常重要的因素。
在Turbo碼中,利用遞歸系統(tǒng)卷積碼(RSC)編碼器作為成員碼時,低重量的輸入序列經過編碼后可以得到高重量的輸出序列。同時交織器的使用,也能加大碼字重量。實際上,Turbo碼的目標不是追求高的最小距離,而是設計具有盡可能少的低重量碼字的碼。Turbo碼由兩個遞歸系統(tǒng)卷積碼(RSC)并行級聯(lián)而成。譯碼采用特有的迭代譯碼算法。
1? Turbo碼編碼原理
典型的Turbo碼編碼器結構框圖如圖2所示:由兩個反饋的編碼器(稱為成員編碼器)通過一個交織器I并行連接而成。如果必要,由成員編碼器輸出的序列經過刪余陣,從而可以產生一系列不同碼率的碼。例如,對于生成矩陣為g=[g1,g2]的(2,1,2)卷積碼通過編碼后,如果進行刪余,則得到碼率為1/2的編碼輸出序列;如果不進行刪余,得到的碼率為1/3。一般情況下,Turbo碼成員編碼器是RSC編碼器。原因在于遞歸編碼器可以改善碼的比特誤碼率性能。
2 編碼
方案中使用的Turbo碼為1/3碼率的并行級聯(lián)碼,它的編碼器由兩個相同的碼率為1/2的RSC編碼器及交織器組成,如圖4所示。
由于與非遞歸卷積碼相比,遞歸卷積碼產生的碼字重量更大,所以這里采用了兩個相同的系統(tǒng)遞歸卷積碼(RSC)。信息序列分成相同的兩路,第一路經過RSC編碼器1,輸出系統(tǒng)碼及校驗碼。另一路先通過交織器進行交織,使信息序列在1幀內重新排列順序,然后經過RSC編碼器2得到系統(tǒng)碼和對應的校驗碼,由于該系統(tǒng)碼和實際上都是原信息序列,只是排列順序不同,在接收端完全可以通過對進行交織得到,因此在傳輸過程中可以省去,而只保留對應的校驗位。在具體實現(xiàn)中, RSC編碼器2的輸入是通過對RSC編碼器1的系統(tǒng)輸出進行交織來得到的。再經過并/串轉換,作為整個Turbo碼編碼器的輸出。對應于每1位信息比特,該編碼器輸出3位,因此其碼率為1/3。如果采用了奇偶刪余,即在并/串轉換時,在校驗位奇位上取,偶位上取或反之,則碼率可升為1/2。
由于RSC編碼器不能如非遞歸編碼器一樣通過輸入連“0”序列來使編碼器復位(網格終止),因此通過設計如圖8所示的A、B間的開關來控制編碼器終止,當一幀結束時,開關由A打到B,則經過m時刻后,編碼器復位,可以對下一幀數(shù)據(jù)進行編碼。這里m=2。只有RSC編碼器1(外編碼器)進行了網絡終止,RSC編碼器2保持開放。
3????????譯碼
由于Turbo碼是由兩個或多個成員碼經過不同交織后對同一信息序列進行編碼。譯碼時,為了更好地利用譯碼器之間的信息,譯碼器應該利用軟判決信息,而不是硬判決信息。因此,一個有兩個成員碼構成的Turbo碼的譯碼器是由兩個與成員碼對應的譯碼單元和交織器與解交織器組成的,將一個譯碼單元的軟輸出信息作為下一個譯碼器單元的輸入,為了進一步提高譯碼性能,將此過程迭代數(shù)次。這就是Turbo碼的迭代譯碼算法的原理。
Turbo碼可以利用多種譯碼算法,如最大似然譯碼MAP、Log-MAP算法、Max-log-MAP算法和SOVA算法等。
圖所示為Turbo碼迭代譯碼器的結構。
Turbo碼譯碼器為串行結構,兩個編碼器所產生的校驗信息通過串并轉換被分開,分別送到對應的譯碼器輸入端。首先,第一級譯碼器根據(jù)系統(tǒng)位信息L(ys|u)和第一級編碼器的校驗位信息L(y1|x1)得到輸出信息(此時譯碼器2外信息Le[C2](u)=0),輸出信息包含兩部分,一部分是由譯碼器根據(jù)碼字相關性提取出來的外信息,用Le[C1](u)表示;另一部分來自于系統(tǒng)位對應的信道輸出,在傳遞給下一級譯碼器之前,被減去。Le[C1](u)在交織之后被送到譯碼器2作為先驗信息,譯碼器2因此根據(jù)校驗位信息、系統(tǒng)位信息和Le[C1](u)這三者共同做出估計,得到輸出信息L(u),L(u)在減去Le[C1](u)+L(ys|u)之后,得到譯碼器2的外信息Le[C2](u),它在解交織之后,反饋給第一級譯碼器作為先驗信息,結合Le[C2](u),譯碼器1重新做出譯碼估計,得到改善的外信息。而此時的外信息又可以傳遞到譯碼器2,如此往復,形成迭代過程。最終,當達到預先設定的迭代次數(shù)或滿足迭代結束條件時,譯碼結束,取L(u)的符號作為最終硬判決輸出。
a)SOVA譯碼算法
傳統(tǒng)Viterbi算法用來計算卷積碼的最大似然(ML)序列,只提供硬判決輸出。但在級聯(lián)系統(tǒng)中,前級硬判決實際上相當于丟失了信息,使后級譯碼器無法從解調得到的軟輸出中獲益。SOVA是改進的Viterbi算法,它可以給出譯碼結果的可靠性值(軟輸出),這個可靠性值作為先驗信息傳遞給下級譯碼器,從而提高譯碼性能。
b) LOG-MAP譯碼算法
LOG-MAP是改進的MAP(最大后驗概率)算法,它在對數(shù)域進行計算,可以將MAP算法中大量的乘法運算化簡為加法運算,從而降低計算量。除此之外,它的基本原理與經典MAP算法相同。
MAP算法由Bahl等人于1974年提出,因此又稱為BCJR算法。與Viterbi算法不同,它估計出最大似然比特,而前者產生最大似然序列。也就是說Viterbi算法提供整體最優(yōu)解,而MAP算法則提供個體最優(yōu)解。
前面已經提到,卷積碼編碼過程實際就是一個有限狀態(tài)機的狀態(tài)轉移過程。設t時刻編碼器從狀態(tài)S t-1轉移到狀態(tài)S t,對應的輸入為u t=k,k∈{0,1},輸出校驗位為x t, 它與u t一起傳輸?shù)浇邮斩?#xff0c;譯碼器的任務就是根據(jù)接收信號y t來盡可能恢復u t。圖3.23示意了這一過程。由于u t與狀態(tài)轉移是對應的,因此,有
??????????????????????????? (3.20)
式中表示接收序列[y1….yN]。因此,只要得到所有的
???????????????????????????????????????????????????????? (3.21)
就可以通過對其中那些對應于的狀態(tài)轉移概率求和來得到信息比特的后驗概率。由貝葉斯定理,
????????????????????????? (3.22)
上式右側分子項聯(lián)合概率可作進一步化簡:
???????????????? (3.23)
以上的化簡過程中應用了馬爾可夫信源的性質,即t時刻以后的狀態(tài)只與St及以后的輸入有關,而與t時刻之前的狀態(tài)和輸入無關,也就是說得到了t時刻的狀態(tài),之后的狀態(tài)轉移就不再依賴于以及t-1時刻的狀態(tài)。(3.23)式分為三部分,可以分別定義如下,令:
則聯(lián)合概率可寫為:
?????????????????????? (3.24)
其中,和可以用遞歸方法求出:
???????????????????????????????????????????????????????? (3.25)
???????????????????????????????????????????????????? (3.26)
通常,編碼器的初始狀態(tài)已知,對于編碼器1,幀結束時網絡終止,因此其終了狀態(tài)了也是已知的,因此有
以及
對于編碼器2,由于網格不終止,可以認為它的終了狀態(tài)是平均分布的。另外,有
????????????????????????????????????? (3.27)
式中為信息符號,為對應于狀態(tài)轉移的編碼輸出符號。上式中為信息符號的先驗概率,而條件概率可由如前所述的信道模型得到。
MAP算法可按以下步聚實現(xiàn):
1.對于每個時刻t,根據(jù)解調軟輸出y和信息符號u計算式(3.27);
2.根據(jù)式(3.25)及式(3.26)遞歸計算及;
3.根據(jù)式(3.24)計算聯(lián)合概率;
4.根據(jù)式(3.20)得到;
5.計算每個信息符號的對數(shù)似然比
式(3.22)中的分母在第5步中被約去,因此不必求得具體數(shù)值。另外,在具體實現(xiàn)中,上述概率計算都是在對數(shù)域中進行的,因此乘法運算都變成了加法運算。
3.5.4SOVA和LOG-MAP譯碼算法性能比較
在實現(xiàn)過程中,選用了SOVA和LOG-MAP兩種譯碼算法,并對兩者的性能進行了仿真比較。
圖3.24 SOVA和LOG-MAP譯碼算法在不同迭代次數(shù)下的誤碼率曲線
仿真中采用1/3碼率的Turbo碼,共傳輸了20000幀(每幀210比特,共2百萬比特),采用與軟件中相同的螺旋交織方案,通過高斯白噪聲(AWGN)信道,分別采用LOG-MAP和SOVA譯碼,迭代1-5次。圖3.24,3.25分別表示了兩種譯碼算法的誤碼率和誤幀率曲線。
由圖3.24,3.25可得到如下結論:
(1)?????????????????????在相同的迭代次數(shù)和信噪比條件下,LOG-MAP譯碼的誤碼率和誤幀率性能都明顯優(yōu)于SOVA。
(2)?????????????????????迭代次數(shù)越高,誤碼率性能越好。但是,大部分迭代增益都出現(xiàn)在前兩次迭代中。
(3)?????????????????????在信噪比較小時(低于0dB),SOVA迭代譯碼誤碼率隨信噪比增大降低較快,信噪比較大時誤碼率改善較緩慢。因此,在信道噪聲比較弱時,減少迭代次數(shù)不會對誤碼率性能造成太大影響,卻可以降低譯碼時延;而信道環(huán)境比較差時,可增加迭代次數(shù)來提高誤碼率性能。
(4)?????????????????????LOG-MAP譯碼的性能非常優(yōu)異,2次迭代在信噪比為-0.5dB時誤碼率即可達到10-6。
圖3.25 SOVA和LOG-MAP譯碼算法在不同迭代次數(shù)下的誤碼率曲線
從誤碼率性能看,Log-MAP優(yōu)于SOVA。從實現(xiàn)復雜度看,SOVA譯碼算法實現(xiàn)比較容易,更簡單。因此,可以根據(jù)實際需要來選擇譯碼方式。
3.5.5譯碼迭代終止條件
Turbo碼的迭代譯碼終止條件的設計是個很重要的問題,因為迭代譯碼是個很耗資源的計算,另一方面,過多的迭代可能會造成溢出或者振蕩,從而得到錯誤的輸出結果。
最簡單的終止方法就是指定迭代次數(shù),實驗表明經過5次左右迭代之后,能夠從以后的迭代過程中獲得的好處就很少了,因此可以指定迭代次數(shù),使譯碼過程在達到設定數(shù)值時結束。這是本項目中采取的方法之一。
然而,固定迭代次數(shù)有兩個弊端。當信道特性較好時,多余的迭代造成了計算資源的浪費,另一方面,當信道特性差,誤碼率高時,又不能充分發(fā)揮出Turbo碼的性能。理想的情況下,迭代次數(shù)應隨著誤碼情況動態(tài)的變化。
另一種譯碼終止算法是在信息序列中加入CRC校驗字,每次迭代之后即檢測信息序列是否有錯,無錯時譯碼即結束,為防止誤碼率很高時不能完全糾錯的情況,還必須設定最大迭代次數(shù),達到這一數(shù)值后,即使譯碼結果仍然有錯誤,迭代過程也被強制終止。CRC校驗適用于信道特性比較好的情況,實驗表明在這種情況下,只需一兩次迭代就可以得到正確結果。它的缺點是必須加入多余的校驗位,降低了通信效率。
另外一種效果較好的方法是采用檢測成員編碼器輸出之間的交叉信息熵,當發(fā)現(xiàn)熵值低于某一門限時,表明再次迭代能夠獲得的增益已經很小,因此終止譯碼。這種方法能夠非常好的挖掘出Turbo碼的潛力。它的缺點是計算交叉信息熵需要較大的計算量和存貯空間。
?
?
?
多進制正交擴頻系統(tǒng)中軟信息的提取
?
多進制正交擴頻系統(tǒng):
l? 進制數(shù):
l? 每個進制代表編碼交織比特個數(shù):
l? 個編碼數(shù)據(jù)為()
l? 個編碼比特需要個正交擴頻碼()
l? 擴頻碼的波形為(),是由構成的N維偽隨機碼序列波形
l? 信道:AWGN信道,疊加一個N維的零均值且雙邊譜為高斯白噪聲
l? 接收信號:R
?
假設發(fā)送等概,
l? 個編碼數(shù)據(jù)的第j位為0,即的那些碼子的集合記為;
l? 個編碼數(shù)據(jù)的第j位為1,即的那些碼子的集合記為;
則關于第個編碼比特的對數(shù)似然比(軟信息)為
????????????? (1)
其中AWGN信道下,接收信號的先驗概率為
?????????????? (2)
?
便于電路實現(xiàn)的、次最優(yōu)的軟信息提取:
l? 利用MAX近似公式
?????????????????????(3)
l?(1)式變?yōu)?/p>
l?將(2)式代入(1)式可得:
其中表示接收序列R和本地偽碼序列之間的歐式度量。
AWGN下如果傳送比特0和1的能量相等,則歐式度量就等價于相關度量,即
其中就是相關匹配濾波器的輸出。
在多進制正交擴頻系統(tǒng)接收端,與碼子D()相對應偽碼的相關匹配濾波器的輸出設為,即
,
根據(jù)碼子D中第j個比特的取值對D進行分組:
則第j個比特的軟判決信息為:
進一步歸一化為
其中
表示的置信度信息,越接近+1表示判決為1的可能性越大;
????????????????????? 越接近-1表示判決為0的可能性越大。
?
?
Turbo碼測試報告
一、??測試的Turbo碼參數(shù)
1、?????????????數(shù)據(jù)幀長:4096
2、?????????????碼率:1/2
3、?????????????生成矩陣:(13,15)
4、?????????????編碼后一幀長度:4096*2+12=8204
5、?????????????信噪比范圍:0~9dB,間隔1dB
6、?????????????測試長度1000幀
?
二、??測試內容
1、?????????????Turbo軟判決下性能
2、?????????????Turbo硬判決下性能(譯碼之前是解調輸出的硬判決)
3、?????????????4-16walsh碼軟信息提取下的Turbo碼性能
?
總結
以上是生活随笔為你收集整理的Turbo码原理简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lammps教程:ovito多晶显示方法
- 下一篇: MTK 6735/6739/6755/6