基于WCDMA的Turbo Codes交织器的设计与实现

日期: 2024-09-29 05:01:54|浏览: 9|编号: 98726

友情提醒:信息内容由网友发布,请自鉴内容实用性。

基于WCDMA的Turbo Codes交织器的设计与实现

摘要:介绍了Turbo码和交织技术以及交织技术在Turbo码中的重要作用,提出了一种交织器电路的设计思路,并进行了信道性能仿真,并根据该设计思路进行了比较采用HDL语言设计了交织器电路,并给出了仿真结果,验证了设计的正确性。

关键词:WCDMA Turbo码交织器硬件描述语言

法国人C.等人。 Turbo码[1]于1993年首次提出,它是基于过去几十年来的级联码、乘积码、最大后验概率译码和迭代译码理论。一种创新。它在低信噪比下表现出接近极限的性能,超越了其他编码方法。因此,Turbo码自推出以来,受到了广泛关注。引起了各国研究人员的极大兴趣,经过研究发现Turbo码不同于以往的其他编码的重要原因之一就是随机交织器的使用。

Turbo码的基本原理是通过编码器的巧妙构造,将多个子码通过交织器并行或串行(PCC/SCC)级联,然后迭代译码,从而获得优异的纠错性能。在Turbo码的编解码中,无论是编码还是解码,交织单元都是非常重要的部分。图1所示为Turbo编解码原理框图。子译码器1和子译码器2之间的前向路径和反馈路径中分别有交织和解交织单元。交织器是Turbo码构造中极其重要的因素。 Turbo码中交织器的主要作用是减少校验位之间的相关性,从而降低迭代译码过程中的误码率。 C.等人。给出了Turbo码刚提出时设计性能更好的交织器的特点和基本原理[2]: (1)通过增加交织器的长度,可以提高译码性能; (2)交织器应使输入序列尽可能随机,以避免编码产生低重复码字,导致Turbo码自由距离减小。本文将讨论Turbo码中交织器参数的选择、性能和实现。

WCDMA移动通信系统技术标准由国际第三代合作组织(3GPP” title="3GPP">3GPP)支持和维护。3GPP主要由欧洲和日本标准组织和公司组成,WCDMA技术规范充分考虑了保证与第二代GSM移动通信系统的互操作性和与GSM核心网的兼容性,采用GSM MAP作为上层核心网协议,与WCDMA核心网完全兼容,信道编码和映射规范为3G TS。 25.212“并码”(FDD) 图2是WCDMA系统的系统框图。

1 数据交织算法

交织器是实现Turbo编码的重要组成部分。其主要作用是打乱原始数据序列,削弱交织前后数据序列的相关性。这样做的一个突出优点是大大降低了数据突发错误的影响,进一步提高了抗干扰性能。解交织器将交织器加扰后的字节序列重新排列,以恢复原始码字。根据交织方式可分为组交织器和随机交织器两种。实现的基本类型可以分为行列式组交织、螺旋组交织、线性转换随机交织和表读随机交织。行列式块交织将信息符号序列视为N×M矩阵,然后通过行读和列写来实现符号交织。交织后符号的距离特性是均匀分布的;螺旋群交织将码元与元序列视为N×(N+1)矩阵,然后以对角方向读、行写的方式进行交织。交织后,相邻符号之间的距离≥N。分组交织方法简单,对短序列具有良好的交织效果,但交织后符号的去相关不彻底。线性转换随机交织就是试图找到一种可逆的位地址映射关系T,将2M数据序列的每一位从一个缓冲区发送到另一个缓冲区。即,m'=mT。其中m=[aM-1,aM-2,...,a1,a0]为交织前的位地址,T为M×M可逆矩阵,T=[t,Rt,...,RM -2t ,RM-1t],R是循环右移运算符。这种交织器的优点是不需要专门的存储空间来存储2M映射地址[3]。然而,这种交织得到的符号序列的尺寸仍然较小。相关性强。图3和图4分别是行列式组交织和读表随机交织算法的示意图。

2 Turbo码交织器优化设计方案

2.1 设计思维

