發展簡史,信道編碼概述,1、釋義,2、發展,信道編碼技術,1、作用,2、糾錯編碼,糾錯碼的各種類型,1、RS編碼,2、卷積碼,3、Turbo碼,4、GSM系統中的信道編碼,5、IS-95系統中的信道編碼,6、交織,7、偽隨機序列擾碼,
發展簡史 人類在信道編碼上的第一次突破發生在1949年。R.Hamming和M.Golay提出了第一個實用的差錯控制編碼方案——漢明碼。
漢明碼每4個比特編碼就需要3個比特的冗餘校驗比特,編碼效率比較低,且在一個碼組中只能糾正單個的比特錯誤。
隨後,M.Golay先生研究了漢明碼的缺點,提出了Golay碼。
Golay碼在1979~1981年間被用於美國國家航空航天局太空探測器Voyager的差錯控制系統,將成百張木星和土星的彩色照片帶回地球。
Golay碼之後是一種的新的分組碼——RM碼。在1969年到1977年之間,RM碼廣泛套用於火星探測,同時,其快速的解碼算法非常適合於光纖通信系統。
RM碼之後人們又提出了循環碼的概念,也叫循環冗餘校驗(CRC)碼。循環碼也是分組碼的一種,其碼字具有循環移位特性,這種循環結構大大簡化了編解碼結構。
不過,以上編碼方案都是基於分組碼實現,分組碼主要有兩大缺點:一是在解碼過程中必須等待整個碼字全部接收到之後才能開始進行解碼,二是需要精確的幀同步,從而導致時延較大、增益損失大。
直到卷積碼的出現,改善了分組碼的缺點。歸功於卷積碼,在接下來的10年裡,無線通信性能得到了跳躍式的發展。
Elias於1955年提出卷積碼
卷積碼與分組碼的不同在於:它充分利用了各個信息塊之間的相關性。在卷積碼的解碼過程中,不僅從本碼中提取解碼信息,還要充分利用以前和以後時刻收到的碼組,從這些碼組中提取解碼相關信息,而且解碼也是連續進行的,這樣可以保證卷積碼的解碼延時相對比較小。
儘管卷積碼讓通信編碼技術騰飛了10年,但終究還是遇到了瓶頸——“計算複雜性”問題。
還好,這個世界有一個神奇的摩爾定律。得益於摩爾定律,編碼技術在一定程度上解決了計算複雜性和功耗問題。而隨著摩爾定律而來的是,Viterbi於1967年提出的Viterbi解碼算法。
Viterbi解碼算法提出之後,卷積碼在通信系統中得到了極為廣泛的套用,如GSM、 IS-95 CDMA、3G、商業衛星通信系統等。
但是,隨著通信技術的飛速發展,“計算複雜性”依然是一道邁不過的牆,專家們苦苦思索,試圖在可接受的計算複雜性條件下設計編碼和算法,以提高效率,但其增益與香農理論極限始終都存在2~3dB的差距。
正在專家們一籌莫展之時,奇蹟出現了。
1993年,兩位當時名不見經傳的法國電機工程師C.Berrou和A.Glavieux聲稱他們發明了一種編碼方法——Turbo碼,可以使信道編碼效率接近香農極限。
C.Berrou
一開始,大家都是持懷疑態度的,甚至懶得去理睬這兩個小角色,這么多數學家都沒能突破,你兩個小小的機電工程師也敢宣稱接近香農極限?忽悠吧?
但是,這兩位法國工程師正是繞過數學理論,憑藉其豐富的實際經驗,通過疊代解碼的辦法解決了計算複雜性問題。
▲Turbo碼的解碼器有兩個分量碼解碼器,解碼在兩個分量解碼器之間進行疊代解碼,故整個解碼過程類似渦輪(turbo)工作,所以又形象的稱為Turbo碼。
Turbo碼的發明又一次開創了通信編碼史的革命性時代。
隨後,全世界各大公司開始聚焦於Turbo碼研究。Turbo碼也成為了3G/4G移動通信技術所採用的編碼技術,直到4.5G,我們依然在採用。
但是,由於Turbo碼採用疊代解碼,必然會產生時延,所以對於實時性要求很高的場合,對於即將到來的超高速率、超低時延的5G需求,Turbo碼又遇到瓶頸,因此,在5G時代就出現了Polar碼和LDPC碼之爭。
▲Turbo碼和LDPC碼功耗比較,來源5G Forum
Polar碼是由土耳其比爾肯大學教授E. Arikan在2007年提出,2009年開始引起通信領域的關注。儘管Polar提出較晚,但作為已經被理論證明可達到香農極限的編碼方案,自發明以來,業內已在解碼算法、速率兼容編碼方案和硬體實現上做了大量的研發工作。
▲Turbo碼和Polar碼FER比較,來源5G Forum
因此,最後3GPP在5G時代拋棄了Turbo碼,選擇了LDPC為數據信道編碼方案,Polar為廣播和控制信道編碼方案。
那么,為何3GPP同時選擇了LDPC碼和Polar碼呢?這背後有“不把雞蛋放在同一個籃子”的因素,也有“One code does not fit all”的因素。
首先,華為不會孤注一擲投入Polar碼,高通也不會孤注一擲投入LDPC碼,各家公司都會在不同的候選技術上投入,不會把雞蛋放在同一個籃子裡。其次,各種編碼方案的優缺點不同,需對其硬體實現複雜度、功耗、靈活性、成熟度等進行綜合考量,One code does not fit all,沒有“一刀切”的處方。
信道編碼概述 1、釋義 由於移動通信存在干擾和衰落,在信號傳輸過程中將出現差錯,故對數位訊號必須採用糾、檢錯技術,即糾、檢錯編碼技術,以增強數據在信道中傳輸時抵禦各種干擾的能力,提高系統的可靠性。對要在信道中傳送的數位訊號進行的糾、檢錯編碼就是信道編碼。
通常糾錯碼分為兩大類,即分組碼和卷積碼。在移動通信系統中另一種糾錯方法就是信令重發,解碼時先存儲再逐位判決,如重發五次,三次或三次以上均為1,則判1。
信道編碼之所以能夠檢出和校正接收比特流中的差錯,是因為加入一些冗餘比特,把幾個比特上攜帶的信息擴散到更多的比特上。為此付出的代價是必須傳送比該信息所需要的更多的比特。
2、發展 編碼定理的證明,從離散信道發展到連續信道,從無記憶信道到有記憶信道,從單用戶信道到多用戶信道,從證明差錯機率可接近於零到以指數規律逼近於零,正在不斷完善。編碼方法,在離散信道中一般用代數碼形式,其類型有較大發展,各種界限也不斷有人提出,但尚未達到編碼定理所啟示的限度,尤其是關於多用戶信道,更顯得不足。在連續信道中常採用正交函式系來代表訊息,這在極限情況下可達到編碼定理的限度。不是所有信道的編碼定理都已被證明。只有無記憶單用戶信道和多用戶信道中的特殊情況的編碼定理已有嚴格的證明;其他信道也有一些結果,但尚不完善。
信道編碼技術 1、作用 數位訊號 在傳輸中往往由於各種原因,使得在傳送的數據流中產生誤碼,從而使接收端產生圖象跳躍、不連續、出現馬賽克等現象。所以通過信道編碼這一環節,對數碼流進行相應的處理,使系統具有一定的糾錯能力和抗干擾能力,可極大地避免碼流傳送中誤碼的發生。誤碼的處理技術有糾錯、交織、線性內插等。
提高
數據傳輸 效率,降低誤碼率是信道編碼的任務。信道編碼的本質是增加通信的可靠性。但信道編碼會使有用的信息數據傳輸減少,信道編碼的過程是在源數據碼流中加插一些碼元,從而達到在接收端進行判錯和糾錯的目的,這就是我們常常說的開銷。這就好象我們運送一批玻璃杯一樣,為了保證運送途中不出現打爛玻璃杯的情況,我們通常都用一些泡沫或海棉等物將玻璃杯包裝起來,這種包裝使玻璃杯所占的容積變大,原來一部車能裝5000個玻璃杯的,包裝後就只能裝4000個了,顯然包裝的代價使運送玻璃杯的有效個數減少了。同樣,在頻寬固定的信道中,總的傳送碼率也是固定的,由於信道編碼增加了數據量,其結果只能是以降低傳送有用信息碼率為代價了。將有用比特數除以總比特數就等於編碼效率了,不同的編碼方式,其編碼效率有所不同。
2、糾錯編碼 數位電視中常用的糾錯編碼,通常採用兩次附加糾錯碼的前向糾錯(FEC)編碼。RS編碼屬於第一個FEC,188位元組後附加16位元組RS碼,構成(204,188)RS碼,這也可以稱為外編碼。第二個附加糾錯碼的FEC一般採用卷積編碼,又稱為內編碼。外編碼和內編碼結合一起,稱之為級聯編碼。級聯編碼後得到的數據流再按規定的調製方式對載頻進行調製。
圖1信道編碼技術 前向糾錯碼(FEC)的碼字是具有一定糾錯能力的碼型,它在接收端解碼後,不僅可以發現錯誤,而且能夠判斷錯誤碼元所在的位置,並自動糾錯。這種糾錯碼信息不需要儲存,不需要反饋,實時性好。所以在廣播系統(單向傳輸系統)都採用這種信道編碼方式。
糾錯碼的各種類型 1、RS編碼 RS碼即里德-所羅門碼,它是能夠糾正多個錯誤的糾錯碼,RS碼為(204,188,t=8),其中t是可抗長度位元組數,對應的188符號,監督段為16位元組(開銷位元組段)。實際中實施(255,239,t=8)的RS編碼,即在204位元組(包括同步位元組)前添加51個全“0”位元組,產生RS碼後丟棄前面51個空位元組,形成截短的(204,188)RS碼。RS的編碼效率是:188/204。
圖2糾錯碼的各種類型 2、卷積碼 卷積碼非常適用於糾正隨機錯誤,但是,解碼算法本身的特性卻是:如果在解碼過程中發生錯誤,解碼器可能會導致突發性錯誤。為此在卷積碼的上部採用RS碼塊,RS碼適用於檢測和校正那些由解碼器產生的突發性錯誤。所以卷積碼和RS碼結合在一起可以起到相互補償的作用。卷積碼分為兩種:
(1)基本卷積碼:
基本卷積碼編碼效率為,η=1/2,編碼效率較低,優點是糾錯能力強。
(2)收縮卷積碼
圖3收縮卷積碼的產生 如果傳輸信道質量較好,為提高編碼效率,可以採樣收縮截短卷積碼。有編碼效率為:η=1/2、2/3、3/4、5/6、7/8這幾種編碼效率的收縮卷積碼。
編碼效率高,一定頻寬內可傳輸的有效比特率增大,但糾錯能力越減弱。
3、Turbo碼 1993年誕生的Turbo碼,單片Turbo碼的編碼/解碼器,運行速率達40Mb/s。該晶片集成了一個32×32交織器,其性能和傳統的RS外碼和卷積內碼的級聯一樣好。所以Turbo碼是一種先進的信道編碼技術,由於其不需要進行兩次編碼,所以其編碼效率比傳統的RS+卷積碼要好。
圖4Turbo 碼 4、GSM系統中的信道編碼 GSM系統把20ms語音編碼後的數據作為一幀,共260bit,分成50個最重要比特、132個次重要比特和78個不重要比特。
在GSM系統中,對話音編碼後的數據既進行檢錯編碼又進行糾錯編碼。如圖5所示。
圖5 GSM系統中對語音業務的信道編碼 首先對50個最重要比特進行循環冗餘編碼(CRC),編碼後為53bit;再將該53bit與次重要的132bit一起進行約束長度為K=5,編碼效率為R=1/2的卷積編碼,編碼後為2(53+132+4)=378bit;最後再加上最不重要的78bit,形成信道編碼後的一幀共456bit。
5、IS-95系統中的信道編碼 (1)正向鏈路上的信道編碼
在IS-95系統中,正向鏈路上是以不同的沃爾什(Walsh)函式來區分不同的物理信道的。在用沃爾什函式進行直接擴頻調製之前,要對話音數據或信令數據進行編碼效率R=1/2、約束長度為K=9的信道編碼。由於CDMA系統是受自身干擾的系統,各業務信道上的發射功率受到嚴格的限制。當系統中使用同一頻率信道的用戶較多時,對每個用戶而言,接收信噪比就降低。所以,CDMA系統的話音編碼被設計為多速率的。當接收信噪比較高時,採用較高速率的話音編碼,以獲得較好的接收話音質量;當接收信噪比較低時,就採用較低的話音編碼速率。較低速率的話音編碼數據經卷積編碼後,可進行字元重複。語音編碼數據速率越低,卷積編碼後字元可重複的次數越多,使得在較差信道上傳輸的信號獲得更多的保護。
(2)反向鏈路上的信道編碼
IS-95系統中,反向鏈路上是用不同的長偽隨機序列來區分不同的物理信道的。在用長偽隨機序列進行直接擴頻調製之前,要對語音數據或信令數據進行編碼效率R=1/3(速率集1)或R=1/2(速率集2)、約束長度為K=9的信道編碼。由於同樣的原因,語音編碼同樣被設計為多速率的。當接收信噪比較低時。可採用較低的話音編碼速率、字元重複的方法,提高在信道上傳輸時的抗干擾性能。
6、交織 在實際套用中,比特差錯經常成串發生,這是由於持續時間較長的衰落谷點會影響到幾個連續的比特,而信道編碼僅在檢測和校正單個差錯和不太長的差錯串時才最有效(如RS只能糾正8個位元組的錯誤)。為了糾正這些成串發生的比特差錯及一些突發錯誤,可以運用交織技術來分散這些誤差,使長串的比特差錯變成短串差錯,從而可以用前向碼對其糾錯,例如:在DVB-C系統中,RS(204,188)的糾錯能力是8個位元組,交織深度為12,那么糾可抗長度為8×12=96個位元組的突發錯誤。
實現交織和解交織一般使用卷積方式
交織技術對已編碼的信號按一定規則重新排列,解交織後突發性錯誤在時間上被分散,使其類似於獨立發生的隨機錯誤,從而前向糾錯編碼可以有效的進行糾錯,前向糾錯碼加交積的作用可以理解為擴展了前向糾錯的可抗長度位元組。糾錯能力強的編碼一般要求的交織深度相對較低。糾錯能力弱的則要求更深的交織深度。
一般來說,對數據進行傳輸時,在發端先對數據進行FEC編碼,然後再進行交積處理。在收端次序和發端相反,先做去交積處理完成誤差分散,再FEC解碼實現數據糾錯。另外,從上圖可看出,交積不會增加信道的數據碼元。
根據信道的情況不同,信道編碼方案也有所不同,在DVB-T里由於由於是無線信道且存在多徑干擾和其它的干擾,所以信道很“髒”,為此它的信道編碼是:RS+外交積+卷積碼+內交積。採用了兩次交積處理的級聯編碼,增強其糾錯的能力。RS作為外編碼,其編碼效率是188/204(又稱外碼率),卷積碼作為內編碼,其編碼效率有1/2、2/3、3/4、5/6、7/8五種(又稱內碼率)選擇,信道的總編碼效率是兩種編碼效率的級聯疊加。設信道頻寬8MHZ,符號率為6.8966Ms/S,內碼率選2/3,16QAM調製,其總傳輸率是27.586Mbps,有效傳輸率是27.586*(188/204)*(2/3)=16.948Mbps,如果加上保護間隔的插入所造成的開銷,有效碼率將更低。
在DVB-C里,由於是有線信道,信道比較“乾淨”,所以它的信道編碼是:RS+交積。一般DVB-C的信道物理頻寬是8MHZ,在符號率為6.8966Ms/s,調製方式為64QAM的系統,其總傳輸率是41.379Mbps,由於其編碼效率為188/204,所以其有效傳輸率是41.379*188/204=38.134Mbps。
在DVB-S里,由於它是無線信道,所以它的信道編碼是:RS+交積+卷積碼。也是級聯編碼。
下圖是DVB-T、DVB-C、DVB-S各自的信道編碼方式:
7、偽隨機序列擾碼 進行基帶信號傳輸的缺點是其頻譜會因數據出現連“1”和連“0”而包含大的低頻成分,不適應信道的傳輸特性,也不利於從中提取出時鐘信息。解決辦法之一是採用擾碼技術,使信號受到隨機化處理,變為偽隨機序列,又稱為“數據隨機化”和“能量擴散”處理。擾碼不但能改善位定時的恢復質量,還可以使信號頻譜平滑,使幀同步和自適應同步和自適應時域均衡等系統的性能得到改善。
擾碼雖然“擾亂”了原有數據的本來規律,但因為是人為的“擾亂”,在接收端很容易去加擾,恢復成原數據流。
實現加擾和解碼,需要產生偽隨機二進制序列(PRBS)再與輸入數據逐個比特作運算。PRBS也稱為m序列,這種m序列與TS的數據碼流進行模2加運算後,數據流中的“1”和“0”的連續遊程都很短,且出現的機率基本相同。
利用偽隨機序列進行擾碼也是實現數位訊號高保密性傳輸的重要手段之一。一般將信源產生的二進制數字信息和一個周期很長的偽隨即序列模2相加,就可將原信息變成不可理解的另一序列。這種信號在信道中傳輸自然具有高度保密性。在接收端將接收信號再加上(模2和)同樣的偽隨機序列,就恢復為原來傳送的信息。
在DVB-C系統中的CA系統原理就源於此,只不過為了加強系統的保密性,其偽隨機序列是不斷變化的(10秒變一次),這個偽隨機序列又叫控制字(CW)。
出現一種新的信道編碼方法。LDPC編碼。LDPC編碼是最接近香農定理的一種編碼。