通道編碼演算法的發展和應用
一、什麼是通道編碼演算法
由於無線訊號是敏感而脆弱的,易受干擾、弱覆蓋等影響,傳送的資料和接收到的資料有時候會不一致,比如手機發送的1 0 0 1 0,而基站接收到的卻是1 1 0 1 0,為了糾錯,無線通訊系統就引入了通道編碼技術。
在上個世紀40年代以前,人們認為只有通過增加發射功率和重傳的方式,才能減少這種通訊錯誤。直到1948年夏農提出了偉大的夏農定理,人們才認識到,可以通過通道編碼的方式來實現可靠通訊。
所謂通道編碼,也叫差錯控制編碼,就是在傳送端對原資料新增冗餘資訊,這些冗餘資訊是和原資料相關的,再在接收端根據這種相關性來檢測和糾正傳輸過程產生的差錯,從而對抗傳輸過程的干擾。
二、夏農定理
夏農定理是所有通訊制式最基本的原理,它描述了有限頻寬、有隨機熱噪聲通道的最大傳輸速率與通道頻寬、訊號噪聲功率比之間的關係。其用公式可表示為:
其中:C是通道支援的最大速度或者叫通道容量;B是通道的頻寬;S是平均訊號功率;N是平均噪聲功率;S/N即信噪比。
夏農定理給出了通道資訊傳送速率的上限(位元每秒)和通道信噪比及頻寬的關係。夏農定理可以解釋現代各種無線制式由於頻寬不同,所支援的單載波最大吞吐量的不同。
理解夏農公式須注意以下幾點:
(1)通道容量由頻寬及信噪比決定,增大頻寬、提高信噪比可以增大通道容量;
(2)在要求的通道容量一定的情況下,提高信噪比可以降低頻寬的需求,增加頻寬可以降低信噪比的需求;
(3)夏農公式給出了通道容量的極限,也就是說,實際無線制式中單通道容量不可能超過該極限,只能儘量接近該極限。在卷積編碼條件下,實際通道容量離夏農極限還差3dB;在Turbo編碼的條件下,接近了夏農極限。
(4)LTE中多天線技術沒有突破夏農公式,而是相當於多個單通道的組合。
夏農定理可以變換一下形式成為:
這個C/B就是單位頻寬的容量(業務速率),就是頻譜利用率的概念,也就是說夏農定理給出了一定信噪比下頻率利用率的極限。
三、通道編碼發展史
1、1949年R.Hamming和M.Golay提出了第一個實用的差錯控制編碼方案——漢明碼。
2、M.Golay先生研究了漢明碼的缺點,提出了Golay碼
3、分組碼——RM碼。在1969年到1977年之間,RM碼廣泛應用於火星探測,同時,其快速的譯碼演算法非常適合於光纖通訊系統。
4、迴圈碼,也叫迴圈冗餘校驗(CRC)碼。迴圈碼也是分組碼的一種,其碼字具有迴圈移位特性,這種迴圈結構大大簡化了編譯碼結構。
/*以上編碼方案都是基於分組碼實現,分組碼主要有兩大缺點:一是在譯碼過程中必須等待整個碼字全部接收到之後才能開始進行譯碼,二是需要精確的幀同步,從而導致時延較大、增益損失大。*/
5、Elias於1955年提出卷積碼。
/*卷積碼與分組碼的不同在於:它充分利用了各個資訊塊之間的相關性。在卷積碼的譯碼過程中,不僅從本碼中提取譯碼資訊,還要充分利用以前和以後時刻收到的碼組,從這些碼組中提取譯碼相關資訊,而且譯碼也是連續進行的,這樣可以保證卷積碼的譯碼延時相對比較小。你說卷積碼的問題?那就是“計算複雜性”問題。其增益與夏農理論極限始終都存在2~3dB的差距。*/
6、Viterbi於1967年提出的Viterbi譯碼演算法。卷積碼在通訊系統中得到了極為廣泛的應用,如GSM、 IS-95 CDMA、3G、商業衛星通訊系統等。
7、1993年,兩位當時名不見經傳的法國電機工程師C.Berrou和A.Glavieux聲稱他們發明了一種編碼方法——Turbo碼,可以使通道編碼效率接近夏農極限。Turbo繞過數學理論,通過迭代譯碼的辦法解決了計算複雜性問題。Turbo碼也成為了3G/4G移動通訊技術所採用的編碼技術。
▲Turbo碼的譯碼器有兩個分量碼譯碼器,譯碼在兩個分量譯碼器之間進行迭代譯碼,故整個譯碼過程類似渦輪(turbo)工作,所以又形象的稱為Turbo碼。
/*由於Turbo碼採用迭代解碼,必然會產生時延,所以對於實時性要求很高的場合,對於即將到來的超高速率、超低時延的5G需求,Turbo碼又遇到瓶頸,因此,在5G時代就出現了Polar碼和LDPC碼之爭。*/
8、LDPC和Polar碼閃亮登場。
LDPC碼是由MIT的教授 Robert Gallager在1962年提出,這是最早提出的逼近夏農極限的通道編碼,2000年左右被WiFi標準採納。LDPC有啥優勢呢?LDPC基於高效的並行譯碼構架實現,其譯碼器在硬體實現複雜度和功耗方面均優於Turbo碼。
Polar碼是由土耳其比爾肯大學教授E. Arikan在2007年提出,是被理論證明可達到夏農極限的編碼方案。Polar碼有啥優勢呢?Polar碼兼具較低的編碼和譯碼複雜度,不存在錯誤平層(error floor)現象,誤幀率(FER)比Turbo低得多,Polar碼還支援靈活的編碼長度和編碼速率,各方面證明比Turbo碼具備更優的效能。
因此,最後3GPP在5G時代拋棄了Turbo碼,選擇了LDPC為資料通道編碼方案,Polar為廣播和控制通道編碼方案。因為各種編碼方案的優缺點不同,需對其硬體實現複雜度、功耗、靈活性、成熟度等進行綜合考量,One code does not fit all,沒有“一刀切”的處方。
四、通道編碼的應用
名稱 |
應用 |
型別 |
漢明碼 |
快閃記憶體的糾錯 |
分組碼 |
Golay碼 |
美國國家航空航天局太空探測器 |
分組碼 |
RM碼 |
火星探測 |
分組碼 |
迴圈冗餘校驗(CRC)碼 |
資料儲存和通訊,如:通訊協議X.25的FCS(幀檢錯序列),WinRAR、NERO、ARJ、LHA等壓縮工具,磁碟驅動器的讀寫,通用的影象儲存格式GIF、TIFF等。 |
分組碼 |
Viterbi |
GSM、CDMA、3G、WIFI802.11、DVB-T、DVB-S |
卷積碼 |
Turbo |
4G/LTE |
卷積碼 |
LDPC |
5G、DVB-S.2、WiMax |
卷積碼 |
Polar |
5G |
卷積碼 |