Turbo乘积码优化编译码算法的FPGA实现方法技术

技术编号:4300117 阅读:304 留言:0更新日期:2012-04-11 18:40
一种Turbo乘积码优化编译码算法的FPGA实现方法,包括以下步骤:1)编码,待编码数据传输至随机存取内存中,编码器从随机存取内存中逐行或逐列读入,并采用Turbo乘积码进行行或列编码,所有行或列编码完毕后再逐列或逐行进行编码,将编码后的数据写入输出Ram中,当输出Ram满时,先输出帧头,然后读出输出Ram中的整块数据,数据输出完毕直到下一块数据输出前的时钟空隙,以0或1或其他冗余信息补足;并根据码率需要,对信息位进行缩短;2)组帧,对编码后输出的数据进行组帧并发送;3)译码,对接收到的数据进行解帧和译码。本发明专利技术可以针对不同应用需求进行灵活配置。通过并行使用多个译码单元可以达到更高的数据速率,可用于高速数据通信。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及信息传输中的前向纠错编译码技 术,是TPC编译码算法的一种新的FPGA实现方法。
技术介绍
数据通信中,信道编译码是通信系统中的核心组成部分之一,它致力 于为系统提供更高的传输可靠性。Turbo乘积码(Turbo Product Code,简 称TPC)编译码技术是近十余年来发展的一种差错控制技术,它是将Turbo 码中迭代译码方法引入乘积码(Product Code)译码方案中所构成的新的 编码技术。TPC具有非常好的纠错能力,不仅在加性高斯白噪声信道(AWGN) 中对系统性能有很大幅度的改善,在瑞利衰落信道(Rayleigh Fading Channel)中也能大大改善系统性能。TPC属于乘积码,基本结构通常如图l所示。在乘积码编码中,先将输 入信息ml排列成klXk2的矩阵,接着对第一列的数据做分组编码(nl, kl, dl),然后依次完成k2列的分组编码,构成子码长度为nlXk2。然后将第一次编完的码作为第二次编码的输入数据,对第一行数据进行分组编 码(n2, k2, d2),然后依次完成nl行的编码,成为乘积码,大小为nlXn2。 为适应应用需求,需要信道编码方案提供更高的误码率性能和系统增 益,并且尽可能的提高译码的速度,以支持数十Mbps到上百Mbps的信息处理速率,这对TPC的实现尤其是译码模块的实现增加了很高的难度。现 有的TPC解决方案,信息处理速率大多在10Mbps到20Mbps (有个别解决方 案可达上百Mbps)。目前围绕TPC编译码算法的研究,主要集中在如何降低 译码算法的复杂度,提高信息处理速率,同时保证比较高的译码性能。另外,现有的TPC解决方案大多是各类专用IC以及各种高速信号通信 仪器,使用成本较高,应用不便,灵活性差。而IP核(IP core)类则配 置比较繁琐,成本也比较高,或者算法过于简化,性能不高,而且由于没 有核心代码,不能根据开发需要进行自主修改。
技术实现思路
针对上述技术问题,本专利技术提供一种Turbo乘积码优化编译码算法的 F GA实现方法,以降低软判决译码的复杂度,降低译码器内部的占空比,提高可以支持的数据率。一种,包括以下步骤-1) 编码,待编码数据传输至随机存取内存中,编码器从随机存取内存 中逐行或逐列读入,并采用Turbo乘积码进行行或列编码,所有行或列编 码完毕后再逐列或逐行进行编码,将编码后的数据写入输出Ram中,当输 出Ram满时,先输出帧头,然后读出输出Ram中的整块数据,数据输出完 毕直到下一块数据输出前的时钟空隙,以0或1或其他冗余信息补足;并 根据码率需要,对信息位进行縮短;2) 组帧,对编码后输出的数据进行组帧并发送;3) 译码,对接收到的数据进行解帧和译码。作为本专利技术的一种优选方式,所述步骤1)中,随机存取内存为Rami和Ram2,具体步骤如下待编码数据传输开始后,1个信息块长度的数据写入Rami后,开始写 入Ram2并且同时编码器开始工作,编码器从Rami中逐行或列读入进行行 编码,写入输出Ram;所有行或列编码完毕后再逐列或行进行编码,写入输 出Ram,在Raml读完后,等1个信息块长度的数据写入Ram2后,在Ram2 中重复Rami同样的操作,Rami和Ram2反复切换,当输出Ram满时,先输 出帧头,然后读出Ram中的整块数据。作为本专利技术的另一优选方式,所述步骤l)中,编码端实现的码型包括 扩展汉明码(8,4), (16,11), (32,26), (64,57), (128, 120)和扩展BCH码 (16,6), (32,21), (64,51), (128, 113)共9种基本码型。作为本专利技术的再一优选方式,对信息位进行縮短的方式为按行縮短、 按列縮短或按行列信息位縮短,缩短的码型为以下码型中的一个(32,26)X(30,24)或(30,24)X(32,26);(32,21)X(31,20)或(31,20)X(32,26);(30,24)X(32,21)或(32,21)X(30,24);(30,24)X(32,21)或(32,21)X(30,24);(64,57)X(63,56)或(63,56)X(64,57);(64,51)X(61,48)或(61,48)X(64,51);(61,48)X(63,56)或(63,56)X(61,48);(61,48)X(64,57)或(64,57)X(61,48);(64,51)X(63,56)或(63,56)X(64,51);(128, 120) x (127, 112)或(127, 112) x (128, 120); (128, 113) x (127, 112)或(127, 112) x (128, 113)。作为本专利技术的再一优选方式,所述步骤2)组帧中,使用32位或64 位的CAZAC序列作为帧头。作为本专利技术的再一优选方式,对于帧之间的空白地带,循环填充固定 序列,序列构成为0、 1均匀分布的3至10位的较短序列。作为本专利技术的再一优选方式,所述固定序列的长度为6位。作为本专利技术的再一优选方式,所述步骤3)译码包括以下步骤-31) 检测帧头,检测到帧头之后开始读入一块长度的数据;32) 对读入的数据进行译码,译码采用基于伴随式的SISO译码算法。 作为本专利技术的再一优选方式,所述步骤32具体为,先计算伴随式,如果伴随式为0则认为传输没有错误,直接输出结果,否则按照图4进行迭 代译码,迭代公式为W(m+l):W(mh"(m) +R(m),式中W(m)是上次迭代的输 出信息,"(m), R(m)是本次迭代的输入信息,W(m+1)是本次迭代的输出, 迭代次数为4次到6次。作为本专利技术的再一优选方式,所述迭代次数为5次,接收到的输入软 信息为6位,所述译码按照chase算法进行译码并计算输出信息,在Chase 算法中对于128码型选择最不可靠的6个位置,对于64码型和32码型选 择最不可靠的4个位置。本专利技术的有益效果为达到了较高的编码性能,并且可以针对不同应 用需求进行灵活配置。而且由于是软核,通过并行使用多个译码单元可以 达到更高的数据速率,可用于高速数据通信。对于低速低资源应用环境, 根据实际要求可以配置不同的软件版本,目前已经划分为9个不同的基本 版本,资源占用从3千门到2.5万门不等,对应最大数据速率从低到高, 可以针对不同的系统要求进行配置。附图说明图1为TPC属于乘积码的基本结构;图2为本专利技术Turbo乘积码优化编译码算法的FPGA发送、接收方法实 施例流程图3为本专利技术实施例中输出Ram的信息位行縮短方式; 图4为本专利技术实施例中软判决迭代译码实现结构示意图; 图5为本专利技术实施例中(64, 57) (64, 57) TPC编码性能曲线。具体实施例方式如图2所示, 一种,包 括以下步骤 1)编码采用Raml、 Rami两块随机存取内存(Random Access Memory, RAM) 和输出Ram,待编码数据传输开始后,数据写入Raml。 Rami写满时(1个 信息块的长度),开始写入Ram2并且同时编码器开始工作,编码器从Rami 中逐行读入进行行编码,写入输出Ram,即写入图3中的输入矩阵(i叩ut army)和行奇本文档来自技高网
...

【技术保护点】
一种Turbo乘积码优化编译码算法的FPGA实现方法,其特征在于包括以下步骤: 1)编码,待编码数据传输至随机存取内存中,编码器从随机存取内存中逐行或逐列读入,并采用Turbo乘积码进行行或列编码,所有行或列编码完毕后再逐列或逐行进行 编码,将编码后的数据写入输出Ram中,当输出Ram满时,先输出帧头,然后读出输出Ram中的整块数据,数据输出完毕直到下一块数据输出前的时钟空隙,以0或1或其他冗余信息补足;并根据码率需要,对信息位进行缩短; 2)组帧,对编码后输出的数 据进行组帧并发送; 3)译码,对接收到的数据进行解帧和译码。

【技术特征摘要】

【专利技术属性】
技术研发人员:丁勇飞李裕牛韬沈凯虹石吉利徐丁海
申请(专利权)人:中国航空无线电电子研究所
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利