消除干扰,让无线信号更干净,这本是信道编码技术的初衷。然而,最近网络上这场“Polar码投票”闹剧,无中生有地添加杂质,与所议论的技术之本质背道而驰,若Polar码也有血肉之躯,此君情何以堪?香农前辈若在世,也会笑话我们吧?
2016年11月3GPP会议上,华为及其他55家公司(包括联想和摩托罗拉移动)基于广泛的性能评估和分析比较,联合提出Polar码作为控制信道的编码机制并获得通过,联想及其旗下摩托罗拉移动针对该方案的投票都是赞成票。如同Polar码的本质,消除杂质干扰,还一片明亮干净。我们今天就来聊一聊Turbo、LDPC、Polar等信道编码技术那些事,让我们在一段波澜壮阔的信道编码史中去找回技术的初心。
什么是信道编码?
当我们拿起手机刷朋友圈时,数据通过无线信号在手机和基站间传送。由于无线信号是敏感而脆弱的,易受干扰、弱覆盖等影响,发送的数据和接收到的数据有时候会不一致,比如手机发送的1 0 0 1 0,而基站接收到的却是1 1 0 1 0,为了纠错,移动通信系统就引入了信道编码技术。
在上个世纪40年代以前,人们认为只有通过增加发射功率和重传的方式,才能减少这种通信错误。直到1948年香农提出了伟大的香农定理,人们才认识到,可以通过信道编码的方式来实现可靠通信。
所谓信道编码,也叫差错控制编码,就是在发送端对原数据添加冗余信息,这些冗余信息是和原数据相关的,再在接收端根据这种相关性来检测和纠正传输过程产生的差错,从而对抗传输过程的干扰。
但是,香农前辈虽然指出了可以通过差错控制码实现可靠通信的理论参考,但却没有给出具体实现的方法。于是,人们开始研究编码方案,不断逼近香农极限。
信道编码简史
人类在信道编码上的第一次突破发生在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码之争。
5G:LDPC和Polar码闪亮登场
先来看看5G KPI。
如上图,5G与4G至少有三大不同:
①4G面向单一的MBB场景,即手机的移动宽带业务;而5G面向eMBB、eMTC和URLLC三大场景,即5G面向万物互联,要应对AR、VR、车联网、工业4.0、智慧城市等各种应用,较之3/4G只有语音和数据业务,5G繁忙多了。
②4G的峰值速率为1Gbps,而5G的峰值速率高达20Gbps。
③4G的用户面时延为5ms,而5G的用户面时延要低至0.5ms(URLLC)。
经过这么一对比,问题就来了。5G的峰值速率是LTE的20倍,时延是LTE的1/10,这就意味着5G编码技术需在有限的时延内支持更快的处理速度,比如20Gbps就相当于译码器每秒钟要处理几十亿bit数据,即译码器数据吞吐率比4G高得多。
越高的译码器数据吞吐率就意味着硬件实现复杂度越高,处理功耗越大,而译码器是手机基带处理的重要组成部分,占据了近72%的基带处理硬件资源和功耗,因此,要实现5G应用落地,选择高效的信道编码技术非常重要。
3GPP必须对编码技术的选择反复讨论,严谨把关,绝非像一些文章中所透露的那般拉选票似的顺便。
同时,由于5G面向更多应用场景,对编码的灵活性要求更高,需支持更广泛的码块长度和更多的编码率。比如,短码块应用于物联网,长码块应用于高清视频,低编码率应用于基站分布稀疏的农村站点,高编码率应用于密集城区。如果大家都用同样的编码率,这就会造成数据比特浪费,进而浪费频谱资源。
于是乎,两大新的优秀的编码技术进入5G编码标准的法眼:LDPC和Polar码,都是逼近香农极限的信道编码。
LDPC码是由MIT的教授 Robert Gallager在1962年提出,这是最早提出的逼近香农极限的信道编码,不过,受限于当时环境,难以克服计算复杂性,随后被人遗忘。直到1996年才引起通信领域的关注。后来,LDPC码被WiFi标准采纳。
LDPC有啥优势呢?LDPC基于高效的并行译码构架实现,其译码器在硬件实现复杂度和功耗方面均优于Turbo码。
▲Turbo码和LDPC码功耗比较,来源5G Forum
Polar码是由土耳其比尔肯大学教授E. Arikan在2007年提出,2009年开始引起通信领域的关注。尽管Polar提出较晚,但作为已经被理论证明可达到香农极限的编码方案,自发明以来,业内已在译码算法、速率兼容编码方案和硬件实现上做了大量的研发工作。
Polar码有啥优势呢?Polar码兼具较低的编码和译码复杂度,不存在错误平层(error floor)现象,误帧率(FER)比Turbo低得多,Polar码还支持灵活的编码长度和编码速率,各方面证明比Turbo码具备更优的性能。
▲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,没有“一刀切”的处方。
让技术回归技术,少一点杂音,我们的5G才会走得更稳。