迭代解碼

迭代解碼

迭代解碼時一種基於置信度的解碼方式。

迭代解碼不僅僅是一種演演算法,更重要的是它是一種思想,它通過一次一次的處理,充分地挖掘潛在的信息。

它通過接收或者發射軟信息,來逼近現實世界的真實情況,可以改善由於硬判決而丟失的信息。

背景


Shannon新到編碼定理可知,要達到或接近通道容量C,應該採用無限長的隨機碼,而解碼應該採用最大似然解碼(MLD)。但是,採用隨機編碼,使碼長趨於無窮大並且採用最大似然解碼將會使系統的複雜度和延時變得太大,無法在實際中使用。因此,必須研究新的編碼方案。通道編碼理論的研究主要分兩個方面:一是構造碼長長、漸進特性好的碼;另一個是解碼複雜度可接受的最大似然解碼。在編碼理論的最初階段,人們一直傾向於用代數方法來實現差錯控制編碼,提出了Hamming碼、卷積碼、RS碼等經典編碼方法。然而最終能夠逼近Shannon容量限的卻是被稱為Turbo-like的一類碼,包括Turbo碼、LDPC碼、RA碼等。這類碼的特點在於都部分地引入了隨機編碼的思想,即Turbo碼的交織器和LDPC碼的自交織功能,並且它們的碼長都較長,解碼均採用了接近最大后驗概率解碼的迭代解碼演演算法。
傳統的解碼是基於基於硬判決的解碼,對從通道接收到的信息,首先經過解調器產生硬判決結果,再輸入到解碼器進行解碼。這種方式下,解碼的速度固然很快,但是由於硬判決會損失掉大部分的信息,因而其性能比較差。而與此相對應的是迭代解碼所要求的輸入 以及它產生的輸出信息都是軟信息,不僅包括了判決的符號,也包含了對判決符號的置信度。這些軟信息的利用,極大提高了解碼性能,使得解碼可以迭代進行,充分發掘接收的信息。

基本原理


迭代解碼的思想最早出現在Gallager提出的LDPC碼的論文中。在那裡,他提出了一種基於概率的解碼方法。該方法對每個比特建立校驗集合樹,並層層遞推下去,這實際上蘊含了迭代的思想。然而,直到Turbo碼被發明以後,迭代解碼的好處才真正被人們所認識,並由此直接導致了LDPC碼的重新被重視。
對於Turbo碼和乘積碼,由於使用了兩個或多個子碼,解碼可以以迭代的方式進行:先對一個子碼解碼,再把該解碼器的輸出結果送到另一個解碼器的輸入端,進行第二個子碼解碼,然後把第二個解碼器的輸出結果再送到第一個解碼器的輸入端,如此反覆迭代,直到達到一定的迭代次數。由於一個解碼器的輸出作為另一個解碼器的輸入若子解碼器採用軟判決,則必然要求解碼器也是採用軟輸出的,所以子解碼器一般要求採用軟輸入/軟輸出解碼器。

貢獻


Turbo碼迭代解碼的提出后,不僅被用於級聯碼或乘積碼的解碼,更是作為一種思想廣泛地應用到了通道均衡、多用戶檢測等其他領域。迭代解碼的另外一個重要貢獻在於,它引起了人們對於LDPC碼的重新發現。
正是由於迭代解碼的這種思想,它才會廣泛應用於通信的各個領域。雖然,由於迭代會造成時間上的延遲,但是,可以看到隨著處理器能力的提升,以及各種專用晶元的使用,這種延遲被越來越縮短了,迭代的思想會進一步擴展到通信的更寬的領域之內。