信道編碼概述
人類在信道編碼上的第一次突破發(fā)生在1949年。R.Hamming和M.Golay提出了第一個(gè)實(shí)用的差錯(cuò)控制編碼方案——漢明碼。漢明碼每4個(gè)比特編碼就需要3個(gè)比特的冗余校驗(yàn)比特,編碼效率比較低,且在一個(gè)碼組中只能糾正單個(gè)的比特錯(cuò)誤。隨后,M.Golay先生研究了漢明碼的缺點(diǎn),提出了Golay碼。Golay碼在1979~1981年間被用于美國國家航空航天局太空探測器Voyager的差錯(cuò)控制系統(tǒng),將成百張木星和土星的彩色照片帶回地球。Golay碼之后是一種的新的分組碼——RM碼。
在1969年到1977年之間,RM碼廣泛應(yīng)用于火星探測,同時(shí),其快速的譯碼算法非常適合于光纖通信系統(tǒng)。RM碼之后人們又提出了循環(huán)碼的概念,也叫循環(huán)冗余校驗(yàn)(CRC)碼。循環(huán)碼也是分組碼的一種,其碼字具有循環(huán)移位特性,這種循環(huán)結(jié)構(gòu)大大簡化了編譯碼結(jié)構(gòu)。不過,以上編碼方案都是基于分組碼實(shí)現(xiàn),分組碼主要有兩大缺點(diǎn):一是在譯碼過程中必須等待整個(gè)碼字全部接收到之后才能開始進(jìn)行譯碼,二是需要精確的幀同步,從而導(dǎo)致時(shí)延較大、增益損失大。直到卷積碼的出現(xiàn),改善了分組碼的缺點(diǎn)。歸功于卷積碼,在接下來的10年里,無線通信性能得到了跳躍式的發(fā)展。Elias于1955年提出卷積碼卷積碼與分組碼的不同在于:它充分利用了各個(gè)信息塊之間的相關(guān)性。在卷積碼的譯碼過程中,不僅從本碼中提取譯碼信息,還要充分利用以前和以后時(shí)刻收到的碼組,從這些碼組中提取譯碼相關(guān)信息,而且譯碼也是連續(xù)進(jìn)行的,這樣可以保證卷積碼的譯碼延時(shí)相對比較小。盡管卷積碼讓通信編碼技術(shù)騰飛了10年,但終究還是遇到了瓶頸——“計(jì)算復(fù)雜性”問題。還好,這個(gè)世界有一個(gè)神奇的摩爾定律。得益于摩爾定律,編碼技術(shù)在一定程度上解決了計(jì)算復(fù)雜性和功耗問題。而隨著摩爾定律而來的是,Viterbi于1967年提出的Viterbi譯碼算法。Viterbi譯碼算法提出之后,卷積碼在通信系統(tǒng)中得到了極為廣泛的應(yīng)用,如GSM、 IS-95 CDMA、3G、商業(yè)衛(wèi)星通信系統(tǒng)等。
但是,隨著通信技術(shù)的飛速發(fā)展,“計(jì)算復(fù)雜性”依然是一道邁不過的墻,專家們苦苦思索,試圖在可接受的計(jì)算復(fù)雜性條件下設(shè)計(jì)編碼和算法,以提高效率,但其增益與香農(nóng)理論極限始終都存在2~3dB的差距。正在專家們一籌莫展之時(shí),奇跡出現(xiàn)了。1993年,兩位當(dāng)時(shí)名不見經(jīng)傳的法國電機(jī)工程師C.Berrou和A.Glavieux聲稱他們發(fā)明了一種編碼方法——Turbo碼,可以使信道編碼效率接近香農(nóng)極限。C.Berrou一開始,大家都是持懷疑態(tài)度的,甚至懶得去理睬這兩個(gè)小角色,這么多數(shù)學(xué)家都沒能突破,你兩個(gè)小小的機(jī)電工程師也敢宣稱接近香農(nóng)極限?忽悠吧?但是,這兩位法國工程師正是繞過數(shù)學(xué)理論,憑借其豐富的實(shí)際經(jīng)驗(yàn),通過迭代譯碼的辦法解決了計(jì)算復(fù)雜性問題?!鳷urbo碼的譯碼器有兩個(gè)分量碼譯碼器,譯碼在兩個(gè)分量譯碼器之間進(jìn)行迭代譯碼,故整個(gè)譯碼過程類似渦輪(turbo)工作,所以又形象的稱為Turbo碼。Turbo碼的發(fā)明又一次開創(chuàng)了通信編碼史的革命性時(shí)代。隨后,全世界各大公司開始聚焦于Turbo碼研究。Turbo碼也成為了3G/4G移動(dòng)通信技術(shù)所采用的編碼技術(shù),直到4.5G,我們依然在采用。
但是,由于Turbo碼采用迭代解碼,必然會產(chǎn)生時(shí)延,所以對于實(shí)時(shí)性要求很高的場合,對于即將到來的超高速率、超低時(shí)延的5G需求,Turbo碼又遇到瓶頸,因此,在5G時(shí)代就出現(xiàn)了Polar碼和LDPC碼之爭?!鳷urbo碼和LDPC碼功耗比較,來源5G ForumPolar碼是由土耳其比爾肯大學(xué)教授E. Arikan在2007年提出,2009年開始引起通信領(lǐng)域的關(guān)注。盡管Polar提出較晚,但作為已經(jīng)被理論證明可達(dá)到香農(nóng)極限的編碼方案,自發(fā)明以來,業(yè)內(nèi)已在譯碼算法、速率兼容編碼方案和硬件實(shí)現(xiàn)上做了大量的研發(fā)工作?!鳷urbo碼和Polar碼FER比較,來源5G Forum因此,最后3GPP在5G時(shí)代拋棄了Turbo碼,選擇了LDPC為數(shù)據(jù)信道編碼方案,Polar為廣播和控制信道編碼方案。那么,為何3GPP同時(shí)選擇了LDPC碼和Polar碼呢?這背后有“不把雞蛋放在同一個(gè)籃子”的因素,也有“One code does not fit all”的因素。首先,華為不會孤注一擲投入Polar碼,高通也不會孤注一擲投入LDPC碼,各家公司都會在不同的候選技術(shù)上投入,不會把雞蛋放在同一個(gè)籃子里。其次,各種編碼方案的優(yōu)缺點(diǎn)不同,需對其硬件實(shí)現(xiàn)復(fù)雜度、功耗、靈活性、成熟度等進(jìn)行綜合考量,One code does not fit all,沒有“一刀切”的處方。