要删除一些低似然路径,为每一状态只保留一条最优路径,它无法提供软输出。为了给他输出的每个比特赋予一个可信度,需要在删除低似然路径是做一些修正,以保留必要的信息。其基本思想是利用最优留存路径和被删路径的度量差,这个差越小意味着这次算去的可靠性越好。然后用这个差去修正这条路径上各个比特的可信度。
3. Turbo码 性能仿真比较
目前Turbo 码的大部分研究致力于在获得次优性能的情况下减小译码复杂度和时延,从而得到可实现的Turbo码系统。
3.1 几种主要译码算法的性能比较
图2-3 译码算法对Turbo码的影晌
对MAP算法、Log-MAP算法、Max-Log-MAP算法和SOVA算法在加性高斯白噪声信道(AWGN)环境下进行仿真比较,系统采用的是BPSK调制方式,Turbo 码的交织长度是1024 , RSC子码的生成多项式为(37,21) ,系统编码率为R=1/2,译码时迭代5次,结果以曲线图给出如图。
仿真结果表明,四种算法中,MAP算法性能最好,Log-MAP 算法的性能跟MAP 算法在较低的SNRq时比较接近, 高信噪比时差别则较大。Max-Log-MAP算法和SOVA算法的性能十分接近,一般情况下,Max-Log-MAP算法的性能,总是稍优于SOVA算法。它们跟MAP和Log-MAP相比,性能下降十分明显。从算法复杂度而言,MAP算法最为复杂,Log-MAP 其次,之后是Max- Log-MAP ,SOYA算法最简单。由此可以看出,性能优异的Turbo码译码算法十分复杂,如果要使得译码容易实现而对算法进行简化或者是采用简单的算法,往往需以性能的降低为代价。
3.2 不同迭代次数对Turbo 码性能的影响
图2-4 迭代次数对Turbo码的影响
上图给出了在不同解码迭代次数下,码率为1/ 2的Turbo码的BER与Eb/N0的关系曲线。Turbo 码的交织长度是1024 ,RSC 子码的生成多项式为(37,21) ,系统编码率为R=1/2。如Turbo码译码原理中所述,两个译码器之间互相交外部信息进行迭代。
可以得到,迭代译码次数增大,译码性能增加。在第一次迭代的误比特性能都比较差,这是因为两个分量译码器之间的信息还没有被很好的相互利用。随着迭代次数的增加,两个分量译码器之间的外信息被更好的利用,对信息比特的估计更接近最大似然比,判决输出的正确性就越高。迭代次数达到一定数值时,译码性能趋于稳定,再增加新的迭代对性能的改善非常小。迭代增加了译码时延,在大帧编码时尤其如此。仿真中迭代次数增大时运行时间显著增加。
由于达到一定迭代次数后,新增加的迭代对性能改善不大,而法代又极大地增加译码时延,所以在实际设计Turbo码系统时,需要选择适当的迭代次数,在允许的译码时延内,达到最佳的译码性能。这种预先规定迭代次数的方式是终止译码迭代次数的方法之一.当要求的信噪比比较大,误码率要求不太高的情况,往往经过很少的几次迭代就能达到译码要求正确译码。此时,如果预设迭代次数比较大,那么译码器会继续译码,一直进行到预设次数的迭代为止.后边的几次送代并没有明显地提高性能,是完全不必要的,而且多余的法代食给译码带来了额外的时延。
3.3 不同编码约束度K对Turbo 码性能的影响
图2-5 不同的约束度对Turbo 码性能的影响
采用不同子码的Turbo码的性能也有很大差别。Turbo 码的设计中首先就是选择好的RSC子码。这里只对几种常用的、较好的采用不同约束长度的RSC 做子码的Turbo 码进行仿真,以分析约束长度对Turbo 码性能的影响。可以看出,随着约束长度K增大,编码后的码元与更多个信息比特相关,因此译码纠错能力越强,误比特率BER就越小。当BER<10-2 时,增加卷积码的约束度将会改善Turbo 码BER性能。在交织器长度和码率一定时,约束度越大,Turbo 码的BER 性能越好。
4. SISO解码算法
在介绍SISO解码算法之前,首先进行符号的定义: 以1/2码率的卷积码为例,假设:
k时刻的编码码字Ck?(uk,xkp),uk是k时刻的信息比特,xkp是k时刻的校验比特;
ssk时刻的接收码字Yk?(yk是k时刻接收的信息比特,ykp是k时刻接收,ykp),yk的校验比特;
假设平坦瑞利衰落信道(Flat Rayleigh Fading channel)和相干解调(Coherent Demodulation),那么接收码字和编码码字存在下列关系式:
ss yk?akuk?nkykp?akxkp?nkp
s其中,ak是k时刻的衰落乘性系数,而nk和nkp分别是对于信息比特和校验比
特的k时刻的加性高斯白噪声(AWGN),假设其均值为零,方差为σ2。
Yk≡(Y1, Y2, ?, Yk)为从1时刻到k时刻的接收码字序列。
Yn≡(Yn, Yn+1, ?, Ym)为从n时刻到m时刻的接收码字序列。
αk(s)≡P(sk=s, Yk)为前向递推概率,表示k时刻卷积码编码器状态为s,且接收序列为Yk的概率。
βk(s)≡P(Yk?1/sk=s)为后向递推概率,表示k时刻卷积码编码器状态为s,且接收序列为YNk?1Nm的概率。
γk (s’, s)≡P(Yk , sk=s/sk-1= s’ )为转移概率,表示在k-1时刻的s’条件下到k时刻的s状态且接收码字为Yk的转移概率。
L(uk)≡ln的对数。
L(uk/YN)≡ln
P(uk?1)为似然比,表示k时刻的信息比特uk为1和为-1的概率比值
P(uk??1)P(uk?1/YN)P(uk?1,YN)?为后验概率的输出似然比,表?=ln
P(uk??1,YN)P(uk??1/YN)示已知接收序列解码YN的条件下解码输出的k时刻的信息比特uk为1和为-1的概率比值的对数。
2aLc≡2k为信道补偿参数。
???如图所示,定义度量概率Mk(s)?lnP(Yk,s',s)和Mk(s)?lnP(Yk,s??,s)。
s’ss”k-1k
图2-6 状态转移图
4.1 MAP、Log_MAP和Max_Log_MAP算法
?L(U)inMAP解码器?YN??L(U/YN)?L(U)out图2-7 MAP解码器
4.1.1
MAP算法推导 a) 转移概率的推导 γk (s’, s)≡P(Yk , sk=s/sk-1= s’ )
=P(s/s’) P(Yk / s, s’)= P(uk) P(Yk / Ck)
P(uk?1)?P(uk)?exp(ukL(uk)/2)
P(uk??1)L(uk)≡ln
sP(Yk / Ck) =P(yk/uk)P(ykp/xkp)
s1(yk?akuk)21(ykp?akxkp)2 =exp(?)exp(?)? 222?2?2??2??ak(ukyks?xkpykp)) P(Yk / Ck)∝exp(2?令Lc≡
2ak?2,则
Lc(ukyks?xkpykp)) 2γk (s’, s)∝exp(ukL(uk)/2)exp(b) 前向概率的推导
αk(s)≡P(sk=s, Yk)=?p(sk?s,sk?1?s?,Yk)
s?
=?p(sk?s,sk?1?s?,Yk?1,Yk)
s? =?p(sk?1?s?,Yk?1)p(sk?s,Yk/sk?1?s?,Yk?1)
s? =?p(sk?1?s?,Yk?1)p(sk?s,Yk/sk?1?s?) (由马尔克夫性)
s? =??k?1(s?)?k(s?,s)
s?c) 后向概率的推导