一种用于Turbo码译码器中减小状态度量位宽的方法
技术领域
本发明涉及一种用于Turbo码译码器中减小状态度量位宽的方法。
背景技术
Turbo码的原理是基于对传统级联码的算法和结构的修正,内交织器的引入使得迭代解码的正反馈得到了很好的消除。Turbo码编码器由两个递归系统卷积码(recursive systematic convolutional code,简称RSC码)、内交织器和删除器组成。图一给出了cdma2000系统中Turbo码编码器的结构。根据删除器打孔(puncture)形式的不同,该Turbo码的编码码率可以在1/6到1/2之间变化。从译码器实现复杂度和译码性能综合考虑,Turbo码一般采用迭代形式的最大后验概率(maximum a posteriori,简称MAP)译码算法进行译码。由于MAP算法的运算复杂度较高,近来又衍生出了两类简化的MAP算法,分别为Log-MAP算法和Max-Log-MAP算法。图二给出了经典的Turbo码迭代译码器结构图。Turbo码译码器由两个基于MAP算法的软输入、软输出的译码器(soft-input soft-output decoder,简称SISO译码器)、交织器和去交织器构成,经对输入信号交替译码、软输出多次迭代译码、过零硬判决后得到译码输出。
Turbo码译码算法的复杂度主要由其SISO译码器决定,由于软输入、软输出译码算法涉及实数运算,比较复杂,且需要迭代多次,造成实现电路的规模较大,而吞吐量较低。下面对最基本的MAP算法进行简单的介绍:
假设两个SISO译码器的软输出为:
Λ 1 ( d k ) = log P { d k = 1 / R 1 N } P { d k = 0 / R 1 N } - - - ( 1 ) ]]>
其中,dk表示的是未编码信息比特序列中第k个比特, R 1 N = ( x 1 N , y 1 k 1 N ) ]]>或 R 1 N = ( x 1 N , y 2 k 1 N ) ]]>表示的是接收到的信息比特序列x1N和两个校验比特序列y1k1N或y2k1N,分别用于两个SISO译码器,Λ1(dk)表示的是dk的对数似然概率(logarithm likelihood ratio,简称LLR)。
经过推导,Λ1(dk)可以表示如下形式:
Λ ( d k ) = Σ m Σ m ′ γ 1 ( R k , m ′ , m ) α k - 1 ( m ′ ) β k ( m ) Σ m Σ m ′ γ 0 ( R k , m ′ , m ) α k - 1 ( m ′ ) β k ( m ) - - - ( 2 ) ]]>
其中,m和m′分别表示k时刻和k-1时刻的编码器状态Sk和Sk-1;
α k ( m ) = P { S k = m , R 1 k } = Σ m ′ Σ i γ i ( R k , m ′ , m ) α k - 1 ( m ′ ) - - - ( 3 ) ]]>
表示前向路径度量(forward path metric);
β k ( m ) = P { R k + 1 N / S k = m } = Σ m ′ Σ i γ i ( R k + 1 , m , m ) β k + 1 ( m ′ ) - - - ( 4 ) ]]>
表示反向路径度量(backward path metric);
γi(Rk,m′,m)=P{dk=i,Sk=m,Rk/Sk-1=m′} (5)
表示分支度量(branch metric)。
考虑到实现复杂度和Turbo码译码器性能的折中,实际实现中经常采用的是Max-Log-MAP算法,采用log(ea+eb)=max(a,b)简化MAP算法。采用Max-Log-MAP算法,求解前、反向路径度量和分支度量公式中需要的指数、对数运算变成了简单的线性的加法运算和求最值运算,大大减少了译码的复杂度。
从公式(3)和(4)可以看出,前、反向路径度量都是通过递推而计算得到的,且每一个要计算M个状态的α和β值。由于度量是不断累加的,如果不考虑每一步做归一化处理,即使初始时刻α和β所需要的量化比特数并不多,但经过很多步累加后WCDMA(宽带码分多址)和TD-SCDMA(时分同步码分多址)系统Turbo码的最长帧长为5114),位宽将会变的很长(对WCDMA和TD-SCDMA系统而言,将会增加13比特),从而需要大量的芯片面积,且使运算速度大受影响,降低Turbo码译码器的译码速率。因此,考虑到Turbo码译码器的硬件实现复杂度和资源消耗,要求α和β值所占的位宽越少越好。但是,为了保证Turbo码译码器的性能,对运算的量化比特数必须有一定的要求,即运算中的位数不能太少,否则将会使前、后向路径度量溢出,大大劣化Turbo码的译码性能,这就与实现规模及运算速度之间相矛盾。
发明内容
发明提供的一种用于Turbo码译码器中减小状态度量位宽的方法,采用一种特定的归一化方法,能在基本不影响Turbo码译码器性能的情况下,减少前、后向路径度量所需要的比特宽度。
为了达到上述目的,本发明提供了一种用于Turbo码译码器中减小状态度量位宽的方法,其包含以下步骤:
步骤1、前反向路径度量计算单元利用Max-Log-MAP算法计算初始前向路径度量和后向路径度量:
α ^ k ( m ) = log [ α k ( m ) ] = max m ′ ( x k u k i + y k v k i , m ′ σ 2 + F ( z k ) + α ^ k - 1 ( m ′ ) ) - - - ( 6 ) ]]>
β ^ k ( m ) = log [ β k ( m ) ] = max m ′ ( x k + 1 u k + 1 i + y k + 1 v k + 1 i , m ′ σ 2 + F ( z k + 1 ) + β ^ k + 1 ( m ′ ) ) - - - ( 7 ) ]]>
其中, F ( z k ) = z k - max ( 0 , z k ) d k = 1 - max ( 0 , z k ) d k = 0 ]]>表示的第k个比特dk等于0或1的先验概率,zk表示上一级SISO译码器产生的外附信息, u k i = 1 - 2 × x k , ]]> v k i , m = 1 - 2 × y k ]]>分别表示二元相移键控调制(简称BPSK)或者正交相移键控调制(简称QPSK)调制下,Turbo码编码器输出的信息符号序列和校验符号序列。
由于Turbo码编码器中RSC编码器的初始状态和终结状态都是0,因此前向路径度量的初始值和反向路径度量的初始值为:
α ^ 0 ( m ) = ∞ m = 0 0 m ≠ 0 - - - ( 8 ) ]]>
β ^ N ( m ) = ∞ m = 0 0 m ≠ 0 - - - ( 9 ) ]]>
步骤2、计算偏移量:
步骤2.1、比较器根据公式(6)和(7)中F(zk),得到相对于先验概率F(zk)的偏移量zkoffset:
Zkoffset=max(|zk-max(0,zk)|,|-max(0,zk)|) (10)
步骤2.2、比较器根据Turbo码译码器输入的信息比特xk和校验比特yk得到相对于译码器输入信号的偏移量xykoffset:
xykoffset=2×max(|xk/σ2|,|yk/σ2|) (11)
式中σ2表示高斯信道的噪声方差。
步骤3、加法器将初始的前向路径度量和后向路径度量加上偏移量,得到当前的前向路径度量和后向路径度量都为正数:
α ^ k ( m ) = log [ α k ( m ) ] = max m ′ ( x k u k i + y k v k i , m ′ σ 2 + F ( z k ) + α ^ k - 1 ( m ′ ) ) + z offset + xy offset - - - ( 12 ) ]]>
β ^ k ( m ) = log [ β k ( m ) ] = max m ′ ( x k + 1 u k + 1 i + y k + 1 v k + 1 i , m ′ σ 2 + F ( z k + 1 ) + β ^ k + 1 ( m ′ ) ) + z offset + xy offset - - - ( 13 ) ]]>
步骤4、最小值选择器统计所有当前的前向路径度量α和当前的后向路径度量β的最小值:αmin和βmin;
步骤5、加法器利用αmin和βmin对当前的前向路径度量和后向路径度量进行归一化操作:
α ^ k ( m ) = log [ α k ( m ) ] ]]>
= max m ′ ( x k u k i + y k v k i , m ′ σ 2 + F ( z k ) + α ^ k - 1 ( m ′ ) ) + z offset + xy offset - α min - - - ( 14 ) ]]>
β ^ k ( m ) = log [ β k ( m ) ] ]]>
= max m ′ ( x k + 1 u k + 1 i + y k + 1 v k + 1 i , m ′ σ 2 + F ( z k + 1 ) + β ^ k + 1 ( m ′ ) ) + z offset + xy offset - β min - - - ( 15 ) ]]>
本发明提供的一种用于Turbo码译码器中减小状态度量位宽的方法,把前、反向路径度量计算中每一步运算后的计算结果控制在很有限地范围内,从而使得运算位数大大下降,并且此归一化方法运算可以使得参加运算的所有变量都是正数,简化运算的复杂度。
附图说明
图1为背景技术中cdma2000系统的Turbo码编码器;
图2为背景技术中Turbo码迭代译码器;
图3采用本发明方法后的Turbo码前、反向路径度量计算的流程图;
图4为当Turbo码帧长为1280时,采用本发明对α和β进行处理与α和β采用足够位宽的误码率曲线;
图5为当Turbo码帧长为1280时,采用本发明对α和β进行处理与α和β采用足够位宽的误帧率曲线。
具体实施方式
以下根据图3~图5来具体说明本发明的最佳实施方式:
本发明提供了一种用于Turbo码译码器中减小状态度量位宽的方法,其包含以下步骤:
步骤1、前反向路径度量计算单元利用Max-Log-MAP算法计算初始前向路径度量和后向路径度量:
α ^ k ( m ) = log [ α k ( m ) ] = = max m ′ ( x k u k i + y k v k i , m ′ σ 2 + F ( z k ) + α ^ k - 1 ( m ′ ) ) - - - ( 6 ) ]]>
β ^ k ( m ) = log [ β k ( m ) ] = max m ′ ( x k + 1 u k + 1 i + y k + 1 v k + 1 i , m ′ σ 2 + F ( z k + 1 ) + β ^ k + 1 ( m ′ ) ) - - - ( 7 ) ]]>
其中, F ( z k ) = z k - max ( 0 , z k ) d k = 1 - max ( 0 , z k ) d k = 0 ]]>表示的第k个比特dk等于0或1的先验概率,zk表示上一级SISO译码器产生的外附信息, u k i = 1 - 2 × x k , ]]> v k i , m = 1 - 2 × y k ]]>分别表示二元相移键控调制(简称BPSK)或者正交相移键控调制(简称QPSK)调制下,Turbo码编码器输出的信息符号序列和校验符号序列。
由于Turbo码编码器中RSC编码器的初始状态和终结状态都是0,因此前向路径度量的初始值和反向路径度量的初始值如下所示:
α ^ 0 ( m ) = ∞ m = 0 0 m ≠ 0 - - - ( 8 ) ]]>
β ^ N ( m ) = ∞ m = 0 0 m ≠ 0 - - - ( 9 ) ]]>
步骤2、计算偏移量:
步骤2.1、比较器根据公式(6)和(7)中F(zk),得到相对于先验概率F(zk)的偏移量Zkoffset:
Zkoffset=max(|zk-max(0,zk)|,|-max(0,zk)|) (10)
步骤2.2、比较器根据Turbo码译码器输入的信息比特xk和校验比特yk得到相对于译码器输入信号的偏移量xykoffset;
xykoffset=2×max(|xk/σ2|,|yk/σ2|) (11)
步骤3、加法器将初始的前向路径度量和后向路径度量加上偏移量,得到当前的前向路径度量和后向路径度量都为正数:
α ^ k ( m ) = log [ α k ( m ) ] = max m ′ ( x k u k i + y k v k i , m ′ σ 2 + F ( z k ) + α ^ k - 1 ( m ′ ) ) + z offset + xy offset - - - ( 12 ) ]]>
β ^ k ( m ) = log [ β k ( m ) ] = max m ′ ( x k + 1 u k + 1 i + y k + 1 v k + 1 i , m ′ σ 2 + F ( z k + 1 ) + β ^ k + 1 ( m ′ ) ) + z offset + xy offset - - - ( 13 ) ]]>
步骤4、最小值选择器统计所有当前的前向路径度量α和当前的后向路径度量β的最小值:αmin和βmin;
步骤5、减法器利用αmin和βmin对当前的前向路径度量和后向路径度量进行归一化操作:
α ^ k ( m ) = log [ α k ( m ) ] ]]>
= max m ′ ( x k u k i + y k v k i , m ′ σ 2 + F ( z k ) + α ^ k - 1 ( m ′ ) ) + z offset + xy offset - α min - - - ( 14 ) ]]>
β ^ k ( m ) = log [ β k ( m ) ] ]]>
= max m ′ ( x k + 1 u k + 1 i + y k + 1 v k + 1 i , m ′ σ 2 + F ( z k + 1 ) + β ^ k + 1 ( m ′ ) ) + z offset + xy offset - β min - - - ( 15 ) ]]>
具体实施例:
WCDMA系统Turbo码译码器的输入数据位宽为6比特,SISO译码器产生的外附信息位宽为10比特。如果不采用本发明的归一化算法,前、后向路径度量所需要的位宽至少为24比特,才能保证计算α和β时不会发生溢出。如果采用本发明所提供的归一化算法,仿真结果表明,前、后向路径度量的位宽为8比特时就可以保证Turbo码译码性能基本没有损失。
本发明提供的一种用于Turbo码译码器中减小状态度量位宽的方法,把前、反向路径度量计算中每一步运算后的计算结果控制在很有限的范围内,从而使得运算位数大大下降,并且此归一化方法运算可以使得参加运算的所有变量都是正数,简化运算的复杂度。