|
浅谈Turbo码原理
许秋雨,2021.7.10
Turbo码是继70年代80年代的TCM(网格编码调制)后,90年代纠错码的又一革命性突破。它的主要思想是迭代解码。下面我试着简单地讲一下它的原理。
假如有两个卷积码串联着。在解码时,如果第一个卷积码解码能纠10个错,那这纠过错的信号再pass到第二个卷积码解码,如又能纠10个错。这样听上去,两次解码后就纠了20个错了。如这样迭代下去,不就把全部错纠了么?这显然是不对的,哪问题是什么?
这就涉及到卷积码的性质了。第一个卷积码解码是可能纠了10个错,但这只是在信号中的错误位置是随机的条件下的。遗憾的是,经过卷积码解码后的错误位置可能不是随机的了。这时再经过第二个卷积码解码时,就不一定再能纠错了,说不定还会增加错误。当然,如果能保证经过第一个卷积码解码纠错后的错误位置还是随机的,那么第二个卷积码的解码也能纠10个错,这样迭代一次就能纠20个错了。
为了保证第一个卷积码解码后的错误位置还是随机的,人们就在两个卷积码间加了一个交织器,人为地把经过第一个卷积码解码器后的信号错误位置打散,即随机化。因为解码中需要交织器,编码中就得加交织器的逆变换,它还是一个交织器,这正是为啥要在turbo码中加交织器的原因。
显然能有解码好处的迭代次数与交织器的长度有关,越长越好,这也正是turbo码都比较长的原因,也是为啥要用Recursive卷积码的原因。
基本原理其实挺简单,与卷积码的特别设计关系不是特别大,迭代解码中的message passing及交织器是最重要的过程,涉及到怎样从第二个卷积码解码器再回到第一个卷积码解码器的迭代。
如果要两个卷积码本身的纠错能力强一些,那么它们的解码就会复杂一些,码也很可能会长一些。而迭代解码中多迭代几次也能多纠错,当然也要求码需长一些。
上面只是我个人的一点浅见,如有什么不妥之处,敬请批评指正。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-25 15:55
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社