论文部分内容阅读
LDPC(Low Density Parity Check)码是一类用非常稀疏的校验矩阵或二分图定义的线性分组纠错码,最初由Gallager发现,故亦称Gallager码。1990s末被重新认知为一类具有接近香农限特性的好码。这种码采用BP叠代译码,比如和乘积算法,可以实现非常好的纠错性能。LDPC码被重新发现后,它的设计、构造、译码、快速编码、性能分析以及在数字通信和存储系统领域中的应用成为研究的焦点。LDPC码属于线性分组码,线性分组码的通用编码方法是由信息序列根据码的生成矩阵来求相应的码字序列,尽管LDPC码的校验矩阵是非常稀疏的,但它的生成矩阵却并不稀疏,这使得其编码复杂度往往与其码长的平方成正比。LDPC码在应用时选定的码长很长而且编码实现时所需的用于存储的寄存器数量非常多,这样,其编码复杂度特别大,成为应用的一个障碍。本文主要针对LDPC码的编码问题进行研究。本文介绍了LDPC码的基本原理,包括LDPC码的基本概念、构造方法、编码算法以及译码算法。在编码算法里详细讨论了传统的编码算法以及使用特殊形式奇偶校验矩阵的快速编码算法。在译码算法里介绍了MP算法集的基本原理和译码性能最好的和乘积译码算法。以传统编码算法为基础,采用了可以降低编码复杂度的准循环LDPC码进行了编码器电路的设计与实现。采用反馈移位寄存器与逻辑门设计了三个典型的编码器电路:基于SRAA电路的串行准循环LDPC码编码器;基于SRAA电路的并行准循环LDPC码编码器;二阶编码电路。对于串行编码来说,其编码复杂度与码的校验位的数量成线性关系,对于高速并行编码来说,编码复杂度与码长成线性关系。采用Verilog HDL硬件描述语言在Quartus II环境下完成了三个编码电路的基于FPGA的硬件仿真,在编码速度与复杂度方面对各编码器进行了分析与比较,并采用Matlab仿真软件验证了LDPC码编码器的正确性。