Turbo码,接近完美的编码
189號段最牛號碼現身:18901888888,本來我也想去搶注一個吉祥號,可惜不打算換手機。但是現在推出的189號段仍然為CDMA號段,工業和信息化部原定此號段為3G專屬號段,但為有更多號碼資源發展CDMA用戶,電信仍將此號段用于CDMA。
3G即第三代移動通信,主流制式分為三大類———WCDMA , CDMA2000 和中國的TD-SCDMA 。理想的3G要求必須能夠支持全IP高速分組數據傳輸(數據速率為數十甚至數百Mbit/ s) 、支持高的終端移動性(移動速度高達每小時幾百公里) 、支持高的傳輸質量(數據業務的誤碼率低于10- 6) 、提供高的頻譜利用率和功率效率(發射功率降低10dB 以上) ,并能夠有效地支持在用戶數據速率、用戶容量、服務質量和移動速度等方面大動態范圍的變化。而為了解決這些難題,就必須有好的編碼技術。具有強糾錯能力的Turbo 碼受到各個移動通信標準的青睞。下面是整理的關于Turbo碼的文字:
Turbo 碼使工程師可以在一個信道里傳輸多得多的無誤碼數據,從而將成為下一代多媒體移動通信的關鍵 在超塵脫俗的技術研究領域,一篇深奧的論文通常很少受到嘲笑。更為罕見的是這篇論文后來竟又被證明是革命性的。?
而這恰恰發生在十年以前,1993 年在瑞士日內瓦舉行的IEEE 國際通信學會。會上兩位法國電機工程師克勞德.伯勞和阿雷恩.格萊維歐克斯聲稱他們發明了一種數字編解碼方案,可以實現事實上無誤碼而碼率與發射功率效率超出所有專家預期的傳輸。
Turbo 碼的發明人克勞德.伯勞和阿雷恩.格萊維歐克斯,這兩位法國人都是位于布萊斯特的布列塔尼國立高等電信學校的教授。他們解決了困擾通信界近40 年的一個難題。 文章作者宣稱,這一方案可以在給定功率下把傳輸碼率提高一倍,或者在給定傳輸速率下把信號能量減少一半 — 這一進展足以使某些通信公司動心來碰一下運氣。
克勞德.伯勞(左)和阿雷恩.格萊維歐克斯
幾乎沒有專家相信他們的結果。這兩位法國人都是位于布萊斯特的布列塔尼國立高等電信學校的教授,當時在信息理論領域都是名不見經傳的。一些人想當然地認為他們的計算一定有什么錯誤。結論看來如此不合常理以致一些專家懶得去閱讀這篇文章。
似乎不可思議的是,當其他研究人員開始試驗重復其結果時,很快證明這些結論是正確的。于是編解碼理論專家認識到這篇文章的重要。伯勞和格萊維歐克斯提出的糾錯編碼方案是對的,這一方案就被命名為Turbo 編碼,它對糾錯編碼產生了革命性的影響。你買的下一代移動電話很可能就是基于這一編碼方案。?
一開始,Turbo 碼只是應用于一些特殊場合,主要是用于衛星鏈路。至少還有一次用于深度空間通信,現在這個技術要走上主流舞臺了。當這個技術與下一代移動電話結合,成百萬人就會用上它。這一技術會使手機或其它移動設備有能力進行多媒體數據,如視頻信號及圖形圖像信號的通信。由于在這種環境下通常信道噪聲嚴重,其它技術很難滿足要求。不僅如此,研究人員還在研究把 Turbo 碼用于數字音頻和視頻廣播,以及用于增強型無線互聯網, 以提高數據傳輸速率。
由于 Turbo 碼的這種巨大前景, 它已經成為通信研究的前沿。在全世界各大公司和大學的成百個小組都聚焦在這個領域。其中有電信鉅子如法國電信、NTT(日本電話電報公司)、DoCoMo;有高技術公司巨頭如索尼、NEC(日本電氣)、朗訊、三星、愛立信、諾基亞、摩托羅拉和高通(Qualcomm);有硬件和芯片制造商 如 Broadcom 、 Conexant 、Comtech AHA 和STMicroelectronics;還有新興高技術企業如Turboconcept和iCoding。
Turbo 碼其實只是實現了一件簡單但了不起的事情 — 使工程師能夠設計出非常接近信道容量(即在一定發射功率電平下信道可傳輸的每秒比特數值的絕對最大容量)的系統。 這一極限值是由當時在貝爾實驗室工作的著名的電機工程師和數學家,以信息論之父聞名于世的克勞德.香農發現的。?
在 1948 年的一篇標志性論文中,香農(2001 年去世)證明在使用正確的糾錯碼的條件下,數據可以以接近信道容量的速率幾乎無誤碼地傳輸,而所需的功率卻十分低。 在香農這篇文章以前,工程師們認為要減少誤碼,要么就得增加發射功率,要么就得反復發送同一段消息—就好像在人聲嘈雜的啤酒館里人們得大聲地反復呼叫要啤酒一樣。?
香農從根本上證明了如果你有正確的編碼方案就沒有必要浪費那么多能量和時間。在他的發現之后編碼理論就發展起來了,研究人員找到了相當好的編碼方式。但是在 Turbo 碼以前,即使最好的編碼方案通常也需要香農定理要求的功率的兩倍才能達到必要的可靠性—這是能量的巨大浪費。在理論數值和實際要求數值之間的能量差距用對數坐標表示大約為 3.5 分貝。要想縮小這一差距工程師需要更精細的編碼。?
這成了近四十年工程界不斷努力的目標,一直到伯勞和格萊維歐克斯在九十年代初做出了他們的發現為止。1993 年他們提出Turbo 碼概念時展示了在誤碼率為十萬分之一的情形下把實際功率和香農理論的差距驚人地縮小為 0.5 分貝的可能。今天 Turbo碼甚至還在繼續縮小這一已經很小的差距。?
按照香農奠基性的文章,克服困擾所有通信信道的噪聲的辦法是把要傳輸的數據劃分成一段一段的比特串,在每一段加上額外的比特,稱之為奇偶比特,這些碼在接收端可以幫助識別和糾正誤碼。數據比特加奇偶比特所形成的一組比特群稱之為編碼詞,通常表示一段字符、若干像素、一段聲音取樣或其他數據塊。IEEE 的會士,麻省理工學院的電機系教授戴維.佛內指出: 香農證明了對于一個正確的編碼詞集合—也就是說正確的編碼,有可能達到信道容量。但是,什么編碼可以實現這一點?香農沒有回答。香農從數學上證明了編碼是達到信道容量的手段,但他沒有給出如何構建這樣的編碼的準確方法。但香農的工作提供了寶貴的啟示。?
香農把編碼詞當作(編碼)空間中的一個點。例如編碼詞 011可以當成三維空間中坐標為x=0,y=1,z=1 的一個點。多于三個比特的編碼詞可以看成多維空間的點。噪聲會擾動一個編碼詞的比特,從而擾動其在空間的坐標,使其位置發生變化。如果兩個點位置靠近,其中一點被噪聲影響,這點就有可能正好落到另一點上,形成解碼錯誤。因此,編碼詞之間的空間距離分得越開,噪聲就越難以造成誤碼。?
為了達到信道容量的傳輸極限,香農證明應該隨機地選取無限長度的編碼詞。如果回到他提出的空間比擬,如果你能夠按照你的意愿使編碼詞盡可能隨機、盡可能長,你就能把這些編碼詞在空間分布得盡可能彼此遠離,自然一點錯誤地落到另一點上的情況就難以發生。 可惜這種隨機、冗長的編碼是不現實的。首先編碼詞的數量會是天文數字,其次這樣做就要發射許多許多比特來表示一個編碼詞,這種編碼使用起來會非常慢。然而編碼的隨機性對 Turbo碼仍舊是關鍵。?
編碼專家在開發現實世界可以使用的編碼時只能把香農的理想隨機碼放在一邊。他們很快就開始利用巧妙地選擇奇偶比特,把編碼詞限制在一定值域來開發有效編碼,使編碼詞彼此之間不易混淆。?
例如我們有一個 8 比特的編碼詞(7 位有效比特加一位奇偶比特) 。假設我們保持每個編碼詞“1”的個數是偶數,并通過改變外加的奇偶比特來滿足這個要求。現在如果任何一個比特,包括奇偶比特在內被噪聲所干擾而發生改變,則接收端就會檢測出誤碼,因為奇偶數不對, “1”的個數變成了奇數。?
這一方案可以檢測出誤碼卻不能糾錯—我們無法知道是哪一個比特被改變了。為了糾錯需要更多奇偶比特。編碼專家提出了許多越來越復雜的產生奇偶比特的方法。區塊碼(block codes)、海明碼(Hamming)、李德所羅門碼(Reed-Solomon) 和 卷 積 碼(convolutional)是幾種廣泛使用的編碼方案, 其誤碼率都很低。
然而,在這些編碼方案中計算復雜性問題困擾著編碼專家。當人們估算對所收到的數據進行解碼所需要的計算量及由此產生的成本時,計算復雜性問題就浮現出來。越接近香農極限編解碼過程就越復雜,因為需要更多的奇偶校驗比特因而編碼詞變得越來越長。?
例如,對于長度為 3 個比特的編碼詞,所有不同詞匯總量僅為23,即 8 個。要逼近信道傳輸極限, 就可能需要長度為 1000 比特的編碼詞,解碼器就得遍尋一個大得無法想象的集合—21000大約10301個編碼詞匯。而人類所能探索到的宇宙的原子總數也才是1080而已。?
結論只能是如果要設法用已有編碼方案,即使是最好的,來達到香農極限下的可靠通信注定是不可能的。按照伊利諾伊大學電機系教授塔納的說法,現有編碼不可能達到香農極限,因為計算復雜性達到天文數字程度。看不到克服這一壁壘的途徑。七十年代末,不少人認為沒有希望解決這一問題。 通過把編碼分成若干易于處理的“組件”Turbo 碼解決了計算復雜性問題。和現有多數系統在發射端只有單個編碼器,接收端只有單個解碼器不同,Turbo 碼在一端用兩個編碼器另一端用兩個解碼器。?
研究人員在 60 年代末發現傳輸數據通過兩個串接的編碼器可以使傳輸數據具有更強的抗誤碼能力—在這種情形下整體大于各部分之和。Turbo 碼則利用兩個聯合工作的編碼器,不是串接而是并接。?
Turbo 編碼過程一開始就把要傳輸的數據塊制成三份拷貝。第一份拷貝送到兩個編碼器之一然后通過卷積編碼器從數據比特計算出奇偶校驗比特。第二份拷貝送到第二個編碼器,里面也有一份完全一樣的卷積編碼器。第二個編碼器得到的比特流次序和原來不同,是經過一個交織器系統加擾的。然后由這個編碼器讀出經過擾動的比特流并從中計算出奇偶校驗比特。最后發射器把原來數據的第三份拷貝和上面兩組奇偶校驗碼一起沿著信道發送出去。?
整個過程的關鍵是交織器對比特順序的重組。這一重新排列增加了編碼詞的參差性;用空間概念理解相當在比特空間把編碼詞之間的距離拉開了。按照伯勞的說法,重新排列的作用是在編碼中引入某種隨機行為。 換句話說,交織器在發射的信息中加入了隨機特征,作用類似香農的隨機碼。
但像其他編碼詞匯量很大的編碼系統一樣,Turbo 碼也會碰到計算復雜性之墻。其實 Turbo 碼通常是用大約 1000 比特編碼詞工作,非常不利的長度。沒有希望了嗎?如果在接受端只有一個編碼器 確實如此,可是Turbo碼用兩個分量解碼器繞過了復雜性問題。?
每個解碼器的作用都是獲取數據,在信道噪聲影響下,數據可能被破壞,所以兩個解碼器還要判斷所收到的每一比特數據究竟更可能是“1”還是“0” 。這有點像在屋子里猜外面否在下雨,而你又無法從窗戶里看到外面,也聽不到外面的聲音。這種情況下你沒有任何“跡象”作依據,也許只能靠拋硬幣看那面沖上來進行猜測。可是如果你能看到天氣預報,而且天氣預報說要下雨,情形又如何呢?還有,要是你突然聽到雷聲又如何呢?這些事件都會影響你的猜測。這時情形可以比拋硬幣有所改進。你也許會說正在下雨的機會大一些,而且你可能帶把傘出門。?
每個 turbo 解碼器也考慮“跡象”來幫助其猜測收到的比特是“0”還是“1” 。首先,檢驗收到的比特的信號電平。許多解碼方案把收到的信號直接轉換成“0”或“1” ,因此把非常有價值的信息拋棄了。模擬信號會產生漲落起伏,這會給我們關于每一比特的更多信息。Turbo 解碼把信號轉換成整數,用其可以度量信號是“0”還是“1”的可信度。此外解碼器還觀察奇偶校驗碼,從中可以得知所收到的比特是否有誤碼。
這些分析的結果對于“猜測”每一比特非常有用。 按照貝爾實驗室的戴維.伽瑞特的話:Turbo碼從內部看就是在比特判決過程中利用判據可靠性信息。這種比特可靠性用數字表示,稱之為對數似然性系數,其取值范圍例如可以在-7 到+7 之間。+7 意味解碼器幾乎可以肯定該比特是 “1” ;而-5 意味解碼器判斷該比特是“0”但不是完全有把握。 (實際系統常常采用更大的間距,例如從-127 到+127) 盡管信號電平和奇偶校驗是非常有用的“跡象”但對做出判決仍嫌不夠。單一的解碼器還不能保證判決總是正確 常常產生錯誤的碼流。解碼器會在編碼詞空間迷失,作為其數據解碼結果所選擇的編碼詞未必總是正確的。所以單一解碼器不能完成任務。
但一個解碼器的判決可靠性信息對另一解碼器也是有用的,因為兩個碼流的奇偶校驗比特實際上是對同一組數據得出的;只不過比特順序排列作了改變。因此兩個解碼器實際上是在解同一問題,但觀察的視圖不同。
這樣,兩個解碼器就可以用迭代的方式交換可靠性信息來改進各自的解碼結果。要求就是把碼流內容按照每個解碼器工作的需要重新排列順序,然后在兩個解碼器之間交換可靠性碼流。使得一個解碼器對某一特定比特做出的判決,例如強烈認為該比特為“1” ,這一信息能夠對另一解碼器對相應比特的判決產生影響。就像在猜測是否下雨的那個比喻一樣,假如你看到你的同事拿著傘出去了,這對于影響你的猜測應該是非常有用的信息。在Turbo 解碼器的例子中,每個解碼器不僅有其自己的“觀點” ,還得到了外界觀點的幫助來對每一比特做出判決。貝爾實驗室數學研究中心的杰哈德.卡拉米說, 就好像有一個精靈在給你信息,精靈在你耳邊悄悄告訴你每個比特為“1”或“0”的可信度有多大,這將幫助你做出判決。?
Turbo 編解碼的核心是這一迭代過程,其中每一解碼器利用了另一解碼器在上一步解碼過程得到的結果。在若干次迭代(通常為 4 到10 次)之后,兩個解碼器就在所有的比特的判定上一致了。這就意味解碼器不會在編碼詞空間迷失,從而克服了復雜性壁壘。?
加州理工大學的羅伯特.麥克艾立斯教授說“這是個分而治之的解決方案,把問題分解成兩個小一些的問題,然后再把結果拼起來” 。 伯勞斯指出:也可以從猜縱橫字謎的角度來理解 Turbo 解碼過程。 假想 A 解決了一個縱橫字謎,要傳送給 B。在一個無噪聲信道,只要傳送詞匯陣列就夠了。但在一個噪聲信道,陣列中的字母會被搞亂。當 B 收到字謎答案時,許多詞無法辨認。為了幫助 B 糾錯,A 可以把水平詞匯和豎直詞匯的“跡象”也傳給 B。這是多余的信息, 因為字謎已經解開了,但這確實 對B 有幫助。 因為和奇偶校驗比特一樣,這一信息對可以放進陣列的詞匯加了約束。這是一個二維問題,行的解有助于得到列的解,反之亦然,就好像在 Turbo 解碼中兩個解碼器互相幫助一樣。?
回顧 11 年前,當 42 歲的伯勞穿過日內瓦會展中心的走廊時,從人們的肩膀上望過去看到許多出席者試圖弄懂他們的論文。在演講過程中年輕的博士生和老練的編解碼專家擠滿了演講廳,有些人擠在門邊。當伯勞和格萊維歐克斯結束演講時許多人涌上來要求進一步給出解釋,或者只是簡單地握握手。?
讓懷疑者信服花了不少時間,伯勞回憶說數字通信需要很堅實的數學基礎,一般都認為糾錯碼是數學家的領地。 使伯勞和格萊維歐克斯取得突破的不是什么深奧的定理而是要解決現實世界電信問題的探求努力。 在 80 年代末當他們開始在編碼方案方面工作時他們驚訝地發現在電子學領域廣泛應用的反饋原理在數字接收機研究中從來沒在放大器中,輸出信號總有一小部分回饋到輸入端,以保持放大器的性能穩定。伯勞和格萊維歐克斯想為什么這一方法在編解碼中就不能應用??
1991年他們第一次用計算機模擬實驗他們的新編解碼方案,當結果出來以后他們大吃一驚。伯勞說“那時我每天都問自己是不是程序有什么毛病。 ”?
伯勞和格萊維歐克斯在確認他們的結果無誤以后做的第一件事就是為他們的發明申請法國、歐洲和美國專利。當時法國電信是他們研究工作的主要資助者。所以這家法國公司擁有 turbo 編解碼的有關專利。但是發明者和他們所在的學校分享部分許可收益。 (Turbo碼在亞洲沒有申請專利,因此在亞洲可以免費使用。 )法國電信要伯勞為這一編碼方案起一個商品名字。有一天他在電視里看汽車比賽時想出了現在的這個名字。他注意到新發明的編解碼利用解碼器的輸出來改進解碼過程,和渦輪增壓(turbocharger)用排出的氣體把空氣壓入引擎提高內燃機效率的原理很類似,于是就起了“Turbo碼”這個名字 。
在日本 Turbo 碼已經得到應用,成為第三代移動通信,其正式名稱為“通用移動電信系統”—UMTS,標準的一部分。Turbo碼被用于圖像、 視頻和郵件傳送。但語音仍用卷積碼。因為其解碼時延小于 turbo 碼。 事實上解碼用的時間)是點。解碼所需在實時語音通數據處理的應據存取和光傳受對于可以容忍解碼時延的應用如深空通信,turbo 碼成為極有吸引力的選擇。事實上歐洲航天局去年九月發射的 SMART—1,第一個深空探測器,就使用了基于Turbo 碼的數據傳輸設備。歐空局在其他航天任務中也會選擇這種編碼,像定于今年發射的與彗星會合的羅塞塔(Rosetta) 。美國國家宇航局也計劃在未來的任務中用 Turbo 碼提升通信的可靠性。第一個使用這種編碼的將是火星軌道勘測器。 除了糾錯,Turbo 碼還可以提高移動裝置的接收性能,提供 CD 質量的數字音頻廣播和衛星鏈路,像新成立的海事衛星全球網公司, 都在計劃把Turbo碼用于他們的系統。?
除了糾錯,turbo 碼,或 turbo原理也對工程師解決通信中的一系列問題有所裨益。英國南安普敦大學電子與計算機科學系教授拉杰斯.漢索認為 turbo 碼激發了許多靈感。一個例子就是消除多徑效應—一種由于信號在不同表面被反射到接收機引起的信號失真。Turbo 碼可能可以為結決移動電話的這一主要困難提供幫助。
最后,Turbo 碼使研究人員認識到還存在其他實現容量極限的編碼方式。實際上最近提出的低密度奇偶校驗碼(LDPC)就是一個新的方向。 這個方法是 60 年代初由麻省理工的羅伯特.蓋拉格發明的,很長時間里被人們遺忘了。在 60、70 年代有很多理由使人們忽視這個發明。它對于當時的技術來說是太復雜了。?
類似于Turbo 碼,LDPC也是通過迭代達到通信容量極限。但這種編碼和 Turbo 碼明顯不同。現在研究人員已經實現了 LDPC,其性能超過了 Turbo 碼,而且更接近香農極限。其實研究人員現在可以提供一系列與 Turbo 碼競爭的編解碼方案,特別是用于下一代移動通信網絡標準,如IEEE802.11和IEEE802.16。 LDPC使用了和 Turbo 碼同樣的基本概念,但這種編碼更容易分析、更容易實現。還有一條也許是最最重要的,其專利已經過期,所以公司可以使用而不必付費。 Turbo 碼結束了一場持續了 40年的探求。這是劃時代的,因為這是革命性的進展。今天如果你不能接近香農極限就會問: “出了什么毛病?”任何人都能接近香農極限,但今天我們談的是你的編碼比別的編碼快多少以及你離香農極限差 0.1 分貝還是 0.001分貝。?
是直覺和質樸幫助伯勞和格萊維歐克斯認識到被編碼理論界忽視了的東西。幾年以前他們寫道“Turbo 碼是經驗、苦干的結果,是從全局考慮構建的編解碼方案,所使用的各種技術元素都是已有的,只是以前從未以這種方式整合而已。 ”?
伯勞指出他們的工作證明并非總是需要知道理論的極限才能達到這些極限。這使人們想起一個法國著名的笑話:傻瓜不知道這件事是沒法做到的,因此他就做到了。?
????
SHANNON: CRACKING THE CHANNEL??
1948 年克勞德.香農發表了他著名的劃時代論文《通信的一個數學理論》 ,當時他還只是貝爾實驗室的一個年輕工程師。 在文章里香農對當時還很模糊的“信息”這個概念下了定義,使其得以量化。按照他的理論,信息的基本單位是比特。 香農證明了對于每一個特定信道, 所能可靠傳輸的數據量有一個最大值,稱之為信道容量,用比特每秒度量。他證明只要按照正確的方式編碼就可以幾乎無誤碼地達到信道容量。 這一結果使當時的工程界大吃一驚。 信道容量成為衡量通信系統的“標桿” 。在很多情形下信道容量可以用以下公式表達:C = W log2 (1 + P/N).???
其中 C 是信道容量,單位是比特/秒;W 是帶寬,以赫茲為單位;P是發射信號功率;N為噪聲功率,均以瓦為單位。從空間探測到手機和光盤播放器這些使我們的生活更加舒適和豐富多彩的產品和系統里都蘊含著以香農理論為基礎的數字技術。?
香農于2001年2月24日逝世,享年84 歲。
總結
以上是生活随笔為你收集整理的Turbo码,接近完美的编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2015 2020 r4烧录卡 区别_2
- 下一篇: html中显示日历的代码,用css+ht