logo资料库

Turbo 码MAP 译码算法的研究与仿真.pdf

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
Turbo 码 MAP 译码算法的研究与仿真 http://www.paper.edu.cn 姜海礁 河海大学计算机及信息工程学院,南京 (210098) E-mail:longzij@hhu.edu.cn 摘 要:1993 年,法国的 C.Berrou 等人提出了一种新的纠错编码方式—Turbo 码,当交织 长度足够长时,其性能接近 Shannon 信道编码极限值,因此 Turbo 码的出现,被看作是信道 编码理论发展史的一个里程碑,它使人们设计信道编码的方法从增加码的最小汉明距离转向 减少低重量码字的个数。Turbo 码性能优异,已经被确定为第三代通信系统的信道编码方案 之一。本文介绍了 Turbo 码的编译码原理及其在 TD-SCDMA 通信系统中的应用情况;结合 Turbo 码的迭代译码过程,重点讨论 MAP 译码算法的详细推导和具体应用方法;根据 3GPP25.222 协议中定义的 Turbo 码标准,从不同角度进行 MAP 译码算法的 MATLAB 仿真。 根据仿真结果,分析 MAP 算法的译码性能,并且就设计参数对译码性能的影响进行了比较 性分析。 关键词:TD-SCDMA 系统;信道编码;Turbo 码;MAP 算法 中图分类号:TN919.32 1. 引言 Turbo码,又称并行级联卷积码(Parallel Concatenated Conventional Code),是由C. Berrou 等在ICC国际会议上提出的,它巧妙地将卷积码和随机交织器结合在一起,实现了随机编码 的思想,同时采用软输出迭代译码的方法,达到了接近Shannon极限的纠错性能。因此从它 的诞生开始,围绕着Turbo码就一直存在许多的研究和讨论。 Turbo码被确定为3G的信道编码方案之一,用于包括语音、数据和多媒体信息在内的多 种数据的高速率、高质量传播。TD-SCDMA是我国独立提出的3G标准,现正处于商用建设 阶段,本文将讨论Turbo码在TD-SCDMA通信系统中的应用情况,重点研究经典MAP算法用 于Turbo码译码的纠错性能。 2. 仿真模型 2.1 Turbo 码编码方法 好的Turbo码一般是由较短约束长度 K = ∼ 的分量码构成。图1为Turbo码的编码器结 构,是由两个RSC(递归系统卷积码)编码器通过交织器并行级联组成的,其中虚线只对编码 器归零有效[1]。 3 5 1kv 2kv { }kd { }kd′ 图 1 Turbo 码的编码器结构 - 1 - { }ku { }kv { }ku′
http://www.paper.edu.cn 分量编码器生成的校验比特序列{ }kv 可以通过开关转接得以收缩,从而使整个编码效 率提高,如果没有这个开关,编码效率将为 1/3。在码率为 1/2 的情况下,其中 kv 是由 kv1 和 kv2 交替组成。Turbo 码在 k 时刻的输出为 ,假设采用 BPSK 调制方法,则信 道上发送的信号为: u v ( , k k C = ) k C k = C C ( , s k p k ) = u ( (2 k − 1) E s ,(2 v k − 1) E s ) (2-5) 经过信道传输、解调,接收器匹配滤波,在 k 时刻的输出采样值为 的任务就是利用接收的采样序列来估计发送信号。 R = k ( x k , y k ) ,译码器 2.2 Turbo 码译码器结构 Turbo 码译码器的基本结构如图 2 所示。它由两个软输入软输出(SISO)译码器 DEC1 和 DEC2 串行级联组成,交织器与编码器所使用的交织器结构相同。为了充分利用译码器之间 的信息,将一个译码器的软输出信息作为另一个译码器的输入,并将此过程重复数次以获得 更好的译码性能,这就是 Turbo 码译码器的基本的工作原理[2]。 kx ky kz ^ kdL 1 ( ) ^ ndL 1 ( ) ky1 ky2 ^ e dL ( ) k 2 ^ kdL ( ) 2 ^ kd 图 2 Turbo 码译码器结构 译码器 DEC1 对分量码 RSC1 进行最佳译码,产生信息序列 }{ kd 各个比特信息的对数 ˆ( L d ,将其经交织后输入到译码器 DEC2,译码器 DEC2 将此信息作为接收序列的 )k 似然比 1 系统信息,对分量码 RSC2 进行最佳译码,产生交织后的信息序列各个比特的对数似然比 L d ,之后提取其中的外信息 2 L d ,经解交织反馈输入到译码器 DEC1,进行下一次 2 e L d 已经逼近对整个信息序列的 译码。这样,经过多次反馈迭代,译码器 DEC2 输出的 2 最佳译码,对此似然比信息进行硬判决,即可得到信息序列 }{ kd 的最佳估值 ˆ{ }kd 。 ˆ( )k ˆ( )k ˆ( ) k 在各种软输出译码算法中基于BAHL算法的MAP(最大后验概率)算法被证明具有最优译 码性能,然而该算法的复杂性阻碍了它的实际应用。为了降低计算的复杂程度,随后提出了 一些MAP类次最优译码算法,包括Log-MAP算法和Max-Log-MAP算法等,这些算法都是以 MAP算法为基础经过数学上的简化计算而得到的。随着科技的发展,硬件的处理能力也不 断的提高,算法的复杂性将不会成为其应用的主要障碍,所以对经典MAP算法的研究显得 - 2 -
http://www.paper.edu.cn 尤为重要。本文将讨论MAP算法在Turbo码译码过程中的具体应用,并得出MAP算法译码性 能的仿真结果。 3. MAP 译码算法研究 Turbo 码的译码过程开始于每个数据比特后验概率(APP)的形成,然后是选择对应于最 大后验概率(MAP)的数据比特作为译码比特,随着编码比特序列的接收,APP 判决过程使得 MAP 算法可以确定每个时刻最可能传输的信息比特。这里将描述 MAP 算法在 Turbo 码译码 过程中的具体应用。 3.1 MAP 译码算法原理 k aa , k 设 RSC 编码器码的约束长度为 K ,在 k 时刻编码器的状态 kS 表示为[3][4]: ( = S ,并假设信息比特序列 }{ kd 由 N 个独立的信息比特 kd 组成, 而且值为 0 和 1 的概率相等。假设编码器的初始状态和终止状态都为 0 状态,即 S C N 。编码器的输出序列表示为: 1 = 0) 0 ,...... (0,0 S= Kk 1 +− C a = 1 − ) k N 0 = C } { 1 ,信息经 N = R R R { 1 N 1 ,其 C R } N k k 过离散高斯无记忆信道传输,译码器接收到的序列表示为 中 k k , ( ) x y 。 R = k d k = 的后验概率, k mλ 求和得到译码数据比特 可以对所有状态的联合概率 ( i m Rm N ( ) } (3-1) 1 ) =λ si , 令 = = i / k dP { k r 这样可以得出每个译码比特的后验概率为: = = } i k Ri / N 1 dP { r k i λ k ( m ) ∑ m i = 1,0 , (3-2) 由式(3-1)和(3-2)可以推出每个数据比特 kd 的 LLR(对数似然比)为: L d ( k ) = ln ∑ ∑ m m 1 λ k ( m ) 0 λ k ( m ) (3-3) 最后译码器根据 ( )kL d 的值判决每个时刻的译码比特: ˆ d ˆ d k k = = 1 0 当 当 L d ( k L d ( k ) ) ≥ < 0 0 时 时 (3-4) 考虑到 RSC 编码器等效于一个马尔可夫源,在状态 1−kS 已知时, 1k − 时刻以后发生的 )kL d 的具体表达式: 事件与以前输入无关,根据式(3-1)和(3-3),利用贝叶斯公式可以推导出 ˆ( ˆ( L d k ) = log ∑∑ ∑∑ m m ′ ′ m m 1 = log ′ ∑∑∑ m m j = 1 ∑∑∑ 0 m m j ′ = 0 P d { r P d { r k = 1, k = 0, = s m s , k k s m s , k k = 1 − 1 − = = , ′ m R k 1 m R k 1 , ′ 1 − , 1 − , , R R N k k 1 + R R N k k 1 + , } } = j s , k 1 − = k 1 − m R k 1 / ′ 1 − P R } { N r k 1 + / s m P d } { r k = k = 1, s m R s / k k = , k (3-5) = m } ′ 1 − P d { r P d { r k 1 − = j s , k 1 − = m R k 1 / ′ 1 − P R } { N r k 1 + / s m P d } { r k = k = 0, - 3 - s m R s / k = , k m− } ′ 1 = k
令 α = ( i k ) = m i s m R m P d , / { k = k r k 1 s m P R } / { N = k k r 1 + P R R / } { N k k r 1 1 + dP si { , ) = = r mmR k , ′ = ) , k k β k ( γ i ( http://www.paper.edu.cn } (3-6) (3-7) = sRm / , k 1 m } ′= − k (3-8) i ) ( k mα 称为前向状态量度, ( 可以得到 ˆ( )kL d 的简化表达式: k mβ 称为后向状态量度, ( γ i ) kR m m , , ′ 称为分支状态量度。 ) 1 = 1 ∑ ∑ ∑ m m j 0 ′ ∑ ∑ ∑ m m j ′ = 0 γ 1 ( γ 0 ( R m m k , ′ , R m m k , ′ , j ) α k − 1 ( m ′ ) β k ( m ) ) j α k 1 − ( m ′ ) β k ( m ) (3-9) ˆ( L d k ) = log 3.2 对数似然比的计算 可以由 ( γ i kR m m , ′ 得到 ( i k mα 和 ( k mβ 的递推关系式: ) ) ) , i α k ( m ) = β k ( m ) = ∑∑ m j ′ 0 1 = 1 1 ∑∑∑∑ m m i ′ = 0 j = 0 1 ∑∑ m i ′ = 0 1 1 ∑∑∑∑ m m i ′ = 0 j γ i ( mmR k , ′ , ) j α k 1 − ( m ) ′ γ i ( mmR k , ′ , (3-10) ) j α k 1 − ( m ) ′ γ i ( mmR k 1 + , , ) ′ β k 1 + ( m ) ′ (3-11) γ i ( mmR k , ′ 1 + , ) j α k ( m ) ′ 0 = mmRk ( )ˆ( kdL 递推求出 所以,若要计算 ,首先要求出 , kα ,之后可以求出 (mi γ i ) ) , ′ (mkβ ,最后利用式(3-8)计算 )ˆ( kdL 。 ,当已知编码的初始状态,就可以由 ) r k k k ) ( 1 − 1 − ) , ′ = = = = = = γ i m q d } { ′ k i s m s / , k m s m s } { / ′ π k i s m s , , = k m− ) ′ 1 mmRk , 根据贝叶斯公式,由式(3-8)可得[5]: R m m P R d , , ( { / ′ γ = (3-12) k k k i = 条件下, kx 和 ky 是两个独立的高斯随机变量,并且 kx 和 d i s m s ( , , = = 在 k k 是无关的,可以将 kx 的 APP 分离出来: m sms , ′= = k k −1 d dRP si yPi m / , / {} = r r k k k 1 m smsi / } , ′= 的值为 1 或 0。特定时刻的编码 根据 RSC 码编码器的编码机制, k 状态根据输入的 kd 只有两种可能的转移状态,所以: sπ { k sπ { 1} =′= 1} =′= m } =′= m } =′= } =′= dq { }1 = ; }0 = sm / k sm / sm , k sm , xP { r = (3-13) /1 /0 d k = − m 1 − m 1 dP { k r dP { r m } ′= = = = = s k s sm , sm , m } ′ = = ,有 ,有 si , = = = = = { 1 − 1 − 1 − 1 − 1 − / − k k k k k k k k k k k k k k k k 如果 dq { dq { 最后可得: 如果 γ i dxPmmR ( /{ k k = , ′ ) , r smsi , , = k ′= dPm {} r k = i } k 1 − (3-14) = dyPi {} / r k k = k - 4 -
http://www.paper.edu.cn ,设编码的初始状态和结束状态都为零状态,则有 LLR 的计算步骤可分为: (mNβ (0 miα 和 ) ) 1. 初始化 mi i ( ) 1)0( α α = 0 0 mN 1)0( ( β β = N 0 = ) 0 = 1,0 = i m ,0 ≠∀ m 0 ≠∀ mmRk ( ) , 2. 对于每一组接收到的数据 kR , 3. 等数据序列 NR1 接收完毕后, 4. 最后根据式(3-9),可以得到每个传输比特 kd 的 LLR。 γ i (mkβ 可以由式(3-11)得出。 和 , ′ ) kα 可以由式(3-14)和式(3-10)得出。 (mi ) 3.3 反馈迭代译码过程 因为编码器是系统的( d= , mmRk (1 ) γ )ˆ( kdL 的计算公式中分离出来,得到如下表达式: 状态 1−ks 无关,所以我们可以将其从 表达式中的转移概率 { / k P x d i= 和状态 ks 与 x k } , ′ ) , k k r )ˆ( dL k = log xP { r xP { r k k / / d d k k = = }1 }0 + log 1 = 1 ∑ ∑ ∑ m j ′ 0 m ∑ ∑ ∑ m j ′ = 0 m γ 1 ( γ 0 ( mmy k , ′ , j ) α k 1 − ( m ′ ) β k ( m ) (3-15) mmy k , ′ , j ) α k 1 − ( m ) ′ β k ( m ) 考虑到 d k d= 1 ( k = )时,高斯随机变量 kx 的均值为 1( 1)− ,方差为 2σ ,所以: 0 )ˆ( dL k = 2 2σ WxLWx k + = + ) ( k c k (3-16) k ˆ( W L d = k k ) | x k = 0 = log γ 1 ( y m m k , ′ , ) j α k 1 − ( m ) ′ β k ( m ) (3-17) γ 0 ( y m m k , ′ , ) j α k 1 − ( m ) ′ β k ( m ) ∑∑∑ m m j ′ 0 1 = 1 ∑∑∑ ′ m m j ) = 0 )ˆ( kdL 是译码器的软判决输出, ( c L x 是信道度量值, kW 是校验信息的函数,是由译 k 码器提供的非本征信息,并且与译码器的输入 kx 无关,称为外信息。 ( y 1 )k P 1 − ( y )k P 2 1 − ( z )k p 1 − ( px )k 1 − ( py )k 1 − 图 3 迭代次数为 p 的迭代反馈译码器 - 5 - ( z )k p ˆ( )k Pd ( px )k ( py )k
http://www.paper.edu.cn 如图 3 所示译码器加入反馈回路后,DEC1 的输入变为 ) (mkβ 的计算公式中, z ) , 和 将取代 性很小,并且假设 kz 近似为一个方差为 2 σσ ≠z 2 率可以写成: R = k y k 1 x ( , k k k k , ) z x ( y 1k ,状态量度 y , (mi ) 1 。考虑 kz 同 kx , ky1 的相关 的高斯变量,这样离散高斯信道的转移概 R = k kα k ) x ( , k dRP r { / k 译码器 DEC1 产生的 LLR k = si , = k )ˆ(1 kdL )ˆ( dL 1 k sm , k 1 − 变为: 2 2 σ = x =′= m } xP ( r k )/ ⋅ yP ( r k )/ ⋅ zP ( r k )/ ⋅ (3-18) + k 2 2 σ z Wz k k 1 + (3-19) x n z ,{ kW1 是序列 DEC2 的输入信息,这样,DEC2 的输入序列将是 ≠} kn n 的函数。 kz 是译码器 DEC2 提供的非本征信息,所以 kz 不能用作 和 ky2 , )}ˆ(~{ 1 ndL (3-20) 其中 = 0 n ) = ˆ L d ) ( n z 1 ˆ L d ( n 1 )ˆ(2 kdL 可表示为 ˆ ˆ L d f L d ( ) ( ( k n 1 2 ˆ( z W L d k 2 2 = = = k k 则 DEC2 输出的 LLR 译码器 DEC2 的外信息为 )) ) | + W 2 k (3-21) ,经过解交织反馈到译码器 DEC1 输入 ˆ L d ( k 1 ) 0 = ˆ d = 端,进行迭代译码过程,最后,译码器 DEC2 输出最终的硬判决比特信息 k )ˆ(~ kdL 1 值得注意的是,在每次迭代译码的过程中,( z 的方差 2 )k zσ 和 p 的方差必须被重新 zσ 的估计方法。假设交织器是一个 2M 的矩阵,则, kz 的均值为: 估计。下面给出, 2 sign [ ˆ( dL 2 k )] 。 m z = 2 1 M ∑ M 2 1 = k z k , kz 的方差为, 2 σ z 2 M = ∑ 2 1 M k 1 = ( z k − m z 2 ) 。 4. 实验结果及分析 Turbo码在TD-SCDMA系统的应用中通常是逐帧进行编译码的,本文将按照3GPP协议中 规定的数据帧长度进行仿真,采用如图1所示的RSC编码器,交织器采用与帧长相等的确定 性线性交织器,信道为AWGN信道,调制方式为BPSK,两个分量译码器都采用MAP译码算 法,仿真用MATLAB编程完成。 - 6 -
) R E L B R E B / ( / 率 帧 误 率 特 比 误 100 10-1 10-2 10-3 10-4 10-5 10-6 10-7 1 误比特率 (BER) 误帧率 (BLER) 1.2 1.4 http://www.paper.edu.cn 1.8 (Eb/No) 2 2.2 2.4 图 4 Turbo 码的 MAP 算法的译码性能 1.6 信噪比 1/ 2 4 图 4 为AWGN 信 道 条 件 下 , 码 率 [15,13] v = , 生 成 多 项 式 G = p = 时,Turbo码MAP译码算法的仿真结果。从 仿真结果可以看出MAP算法优秀的译码性能,在信噪比为2.2时,误比特率已经达到了 710− 量 级,这完全能满足TD-SCDMA系统中数据高速、高效传输的要求。 , 寄 存 器 记 忆 长 度 3 ,迭代次数 1024 ,帧长 N = R = N=400 N=1024 ) R E B ( 率 特 比 误 100 10-1 10-2 10-3 10-4 10-5 10-6 10-7 1 N=1024 (BER) N=400 (BER) 1.2 1.4 1.6 1.8 2 信 噪 比 (Eb/No) 2.2 2.4 2.6 2.8 图 5 Turbo 码 MAP 译码算法不同帧长的译码性能比较 - 7 -
图 5 为AWGN 信 道 条 件 下 , 码 率 [15,13] G = 下,MAP算法的性能随数据帧长的增加而显著提高。这是以增加硬件复杂度为代价的。 v = , 生 成 多 项 式 p = 时,Turbo码MAP译码算法的仿真结果。可以看出,同等条件 , 寄 存 器 记 忆 长 度 3 ,迭代次数 1/ 2 R = 4 http://www.paper.edu.cn 100 10-1 10-2 10-3 10-4 10-5 10-6 1 p=1 p=3 p=6 p=1 (BER) p=3 (BER) p=6 (BER) 1.2 1.4 1.6 2 1.8 2.2 信噪比 (Eb/No) 2.4 2.6 2.8 3 ) R E B ( 率 特 比 误 图 6 Turbo 码 MAP 译码算法不同迭代次数的译码性能比较 ,帧长 G = [07,05] 图6为AWGN信道条件下,码率 1/ 2 v = ,生 p = 时,Turbo码MAP译码算法的仿真结果。该结果反映 成多项式 出增加译码迭代次数可以提高纠错性能,但是当迭代次数由3次增加至6次时纠错性能的提高 不如由1次增加到3次时的那么显著,因此均衡考虑也不必采用过多的迭代次数,6次或8次就 已经可以得到很好的译码性能。 ,寄存器记忆长度 2 R = 6 ,迭代次数 1024 N = 比较图6与图4的仿真结果,可以发现在仿真条件相同的情况下,增加编码器的记忆长度 能有效的提高译码性能,而且效果要比增加迭代次数显著,然而,这也是以增加硬件复杂度 为代价的,在实际应用中需要综合考虑。 5. 结论 本文中讨论了TD-SCDMA系统规定的标准Turbo码,重点分析研究MAP译码算法,并应 用该算法得到了多个软件仿真结果。由仿真结果分析可见,采用递归系统卷积码以及确定性 线性交织器,配合MAP算法译码,Turbo码可以达到很理想的纠错性能。增加译码迭代次数、 增加数据帧长、增加编码器的记忆长度都能提高Turbo码的译码性能,但同时也会增加编码 器及译码器的复杂性并影响译码的实时性,因此在实际通信系统的应用中,需要权衡考虑各 项参数的选择。 - 8 -
分享到:
收藏