Turbo码是一种信道编码方式,也被称为并行级联卷积码(PCCC),由两个递归系统卷积码(RSC)并行级联而成。它通过结合交织器和卷积码,并采用软输入输出(SISO)迭代译码,性能十分接近Shannon极限。Turbo码在多个通信标准中得到应用,比如WCDMA、CDMA2000、TD-SCDMA,以及被CCSDS选为深空通信信道编码的标准。
在研究Turbo码的过程中,通常先使用Matlab等仿真工具来验证算法的有效性,然后再将得到的算法转换为硬件实现,如用FPGA来实现。FPGA因为其可编程特性,适合实现复杂的算法,尤其是在处理速度和灵活性方面有很高的要求。
文章中针对Turbo码的译码算法进行了深入研究,并对算法进行了改进。在硬件实现上,使用模块化设计来平衡资源占用和处理时延,并且降低运算复杂度。FPGA实现的一个重点是顶层信号描述,需要定义清晰的接口和端口位宽,以确保数据能够正确地在模块间传递。
FPGA上的Turbo码编译码器实现,首先要进行编码器的设计与实现。编码器顶层图设计包含一个异步置位信号、时钟信号、输入使能信号、数据输入端口、输出使能信号和编码结果输出端口。端口定义需要明确,例如表1所示的Turbo码编码器端口定义,其中包括了每一个端口的位宽、接口名、方向和描述。
Turbo码的编码原理中,涉及到递归系统卷积码(RSC)的并行级联。而译码原理中,Turbo译码器由两个SISO译码器、交织器和判决器构成,使用迭代译码的方式,通常遵循LOG-MAP算法来计算信息比特的对数似然比信息。通过反复迭代运算并利用外信息反馈作为先验信息,最终硬判决输出译码结果。
在FPGA上实现Turbo码的译码器时,需要根据硬件特性对算法进行调整。通常,译码器会使用某种形式的硬件描述语言(如VHDL或Verilog)来编码。在设计译码器时,硬件资源的使用、时序问题、以及实现的可扩展性都需要考虑。因为FPGA资源有限,设计者需要在资源使用和算法性能之间找到一个平衡点,以达到既省资源又高效的目的。
本文指出,通过在FPGA平台上验证,可以得到理想的结果。这表明,尽管硬件实现会有额外的限制和挑战,但是利用FPGA来实现Turbo码译码器是可行的,并且可以获得不错的效果。此外,文中提及了几篇参考文献,它们分别提供了关于数字通信、Turbo码原理与应用、以及基于FPGA实现Turbo码译码算法方面的研究资料,这些资料可以为相关领域的研究人员提供更多的参考和启发。