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码,接近完美的编码)