一种Turbo码译码方法
文献发布时间:2024-04-18 19:53:33
技术领域
本发明属于通信编译码技术领域,涉及一种Turbo码译码方法。
背景技术
自1993年Turbo码的论文发表以后,由于其接近Shannon极限的优异译码性能在编码界引起了轰动。从早期的3G,到如今正在广泛应用的4G,以及最近正在激烈讨论中的5G备选编码方案,可以说Turbo码在整个移动通信的发展中占据着举足轻重的地位。
Turbo码优异的性能源自于它独特的编码结构和迭代译码的思想。Turbo码的编码器主要由两个递归系统卷积码分量编码器、交织器、删余矩阵和复接器组成。如附图1所示。
与Turbo码的编码相比较,Turbo码的译码过程就显得较为复杂。Turbo译码方法主要有基于最大后验概率(MAP)的软输出算法和软输出Viterbi(SOVA)算法两大类。MAP类算法还包括Log-MAP和Max-Log-MAP。Log-MAP算法是将标准MAP算法取对数运算,使乘除法运算变成加减法运算,在硬件实现时可以大大简化,译码性能与MAP算法相同,Max-Log-MAP算法对Log-MAP算法进一步简化,译码性能有所下降。因为Log-MAP和Max-Log-MAP算法复杂度较低且更适合并行计算,与FPGA等超大规模集成电路的优势相符,所以工程实现中基本采用这两种译码算法。
附图2为Turbo码的迭代译码结构,译码器工作过程简单介绍如下,其中k表示时间索引,数据上标或者下标中p代表并行数据,1和2代表并行的第几路数据。
串并转换:将接收到的串行数据序列转换为并行的信息序列x
迭代计算:此步骤是Turbo码译码过程的关键,包括改进型Max-Log-Map在内的译码算法都应用于此步计算中。将经过串并转换后的x
判决输出:达到预定的迭代次数后,对子译码器2产生的似然值输出Le
Log-MAP算法中,当Turbo码编码器中的寄存器个数为M个时,译码器中存在2
发明内容
(一)发明目的
本发明的目的是:为了保证Turbo码的强纠错性能的同时尽可能降低硬件实现复杂度,本发明将现有Turbo码译码方法中普通的串行结构进行改进,提出一种时延低、存储资源少的改进型Turbo码译码方法。
(二)技术方案
为了解决上述技术问题,本发明提供一种Turbo码译码方法,其包括以下步骤:
S1:计算分支度量;
S2:计算前向状态度量和后向状态度量;
S3:计算信息比特的后验概率对数似然比;
S4:计算外部信息;
S5:硬判决。
其中,步骤S1中,计算分支度量γ
式中:k为时间索引,状态转移栅格图中的任一个路径为e,r
其中,步骤S1中,信道置信度定义为
其中,步骤S2中,计算前向状态度量A
式中:s表示k时刻网格图的状态,
其中,步骤S3中,计算信息比特的后验概率对数似然比Le
式中:
其中,步骤S4中,计算外部信息La
式中:La(μ
其中,步骤S5中,按照步骤S1~S4迭代计算,达到设定的迭代次数后,利用Le
至此,译码结束。
其中,步骤S3中,计算信息比特的后验概率对数似然比过程中的max﹡(·)运算定义如下:
mnx*(f(e))=ln(Σe
式中f(e)泛指任意的函数。
其中,max﹡(·)在运算中有两种变形情况:
(1)对于两个变量x和y的情况,有:
max*(x,y)=ln(e
=max(x,y)+f
式中,max(x,y)为取x和y中的最大值的运算,f
(2)对于多个变量的情况,由Log-MAP算法用递归的形式实现max﹡(·)的计算,定义:
计算得到S
将上述各式中的max﹡(·)简化为取最大值的运算,忽略函数f
S
(三)有益效果
上述技术方案所提供的Turbo码译码方法,具有以下有益效果:
(1)复杂度:改进型Max-Log-MAP算法与Log-MAP算法相比,存储资源消耗大大降低,而与传统Max-Log-MAP算法相比只多一个一维查找表。
(2)性能:对以上三种算法进行Matlab仿真:调制方式为BPSK,帧长选312,码率为1/5,随即交织,AWGN信道,迭代次数选8次。结果表明,改进型Max-Log-MAP算法的性能接近Log-MAP算法,而传统Max-Log-MAP算法性能要比Log-MAP算法降低0.5~0.8dB。
附图说明
附图1为典型的Turbo码编码结构;
附图2为Turbo码的迭代译码结构;
附图3为8个变量情况下传统的Log-MAP算法实现框图;
附图4为8个变量情况下改进型Max-Log-MAP算法实现框图;
附图5为Log-MAP、传统Max-Log-MAP以及改进型Max-Log-MAP算法性能仿真图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明基于Log-MAP算法进行分支度量、前后向状态度量、信息比特的后验概率对数似然比以及外部先验信息的计算,最后进行硬判决完成译码。对于其中的max﹡(·)运算,对只具有2个输入变量的按Log-MAP算法进行精确计算,对具有多个输入变量的按Max-Log-MAP算法简化为取最大值的max运算,这样两者相融合,能够达到复杂度低、性能损失极小的效果。
总结来说,改进型Max-Log-MAP译码算法有针对性地改进Turbo译码计算中间参数过程中的局部步骤,达到复杂度与性能的最优化解,其核心思想有如下两点:
a、对只具有2个输入变量的max﹡(·)运算进行精确计算。
b、对具有多个输入变量的max﹡(·)运算简化为取最大值的max运算。
具体地,本实施例Turbo译码方法将各种软信息在两个子译码器之间不断迭代传递,达到一定迭代次数后,对最终输出的软信息就行硬判决就能得到原始信息比特,主要包括以下步骤:
S1:计算分支度量;
S2:计算前向状态度量和后向状态度量;
S3:计算信息比特的后验概率对数似然比;
S4:计算外部信息;
S5:硬判决。
本实施例Turbo译码方法采用改进型Max-Log-MAP译码算法进行。
步骤S1中,计算分支度量γ
式中:k为时间索引,状态转移栅格图中的任一个路径为e,r
步骤S2中,计算前向状态度量A
式中:s表示k时刻网格图的状态,
步骤S3中,计算信息比特的后验概率对数似然比Le
式中:
步骤S4中,计算外部信息La
式中:La(μ
步骤S5中,按照步骤S1~S4迭代计算,达到设定的迭代次数后,利用Le
至此,译码结束。
在上述运算中,计算信息比特的后验概率对数似然比过程中的max﹡(·)运算定义如下:
max*(f(e))=ln(Σe
式中f(e)泛指任意的函数。通常可对上述max﹡(·)操作进行变形:
(1)对于两个变量(x和y)的情况,有:
max*(x,y)=ln(e
=max(x,y)+f
式中,max(x,y)为取x和y中的最大值的运算,f
(2)对于多个变量的情况,传统的Log-MAP算法可以用递归的形式实现max﹡(·)的精确计算。定义
假设已经计算得到S
如果将上述各式中的max﹡(·)操作均简化为取最大值的运算,相当于忽略函数f
S
假设Turbo码编码器中使用M=3个寄存器,用传统的Log-MAP算法进行译码,计算信息比特的后验概率对数似然比需要进行2
本文提出的改进型Max-Log-MAP算法,即在计算信息比特的后验概率对数似然比Le
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。