浅议--为什么Turbo码比LDPC码更多的被实际系统采用呢
(2011-10-28 00:13:44)| 分类: 学术与工程 |
声明:并非转载,所以只能代表个人想法,未必完全正确,进攻参考。
Turbo codes和LDPC codes是最些年研究最火的信道编码。由于他们的超强的纠错性能(接近Shannon极限)而广泛的研究。关于这两种编码的具体细节考察,可以参考wiki上的页面。
然而,参看近些年的实际应用的系统,大多都是采用Turbo编码,而少有涉及LDPC(low-density parity-check )编码。这是为什么呢?
考察他们的提出时间,Turbo码在1993年的ICC会议上被初次提出,在1996年的IEEE trans. Comm.上进而进行了详细的阐述;但是LDPC早在1962年就由Gallager提出。LDPC码提出的原早于Turbo码,但为什么实际应用中却少有应用呢?
原因1,Turbo码,就其本质,还是属于卷积码(convolutional codes),只不过是特殊了些,其编码由两个(或多个)带反馈的卷积码器经过交织实现并行级联而成;译码器,则一般采用逐位最大后验概率译码器通过反复迭代循环来译码。Turbo码的出现以及迭代译码的思想引入使得信道编解码领域进入了一个新的阶段。但是,究其本质而言,传统的卷积码的概念,作为error-correcting code早就存在了,而且一直被应用着(尽管Turbo以前的那些卷积码性能不是很理想)。所以,Turbo码的实际使用,使得以前的那些工作和已有系统能够更好的兼容,特别是后来对于Turbo码的译码器进行了大量的低复杂度简化(代价当然是性能的次优化或者使用资源的增加),Turbo码被各大公司采用,并在商用系统中得以支持。
原因2,卷积码的发展,一直以来没有太大创新,主要是由于很难提出完备的理论基础,使得人们不能给出其性能的严密的数学解释。大概由于这个原因,人们才逐渐开始考察线性的编码方式,例如1996年Mackay等人才再次发掘到Gallager早在60年代就提出的一种具有稀疏校验矩阵的分组纠错码,即LDPC码,才又被人们重新认识。LDPC码自身的矩阵结构也引入了交织特性,而且其也采用迭代译码的方法,使其性能比以往传统的线性分组码有很大程度的提高。由于LDPC基本原理是基于最原始的线性分组码,因此它有强大的数学工具作为其理论依据,因为LDPC在理论上的完备性与数学上的优美表达,明显优于基于卷积码的Turbo码,因此LDPC码的适用范围会更广(由于在理论上更容易推广到其他领域)。但是,它的这些好处被广泛认知得晚了些。
原因3,尽管LDPC码在理论上很完美,但是理论上的完备性并不能使其直接应用于实际。关于LDPC译码适用于实现的研究,是一直以来的研究方向,但是相对Turbo码的译码器的研究还是起步较晚。总的来说,使用现有可实现的系统,对于一般短码字,相对于Turbo码方案,LDPC码的解码迭代次数还是过高,这样在实际应用中的竞争力便大打折扣。当然,对于可实现的译码器性能上,两者难有伯仲之分。
原因4,其实LDPC码在很多方面是优于Turbo码的。比如,一般而言,对于一定的码长,Turbo码的解码迭代次数是固定的,然后LDPC码的解码迭代次数是有可能调节的(i.e., stop when a legal code word is found),这点暗示着LDPC码有可能需要较少的迭代(特别在信噪比较高的时候),因此(概率上讲)解码可能更快。LDPC码这样的潜在优势,有可能对于特别长的码字具有较明显的优势。但是,这个也带来一个问题,那就是在数据速率(bit rate)自适应方面。由于迭代的次数不是固定,因为解码器decoder的输出很可能出现不同的速率,为了适用于大多数系统的固定速率要求,需要使用自适应的打孔或者buffer缓冲系统,这可能会造成解码性能的恶化或者系统额外的消耗。
原因5,LDPC码可能还有一些潜在的优势,比如,LDPC译码器可以更好的支持并行实现,有利于并行化处理以减少处理延迟(processing latency);有些研究证明,解码复杂度在信噪比条件下,LDPC译码会低于Turbo。。。。等等。。。但是在实际应用系统中,特别是商用系统中,没有得到很好的验证。
总的来说,LDPC码在理论上有比较大的优势,在理想性能上也不逊于Turbo码,也有不少人证明在硬件实现(sub-optimum)上也有可比性;但是在已有现实应用中,考虑到已有系统的支持程度、在现实使用中的成熟程度等原因,Turbo码明显更具有优势(至少是现阶段)。

加载中…