1. 程式人生 > >LTE物理層之通道編碼--資料資訊編碼:turbo編碼

LTE物理層之通道編碼--資料資訊編碼:turbo編碼

Turbo編碼巧妙地將兩個簡單分量碼通過偽隨機交織器並行級聯來構造具有偽隨機特性的長碼,並通過在兩個軟入/軟出(SISO)譯碼器之間進行多次迭代實現了偽隨機譯碼。他的效能遠遠超過了其他的編碼方式,得到了廣泛的關注和發展。

Turbo編碼原理

編碼方面主要包括對並行級聯編碼與序列級聯編碼的分析,以及對混合級聯方式的研究。

Turbo編碼器的結構

典型的Turbo碼編碼器結構框圖如圖1所示:由兩個反饋的編碼器(稱為成員編碼器)通過一個交織器I並行連線而成。如果必要,由成員編碼器輸出的序列經過刪餘陣,從而可以產生一系列不同位元速率的碼。例如,對於生成矩陣為g=[g1,g2](212)卷積碼通過編碼後,如果進行刪餘,則得到位元速率為

1/2的編碼輸出序列;如果不進行刪餘,得到的位元速率為1/3。一般情況下,Turbo碼成員編碼器是RSC編碼器。原因在於遞迴編碼器可以改善碼的位元誤位元速率效能。

turbo編碼

3GPP LTE協議中使用的Turbo碼為1/3位元速率的並行級聯碼,它的編碼器由兩個相同的位元速率為1/2RSC編碼器及交織器組成,如圖2所示。

由於與非遞迴卷積碼相比,遞迴卷積碼產生的碼字重量更大,所以這裡採用了兩個相同的系統遞迴卷積碼(RSC)。資訊序列分成相同的兩路,第一路經過RSC編碼器1,輸出系統碼及校驗碼。另一路先通過交織器進行交織,使資訊序列在1幀內重新排列順序,然後經過RSC編碼器2得到系統碼和對應的校驗碼,由於該系統碼和

實際上都是原資訊序列,只是排列順序不同,在接收端完全可以通過對進行交織得到,因此在傳輸過程中可以省去,而只保留對應的校驗位。


由於RSC編碼器不能如非遞迴編碼器一樣通過輸入連“0”序列來使編碼器復位(網格終止),因此通過設計如圖8所示的AB間的開關來控制編碼器終止(AB連線時,發現相同的反饋進行異或送進儲存器時資料為0),當一幀結束時,開關由A打到B,則經過m時刻後,編碼器復位,可以對下一幀資料進行編碼。這裡m=2。只有RSC編碼器1(外編碼器)進行了網路終止,RSC編碼器2保持開放。


舉例說明turbo碼工作原理


假設輸入序列為:     U = (1 0 1 0 1 1 0 1)                        

第一個子碼的校驗序列為   v1 = (1 1 0 0 0 1 1 1)                       

假設交織後的第二個子碼的輸入序列為:U’ = (1 1 0 1 1 0 0 1) 

第二個子碼的校驗序列為: v2 = (1 0 0 1 1 0 1 1) 

Turbo碼的輸出序列為:V = 111010100001101110011111) 

Turbo編碼中的交織器

協議中交織器輸入輸出bit之間的關係:

其中f1f2的取值與K值有關,關係見協議TS36.212中的Table5.1.3-3

Turbo 譯碼

譯碼方面主要包括迭代譯碼、譯碼演算法(最大後驗概率演算法MAP、修正的MAP演算法Max-Log-MAP、軟輸出Viterbi 演算法SOVA等)的研究。

標準turbo譯碼器結構

Turbo碼的迭代譯碼方案,與其並行級聯編碼方案相配合,無論從編碼結構還是譯碼思路上都將Turbo碼看作一個整體的長隨機碼,因此明顯提高了譯碼效能。

迭代譯碼通過將外碼譯碼器的輸出資訊反饋回內譯碼器,從而使得兩個相互獨立的譯碼器充分利用彼此的資訊,也因此才將各個子碼連成一個真正意義下的長碼。

Turbo譯碼演算法

標準MAP演算法

是對bahl軟輸出演算法做一定修正後,通過除以先驗分佈來消除正反饋的演算法。對於約束長度為M 1的卷積碼,其運算量為每位元6x3^M次乘法和5x2^M次加法。由於乘法運算量大,限制了譯碼的規模和速度。

Log-MAP演算法

實際上就是對標準MAP演算法中的似然全部用對數似然度來表示,這樣,乘法運算變成了加法運算。總的運算量成為6x2^M次加法,5x2^M次求最大運算和5x2^M次查表。

Max-Log-MAP演算法

是在上述對數域的演算法中,將似然值加法表示式中的對數分量忽略,是似然加法完全變成求最大值運算,這樣除了省去大部分的加法運算外,最大的好處是省去了對信噪比的估計,使得演算法更穩健。