Turbo码(Turbo Codes)
Turbo碼(Turbo Codes)
作者:途次客
? ?? ?==============================================================?
?? ? ?目錄結構:
?? ? ?1、分量碼
?? ? ?2、交織器
? ? ? 3、歸零處理
? ? ? 4、刪余處理
? ? ? 5、LTE協議中的Turbo碼編碼器
? ? ? 6、總結
??? ? ==============================================================?
? ? ? ?Turbo碼由Berrou,Glavieux和Thitimajshima在1993年提出,是一種并行級聯卷積碼。Turbo碼將分量碼和隨機交織器巧妙結合起來,采用并行級聯的結構,實現了隨機編碼的思想,采用軟輸入軟輸出的迭代譯碼方法,達到了接近香農限的性能。在Turbo碼的發明之后,有學者重新發現60年代提出的LDPC碼有更接近香農限的性能,這是后來的事,本文主要結合LTE系統介紹Turbo碼。
1、分量碼
? ? ? 在Turbo碼中,分量碼編碼器是重要的組成部分,該部分產生系統信息和校驗信息。在Turbo碼最先提出時有分組碼和卷積碼兩種類型,在后來研究中發現,卷積碼性能更優。而卷積碼的類型多樣,如非遞歸卷積碼(NRC)、非系統卷積碼(NSC)、遞歸系統卷積碼(RSC)。在實際的系統中,由于遞歸系統卷積碼(RSC)有突出的優點而被廣泛采用。
? ? ? RSC碼在具有良好的譯碼性能,且存在較高的交織增益,譯碼性能也會隨著交織長度增加而提高。影響譯碼性能的因素很多,如卷積碼的約束長度、生成多項式以及生成多項式的順序等,所以,在實際中具有種類不同的分量碼構造的Turbo碼,這需要根據不同的場景,根據用戶的需求,經過仿真和驗證才能得出。
2、交織器
? ? ??交織器也是Turbo碼的重要組成部分。通信系統的交織器是為了對抗信道的突發錯誤而設計的。Turbo碼的交織器更主要的功能是使碼重分布合理,降低數據序列的相關性,增大輸出碼字的最小漢明距,實現隨機編碼。
? ? ??交織器即將原始數據順序按照給定的規則重新排序輸出。解交織即是交織的逆過程。交織器的選擇對Turbo碼的性能具有重大影響。根據香農理論,碼長越長,編碼增益越大。所以交織器的長度越長,Turbo碼的碼長越長,性能越好。另外,交織器的交織規則也是影響因素。最簡單的交織器即行列交織器,數據按行寫入,按列讀出。
? ? ??在選用交織器時需要根據交織器長度、交織規則、系統復雜度等因素綜合考慮。
3、歸零處理
? ? ??在數據序列編碼完成后,歸零處理使分量編碼器RSC中的移位寄存器恢復成編碼前的零狀態,從而使編譯碼變得簡單易于控制。
Turbo碼的歸零處理如下:
? ? ??(1)輸入所有的編碼序列,完成編碼
? ? ??(2)分量碼開關切換至虛線處,各個寄存器中的遺留狀態值和反饋結構生成某些編碼序列的尾部比特,這些尾比特與自身異或,使新進入寄存器的值為0。尾比特添加至編碼序列系統部位,RSC計算出的比特添加到校驗序列后。
? ? ??(3)該過程直到所有移位寄存器中值全部為0。如寄存器有K個,則經過K次后寄存器將全為0。
4、刪余處理
? ? ??現代通信系統中,為了實現高速數據傳輸,系統對頻帶利用率要求較高,一般Turbo碼的碼率只有1/3,所以,頻帶利用率不高,為了解決這一問題,在編碼器中加入了刪余處理。
? ? ??刪余處理的具體操作即在編碼完成后,將分量碼輸出的兩路校驗信息輸入刪余器,按照一定的規則刪除一部分校驗信息,減小信息的冗余度,從而提高編碼效率。刪余處理根據各系統自定。
5、LTE協議中的Turbo碼編碼器
? ? ??以LTE協議中的Turbo碼編碼器為例,介紹Turbo碼的幾個重要部件。該Turbo碼的編碼器實現框圖如下圖所示。
圖1. LTE中Turbo碼編碼器實現框圖
? ? ??圖中參數如下:
? ? ??ck:輸入待編碼數據序列
? ? ??ck’:ck經過內交織器處理后的數據序列
? ? ??xk:經過分量編碼器1后的系統信息序列
? ? ??zk:經過分量編碼器1后的校驗信息序列
? ? ??zk’:經過分量編碼器2后的校驗信息序列
? ? ??該編碼器,碼率為1/3,輸出dk如下:
? ? ??分量碼1和分量碼2均為循環遞歸卷積碼(RSC)。其生成多項式為
G(D) = [1, g1(D)/g0(D)]
? ? ??其中g0(D) = 1+ D^2 + D^3,g1(D) = 1 + D + D^3。
? ? ??LTE中的交織器為二次置換多項式交織器(Quadratic Permutation Polynomial, QPP),長度為K的QPP交織器定義為
? ? ??其中,i為交織前序列的地址;f1為一次系數,在LTE中為奇數;f2為二次系數,在LTE中為偶數;K為交織器長度。
LTE支持188種不同的K值,最小的40,最大的6144。這些塊的f1和f2值參考文件Evolved Universal Terrestrial Radio Acess (E-UTRA); Multiplexing andchannel coding (release 9)" 2009-12.或者matlab函數getf1f2,[f1, f2] = getf1f2(K),可根據交織長度K得到f1和f2。
6、總結
?????? 本文主要簡介了Turbo碼的基本原理以及各個編碼部件,以LTE協議中的Turbo碼為例,介紹了其編碼框圖,分量碼和交織器。
總結
以上是生活随笔為你收集整理的Turbo码(Turbo Codes)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CQF笔记M1L5仿真和操作随机微分方程
- 下一篇: echarts中国地图(省市两级经纬度版