- 5G移动通信中的信道编码
- 白宝明
- 4974字
- 2025-02-17 23:08:01
2.6 卷积码
2.6.1 卷积码的概念与网格图表示
卷积码的编码器是有记忆的,在一定的时间内,编码器的输出不仅取决于该时刻的输入,也与一定数量以前的输入相关。考虑一个码率为R=k/n的卷积编码器。在卷积编码中,信息序列u被划分为长度为k的数据帧,在每一个时刻,一个k比特长的数据帧被作为信息序列送入卷积编码器,相应的输出是n比特的编码序列,k和n通常是比较小的整数并且k <n。每n-比特的编码输出块不仅依赖于当前时刻的k-比特输入序列,也依赖于m个以前输入的k-比特序列。参数m称为存储级数,ν=m+1称为卷积码的约束长度。该卷积码通常记为(n, k, ν)或(n, k, m)卷积码。
图2.7给出了一个存储级数m=2、码率R=1/2的卷积码编码器。这个编码器有k=1路输入,n=2路输出,称为(2,1,2)卷积码。由于模2和是线性运算,因此编码器是线性系统。它由下面两个生成序列所定义
g(1)=(101), g(2)=(111)
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0069_0001.jpg?sign=1739962309-c92hWOV6v3A4l8gtcWd5Hr4LTQ3OgKO0-0-7d3bd45ca2c0748060e4a241e1a36c25)
图2.7 存储级数m=2、码率R=1/2的卷积码编码器
根据图2.7所示,信息序列表示为u=(u0, u1, · · ·)。编码器的两个输出序列表示为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0069_0002.jpg?sign=1739962309-dSGlOWaotgcQSFBQ63XOmNZOb6ptTMOu-0-d5fcc26257285a0eb0c5f092a79c43f6)
和
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0069_0003.jpg?sign=1739962309-KOuW8YVFC5dFSLtXSyuHO822tlzPsQhS-0-1783ded1d8172fdef756688884ea3fab)
由于编码器可以看作线性系统,输出序列可以由输入序列和编码器的两个冲击响应卷积得到,并且g(1)、g(2)就是编码器的两个冲激响应,由u=δ=(100 · · ·)得到。冲激响应至多持续m+1个时间单位,且可写为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0070_0001.jpg?sign=1739962309-NeP00GSxKMKhrc4DGi3VkpUb6SXZXPYq-0-5d8cce93be3d7eb364f74896eb5aea23)
g(1)、g(2)被称为编码器的生成序列,它描述了编码器中移位寄存器的连接关系。令u=(u0, u1, · · ·)是编码器输入信息序列,则两个编码输出序列为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0070_0002.jpg?sign=1739962309-4sTZrjAdok7hfrSrXZFngXGJbl34vlwX-0-e02a41269bf565b044019facb705a40c)
其中“*”表示卷积运算。
在t时刻,输入是单个比特ut,相应的输出是两比特组成的一个码组(block)(,
),其中
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0070_0005.jpg?sign=1739962309-RIMZRo6dp3FoPCHrwhy7vvGsXLjXU8rC-0-c915ed8d659134757bb7a9f2510deb20)
输出码字是。例如,对于输入u=(1011100 · · ·),码字c=(11,01,00,10,01,10,11, · · ·)。
将生成序列交织,重新排列可得到如下时域生成矩阵。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0070_0007.jpg?sign=1739962309-GtiAwwWrfvA5PD001mhgISIkn9GCzWlu-0-c6e13ade33b0168ee5f41560f4fcbf12)
编码方程可以重写成矩阵的形式:c=uG。
描述卷积码的方法有很多,除了上面从生成矩阵方面描述,也可以从卷积码的多项式、状态图和网格图等方面描述。
(1)卷积码的多项式表示:在线性系统中,卷积的时域运算可以以一种更方便的形式表示,即多项式乘法的变换域运算。编码输出的每个序列可以用多项式表示,相应的编码方程为
c(1)(D)=u(D)g(1)(D)
c(2)(D)=u(D)g(2)(D)
其中信息序列为
u(D)=u0+u1D+u2D2· · ·
编码序列为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0071_0001.jpg?sign=1739962309-e7OUqCsc90PTnPxpEVM7so051zIxkdbL-0-da2307a376fae0b267dab6724f72c3b5)
码的生成多项式为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0071_0002.jpg?sign=1739962309-Q5SlYzSxjzj1jafTBOl9Nw6ETKsjjNKh-0-bfa5c65c00b3efb4132b8ec4e6dd46d8)
对于图2.7所示的卷积码,生成矩阵表示为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0071_0003.jpg?sign=1739962309-gPMxr0pjDnsXrecLMRZC97ixyI3s9tJq-0-a72069377ffa804350101a5d303b3c13)
(2)状态图:因为编码器是一个线性时序电路,所以可以用状态转移图来描述其行为。我们用t时刻记忆单元中存储的消息比特来表示t时刻的编码器状态。上述例子中(2,1,2)卷积编码器有两个记忆单元,因此共有4种可能的状态,其状态转移图如图2.8所示。图中的状态被定义为编码器电路中两个记忆单元的值(从左至右读取),边上的标记为“输入/输出”。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0072_0001.jpg?sign=1739962309-QIfaXI1w5ROVgM5F8Wx3Qs7GdR7h7Rbo-0-8c478d3f0a364aeced6a0e55992f1cb9)
图2.8 (2,1,2)卷积编码器的状态图
(3)网格图:将状态图在时间轴上展开,就会清晰看到卷积编码器随时间的状态转移,这个在时间上扩展开的状态图就称为网格图(trellis diagram)。具体在图示中,网格图是在水平方向上加上离散时间维度的状态图。上述(2,1,2)卷积码的网格图如图2.9所示。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0072_0002.jpg?sign=1739962309-YeszxAY1DuGr4l6tqT4bZf58Flij5A1K-0-4baf43bb253dcc8fa551cdd3aeb22941)
图2.9 (2,1,2)卷积码的网格图及编码路径
编码器从00状态开始,在t≥2时的网格,本质上是状态图的复制。可以看到网格图给出了所有可能的编码路径,消息序列u的编码等价于在网格图上追踪一条路径。网格图是描述卷积码编码器的一种重要方法,它对于描述卷积码的译码算法也是非常方便的。
2.6.2 卷积码的最大似然译码:Viterbi算法
考虑一个卷积编码的数字通信系统,如图2.10所示。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0073_0001.jpg?sign=1739962309-k4y4AwA2DIUthgoSHDoHh9XbEDeMf33i-0-23273522bb8b4658062e0a98a672de51)
图2.10 卷积编码的通信系统框图
假定使用(n0, k0, m)卷积码C, m为编码器的存储单元个数(存储级数)。输入信息序列长度为L段(K=k0L个比特):。
编完信息比特并添加尾比特后,输出码字c的长度为N=n0(L+m)比特:c=(c1, c2, · · ·, cL+m), 。在网格图上,每个码字是从全0状态出发经过不同分支,最后回到全0状态的一条网格路径,称为编码路径。作为一个例子,图2.11所示卷积编码器的网格图及编码路径如图2.12所示。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0073_0002.jpg?sign=1739962309-EMdOYiagRYkT2uYCuFCa2d61FjrpMj2e-0-3b4adcd617db0a4098fd4aa2d20e740c)
图2.11 (2,1,2)卷积编码器
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0073_0003.jpg?sign=1739962309-2rpE99te7P4Sitfk1wHQgWWzlc5Xx9RQ-0-3bc681bad9d92958d7056cb446cad09b)
图2.12 (2,1,2)卷积编码器的网格图
假定经过编码信道传输,与发送码字c对应的接收序列是r=(r1, r2, · · ·, rL+m)。对于BSC信道,。对于AWGN信道,假定采用BPSK调制,每一编码符号
被映射为发送信号
,接收信号
,其中
是独立同分布的高斯噪声序列。这样,软判决译码器的输入序列r=x+n,其中x=M(c)=(-1)c。
ML译码器选择使P(r|c)最大的c作为译码输出:
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0073_0009.jpg?sign=1739962309-7eXPWV7yKVghCc88nCSPmhcy8X0jAWd2-0-5d9d94ca6403113d788637262571ff18)
对于无记忆信道,有
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0074_0001.jpg?sign=1739962309-sfYj4Mkh9MqY4EOnOoU7116jy7iMQaFn-0-6a46cc75f26815e1389d91cb46186d48)
在对数域上,用对数似然函数表示为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0074_0002.jpg?sign=1739962309-wy5Ceds1M3FmlaCstfWD843aDZJFm6Y6-0-73ca1fd7896942f7ddc7e494a973d7b6)
令M(rk|ck)=log P(rk|ck)表示分支度量。一条网格路径的前t个分支的累积度量(或称为部分路径度量)定义为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0074_0003.jpg?sign=1739962309-9lanXEDK7y7aVDy92hJOhcUh4VrHNhyQ-0-63a82d58213b5505f25c824b5a0ceec9)
对于AWGN信道(或BSC),最大似然度量P(r|c)等价于最小Euclidean距离度量||r-M(c)||2(或Hamming距离度量dH(r, c))。因此,AWGN信道下的最佳译码准则简化为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0074_0004.jpg?sign=1739962309-QhChrWcZSbEHgBauVxsKWRehEE92cycf-0-e56c20e07c1121e67d04e3290420a69d)
因此,对于软判决译码器,网格图上的状态转移分支度量定义为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0074_0005.jpg?sign=1739962309-VJ1UNG6dsjo0O490MQRqd4d9ESbmaTsR-0-868379738b35a5dc7456c19c5915dead)
对于硬判决译码器,网格分支度量定义为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0074_0006.jpg?sign=1739962309-JRNw2FNKIDOqVg8InpiD7IdgPM6lne9E-0-6673922e93e752277d93be3c40f9d2e3)
Viterbi译码算法在网格图上通过递归处理方式寻找最大似然路径。它首先计算k时刻的接收信号rk与进入状态Sk的所有网格分支之间的Hamming(或Euclidean)距离,并将它作为分支度量;然后计算进入状态Sk的所有网格路径的度量并进行比较,存储有最佳度量的那条网格路径及其度量,剪掉其余的(不可能成为ML选择的那些)网格路径。译码器对k时刻的所有状态进行这种选择。这样,在时刻k,对每一状态Sk,确定了一条从时刻0的全0状态出发而到达Sk的最佳路径,称为幸存路径。如图2.13所示,其中Γ(Sk=s)表示k时刻到达状态Sk=s的幸存路径的累积度量(或称为状态度量)。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0075_0001.jpg?sign=1739962309-YVaU1FEDvW7n6W5BB28qRfA4df0AwlZQ-0-d8fefae89ca2770e77f0b6ff672adc53)
图2.13 Viterbi译码器路径度量计算
具体地说,k时刻的幸存者按照下列“加―比(较)―选(择)”运算从k-1时刻的幸存者中确定。
(1)对状态转移Sk-1→Sk,计算该转移分支的度量M(rk|ck),并与k-1时刻的幸存路径度量Γ(Sk-1)相加,得到k时刻的一个候选路径度量。
(2)对k时刻的每一个状态,比较到达该状态的候选路径度量,选择最小距离(或最大似然)度量所对应的路径作为幸存路径,并存储它的转移路径历史(从时刻k=1开始)及其度量Γ(Sk)。
在最后时刻(L+m),有一个唯一状态,它的幸存路径一定是结尾网格图上的最短路径。
例2.3 考虑图2.11中的(2,1,2)卷积码。发送序列为c=(11,01,01,00,10,11),接收序列为r=(11,11,00,00,10,11)。Viterbi译码器选择幸存路径的过程如图2.14 ~图2.17所示,图中状态转移分支边上的标号为Hamming距离,状态度量Γi等于该状态的幸存路径累积度量。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0076_0001.jpg?sign=1739962309-sMnnUQ9isFC2ium7MWW3KQ5PU5CZeE63-0-07f82d70dfff621a389b6e87f7b0d9a9)
图2.14 k=5时刻的幸存路径
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0076_0002.jpg?sign=1739962309-7oMFkDrywKg69Rxsa2HTlgzxcRSRWcHd-0-4a605f8653fea8e75df39025425f492e)
图2.15 修剪不可能路径后k=5时刻的幸存路径
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0077_0001.jpg?sign=1739962309-k0Fq91rlY3VkFeD23y4jehWg5BF7OIGh-0-011a42ed275d586c188ad2986bfb9d6d)
图2.16 k=6时刻的幸存路径
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0077_0002.jpg?sign=1739962309-TEge35YymYWVINDGVEwPyx35Nr3vM5C2-0-0e284fa731833f96012af9024b503645)
图2.17 最终选择的幸存路径
2.6.3 卷积码的逐符号MAP译码:BCJR算法
1974年,Bahl、Cocke、Jelinek和Raviv提出了一种最大后验概率(MAP)算法[28],用于估计噪声中一个Markov源的状态转移的后验概率,这个算法后来就被称为BCJR算法。论文中也展示了该算法如何用来译分组码和卷积码。用于译卷积码时,BCJR算法能够最小化误比特率,即BCJR算法在最小化BER意义下是最佳的;而Viterbi算法是最小化码字错误概率(在网格图上译码器选择不正确路径的概率)。另外,BCJR算法不仅能提供比特序列估计值,而且能够给出每个比特被正确译码的概率,这也是Turbo迭代译码的基础。因此,BCJR算法经常用于需要软信息输出的译码器/检测器,如Turbo译码器和Turbo均衡器等。
在本节中,我们经常使用贝叶斯(Bayes)规则,它简述为
P(u, v)=P(u|v)P(v)
贝叶斯规则的一个直接结果是
P(u, v|w)=P(u|v, w)P(v|w)
下面具体介绍卷积码的逐符号MAP译码算法。考虑图2.18所示的系统模型。令u=(u1, u2, · · ·, uK), uk∈{0,1},是输入信息序列,它用码率为1/2的(系统或非系统)卷积编码器进行编码,生成编码符号序列c=(c1, c2, · · ·, cN),其中,1≤k≤N。这里N表示网格图长度,如果没有结尾(termination)处理,则有N=K。然后编码符号
和
用BPSK调制,得到在信道上传输的发送符号xs和xp。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0077_0003.jpg?sign=1739962309-lmtN5v4dZw3BVoD5lULiAEf0SukUWoj0-0-476df20037786cd8d2612217d04442cc)
图2.18 卷积编码通信系统模型
对于图2.18所示的信道模型,接收序列
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0077_0004.jpg?sign=1739962309-8VpoFmxTEhymGiHYp20Ai7URKIHMn06A-0-1ccb8eda873b962cb04c0f10c62416ce)
由N个符号对组成,其中
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0078_0002.jpg?sign=1739962309-QBPJVdepyOwz2lwHMDrrSEPVuzgebZxc-0-0d598542078ad85e374f37bd620a15ce)
式中,Es为每发送符号的平均能量;和
为信道衰落因子,对于AWGN信道,
;对于Rayleigh衰落信道,
和
为两个Reyleigh随机变量。
和
为两个独立同分布的高斯噪声样值,它们的均值为0,方差
。
根据逐比特最大后验概率准则,译码器输出由下式得到:
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0078_0012.jpg?sign=1739962309-okFszx1uEYIjnZcysSRX4Ws9hNbzmlJ6-0-42c455aeb43ddc2d5677f43e5baa1159)
这里P(uk|y)是信息比特uk在接收到序列y的情况下的后验概率。
BCJR算法就是工作在网格图上的一种高效MAP算法。为后面使用算法方便起见,考虑图2.19所示的软输入软输出(SISO)MAP译码器,它能为每一个译码比特提供对数似然比输出。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0078_0013.jpg?sign=1739962309-BR9jl8DjOUpHcoqSyNwBpVlD1C0os1Ka-0-ddd432bf963a7566f78e19e61bd57344)
图2.19 软输入软输出译码器框图
图2.19中MAP译码器的输入La(uk)是关于uk的先验信息,L(uk)是关于uk的对数后验概率(APP)比。它们的定义为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0078_0014.jpg?sign=1739962309-kUZAJwYCm1eHTQksjWqtqBng4Aiq7h4T-0-b3fc459df070310ec60fb6a89aa73ae2)
MAP译码器的任务就是求解式(2.44),然后按照下列规则进行判决。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0078_0015.jpg?sign=1739962309-PUK0tYEUOyPHKEioI58xIeWZBiRPXlbm-0-e08b8667bc478c35ff22af9725f8e9f9)
下面利用BCJR算法对式(2.44)的计算方法进行推导。
假定卷积编码器有m个记忆单元(存储级数为m),约束长度ν=m+1。令Sk=(ak, ak-1, · · ·, ak-m+1)是k时刻编码器的状态。编码器的状态集合用S表示,状态数为M=|S|=2m。
在网格图上第k时刻的状态转移分支可以表示为bk≜(Sk-1, uk, ck, Sk),其中uk和ck分别是对应状态转移Sk-1→ Sk的信息符号和编码符号。连接状态Sk-1=s′∈S和Sk=s∈S的所有平行分支组成的集合记为Bk(s′, s)。根据贝叶斯准则,后验概率可以表示为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0079_0001.jpg?sign=1739962309-dU6BkETRougCYg7d5qmXZqd7V5Zmja3E-0-2c3b3ae97f8448b8651e6ad6c4f81b37)
其中,是由输入uk=i引起的状态转移Sk-1→Sk的集合。故式(2.44)可表示为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0079_0003.jpg?sign=1739962309-fvwsr2pr6vd4p5d8BKu0tCv3Xetu2UKM-0-81787b6afee0a18ebf472c01b67ea513)
概率中的序列y可写为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0079_0005.jpg?sign=1739962309-BiHakXRFBv3U5lgi96iFVld0xBhTun6H-0-487450e8fad4b9daef841e748549fab0)
其中,表示接收序列y在t到ℓ时刻内的子序列。
应用贝叶斯准则,对进行分解,可得
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0079_0008.jpg?sign=1739962309-B23C0xBTlKnjMd0Usw78i6PFXwBEz5Uv-0-a243840b7137cedcae9ee25a045c4817)
其中
① 称为前向状态度量,由k时刻译码器状态Sk=s和接收序列
共同决定。
② 是后向状态度量。
③ 是输入为uk=i时连接状态Sk-1=s′到Sk=s的分支度量。
式(2.47)遵循译码器的Markov性,即如果已知Sk=s,则时刻k之后发生的事件独立于到达Sk之前的序列。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0080_0004.jpg?sign=1739962309-LshmQ6z0hHmLOt6lyrhQwulUItWCURfC-0-800e42818d2fd562cd75d0238c5ca3f1)
图2.20 状态转移与分支度量
定义
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0080_0005.jpg?sign=1739962309-tj5K40kgx2Txzv1ge0vtnC2AiGVsoFDG-0-e4065b1212b795108f48a40515248c22)
为从Sk-1=s′到Sk=s的状态转移概率。如果在网格图中存在从Sk-1=s′到Sk=s的平行转移分支,则γk(s′, s)的数值为所有对应平行分支度量的总和。将式(2.48)代入式(2.46),得到
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0080_0006.jpg?sign=1739962309-eyZMagknDOUSOsgo7aLX6PtKRzoHaNUr-0-a878e8fcdf088b2afb15c7419b6175f0)
下面来求αk(s)、βk(s)和γk(s′, s)。根据定义,αk(s)项可通过递归计算。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0080_0007.jpg?sign=1739962309-5gunBLhY0cD06RncrgOCuDQHkHxxtktF-0-27ce2426642603cbc79ed0d80572a113)
其中初始值为α0(s)=P(S0=s)。
类似地,βk(s)可以通过如下的后向递归计算。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0081_0001.jpg?sign=1739962309-xuJFr2oxNMsFyk7vZ5iBDGFfjg55wyzh-0-bb2a382017e1fcc97e2812c7f0b3dc19)
边界条件为βN(s)=P(SN=s)。
分支度量可进一步分解为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0081_0003.jpg?sign=1739962309-NpJ4EqEpglPEJTom3tzDlSWxhUaqeeqh-0-9ba0231dc7f012315b274268cefdb8cc)
其中,P(uk=i)是uk的先验概率,P(Sk=s|Sk-1=s′, uk=i)是在输入为uk=i的条件下,状态转移Sk-1→ Sk发生的概率,该数值为1或0。p(yk|ck) ≜p(yk|Sk=s, Sk-1=s′, uk=i)是在给定特定分支的情况下,接收到yk的概率,由信道转移概率确定。对于无记忆AWGN信道,可由下式计算得到
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0081_0004.jpg?sign=1739962309-4j7AZlysLhX3GRcH4crccEHEqY34SQko-0-0db0392c4e218f62575229fc6c99ca0d)
其中Ak是独立于编码比特的常数。如前所述,令
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0081_0005.jpg?sign=1739962309-2Yr1REOHTsdGGdSiK1LuT19ke2DkAQQM-0-e882f6cd2b70eb7d23c84b01bac18842)
为信道的可靠性度量。则式(2.54)可写为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0081_0006.jpg?sign=1739962309-E4EkqxjSOYu7tL0kC1teobneA0zaygvH-0-976bd90c2159dd55906e0681e6ced413)
因此
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0082_0001.jpg?sign=1739962309-CZ6H6F4d2eEe6XCjDGxBo83AEvSAZfJ6-0-bee92093eee7f4a2628018fdf253aadf)
至此,如果将式(2.50)分子、分母中的约掉,L(uk)的求解已基本完成。然而,由于式(2.56)是从连续随机变量的概率密度计算得到,γk(s′, s)的值可能大于1,这会使得式(2.51)、式(2.52)产生上溢出,导致整个算法不稳定。另外,由于下列原因,也可能导致下溢出:随着k的增加,某些状态度量的数值将小到几乎可以忽略不计,这将由于精确性的限制造成错误。考虑如下的求和算式时,该现象就显而易见。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0082_0003.jpg?sign=1739962309-r9c9eKxwbqs6j7mt1HFkQTUxvsGFO5we-0-cf292637b8bc5c625f09cafa2992d1a8)
接收到特定序列的概率,将随着时刻k的增加而变得非常小。
因此,有必要对αk(s)和βk(s)进行归一化处理。令
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0082_0005.jpg?sign=1739962309-SVcAml2CjvFYEPiWzcbn54asl6dZOLJg-0-a39bd98573e9093eb8c6fccdf2f3cc83)
因为,所以
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0082_0007.jpg?sign=1739962309-qhewJOShBteix33qKUd2evlEEsS20QtD-0-d445b190ca31031ef44ed782208a5b41)
将式(2.51)代入式(2.60),并且分子分母同除以,得到
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0082_0009.jpg?sign=1739962309-1KPraP2B2goCMfcMimdYg2b7tFGJIPAS-0-596a5283d262690c55a7db729c7198b6)
对于,考虑到
,于是有
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0082_0012.jpg?sign=1739962309-c6P29mBOfTPaFNpkmjKbDcYdSSKUMxKW-0-ea695a0ed94636de9a1a699c13a051d2)
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0083_0001.jpg?sign=1739962309-FttP7uSwppnc6lbct0ua6DsVicc5GLiw-0-0e6e4eefdc95e469171cf8befe0d3b8f)
合并式(2.48)和式(2.59)得
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0083_0002.jpg?sign=1739962309-NPbLtv5hFxOa9j2JWPpurF84fhj9St2A-0-845dcf153a1bf56adbaabbbfc346278b)
将上式代入式(2.46),并且分子分母同乘以因子,便得最终计算公式为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0083_0004.jpg?sign=1739962309-kBePc1upYtr6uqTTW2pZEt0xS3ZRlmzw-0-b66cf146ded2978d1641d344ffa9712e)
这样就完成了分量码的MAP译码算法的推导。和
的递推运算示意图如图2.21所示,其中αk(0)=αk-1(0)γk(0,0)+αk-1(1)γk(1,0), βk(0)=βk+1(0)γk+1(0,0)+βk+1(2)γk+1(0,2)。
的初始条件为(假定RSC编码器的初始状态为零状态)
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0083_0008.jpg?sign=1739962309-AuV18CnVJeuTWktTriTwaKsToZ3f0MvN-0-f3866ce12814a342de46e79e7c3f4759)
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0084_0001.jpg?sign=1739962309-FlEGLa9jvvwfPsAQBrfUfRWSYfFq9s2x-0-3d4eddecf7fd61b5b6fdeab36a3b6e21)
图2.21 和
的递推计算示意图
如果编码器在每帧编码完成之后通过结尾(termination)处理也回到零状态,那么递推的初始条件为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0083_0010.jpg?sign=1739962309-xrX621r8NtY3HaAuZhxcZPqAgQzKrFpO-0-3d6eb345757e1183aec11820772fe377)
否则,应设定为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0083_0011.jpg?sign=1739962309-XHSj5fgdCyHk3odiIJfhw01PmFPMKXFO-0-0467285b885a0f03b6bdc1cd18785210)
注意:MAP算法也通常被称为BCJR算法或前后向递归算法,与隐马尔可夫模型(hidden Markov models)中的Baum-Welch算法等价。
MAP算法可归结如下。
(1)初始化:
α0(0)=1, α0(∀s=0)=0;
βN(0)=1, βN(∀s=0)=0。
(2)前向递归:对于k=1到N,做如下操作。
①对i=0、1,参照式(2.57)计算并存储分支度量。
②对s∈S,参照式(2.61)计算并存储前向度量αk(s)。
(3)后向递归:对于k=N-1到0,做如下操作。
参照式(2.62),使用前向递归中计算得到的分支度量值,计算并存储后向度量βk(s), ∀s∈S。
(4)输出:对于k=1到K,参照式(2.63)计算并输出软信息L(uk)。
2.6.4 Max-Log-MAP译码算法
1.对数域上的简化运算
如果译码器运行在对数域上,则上述最大后验概率(MAP)算法中涉及的计算将会得到简化。定义
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0085_0001.jpg?sign=1739962309-VTqRaBH6rqQMS52DxiB1yv9sDmng1Dj7-0-5d92f19d29b5b0b6a06f7263dab6eaad)
如果x>y,可将其写为
max*(x, y)=ln[ex(1+ey-x)]=x+ln(1+ey-x)
考虑一般情况,有
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0085_0002.jpg?sign=1739962309-dIYTJ5rWY1OSqLrfRd6XDsIa5fqmjLAY-0-c18f76a63a651fbf6bafc0b292e408ff)
其中,fc(|x-y|)=ln(1+e-|x-y|)是一个修正函数。实际应用时,可以通过查表实现。
这可以推广到多个变量的情况。例如,对于一个实数集合{δ1, δ2, · · ·, δq},有
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0085_0003.jpg?sign=1739962309-8MJgsA3lnfGY2u1rKg3MDGgQEOV6NUA3-0-7760205fe2d402522c08e8211db6f22d)
这表明ln(eδ1+eδ2+· · ·+eδq)可以通过递归计算得到,记为
max*(δ1, δ2, · · ·, δq)=max*(max*((max*(max*(δ1, δ2), δ3), · · ·), δq-1), δq)
2.Max-Log-MAP算法
Max-Log-MAP算法是基于前文所述MAP算法的次优简化算法,旨在误码率和译码计算复杂度上取得有效的折中。
Max-Log-MAP算法使用了以下的Max-Log近似。
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0085_0004.jpg?sign=1739962309-bxyZ7bzspER1VH1Vo8IPcsidcBu6Q1hG-0-8466e39c1deee9ff8f439b93a8a8f451)
在该近似下,有下面的推导。对于式(2.61),可得
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0085_0005.jpg?sign=1739962309-iDSrlLQkouVUc34z4jtUz5mM4hgj7iit-0-4ea2fe526358b396ae126c5f41bd717c)
这里
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0086_0001.jpg?sign=1739962309-7ByHyCuOWGhkReXFdpV8VHxAihdIWqbE-0-f6d50ceb8081ec0f66fa534458d513d2)
以及
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0086_0002.jpg?sign=1739962309-CkdTsRn72U9aq0Lvz7TwS9Mmu0ruUh7D-0-5fd52038cb6714abce3752102791ce94)
由此,式(2.61)的前向递归在对数域可以表示为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0086_0003.jpg?sign=1739962309-mmhoirzXwSQbP8jiqDNFEMjEujIvHvmV-0-35c4c9543bb47c75d9b865abbd9ecdc9)
或者
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0086_0004.jpg?sign=1739962309-gzaANtxCKAvwbGDaLg5vNZ4QPs1DFpl3-0-9cb79089f90e7ecef4fe9f6923aaa60f)
类似地,式(2.62)后向状态度量可以表示为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0086_0005.jpg?sign=1739962309-3nEtEtapAZflskge8iMmqfnzCjKkFNLl-0-366096246d66b916a3f1f850ccfadb50)
等效地
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0086_0006.jpg?sign=1739962309-GOBBxJipZDGCqFMn1ZiCRivYMmXbLkmr-0-3f14c776bae51e91531b1759772d68b8)
显然,该前后向状态度量可以通过递归计算得到,初始条件为
A0(0)=0, A0(s)=-∞, ∀s=0
BN(0)=0, BN(s)=-∞, ∀s=0
类似地,式(2.63)的最终对数后验概率比可以近似为
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0086_0007.jpg?sign=1739962309-bbGFjrzNjjsPaJIKlLqZqIOV03qgLLr6-0-29e92a24a0f6e0fe49de509fcb114ea5)
![](https://epubservercos.yuewen.com/B97B47/16992237205825406/epubprivate/OEBPS/Images/figure_0087_0001.jpg?sign=1739962309-gqOfNs2vu3ZMXRdHdJXQo3EN5aC5PkL5-0-1924ef78b5da1fbc3af43ea06e5fada6)
这意味着通过执行“加―比(较)―选(择)―减”操作便可实现译码功能。
从上述讨论可以看出,Max-Log-MAP算法与双向Viterbi算法等价。如果将max函数用max*代替,就可得到Log-MAP算法。