简介:
信道编码是通信系统中非常重要的一环,它使我们构建的通信系统在一定条件下拥有检错和纠错的能力。而随着历史的演进,信道编码技术在不断地丰富,诞生了许多值得了解学习的编码技术。
本篇文章将梳理信道编码的整体框架,旨在让读者对信道编码有一个系统性的认识。而每项技术的细节将在专栏的其他文章中展现。
目录
3.3 CRC(Cyclic Redundancy Check)循环冗余码校验的提出
一、信道编码与信源编码
信源编码是高度关系到信源的,不同的信源可能对应完全不同的信源编码方案。信源编码的首要目的如 移动通信原理与系统 一书中所表述的一样: “通常,对于一个数字通信系统而言,信源编码位于从信源到信宿的整个传输链路中的第一个环节,其首要目的就是通过压缩信源产生的冗余信息,降低传递这些不必要信息的开销,从而提高整个传输链路的有效性。” 打个比方,你想要的从你的电脑上发送 Game of Thrones 给你的另一台设备,假设一个字母一个字节(8bits),想想你得传多少个bits。但是我们知道,小说里字母出现的概率是很不一样的,通常来说e出现的次数最多,z出现次数最少,而出现次数最多的e理论上最好用更少的比特数去表示,这样就有可能减少传输的比特数。这就是一个简单的信源编码思想。
信道编码的首要目的是通过设计信号自身具有的数据结构,是信息传输的接收端能够检测或纠正数据在传输中发生的部分错误。打个比方,你要叫你的室友帮你带泡面,你说:“我要一个合味道,只要一个。”,而这个“只要一个”就是一个冗余信息,所以假如刚开始你的室友没听清,以为你要两百个合味道,这时候后面的冗余信息也会提醒他你只要一个。(而添加冗余信息是信道编码的重要手段)
二、信道编码的一些符号表示
2.1 码字和码元
由于我们的数字通信系统一般是二元(也即01),所以一下都假定符号为二元的。假设你现在通过采样量化以及信源编码(可看专栏对应的文章)得到一长串比特流,并想对其进行信道编码。一种方法是将其k个k个比特的分组,然后分别对分得的k个比特添加冗余信息。比如k长的一串比特加入r个冗余比特,组成了n长的比特流。这n长的码就叫码字(codeword),而n长的码字中有k长的信息比特流,r长的冗余比特流。而这n长码字中的每一位比特就是一个码元。这种方式就是分组码。
2.2 符号表示
紧接着上面所说的,我们将这样的码写成C[n,k],注意,这里的C是一个族,通常有个,因为冗余比特是根据信息比特通过某种数学约束关系计算出来的,所以是
而不是
个。这就是分组码的符号表示。
2.3 码率
分组码的码率就是
三、信道编码的历史
3.1 香农信道编码定理的提出
在很久远以前,工程师大抵会通过加大发送端天线的功率去抵抗噪声干扰,直到香农提出他的香农第二定理(有噪声信道编码定理):对于一个符号信道容量为C(bit/symbol)的q元传输信道(q元是指信源符号是几元的,我们数字通信通常是二元的),存在一种编码效率为的信道编码技术(当符号是二元时,
),使得按最大似然译码准则的译码码字差错概率任意小。反之,不满足条件的话,则不存在任何编码技术使码字差错概率任意小。
香农信道编码定理翻译成人话就是:当码率小于信道容量的时候,通过信道编码能使得接收端进行任意小差错的译码。而码率大于信道容量的时候,则不行。
其中AWGN信道容量是:, S是接收端接收到的信号功率,N是接收端的噪声功率,B是信号带宽。
从此工程师们意识到,可以通过信道编码的手段检测或纠正接收端的接收错误。
3.2 汉明码(Hanmming Code)的提出
1940年,汉明在著名的贝尔实验室(Bell Labs)工作,当时由于读卡机时常发生错误导致汉明非常沮丧,因为发生错误就意味着重复一些工作。为了解决这个问题,汉明开始研究编码技术,然后在1950年发表汉明码。这大概是第一个信道编码技术,但是它的码率较低,如(7,4)的Hamming Code,每四个信息比特就要三个冗余比特。随后,Golay为解决Hamming Code的缺点提出了Golay码。紧接其后又有RM码等。
3.3 CRC(Cyclic Redundancy Check)循环冗余码校验的提出
随着历史演进,CRC校验码出现,其凭借着简单实现的系统和检验的高效性快捷性,创下分组码的黄金时期。CRC校验码可以高比例的纠正信息传输过程中的错误,可以在极短的时间内完成数据校验码的计算,并迅速完成纠错过程,通过数据包自动重发的方式使得计算机的通信速度大幅提高。因此,CRC验码大量用于工业界。
3.4 卷积码的提出
由于以上的信道编码方式都是以分组码的方式,所以接收端都要等一组一组的码到缓冲器里时才开始译码,并不能做到更快的速度。但是Elias于1955提出的卷积码解决了这一问题,卷积码能够克服分组码的缺点,在复杂性较为低的卷积编码中,每两个接收比特就能进行一次译码,不要求大的缓存器。这为无线通信带来了极大的发展。
对应卷积码,1967年,Viterbi提出了Viterbi译码,使得卷积码的译码过程更加高效。
3.5 Turbo码的提出
卷积码提出后,虽然无线通信高速发展,但是当时大部分的卷积码技术都没法使传输一个信息比特所需的最小(功率)信噪比达到香农限。直到1993年,两个名气不是很高的法国工程师提出了逼近香农限的Turbo码。有意思的是,他们并不是依据数学理论推导得出的Turbo码(似乎至今没有合理的数学解释),而是通过工程实践实验出这个Turbo码的系统。有了Turbo码之后,移动通信进一步高速发展,直到4G都采用这Turbo码的编码系统。
3.6 5G下的信道编码展望
由于Turbo码采用迭代解码,时延会稍微比较大,对于超高速率、超低时延的5G需求,Turbo码又遇到瓶颈。这时候就到了LDPC码和Polar码施展拳脚的时候了!(LDPC码的提出者Robert Gallager有MIT的公开网课,b站上也有转载哦)
四、信道编码技术汇总
我将在专栏分享上述历史中比较有学习价值的信道编码技术的细节。希望上面的叙述已经让读者拥有一个较为系统的信道编码技术框架。我推荐的阅读顺序是: