论文部分内容阅读
摘 要 随着无线通信技术的快速发展,LTE等长期演进项目成了近年来的热点,本文分析了 LTE系统中Turbo码的译码,并针对定点运算的特点进行了改进。通过大量的仿真确定了定点LOG-MAP译码算法的关键参数。包括量化比特数和AWGN中GAIN值,外在(extrinsic)信息因子以及定点化、归一化、溢出处理等操作,这些处理使得该译码算法在译码性能上接近浮点LOG-MAP译码算法,对于Turbo译码在硬件上的实现具有一定的参考价值。
关键词 LTE GAIN 外在(extrinsic)信息因子
1 引言
Turbo码因为具有接近Shannon限的性能,从提出后便得到广泛的关注,由于优异的纠错编码性能对移动通信系统具有非常的大吸引力,所以在第三代通信系统中都将Turbo码作为信道编码的方案,特别是在LTE系统中的编码方案中引入了QPP,使得turbo码编码性能获得极大的提高。本文的研究对象是LTE系统中的Turbo码,通过仿真确定译码参数,从多个角度提高译码的整体性能,整理出一套可行的译码方案。
2 Turbo码译码算法
用于Turbo码译码的具体算法有:MAP(Maximum A Posterori)、Max-Log-MAP、Log-MAP和SOVA(Soft Output Viterbi Algorithm)算法。这里简要概述MAP算法及其改进算法。
2.1 MAP算法
通过对Turbo码译码算法原理的比较研究,我们知道MAP算法非常复杂,运算量极大,运算中不仅有大量的乘法和加法,还有在数字电路中较难实现的指数和对数运算,这极大的影响了MAP算法的实用。Koch和Baier及Erfanian等人提出Max-Log-MAP算法,大大地简化了MAP算法的复杂性,由于计算中做了一定地近似,这种算法不是最优的。Robertson等人对Max-Log-MAP算法做了一定地修正,被称作Log-MAP算法。所以在介绍Log-MAP算法前先简要介绍一下MAP算法。
3 仿真及分析
基于性能和译码速率的考虑,本文采用Log-Map算法(修正函数采用查表方法)作为Turbo码的译码算法,原理已经在第二节给出,本文在Matlab环境下对Turbo码译码算法的一些参数进行了仿真分析,并针对不同情况确定了这些参数的优化值,仿真流图如图1 所示。
本文主要对影响Turbo码译码性能的一些关键参数进行了仿真和研究(如AWGN中GAIN值,定点化、归一化和外在(extrinsic)信息因子。下面给出了具有参考价值的仿真曲线和一些相关的分析与结论。
3.1 定点化过程中GAIN值对LOG-MAP算法的影响
为了便于硬件实现后看出硬件实现后的译码性能,对于每个接受到的输入比特xx(i),进行了定点化的处理:处理方式如下:
Ixx(i)=fix(xx(i)*GAIN) (1)
fix表示取整。
其中GAIN的取值是随着量化比特数而变化的,其计算方法如下:
由于GAIN值的选取跟经过信道后的接收信道的幅度和量化比特数有关,因此对于不同的量化比特数和接收信号幅度,GAIN值也要进行相应的调整。
根据仿真的结果来看,当接收信号幅[-8,+8]之间的时候,采用6比特量化时,其区间为[-32,32],因此有:
GAIN*[-8,8]=[-32,32]/2 (2)
得出GAIN=2。
同样的当采用8比特量化时,其区间为[-128,128],同样有:
GAIN*[-8,8]=[-128,128]/2 (3)
得出GAIN=8。由此可以得出计算GAIN值的一般公式:假设信号幅度为[-2^a,2^a],量化比特数位n,则有:
GAIN*[-2^a,2^a]=[-2^n, 2^n]/2 (4)
即可计算出GAIN的值。
对于量化比特数QUANTIZ_BITS,取值原则上可以为任意整数,在实际过程中一般取6或8,对与不同的量化比特数,取值的范围也不同,如当为量化比特数位6时,取值范围[-32,31],其中
qmax=(1<<(QUANTIZ_BITS-1))-1 (5)
仿真程序中取为[-qmax,qmax]是为了保证正负数值的对称。
为了提高精度,在递推和的状态似然值时,要不断的根据上一时刻求出来的两个状态似然值和的数据是否溢出或全为负,对所有数据进行偏移(加上Shift)。这里的偏移量Shift加在当前时刻的值中。若变量定点化位数QUANTIZ_BITS等于6,则当全为正时,则依据偏移量:
Shift=-(1<<(QUANTIZ_BITS-3))*3 (6)
可得偏移量Shift=-24。
若全为负则偏移量:
Shift=(1<<(QUANTIZ_BITS-2)) (7)
可得偏移量Shift=16。
对于不同量化比特数相应的归一化取值如表1所示:
为了防止在译码过程中值的溢出,特在每次数据处理后加入限幅函数,如果变量值大于qmax,则取为qmax,如果小于 -qmax则取为 -qmax,以此防止中间值溢出。在定点化仿真过程中中采用了加入CRC校验的仿真方法,即每经过译码器译码一次就将译码结果进行CRC校验,一旦CRC校验成功且未达到迭代次数的最大值,则终止迭代并输出译码结果。
仿真条件:在AWGNX信道条件下,采用定点算法,量化比特数位6,迭代次数为7,码长为6144;采用LOG-MAP算法;其中蓝色为GAIN=2时的曲线,红色曲线为GAIN=1.44时的曲线,仿真结果见图2所示。 仿真条件:在AWGNX信道条件下,采用定点算法,量化比特数位8,迭代次数为7,码长为6144;采用LOG-MAP算法;其中蓝色为GAIN=8时的曲线,红色曲线为GAIN=1.44(先前的参数)设置时的曲线,仿真结果见图3所示。
从图2仿真结果可以看出,当量化比特数为 6时,两者性能基本相同,新的GAIN值略好,从图3可以看出当量化比特数为8比特时,新的GAIN值比原先的设置要好约0.1dB。总的来说,新的参数设置方法性能要好于原先的参数设置。
3.2 外在(extrinsic)信息因子对译码性能影响
在一般的LOG-MAP算法中,对外在信息是不做任何处理的,外在信息经过交织或去交织后作为下一个译码器的先验信息。Jorg Vogt 和 Adolf Finger 提出了一个显著提高译码性能的方法,即用一个系数(scale)乘以外在信息。 把处理后的外在信息作为下一个译码器的先验信息。
仿真条件:在AWGNX信道条件下,采用定点算法,量化比特数为6,GAIN=2;最大迭代次数为7,码长为6144;采用LOG-MAP算法,这里比较了scale=[0.65 0.7 0.75 0.8 0.85 0.9 0.95 原始方案(1)],仿真曲线如图4所示:
从图4的仿真结果可以看出,所选取的scale值对于性能影响差异相差不到0.1db,这里把scale=0.7,0.85,原始方案(没有乘以外在信息因子)三条曲线(见图5)单独拿出来对比我们可以清晰的看到,当scale值等译0.85时误码率最低, 根据仿真结果,推荐选取scale=0.85。
3.3 定点与浮点结果比较
仿真条件:根据3.1,3.2节参数的调整后,令GAIN=2, scale=0.85,在最大迭代次数为7,码长为6144;LOG-MAP算法的情况下,此时定点译码与浮点译码仿真曲线的对比如图6所示:
由仿真结果可以看出,当量化比特数为6比特时,定点译码与浮点译码在译码的性能差异较大,但是从图中可以看出当量化比特数为8,GAIN=2时,8比特定点与浮点的性能差异不超过0.1dB。
4 结论
本文对Turbo码的译码算法进行了简要的分析,并针对定点数字信号处理的特点对它的实现结构进行了优化。仿真结果表明,采用8比特量化输入,GAIN等于8,外在信息因子scale等于0.85,迭代次数为7的定点译码算法,其性能非常接近浮点LOG-MAP算法。对于Turbo译码在硬件上的实现非常具有参考价值。
参 考 文 献
[1] Berrou C, Glavieux A, Thitimajshima P. Near Shannon Limit Error-correcting Coding and Decoding: Turbo-codes[A]. Proc IEEE International Conference on Communication (ICC)[C]. Geneva, Switzerland: IEEE. 1993. 1064-1070.
[2] Berrou C, Glavieux A. Reflections on the Prize Paper: Near Optimum Error-correcting Coding and Decoding: Turbo Codes[J]. IEEEInformation Theory Society Newsletter, 1998, 48(2): 24-31.
[3] Bahl L R, Cocke J, Jelinek F, et al. Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate[J]. IEEE Trans on Inform Theory, 1974, 20(2): 248-287.
[4] Robertson P, Villebrun E, HoehorP. A Comparison of Optimal and Sub-optimal MAP Decoding Algorithms Operating in the LOG Domain [A]. ICC 95[C]. Seattle: ICC, 1995. 1009-1013.
[5] 3GPP长期演进(LTE)技术原理与系统设计 沈嘉.索士强.全海洋等 人民邮电出版社
关键词 LTE GAIN 外在(extrinsic)信息因子
1 引言
Turbo码因为具有接近Shannon限的性能,从提出后便得到广泛的关注,由于优异的纠错编码性能对移动通信系统具有非常的大吸引力,所以在第三代通信系统中都将Turbo码作为信道编码的方案,特别是在LTE系统中的编码方案中引入了QPP,使得turbo码编码性能获得极大的提高。本文的研究对象是LTE系统中的Turbo码,通过仿真确定译码参数,从多个角度提高译码的整体性能,整理出一套可行的译码方案。
2 Turbo码译码算法
用于Turbo码译码的具体算法有:MAP(Maximum A Posterori)、Max-Log-MAP、Log-MAP和SOVA(Soft Output Viterbi Algorithm)算法。这里简要概述MAP算法及其改进算法。
2.1 MAP算法
通过对Turbo码译码算法原理的比较研究,我们知道MAP算法非常复杂,运算量极大,运算中不仅有大量的乘法和加法,还有在数字电路中较难实现的指数和对数运算,这极大的影响了MAP算法的实用。Koch和Baier及Erfanian等人提出Max-Log-MAP算法,大大地简化了MAP算法的复杂性,由于计算中做了一定地近似,这种算法不是最优的。Robertson等人对Max-Log-MAP算法做了一定地修正,被称作Log-MAP算法。所以在介绍Log-MAP算法前先简要介绍一下MAP算法。
3 仿真及分析
基于性能和译码速率的考虑,本文采用Log-Map算法(修正函数采用查表方法)作为Turbo码的译码算法,原理已经在第二节给出,本文在Matlab环境下对Turbo码译码算法的一些参数进行了仿真分析,并针对不同情况确定了这些参数的优化值,仿真流图如图1 所示。
本文主要对影响Turbo码译码性能的一些关键参数进行了仿真和研究(如AWGN中GAIN值,定点化、归一化和外在(extrinsic)信息因子。下面给出了具有参考价值的仿真曲线和一些相关的分析与结论。
3.1 定点化过程中GAIN值对LOG-MAP算法的影响
为了便于硬件实现后看出硬件实现后的译码性能,对于每个接受到的输入比特xx(i),进行了定点化的处理:处理方式如下:
Ixx(i)=fix(xx(i)*GAIN) (1)
fix表示取整。
其中GAIN的取值是随着量化比特数而变化的,其计算方法如下:
由于GAIN值的选取跟经过信道后的接收信道的幅度和量化比特数有关,因此对于不同的量化比特数和接收信号幅度,GAIN值也要进行相应的调整。
根据仿真的结果来看,当接收信号幅[-8,+8]之间的时候,采用6比特量化时,其区间为[-32,32],因此有:
GAIN*[-8,8]=[-32,32]/2 (2)
得出GAIN=2。
同样的当采用8比特量化时,其区间为[-128,128],同样有:
GAIN*[-8,8]=[-128,128]/2 (3)
得出GAIN=8。由此可以得出计算GAIN值的一般公式:假设信号幅度为[-2^a,2^a],量化比特数位n,则有:
GAIN*[-2^a,2^a]=[-2^n, 2^n]/2 (4)
即可计算出GAIN的值。
对于量化比特数QUANTIZ_BITS,取值原则上可以为任意整数,在实际过程中一般取6或8,对与不同的量化比特数,取值的范围也不同,如当为量化比特数位6时,取值范围[-32,31],其中
qmax=(1<<(QUANTIZ_BITS-1))-1 (5)
仿真程序中取为[-qmax,qmax]是为了保证正负数值的对称。
为了提高精度,在递推和的状态似然值时,要不断的根据上一时刻求出来的两个状态似然值和的数据是否溢出或全为负,对所有数据进行偏移(加上Shift)。这里的偏移量Shift加在当前时刻的值中。若变量定点化位数QUANTIZ_BITS等于6,则当全为正时,则依据偏移量:
Shift=-(1<<(QUANTIZ_BITS-3))*3 (6)
可得偏移量Shift=-24。
若全为负则偏移量:
Shift=(1<<(QUANTIZ_BITS-2)) (7)
可得偏移量Shift=16。
对于不同量化比特数相应的归一化取值如表1所示:
为了防止在译码过程中值的溢出,特在每次数据处理后加入限幅函数,如果变量值大于qmax,则取为qmax,如果小于 -qmax则取为 -qmax,以此防止中间值溢出。在定点化仿真过程中中采用了加入CRC校验的仿真方法,即每经过译码器译码一次就将译码结果进行CRC校验,一旦CRC校验成功且未达到迭代次数的最大值,则终止迭代并输出译码结果。
仿真条件:在AWGNX信道条件下,采用定点算法,量化比特数位6,迭代次数为7,码长为6144;采用LOG-MAP算法;其中蓝色为GAIN=2时的曲线,红色曲线为GAIN=1.44时的曲线,仿真结果见图2所示。 仿真条件:在AWGNX信道条件下,采用定点算法,量化比特数位8,迭代次数为7,码长为6144;采用LOG-MAP算法;其中蓝色为GAIN=8时的曲线,红色曲线为GAIN=1.44(先前的参数)设置时的曲线,仿真结果见图3所示。
从图2仿真结果可以看出,当量化比特数为 6时,两者性能基本相同,新的GAIN值略好,从图3可以看出当量化比特数为8比特时,新的GAIN值比原先的设置要好约0.1dB。总的来说,新的参数设置方法性能要好于原先的参数设置。
3.2 外在(extrinsic)信息因子对译码性能影响
在一般的LOG-MAP算法中,对外在信息是不做任何处理的,外在信息经过交织或去交织后作为下一个译码器的先验信息。Jorg Vogt 和 Adolf Finger 提出了一个显著提高译码性能的方法,即用一个系数(scale)乘以外在信息。 把处理后的外在信息作为下一个译码器的先验信息。
仿真条件:在AWGNX信道条件下,采用定点算法,量化比特数为6,GAIN=2;最大迭代次数为7,码长为6144;采用LOG-MAP算法,这里比较了scale=[0.65 0.7 0.75 0.8 0.85 0.9 0.95 原始方案(1)],仿真曲线如图4所示:
从图4的仿真结果可以看出,所选取的scale值对于性能影响差异相差不到0.1db,这里把scale=0.7,0.85,原始方案(没有乘以外在信息因子)三条曲线(见图5)单独拿出来对比我们可以清晰的看到,当scale值等译0.85时误码率最低, 根据仿真结果,推荐选取scale=0.85。
3.3 定点与浮点结果比较
仿真条件:根据3.1,3.2节参数的调整后,令GAIN=2, scale=0.85,在最大迭代次数为7,码长为6144;LOG-MAP算法的情况下,此时定点译码与浮点译码仿真曲线的对比如图6所示:
由仿真结果可以看出,当量化比特数为6比特时,定点译码与浮点译码在译码的性能差异较大,但是从图中可以看出当量化比特数为8,GAIN=2时,8比特定点与浮点的性能差异不超过0.1dB。
4 结论
本文对Turbo码的译码算法进行了简要的分析,并针对定点数字信号处理的特点对它的实现结构进行了优化。仿真结果表明,采用8比特量化输入,GAIN等于8,外在信息因子scale等于0.85,迭代次数为7的定点译码算法,其性能非常接近浮点LOG-MAP算法。对于Turbo译码在硬件上的实现非常具有参考价值。
参 考 文 献
[1] Berrou C, Glavieux A, Thitimajshima P. Near Shannon Limit Error-correcting Coding and Decoding: Turbo-codes[A]. Proc IEEE International Conference on Communication (ICC)[C]. Geneva, Switzerland: IEEE. 1993. 1064-1070.
[2] Berrou C, Glavieux A. Reflections on the Prize Paper: Near Optimum Error-correcting Coding and Decoding: Turbo Codes[J]. IEEEInformation Theory Society Newsletter, 1998, 48(2): 24-31.
[3] Bahl L R, Cocke J, Jelinek F, et al. Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate[J]. IEEE Trans on Inform Theory, 1974, 20(2): 248-287.
[4] Robertson P, Villebrun E, HoehorP. A Comparison of Optimal and Sub-optimal MAP Decoding Algorithms Operating in the LOG Domain [A]. ICC 95[C]. Seattle: ICC, 1995. 1009-1013.
[5] 3GPP长期演进(LTE)技术原理与系统设计 沈嘉.索士强.全海洋等 人民邮电出版社