为了减少可编程逻辑器件FPGA的内部存储器需求,交织器和解交织器采用地址转换的方式进行设计,即对交织器和解交织器的读或写地址进行变换。对于交织器来说,交织矩阵按行顺序写入,交织,按列删除输出。对于解交织器来说,按照删除数组按列顺序写入交织矩阵,解交织,按行删除输出。

2.2 总体结构设计

当交织深度相同时,交织器和解交织器的重排控制参数相同,并且在码块解码的多次循环迭代中保持不变。因此,在外部信号的控制下,在同一模块中实现交织和解交织功能是一种相对节省资源的方法。图5显示了这样的交织/解交织器结构设计。

交织参数计算和交织控制模块在输入交织深度块大小后计算出相应的交织模式。包括交错矩阵行数R、列数C、行间重排模式T(j)。在存储p和v值的ROM表中检索并计算相应的p和v值,从而确定行内重排基准s(i)、行内重排因子q(j)。当交织长度改变且码块同步信号到达时,发生交织参数更新。交织和解交织功能模块从参数寄存器中获取相同的当前比特重排参数,并根据获取的参数计算与输入比特序号对应的输出比特序号。交错或反交错功能模块由交错控制是否工作来控制。输出控制输出与输出位序列号对应的交织位,并将其写入外部DP-RAM。

2.3 交织器性能仿真

为了比较几种交织方法的性能,选择了生成多项式g=(15,17)OCTAL的RSC[4],交织器的大小选择为1024,分别采用组交织、对角线交织、螺旋交织、PN交织、S随机交织等五种不同交织方法对解码性能的影响。仿真结果如图6所示。从几条曲线的比较可以看出,与其他方法相比,S随机交织器的性能是最好的。在10-6左右,它和组交织之间有大约0.5dB的差异。获得。基于上述讨论,作者选择了S随机交织方法,在解码迭代次数为10的解码条件下选择迭代结构,模拟了不同交织尺度N的误码性能。结果如图所示分别为 7 个。给出了交织尺度N为160、320、640、5120时误码率随信噪比变化的曲线。显然,当信噪比较低且SISO模块迭代次数为10时,交织单元的规模越大,其交织的一致性越好,如图7所示。当N= 5120,在信噪比略有增加的情况下,误码率急剧下降,表现出良好的解码性能提升能力。

3 基于WCDMA的交织和解交织器的具体实现

基于上述设计方案和性能仿真结果,利用硬件描述语言可以轻松实现上述算法的交织。本设计基于公司环境,采用HDL语言进行编程,并通过FPGA进行验证。在不同的性能要求下,可以选择参数来满足不同的要求。

由于数据速率已经确定,根据3GPP协议:对于20ms的数据帧,经过CRC-16校验后,帧长为2896。实现框图如图8所示。

图8中的qj表、表和s(i)表可以直接使用片上ROM实现。用于计算 (i*qj)mod(p-1) 的模块由乘法器和除法器构建。其最大优点是当数据速率发生变化时,只需对qj表、表和s(i)表进行相应改变。

为了克服延迟大的缺点,可以将预先计算好的交织模式写入外部存储器,但在寻址交织矩阵时,仍然需要对地址进行处理。这种方法的优点是速度更快,消耗FPGA芯片内部资源更少。交织算法关键方面的HDL描述如下:

//地址计数器(用于串行输入和输出数据):

地址();

//索引表地址生成器(用于生成随机交错地址):

( );

//交织器状态机:

( );

@(状态)

开始

案例(州)

……

结尾

@(时钟)

开始

……

结尾

图9是交织深度为43的交织器的部分工作时序图。该交织器的设计采用片上ROM来存储交织矩阵和删除矩阵。

参考

1 C、A、P.Near limit error-and:Turbo-codes:Turbo-codes.IEEE on,1993; 1064~1070

2 K., C., D.Kozen.A of .Tech.Rep.97-1634.June 1997

3 OY, DJ Jr. Turbo 代码的新内容。 IEEE 传输。 ..2000;46(9):1998~2006

4元,文峰。 Turbo码与[J]. IEEE Trans.1999;47(4):484~487

5 张忠培,金帆.基于相关分析的Turbo码交织器设计[J].成都: 电子科技大学学报, 2000;29(1):25~28

提醒:请联系我时一定说明是从浚耀商务生活网上看到的!