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