人类在信道编码上的第一次突破发生在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
一开始,大家都是持怀疑态度的,甚至懒得去理睬这两个小角色,这么多数学家都没能突破,你两个小小的机电工程师也敢宣称接近香农极限?忽悠吧?