基本介紹
- 中文名:渦輪碼
- 外文名:Turbo code
- 本質:前向糾錯的編碼技術
- 發明時間:1990至1991
歷史簡介,示例編碼器,軟決策方法,假設尋找,表現,套用,
歷史簡介
turbo碼的基本專利申請於1991年4月23日提交。該專利申請將Claude Berrou列為turbo碼的獨立發明者。專利申請產生了多項專利,包括2013年8月29日到期的美國專利5,446,747。
關於turbo碼的第一篇公開文章是“近香農極限糾錯編碼和解碼:Turbo碼”。本文發表於1993年的IEEE國際通信會議論文集。 1993年的檔案是由三個單獨提交的檔案組成的,這些檔案因空間限制而合併在一起。合併導致該論文列出了三位作者:Berrou,Glavieux和Thitimajshima(來自TélécomBretagne,前ENST Bretagne,法國)。然而,從最初的專利申請中可以清楚地看出,Claude Berrou是turbo碼的獨立發明者,並且該論文的其他作者提供了除turbo碼的核心概念之外的其他材料。
Turbo代碼在引入時是如此具有革命性,編碼領域的許多專家都不相信報告的結果。當性能得到確認時,編碼領域發生了一場小小的革命,導致了對許多其他類型的疊代信號處理的研究。
第一類turbo碼是並行級聯卷積碼(PCCC)。自從1993年引入原始並行turbo碼以來,已經發現了許多其他類型的turbo碼,包括串列版串列級聯卷積碼和重複累加碼。疊代turbo解碼方法也已套用於更傳統的FEC系統,包括Reed-Solomon校正卷積碼,儘管這些系統對於疊代解碼器的實際實現來說太複雜。 Turbo均衡也源於turbo編碼的概念。
除了Turbo碼的發明之外,Claude Berrou還發明了遞歸系統卷積(RSC)碼,其用於該專利中描述的turbo碼的示例實現中。使用RSC代碼的Turbo碼似乎比不使用RSC代碼的Turbo碼錶現更好。
在turbo碼之前,最好的結構是基於外部Reed-Solomon糾錯碼和內部維特比解碼的短約束長度卷積碼(也稱為RSV碼)的串列級聯碼。
在後來的一篇論文中,Berrou慷慨地讚揚了“G. Battail,J。Hagenauer和P. Hoeher的直覺,他在80年代後期強調了機率處理的興趣。”他補充說“R. Gallager和M. Tanner已經想像了編碼和解碼技術的一般原則密切相關”,儘管當時必要的計算是不切實際的。
示例編碼器
Turbo碼有許多不同的實例,使用不同的分量編碼器,輸入/輸出比,交織器和打孔模式。該示例編碼器實現描述了經典的turbo編碼器,並且演示了並行turbo碼的一般設計。
該編碼器實現傳送三個比特子塊。第一個子塊是有效載荷數據的m位塊。第二子塊是有效載荷數據的
個奇偶校驗位,使用遞歸系統卷積碼(RSC碼)計算。第三子塊是用於有效載荷數據的已知置換的
個奇偶校驗位,再次使用RSC碼計算。因此,與有效載荷一起傳送兩個冗餘但不同的奇偶校驗位子塊。完整塊具有
位數據,碼率為
。有效載荷數據的置換由稱為交織器的設備執行。




硬體方面,這個turbo碼編碼器由兩個相同的RSC編碼器組成,如圖一所示,它們使用串聯方案相互連線,稱為並行連線:

圖一
這裡使用安裝在兩個解碼器之間的交織器來分散來自
輸出的錯誤突發。 DI塊是解復用和插入模組。 它作為一個開關,在一個時刻將輸入位重定向到
,在另一個時刻將輸入位重定向到
。 在OFF狀態下,它使用填充位(零)為
和
輸入提供信息)。





考慮一個無記憶的AWGN信道,並假設在第
次疊代時,解碼器接收一對隨機變數:


其中
和
是具有相同方差的獨立噪聲分量
。
是來自
編碼器輸出的第k位。





冗餘信息被多路分解並通過DI傳送到{\ displaystyle \ scriptstyle DEC_ {1}} \ scriptstyle DEC_ {1}(當
)和
(當
)。





並將其傳遞給
。
稱為似然比(LLR)的對數。
是
數據位的後驗機率(APP)它顯示了將收到的
位解釋為
的機率。考慮到LLR,
會產生一個艱難的決定;即,解碼的比特。







但是,所描述的結構不是最佳結構,因為
僅使用可用冗餘信息的適當部分。為了改善結構,使用反饋迴路(參見圖一中的虛線)。

軟決策方法
解碼器前端為數據流中的每個位產生一個整數。該整數衡量該位為0或1的可能性,也稱為軟位。整數可以從範圍[-127,127]中繪製,其中:
-127表示“肯定0”
-100表示“非常可能為0”
0表示“它可以是0或1”
100意味著“非常可能1”
127表示“肯定1”
等等
這為來自前端的數據流引入了機率方面,但它傳達了有關每個位的更多信息而不僅僅是0或1。
例如,對於每個比特,傳統無線接收器的前端必須確定內部模擬電壓是高於還是低於給定的閾值電壓電平。對於turbo碼解碼器,前端將提供內部電壓距給定閾值多遠的整數度量。
為了解碼
位數據塊,解碼器前端創建一個似然度量塊,對數據流中的每個位進行一次似然度量。有兩個並行解碼器,每個
位奇偶校驗子塊一個。兩個解碼器都使用
個似然性的子塊作為有效載荷數據。在第二奇偶校驗子塊上工作的解碼器知道編碼器用於該子塊的置換。



假設尋找
turbo碼的關鍵創新是它們如何使用似然數據來協調兩個解碼器之間的差異。兩個卷積解碼器中的每一個為有效載荷子塊中的m個比特的模式生成假設(具有導出的似然性)。比較假設比特模式,並且如果它們不同,則解碼器交換它們對假設中的每個比特具有的導出似然性。每個解碼器合併來自另一個解碼器的導出似然估計,以產生有效載荷中的比特的新假設。然後他們比較了這些新的假設。該疊代過程一直持續到兩個解碼器對有效載荷的m比特模式提出相同的假設,通常在15到18個周期內。
可以在此過程與解決交叉參考謎題(如填字遊戲或數獨遊戲)之間進行類比。考慮一個部分完成的,可能是亂碼的填字遊戲。兩個拼圖求解器(解碼器)試圖解決它:一個只擁有“向下”線索(奇偶校驗位),另一個只擁有“跨越”線索。首先,兩個解算器都會猜測答案(假設)到他們自己的線索,注意他們對每個字母(有效載荷位)的信心。然後,他們通過相互交換答案和置信度來比較筆記,注意它們的不同之處和方式。基於這些新知識,他們都提出了更新的答案和置信度,重複整個過程,直到他們收斂到同一個解決方案。
表現
由於代碼在信道上的隨機外觀與物理上可實現的解碼結構的有吸引力的組合,Turbo碼錶現良好。 Turbo碼受error floor影響。
套用
Turbo碼廣泛用於3G和4G行動電話標準; 例如,在HSPA,EV-DO和LTE中。
MediaFLO,高通公司的地面移動電視系統。
衛星通信系統的互動信道,如DVB-RCS和DVB-RCS2。
新的NASA任務,如火星偵察軌道器使用turbo碼,作為RS-Viterbi碼的替代品。
諸如塊turbo編碼和卷積turbo編碼的Turbo編碼被用在IEEE 802.16(WiMAX)(無線城域網標準)中。