通信系統是為了將信源信息高效、可靠地傳送到接收端。有擾通信信道的噪聲會對傳輸信息產生干擾,從而可能降低通信可靠性。所以,通信系統設計的中心問題是在隨機噪聲干擾下如何有效而可靠地傳輸信息。一般地,通信系統的可靠性用錯誤比特率(BER)來衡量,有效性用傳輸速率R(比特/信道符號)來衡量。
現在是信息社會,充分利用和交流信息,就構成了通信的主要目的——溝通信息。
01、通信系統概述
一個典型的通信系統模型,就像這樣:
發送器+信道+接收器,構成了一個基本的通信系統。
在通信過程中,存在噪聲干擾和信道衰落。對于接收方來講,信息是未知的,消息越出乎意料,信息量就越大。
其次,噪聲也是未知的,并且噪聲限制了通信的能力。
因此,在通信過程中,需要考慮以下這些問題:
能夠高效地攜帶信息的信號形式;
適合特定傳輸的信號波形,如波形的中心頻率、帶寬、功率、能量等;
有效抑制噪聲與其他干擾以保障傳輸質量的方案;
簡單、可行的通信方法;
系統成本。
是不是挺難的?九年義務教育讓我們擁有了解這個世界的基本認知能力。高中使我們在數理化、政史地、語文和外語中,做了大熔爐,這個時候,我們上知天文,下知地理。這就足夠了嗎?
好像并不是這樣。
然后我們考上大學,按專業進行通識教育和專業教育,四年下來,好像什么都學了,但似乎好像什么都不太明白。
畢業直接去工作,還是繼續深造讀研,這是大部分本科生糾結不止的地方。
每年有三四百萬的應、往屆畢業生,選擇考研,希望在學識的道路上,更進一步。
21世紀,是誰的世紀?生命科學的?ICT的?AI的?新能源的?新材料的?中國的?美國的?
其實是我們這一代青年人的。
學習數年的電子、通信的知識與技能,然而在今天看來,不過是滄海一粟,冰山一角。
一個完整的通信系統,含有大量信號處理過程,基帶+射頻處理,足夠玩幾年。
4G過了有5G,5G過了有6G,6G過了有7G.......。
地面通信玩膩了,有海洋通信;海洋玩膩了,有深空。實在玩不動了,就去玩星際通信吧。
傳統的電子系統玩膩了,就去玩量子;量子玩不動了,就去完意念。
是不是很有前途。
話說回來,學好通信不容易,更何況,在知識和技術日新月異的今天。
學好通信,需要掌握:
傅里葉理論、調制理論、檢測理論、概率論、隨機過程、通信系統理論、信息論與編碼、模/數電、電路分析、射頻、計算機、芯片設計與開發、頻譜儀、示波器、信號發生器、矢網......
通信系統中,信號在信道中傳輸時,存在著信道噪聲、衰落、各種干擾以及信道本身的非理想頻率響應等諸多不利因素。為了保證數據傳輸的可靠性,通常將信源編碼器輸出的信息比特流在發送之前進行信道編碼,即通過有效地添加冗余,使得接收器能夠以非常高的概率正確的從已經失真的接收信號中還原出原始信息比特流。
Shannon在他著名的信道編碼定理中給出了在噪聲信道中數據傳輸速率的上界,即信道容量。
還記得這個天花板公式吧:
信道編碼定理是:若有一離散、平穩、無記憶信道,其信道容量為C,只要待傳送的實際信息率R
該定理指明,存有擾信道中,只要信息傳輸速率小于信道容量,就有可能實現任意可靠的信息傳輸。這個存在性定理告訴我們可以實現接近信道容量的傳輸速率進行通信。當在噪聲信道上的數據傳輸速率R小于誘噪聲信道的容量C時,一定存在一種信道編碼方案使得在接收端出錯的概率任意小;反之,如果R》C,則一定不存在這樣的方案。
根據以上討論不難看出,編碼在現代通信系統中起著全關重要的作用,已經成為了現代通信系統中不可或缺的一個重要組成部分。編碼可以從總體上劃分為兩類:信源編碼和信道編碼。
其中,信源編碼研究如何更加有效地表示信源。原始的信源編碼就是莫爾斯電碼,另外還有ASCII碼和電報碼都是信源編碼。但現代通信應用中常見的信源編碼方式有:Huffman編碼、算術編碼、L-Z編碼,這三種都是無損編碼,另外還有一些有損的編碼方式。信源編碼的目標就是使信源減少冗余,更加有效、經濟地傳輸,最常見的應用形式就是壓縮。
信道編碼則是研究如何克服信道中的各種失真從而保證數據的可靠傳輸。因此信道編碼的重要性不言而喻。那么,信道編碼技術發展情況如何,到如今有哪些重要的信道編碼方式呢?
02、信道編碼發展歷程
香農提出了信道編碼定理,并在其證明中引用了三個基本條件:
采用隨機編碼方式;
碼字長度趨于無窮大;
采用最大似然譯碼算法。
一個隨機選擇的碼以很高的概率為好碼,對于隨機碼的最大似然譯碼,其譯碼復雜度G與所傳輸的信息比特數呈指數關系,即為G=exp(NR),隨機碼的誤碼率上限為以Pe~G-Eb(R)/R,誤碼率隨著碼長N趨于無窮大而趨向于0的同時,譯碼復雜度以指數增長,可見隨機碼在實際系統里其實并不實用。
由于信道編碼定理證明的非構造性,并沒有給出如何構造逼近香農容量限的編碼方法,構造一個逼近香農容量限的糾錯碼成了眾多學者爭相研究的課題,并逐漸形成了信息論的一個重要分支—信道編碼理論。
從構造方法上看,糾錯碼可分為分組碼和卷積碼兩大類。在20世紀50年代到60年代,人們主要研究了線性分組碼。這類編碼以代數中的群論、域論等理論為數學基礎,利用各種代數方法設計好的糾錯碼,并研究與之相適應的譯碼算法。
第一個分組碼是1950年發現的能糾正單個錯誤的漢明(Hamming)碼。1950年漢明(Hanmming .R.W)發表的論文《檢錯碼與糾錯碼》是開拓編碼理論研究的第一篇論文,考慮在計算機中糾正單個錯誤。漢明碼(7,4),碼率為4/7,需要3個監督位,碼率不高,同時糾錯能力有限,只能糾正單一錯誤。
M.Golay針對漢明碼的缺點提出了性能更好的格雷(Galay)碼,Golay發現了兩種編碼,一種是二元Golay碼,采用12個數據比特,11個校驗比特為一組,能糾正3個錯誤。第二種是三元Golay碼,以三進制數為運算域,6個數據符號,5個校驗符號為一組,可以糾正2個錯誤。
這兩種碼基本原理相同,都是將q元符號按每k個分為一組,然后通過編碼得到n-k個q元符號作為冗余校驗符號,最后由校驗符號和信息符號組成有n個q元符號的碼子符號,編碼碼率為r=k/n。
Muller在1954年以布爾邏輯代數方式提出了Reed.Muller碼(RM碼),它比Hamming碼和Golay碼好的地方是它可以改變碼字大小和糾錯能力,是Reed在Muller基礎上得到的一種新的分組碼,也是繼格雷碼之后提出的最主要的一類分組碼。
繼RM碼之后,Prange于1957年又提出了循環碼的概念。循環碼實際上也是一類分組碼,但是它的碼字具有循環移位特性,即碼字比特經過循環移位以后仍然是碼字集合中的碼字。這種循環結構使碼字的設計范圍大大增加,同時大大的簡化了編譯碼結構。
循環碼的一個非常重要的子集就是分別由Hocquenghem在1959年以及Bose和Ray—Chuadhuri研究組在1 960年幾乎同時提出的BCH(Bose Chuadhuri Hocquen曲em)碼,CH碼的碼字長度為n=qm-1,其中m為一個整數。二元BCH碼(q=2)的糾錯能力限為,t《(2m-1)。
1960年Reed和Solomon將BCH碼擴展到非二元(q》2)的情況,得到了RS(Reed.Solomon)碼。RS碼的最大優點是其非二元特性可以糾正突發錯誤并日.它也能糾正隨機錯誤。
但直到1967年Berlekamp給出了一個非常有效的譯碼算法之后,RS碼才在實際系統中嶄露頭角,比如在CD播放器、DVD播放器以及CDPD(Cellular Digital Packet Data)標準中都得到了很好的應用。
上述討論的這些都是分組碼,分組碼存在一些不足,應用受限。首先,必須是按幀傳輸、按幀譯碼,這樣在幀長較長時會帶來一定的時延。其次,要求準確的幀同步,這樣才能準確譯碼。多數分組碼要求解調器的硬判決輸出,這樣又會帶來一些判決誤差,影響性能。此外,分組碼的譯碼方法通常都采用大數邏輯譯碼和捕錯譯碼,其譯碼復雜度與碼長成指數關系,碼長越長,譯碼復雜度越大,而且上升趨勢很快,所以基本上不實用。
1955年,Elias等人首先提出了卷積碼。卷積碼不是將數據分割成不同的分組,而是通過移位寄存器將校驗比特加入輸入數據流中。每n比特輸出是當前k比特輸入和寄存器中的m比特的線性組合,每次輸出總的比特數與約束長度k有關,其碼率為存一次編碼間隔中數據比特k與輸出比特數n之比。
卷積碼與分組碼不同在于它在編碼的過程中引入了寄存器,增加了碼元之間的相關性,在相同的復雜度下可以獲得比分組碼更高的編碼增益,但是這種相關性同時也增加了分析和設計卷積碼的復雜性。
隨著人們對卷積碼研究的深入,在卷積碼的譯碼算法方面出現了序列譯碼算法、門限譯碼算法和維特比(Viterbi)譯碼算法。
維特比(Viterbi)譯碼算法的出現,使卷積碼逐漸成為研究和應用的重點,以后出現的TCM(柵格編碼調制)技術進一步確立了卷積碼在糾錯碼應用中的主導地位,特別是在通信系統中得到了極為廣泛的應用。
維特比(Viterbi)是誰?
人物
維特比(Viterbi)
安德魯·維特比(Andrew J. Viterbi),CDMA之父,IEEE Fellow ,高通公司創始人之一,高通首席科學家。他開發了卷積碼編碼的最大似然算法而享譽全球。
【人物簡介】
維特比于1935年3月9日出生在貝加莫(意大利北部的一個城市),1939隨父母移民到美國。維特比就讀于波士頓拉丁文學校,于1952年進入MIT電子工程專業。1957年碩士畢業后獲取南加州大學數字通信方向博士學位。隨后作為加州大學洛杉磯分校、圣迭戈分校電子工程專業教授。1967年他發明維特比算法,用來對卷積碼數據進行譯碼。該算法已經成功應用于蜂窩電話系統,DNA分析,以及隱馬爾科夫模型諸多應用中。維特比同時還幫助發展了CDMA標準。
【主要成就】
1985年維特比作為參與者之一創建了高通公司,該公司成立之初主要為無線通訊業提供項目研究、開發服務,同時還涉足有限的產品制造。
2007年6月19日,維特比榮獲首屆IEEE/RSE/歐勝聯合頒發的James Clerk Maxwell大獎。2008年9月,由于發明維特比算法,以及對CDMA無線技術發展的貢獻,維特比獲得美國國家科學獎章。
卷積碼的主要問題是對突發性錯誤的糾錯能力差。但是采用交織和卷積碼結合的方式,可以在碼比特送入信道前,進行分組交織,再進行卷積碼編碼,在接收端,先解交織,再譯碼。經過這一交織與解交織的過程,突發性錯誤就變成了隨機錯誤。卷積碼性能得到改善。典型的Turbo碼就是這樣的一種編解碼結構。
經過上個世紀幾十年的研究和實踐,糾錯碼理論和技術取得了很大的發展,但是距離Shannon理論極限仍然還有一定的距離,難以找到逼近Shannon極限的編碼方案,這使得人們一度認為Shannon極限僅僅是理論上的極限,是不可能達到的。
法國的C.Berrou等人在1993年提出了一種全新的信道編碼方案:Turbo碼。Turbo碼在信道編碼的理論和應用中取得了突破性的進展,具有里程碑的意義。它打破了串行級聯編碼的結構,采用并行級聯編碼。Turbo碼的基本思想在于利用短碼構造長碼,在譯碼時,將長碼化為短碼,再利用軟輸入/軟輸出的迭代譯碼算法(MAP算法,SOVA算法)達到了接近Shannon極限的性能。
Turbo碼的優異性能使其一度成為編碼界研究的熱點,其理論和技術也逐漸成熟起來。Turbo碼在通信中有廣闊的應用前景,在諸如星際探測、4G移動通信、數字電視、數字廣播、衛星通信中都得到廣泛應用。但是Turbo碼也有自身的缺點,它的譯碼復雜度仍然較高,且碼長較長時,交織器的存在使得時延較大。
就在人們熱點研究Turbo碼的時候,有人注意到了一種早在1962年就由Gallager提出來的信道編碼方案——LDPC碼(Low Density Parity Check codes,低密度奇偶校驗碼),它利用校驗矩陣的稀疏性,使得譯碼復雜度只與碼長成線性關系,在長碼長的情況下仍然可以有效的進行譯碼,因而具有更簡單的譯碼算法。
后來,D.J.Mackay、M.Neal和N.Wiberg等人對LDPC碼重新進行了研究,發現LDPC碼與Turbo一樣具有逼近Shannon極限的性能。最新的研究結果顯示,實驗中已找到的最好LDPC碼,其極限性能據Shannon限只相差0.0045dB。
03、LDPC碼
LDPC是一種前向信道糾錯碼,由MIT的Robert Gallager博士于1962年提出,是一種二元正則線性分組碼,其校驗矩陣具有一定的稀疏性。
在GF(2)上的LDPC碼具有以下特點:
校驗矩陣H的每一列都包含正好dv個“1”(dv被稱為變量節點的度);
校驗矩陣H的每一行都包含正好dc個“1”(dc被稱為校驗節點的度);
兩行或兩列中不能有多余一個相同位置上有非零元素(特性3在定義LDPC碼時不是必要的,引入只是為了避免4環);
dc和dv相對于碼長和校驗矩陣來的行數來說很小。
Gallager證明了LDPC碼的最小漢明距離隨著碼長的增長而線性增長。在計算樹圖上采用迭代后驗概率譯碼,可以獲得依碼字長度降低的比特錯誤概率。盡管Gallager證明了LDPC碼具有漸進特性的好碼,但由于LDPC碼的編碼復雜度高,對硬件實現要求也高,而當時的計算工具和存儲器件較差,LDPC碼一度被認為是一種不實用的碼,在很長一段時間內沒有受到人們的重視。英雄落淚!
1981年,Tanner在一篇奠基文章中正式提出了用圖模型來描述碼字的概念。Tanner將LDPC碼的校驗矩陣對應到被稱為Tanner圖的雙向二分圖上;雙向二分圖由多個局部約束子集合構成,每個子集合包含的比特節點數目等于校驗矩陣中每一行“1”的個數(校驗節點的度),同時每個比特節點參與的子集合數目等于校驗矩陣中的每一列“1”的個數(變量節點的度)。在譯碼過程中,每個子集合單獨譯碼,子集合通過共同擁有的比特節點進行信息傳遞,經過多次迭代完成譯碼。采用Tanner圖構造的LDPC碼,通過并行譯碼可以顯著降低譯碼復雜度。Tanner仔細分析了最小和算法與和積算法兩種信息傳遞譯碼算法,證明了基于有限無環Tanner圖最小和譯碼算法及和積譯碼算法的最優性。在實際中,Tanner圖的構造采用隨機圖的方式,從而Tanner圖存在小環路現象,這些小環路會造成姨媽信息的重復傳遞,影響迭代譯碼算法的收斂性以及譯碼性能。
Mackay和Neal利用隨機構造的Tanner圖研究了LDPPC碼的性能,結果表明采用和積譯碼算法的正則LDPC碼具有和Turbo相似的譯碼性能,長碼的性能甚至超過了Turbo碼。
Wiberg結合Turbo碼和網格圖對Tanner因子圖進行了研究,將其推廣成包含隱含狀態變量的因子圖(factor graph)。Wiberg的因子圖是一個包含比特節點和校驗節點的二分圖,每個局部約束子集合由一個校驗節點和多個比特節點組成。Wiberg還證明了最小和算法與和積算法在本質上的同一性,在無環圖中,它們分別等效于最大似然譯碼(ML)和最大邊界后驗概率譯碼(APP)。
LDPC碼的另一個重要研究成果是Richardson等人應用密度進化理論來估計LDPC碼的性能。他們發現,在譯碼信息的迭代過程中存在譯碼閾值現象,即當信噪比大于譯碼閾值時,迭代譯碼可以使誤碼率位零,如果信噪比小于譯碼閾值,則無論采用多長的LDPC碼,經過多少次迭代,總存在一定的錯誤概率。通過建立在無環圖上的密度進化理論,可以精確地計算無環圖上LDPC碼的譯碼閾值,分析其譯碼收斂條件,從而可以近似估算有環因子圖上LDPC碼的性能。
近年來,LDPC碼與通信系統中的其他關鍵技術的結合成五日新的研究熱點,包括LDPC碼與Turbo碼以及時空碼的結合使用,LDPC碼編碼與調制,LDPC碼的編譯碼與MIMO技術的結合,基于LDPC碼的OFDM系統以及基于LDPC碼的CDMA系統。同時,由于LDPC碼譯碼復雜度相對較低并且硬件水平在不斷提高,LDPC碼的硬件實現也正成為研究熱點。特別是利用FPGA進行LDPC編解碼器的開發設計上,已有不少研究成果。
目前,LDPC碼已成為5G NR信道編碼方案的標準。
Xilinx公司開發的LDPC Encoder/Decoder IP框圖如下圖所示:
該IP運行在400MHz時鐘時,譯碼最高吞吐率在8次迭代下為1.78Gb/s,編碼吞吐率位12.5Gb/s。該IP采用高帶寬的AXI4-Sream接口,譯碼支持最小和算法或偏置最小和算法。
04、Polar碼
在這里,我們再簡單回顧一下Polar碼的發展歷程。
2008年,Erdal Arikan發表了題為《Channel Polarization: A Method for Constructing Capacity-Achieving Codes》的論文,提出了一種信道極化方法,該方法可以構造任意二進制輸入離散無記憶信道(B-DMC)W對稱容量I(W)的碼序列。
2009年,Erdal Arikan在“IEEE Transaction on Information Theory”期刊上發表了一篇長達23頁的論文,更為詳細地闡述了信道極化,并基于信道極化提出了一種新的編碼方式,并命名為極化碼(Polar Code)。極化碼有具體的構造方法,并且是已知的唯一一種能夠被嚴格證明“達到”信道容量香農限的信道編碼方法。
極化碼是一種前向錯誤糾錯編碼方式,用于訊號傳輸。在信道編碼側,我們考慮采用一種方法,使各個子信道呈現出不同的可靠性,當碼長持續增加時,部分信道將趨向于容量近于1的完美信道(無誤碼);另一部分信道則呈現趨向于容量接近于0的全噪聲信道,從而呈現兩極化的信道。我們選擇在容量接近于1的信道上直接傳輸信息以逼近信道容量,這樣可以使得信道容量接近香農極限。
極化碼同時具備了代數編碼和概率編碼的特點。首先,我們只要給定編碼長度,極化碼的編譯碼結構就唯一確定,并且可通過生成矩陣來完成編碼過程,這與代數編碼的思維是一致的。其次,極化碼在設計師沒有考慮最小距離特性(如漢明距),而是利用了信道聯合(Channel Combination)和信道分裂(Channel Splitting)的過程來選擇具體的編碼方案,譯碼時采用概率算法(如對數似然比),這就和概率編碼相似。
盡管Polar提出較晚,但作為已經被理論證明可達到香農極限的編碼方案,自發明以來,業內已在譯碼算法、速率兼容編碼方案和硬件實現上做了大量的研發工作。
2016年11月18日,在美國內華達州里諾召開的3GPP RAN#87次會議上,確定Polar Code作為5G eMBB(增強移動寬帶)場景下控制信道編碼方案。
2018年7月26日,華為在深圳坂田舉行5G極化碼與基礎研究貢獻獎頒獎大會(5G Polar Code and Fundamental Research Awards),此舉是為了表彰科學家對基礎科學做出的貢獻。
與LDPC碼比起來,Polar碼真是趕上了好時代。
時勢造英雄,英雄造時勢。
出場時機很重要,不管是一場革命,一次創新,還是生命中遇見的人。
一個好的信道編譯碼方案,不論雪藏多久,終究會在適當的時候,迎來黎明的曙光。
信道編碼方案有很多,在特定的場景下,選擇合適的編碼方案,保證信號質量,提高信道可靠性,實現高質量通信。
編輯:hfy
-
LDPC
+關注
關注
1文章
66瀏覽量
31172 -
通信系統
+關注
關注
6文章
1176瀏覽量
53287 -
信道編碼
+關注
關注
2文章
31瀏覽量
9538
發布評論請先 登錄
相關推薦
評論