BCJR 论文翻译

BCJR 论文翻译

L. R. Bahl, J. Cocke, F,Jelinek, and J. Raviv, Optimal decoding of linear codes for minimizing symbol error rate, IEEE Trans. Inform. Theory, 1974; 20(3) :284~287. DOI: 10.1109/TIT.1974.1055186

最小化符号错误率的线性码的最优译码

摘要

考虑了通过离散无记忆(DMC, discrete memoryless channel)信道观测到的马尔可夫源的状态和转移的后验概率估计的一般问题。以最小化符号错误概率解线性码和卷积码被证明是这个问题的一个特例。导出了一种最优解码算法。

可以看到 BCJR 算法是适用于马尔可夫源通过DMC信道,使状态和转移的后验概率最小化这种情况

一、引言

Viterbi 算法是一种对卷积码来说最小化码字错误概率的最大似然译码方法。然而,该算法并不一定使得符号(或比特)错误的概率最小化。本文,我们推导出了线性码最小化符号错误概率的最优译码方法。

我们解决的是更一般的问题,即估计通过DMC噪声信道,观测到的Markov源的状态和转移的后验概率。线性码的译码算法被证明是该问题的一个特例。

我们推导的算法在概念上与Chang和Hancock去除码间串扰的方法相似。Baum和Petrie的一些工作也与这个问题有关。McAdam等也独立开发了与该对应关系类似的算法。

二、一般性问题

考虑图1的传输情况。

假设信源为离散时间有限状态的 Markov 过程。Markov 源的 M 个不同状态用整数 m 进行索引, m = 0 , 1 , … , M − 1 m=0,1,\dots,M-1 m=0,1,,M1。设Markov 源在 t t t 时刻的状态为 S t S_t St,其输出为 X t X_t Xt,定义一个从 t t t t ′ t' t 的序列为信源状态扩展 S t t ′ = S t , S t + 1 , ⋯   , S t ′ S_t^{t'} = {S_t},{S_{t + 1}}, \cdots ,{S_{t'}} Stt=St,St+1,,St,对应的输出序列为 X t t ′ = X t , X t + 1 , ⋯   , X t ′ X_t^{t'} = {X_t},{X_{t + 1}}, \cdots ,{X_{t'}} Xtt=Xt,Xt+1,,Xt

Markov 源的状态转移由转移概率决定
p t ( m ∣ m ′ ) = P r { S t = m ∣ S t − 1 = m ′ } p_{t}(m\mid m^{\prime})=\mathrm{Pr}\{S_{t}=m\mid S_{t-1}=m^{\prime}\} pt(mm)=Pr{St=mSt1=m}
并依概率输出
q t ( X ∣ m ′ , m ) = Pr ⁡ { X t = X ∣ S t − 1 = m ′ ; S t = m } q_{t}(X\mid m^{\prime},m)=\Pr\{X_{t}=X\mid S_{t-1}=m^{\prime};S_{t}=m\} qt(Xm,m)=Pr{Xt=XSt1=m;St=m}
其中 X X X 属于某个有限离散符号集。

Markov源从初始状态 S 0 = O S_{0}=O S0=O 开始,产生一个输出序列 X 1 τ X_1^{\tau} X1τ,终止于终端状态 S τ = O S_{\tau}=O Sτ=O X 1 τ X_1^{\tau} X1τ 是含噪DMC信道的输入,其输出为序列 Y 1 τ = Y 1 , Y 2 , ⋯   , Y τ Y_{1}^{\tau}=Y_{1},Y_{2},\cdots,Y_{\tau} Y1τ=Y1,Y2,,Yτ。DMC信道的转移概率由 R ( ⋅ ∣ ⋅ ) R(\cdot|\cdot) R() 定义,从而对所有的 1 ≤ t ≤ τ 1\leq t\leq\tau 1tτ
P r { Y 1 t ∣ X 1 t } = ∏ j = 1 t R ( Y j ∣ X j ) \mathrm{Pr}\{Y_{1}^{t}\mid X_{1}^{t}\}=\prod_{j=1}^{t}R(Y_{j}\mid X_{j}) Pr{Y1tX1t}=j=1tR(YjXj)
解码器的目标是检测 Y 1 τ Y_{1}^{\tau} Y1τ,并估计 Markov 源状态和转移的后验概率,例如,条件概率
Pr ⁡ { S t = m ∣ Y 1 τ } = Pr ⁡ { S t = m ; Y 1 τ } / P r { Y 1 τ } \Pr\{S_{t}=m\mid Y_{1}{}^{\tau}\}=\Pr\{S_{t}=m;{Y_{1}}^{\tau}\}/\mathrm{Pr}\{Y_{1}{}^{\tau}\} Pr{St=mY1τ}=Pr{St=m;Y1τ}/Pr{Y1τ}

P r { S t − 1 = m ′ ; S t = m ∣ Y 1 τ } = P r { S t − 1 = m ′ ; S t = m ; Y 1 τ } / P r { Y 1 τ } {\rm{Pr}}\{ {S_{t - 1}} = m';{S_t} = m\mid Y_1^\tau \} = {\rm{Pr}}\{ {S_{t - 1}} = m';{S_t} = m;Y_1^\tau \} /{\rm{Pr}}\{ Y_1^\tau \} Pr{St1=m;St=mY1τ}=Pr{St1=m;St=m;Y1τ}/Pr{Y1τ}
对该问题进行图示化的解释是相当有用的。时不变 Markov 源一般用图 2 (a)中的状态转移图来表示。节点是状态,分支代表具有非零概率的转移。如果同时用时间索引 t t t 和状态索引 m m m 对状态进行索引,我们得到了图 2 (b)的"trellis"图。trellis 图显示了状态序列的时间进程。对于每一个状态序列 S 1 τ S_1^{\tau} S1τ 都有一条唯一的路径穿过 trellis 图,反之亦然。

在这里插入图片描述

BCJR图2

如果 Markov 信源是时变的,那么我们就不能用状态转移图来表示它;然而,显而易见的是,我们可以为其状态序列构造一个网格。

与网格中的每个节点相关联的是对应的后验概率 P r { S t = m ∣ Y 1 τ } {\rm{Pr}}\{S_{t}=m\mid Y_{1}^{\tau}\} Pr{St=mY1τ},与网格中每个分支相关联的则是对应的后验概率 P r { S t − 1 = m ′ ; S t = m ∣ Y 1 τ } \mathrm{Pr}\{S_{t-1}=m^{\prime};S_{t}=m\mid Y_{1}^{\tau}\} Pr{St1=m;St=mY1τ}。译码器的目标是examine Y 1 τ Y_{1}^{\tau} Y1τ 并计算这些后验概率。

为了便于阐述,联合概率的推导更为简单
λ t ( m ) = P r { S t = m ; Y 1 τ } \lambda_{t}(m)=\mathrm{Pr}\{S_{t}=m;Y_{1}^{\tau}\} λt(m)=Pr{St=m;Y1τ}
以及
σ t ( m ′ , m ) = P r { S t − 1 = m ′ ; S t = m ; Y 1 τ } \sigma_{t}(m^{\prime},m)=\mathrm{Pr}\{S_{t-1}=m^{\prime};S_{t}=m;Y_{1}^{\tau}\} σt(m,m)=Pr{St1=m;St=m;Y1τ}
因为,对于给定的 Y 1 τ Y_{1}^{\tau} Y1τ P r { Y 1 τ } {\rm{Pr}}\{ Y_{1}^{\tau}\} Pr{Y1τ} 是一个常数,可以将 λ t ( m ) \lambda_{t}(m) λt(m) σ t ( m ′ , m ) \sigma_{t}(m^{\prime},m) σt(m,m) 除以 P r { Y 1 τ } {\rm{Pr}}\{ Y_{1}^{\tau}\} Pr{Y1τ} 得到公式 (4) 和 (5).或者,我们可以将 λ t ( m ) \lambda_{t}(m) λt(m) σ t ( m ′ , m ) \sigma_{t}(m^{\prime},m) σt(m,m) 归一化到 1 1 1,能得到相同的结果。我们现在推导出获得概率 λ t ( m ) \lambda_{t}(m) λt(m) σ t ( m ′ , m ) \sigma_{t}(m^{\prime},m) σt(m,m) 的方法。

定义概率函数
α t ( m ) = P r { S t = m ; Y 1 t } β t ( m ) = P r { Y t + 1 t ∣ S t = m } γ t ( m ′ , m ) = P r { S t = m ; Y t ∣ S t − 1 = m ′ } \begin{aligned} \alpha_t(m)&=\mathrm{Pr}\{S_t=m;Y_1^t\}\\\\ \beta_t(m)&=\mathrm{Pr}\{Y_{t+1}^t\mid S_t=m\}\\\\ \gamma_t(m^{\prime},m)&=\mathrm{Pr}\{S_t=m;Y_t\mid S_{t-1}=m^{\prime}\}\end{aligned} αt(m)βt(m)γt(m,m)=Pr{St=m;Y1t}=Pr{Yt+1tSt=m}=Pr{St=m;YtSt1=m}
那么
λ t ( m ) = P r { S t = m ; Y 1 t } ⋅ P r { Y t + 1 τ ∣ S t = m ; Y 1 t } = α t ( m ) ⋅ P r { Y t + 1 τ ∣ S t = m } = α t ( m ) ⋅ β t ( m ) . \begin{aligned} \lambda_{t}(m)& =\mathrm{Pr}\{S_{t}=m;{Y}_{1}^{t}\}\cdot\mathrm{Pr}\{{Y}_{t+1}^{\tau}\mid\boldsymbol{S}_{t}=m;{Y}_{1}^{t}\} \\ &=\alpha_{t}(m)\cdot\mathrm{Pr}\{Y_{t+1}^{\tau}\mid S_{t}=m\} \\ &=\alpha_{t}(m)\cdot\beta_{t}(m). \end{aligned} λt(m)=Pr{St=m;Y1t}Pr{Yt+1τSt=m;Y1t}=αt(m)Pr{Yt+1τSt=m}=αt(m)βt(m).
中间等式由Markov性质可知,若 S t S_t St 已知,则 t t t 时刻后的事件不依赖于 Y 1 t Y_1^t Y1t

类似的
σ t ( m ′ , m ) = P r { S t − 1 = m ′ ; S t = m ; Y 1 τ } = P r { S t − 1 = m ′ ; S t = m ; Y 1 t − 1 ; Y t ; Y t + 1 τ } = P r { S t − 1 = m ′ ; S t = m ; Y 1 t − 1 ; Y t } ⋅ P r { Y t + 1 τ ∣ S t − 1 = m ′ ; S t = m ; Y 1 t − 1 ; Y t } = P r { S t − 1 = m ′ ; Y 1 t − 1 } ⋅ P r { S t = m ; Y t ∣ S t − 1 = m ′ ; Y 1 t − 1 } ⋅ P r { Y t + 1 τ ∣ S t = m } = P r { S t − 1 = m ′ ; Y 1 t − 1 } ⋅ P r { S t = m ; Y t ∣ S t − 1 = m ′ } ⋅ P r { Y t + 1 τ ∣ S t = m } = α t − 1 ( m ′ ) ⋅ γ t ( m ′ , m ) ⋅ β t ( m ) \begin{array}{l} {\sigma _t}(m',m)\\ = {\rm{Pr}}\{ {S_{t - 1}} = m';{S_t} = m;Y_1^\tau \} \\ = {\rm{Pr}}\{ {S_{t - 1}} = m';{S_t} = m;Y_1^{t - 1};{Y_t};Y_{t + 1}^\tau \} \\ = {\rm{Pr}}\{ {S_{t - 1}} = m';{S_t} = m;Y_1^{t - 1};{Y_t}\} \cdot {\rm{Pr}}\{ \left. {Y_{t + 1}^\tau } \right|{S_{t - 1}} = m';{S_t} = m;Y_1^{t - 1};{Y_t}\} \\ = {\rm{Pr}}\{ {S_{t - 1}} = m';Y_1^{t - 1}\} \cdot {\rm{Pr}}\{ {S_t} = m;{Y_t}|{S_{t - 1}} = m';Y_1^{t - 1}\} \cdot {\rm{Pr}}\{ Y_{t + 1}^\tau \mid {S_t} = m\} \\ = {\rm{Pr}}\{ {S_{t - 1}} = m';Y_1^{t - 1}\} \cdot {\rm{Pr}}\{ {S_t} = m;{Y_t}|{S_{t - 1}} = m'\} \cdot {\rm{Pr}}\{ Y_{t + 1}^\tau \mid {S_t} = m\} \\ = {\alpha _{t - 1}}(m') \cdot {\gamma _t}(m',m) \cdot {\beta _t}(m) \end{array} σt(m,m)=Pr{St1=m;St=m;Y1τ}=Pr{St1=m;St=m;Y1t1;Yt;Yt+1τ}=Pr{St1=m;St=m;Y1t1;Yt}Pr{Yt+1τ St1=m;St=m;Y1t1;Yt}=Pr{St1=m;Y1t1}Pr{St=m;YtSt1=m;Y1t1}Pr{Yt+1τSt=m}=Pr{St1=m;Y1t1}Pr{St=m;YtSt1=m}Pr{Yt+1τSt=m}=αt1(m)γt(m,m)βt(m)
对于 t = 1 , 2 , ⋯   , τ t=1,2,\cdots,\tau t=1,2,,τ
α t ( m ) = ∑ m ′ = 0 M − 1 P r { S t − 1 = m ′ ; S t = m ; Y 1 t } = ∑ m ′ P r { S t − 1 = m ′ ; Y 1 t − 1 } ⋅ P r { S t = m ; Y t ∣ S t − 1 = m ′ } = ∑ m ′ α t − 1 ( m ′ ) ⋅ γ t ( m ′ , m ) . \begin{aligned} \alpha_{t}(m)& =\sum_{m^{\prime}=0}^{M-1}\mathrm{Pr}\{S_{t-1}=m^{\prime};S_{t}=m;{Y_{1}^{t}}\} \\ &=\sum_{m^{\prime}}\mathrm{Pr}\{S_{t-1}=m^{\prime};Y_{1}^{t-1}\}\cdot\mathrm{Pr}\{S_{t}=m;Y_{t}\mid S_{t-1}=m^{\prime}\} \\ &=\sum_{m^{\prime}}\alpha_{t-1}(m^{\prime})\cdot\gamma_{t}(m^{\prime},m).& \end{aligned} αt(m)=m=0M1Pr{St1=m;St=m;Y1t}=mPr{St1=m;Y1t1}Pr{St=m;YtSt1=m}=mαt1(m)γt(m,m).
对于 t = 0 t=0 t=0,我们有边界条件
α 0 ( 0 ) = 1 , α 0 ( m ) = 0 , for  m ≠ 0 { {{\alpha _0}(0) = 1},\\ {{\alpha _0}(m) = 0,\quad {\text{for }}m \ne 0} } α0(0)=1,α0(m)=0,for m=0
类似的,对于 t = 1 , 2 , ⋯   , τ − 1 t=1,2,\cdots,\tau-1 t=1,2,,τ1
β t ( m ) = ∑ m ′ = 0 M − 1 P r { S t + 1 = m ′ ; Y t + 1 τ ∣ S t = m } = ∑ m ′ P r { S t + 1 = m ′ ; Y t + 1 ∣ S t = m } ⋅ P r { Y t + 2 τ ∣ S t + 1 = m ′ } = ∑ m ′ β t + 1 ( m ′ ) ⋅ γ t + 1 ( m , m ′ ) . \begin{aligned} \beta_{t}(m)& =\sum_{m^{\prime}=0}^{M-1}\mathrm{Pr}\{S_{t+1}=m^{\prime};Y_{t+1}^{\tau}|S_{t}=m\} \\ &=\sum_{m^{\prime}}\mathrm{Pr}\left\{S_{t+1}=m^{\prime};Y_{t+1}\mid S_{t}=m\right\}\cdot\mathrm{Pr}\left\{Y_{t+2}^{\tau}\mid S_{t+1}=m^{\prime}\right\} \\ &=\sum_{m^{\prime}}\beta_{t+1}(m^{\prime})\cdot\gamma_{t+1}(m,m^{\prime}).& \end{aligned} βt(m)=m=0M1Pr{St+1=m;Yt+1τSt=m}=mPr{St+1=m;Yt+1St=m}Pr{Yt+2τSt+1=m}=mβt+1(m)γt+1(m,m).
合适的边界条件为
β τ ( 0 ) = 1 β τ ( m ) = 0 , for  m ≠ 0 . {{\beta _\tau}(0) = 1}\\ {{\beta _\tau}(m) = 0,\quad {\text{for }}m \ne 0} . βτ(0)=1βτ(m)=0,for m=0.
由式 (11) 和式 (13) 可知, α t ( m ) \alpha_{t}(m) αt(m) β t ( m ) \beta_{t}(m) βt(m) 是递推可得的。现在
γ t ( m ′ , m ) = ∑ X P r { S t = m ∣ S t − 1 = m ′ } ⋅ P r { X t = X ∣ S t − 1 = m ′ , S t = m } ⋅ P r { Y t ∣ X } = ∑ X p t ( m ∣ m ′ ) ⋅ q t ( X ∣ m ′ , m ) ⋅ R ( Y t , X ) ( 9 ) \begin{aligned} \gamma_{t}(m^{\prime},m)& =\sum_{X}\mathbf{Pr}\{S_{t}=m\mid S_{t-1}=m^{\prime}\} \\ &\cdot\mathrm{Pr}\{X_{t}=X|S_{t-1}=m^{\prime},S_{t}=m\}\cdot\mathrm{Pr}\{Y_{t}|X\} \\ &=\sum_{\mathbf{X}}p_{t}(m\mid m^{\prime})\cdot q_{t}(X\mid m^{\prime},m)\cdot R(Y_{t},X)\quad(9) \end{aligned} γt(m,m)=XPr{St=mSt1=m}Pr{Xt=XSt1=m,St=m}Pr{YtX}=Xpt(mm)qt(Xm,m)R(Yt,X)(9)
其中,(15) 式的求和为所有可能的输出符号 X X X

现在我们可以概括译码器计算 λ t ( m ) \lambda_{t}(m) λt(m) σ t ( m ′ , m ) \sigma_{t}(m^{\prime},m) σt(m,m) 的操作。

  1. 根据 (12), (14) 式初始化 α 0 ( m ) \alpha_{0}(m) α0(m) β τ ( m ) \beta_{\tau}(m) βτ(m).
  2. 一旦接收到 Y t Y_t Yt,译码器使用 (15) 和 (11) 计算 γ t ( m ′ , m ) \gamma_{t}(m^{\prime},m) γt(m,m) α t ( m ) \alpha_{t}(m) αt(m) 。对于所有的 t t t m m m,存储所获得的 α t ( m ) \alpha_{t}(m) αt(m) 的值.
  3. 在得到完整序列 Y 1 τ Y_1^{\tau} Y1τ 之后,译码器用公式 (13) 递推计算 β t ( m ) \beta_{t}(m) βt(m)。当 β t ( m ) \beta_{t}(m) βt(m) 计算完后,通过公式 (9) (10) 计算 λ t ( m ) \lambda_{t}(m) λt(m) σ t ( m ′ , m ) \sigma_{t}(m^{\prime},m) σt(m,m)

我们现在讨论该算法在线性码译码中的应用。


小结:
该算法针对离散时间有限状态的 Markov 过程,认为信源在 t t t 时刻状态为 S t S_t St,状态转移对应的信源输出为 X t X_t Xt,过DMC信道,信道输出为 Y t Y_t Yt。将需要计算的后验概率 P r { X 1 t ∣ Y 1 t } \mathrm{Pr}\{X_{1}^{t}\mid Y_{1}^{t}\} Pr{X1tY1t} 转化为篱笆图上点和边概率计算,及计算 λ t ( m ) = P r { S t = m ; Y 1 τ } \lambda_{t}(m)=\mathrm{Pr}\{S_{t}=m;Y_{1}^{\tau}\} λt(m)=Pr{St=m;Y1τ} σ t ( m ′ , m ) = P r { S t − 1 = m ′ ; S t = m ; Y 1 τ } \sigma_{t}(m^{\prime},m)=\mathrm{Pr}\{S_{t-1}=m^{\prime};S_{t}=m;Y_{1}^{\tau}\} σt(m,m)=Pr{St1=m;St=m;Y1τ} 并将其转化为计算 α t ( m ) \alpha_{t}(m) αt(m) β t ( m ) \beta_{t}(m) βt(m) γ t ( m ′ , m ) \gamma_{t}(m^{\prime},m) γt(m,m),并推到其快速计算的递推公式。

当问题可以转化为离散时间有限状态的 Markov 过程时,给出 S t S_t St X t X_t Xt Y t Y_t Yt 定义,给出 γ t ( m ′ , m ) \gamma_{t}(m^{\prime},m) γt(m,m) 如何计算, α 0 ( m ) \alpha_{0}(m) α0(m) β τ ( m ) \beta_{\tau}(m) βτ(m)如何初始化,就可以用 BCJR 计算后验概率。

三、在卷积码中的应用

考虑一个整体约束长度为 k 0 v k_0v k0v ,码率为 k 0 / n 0 k_0/n_0 k0/n0 的二进制卷积编码器。 t t t 时刻输入到编码器的是一组码字 I t = ( i t ( 1 ) , i t ( 2 ) , ⋯   , i t ( k 0 ) ) I_{t}=(i_{t}^{(1)},i_{t}^{(2)},\cdots,i_{t}^{(k_{0})}) It=(it(1),it(2),,it(k0)),对应的输出是 X t = ( x t ( 1 ) , ⋯   , x t ( n 0 ) ) X_{t}=({x_{t}}^{(1)},\cdots,{x_{t}}^{(n_{0})}) Xt=(xt(1),,xt(n0))。编码器可以由 k 0 k_0 k0 个移位寄存器实现,每个移位寄存器的长度为 v v v,编码器的状态就是这些寄存器的内容,即最近输入的 v v v 个码字组。将状态表示为 k v kv kv 元组,可以得到
S t = ( s t ( 1 ) , s t ( 2 ) , ⋯   , s t ( k 0 ν ) ) = ( I t , I t − 1 , ⋯   , I t − ν + 1 ) S_{t}=(s_{t}^{(1)},s_{t}^{(2)},\cdots,s_{t}^{(k_{0}\nu)})=(I_{t},I_{t-1},\cdots,I_{t-\nu+1}) St=(st(1),st(2),,st(k0ν))=(It,It1,,Itν+1)
在这里插入图片描述

一般来说,编码器以 S 0 = O S_0=O S0=O 的状态开始。信息序列 I 1 T I_{1}^{T} I1T 是编码器的输入,后面是所有零输入的长度为 v v v 的码块,即 I T + 1 τ = O , O , ⋯   , O I_{T+1}^{\tau}=O,O,\cdots,O IT+1τ=O,O,,O,其中 τ = t + v \tau=t+v τ=t+v ,使得编码器终止在状态 S τ = O S_\tau=O Sτ=O。文献[2]提到的卷积码的网格结构是众所周知的,我们假设读者熟悉它。作为例子,我们在图3中给出了码率为 1 2 \frac{1}{2} 21 v = 2 , τ = 6 v=2,\tau=6 v=2,τ=6 的网格图。网格的转移概率 p t ( m ∣ m ′ ) p_{t}(m\mid m^{\prime}) pt(mm) 由输入统计量决定。一般来说,我们假设所有的输入序列对于 t ≤ T t\leq T tT 都是等概率的,并且由于每个状态都有 2 k o 2^{k_o} 2ko 个可能的转移,所以每个转移概率为 2 − k o 2^{-k_o} 2ko 。对于 t > T t>T t>T,每个状态只可能有一个转移,且转移概率为 1 1 1。输出 X t X_t Xt 是转移的确定函数,因此,对于每个转移,在二进制 n n n 元组的字母表上都有一个 0 − 1 0-1 01 的概率分布 q t ( X ∣ m ′ , m ) q_{t}(X\mid m^{\prime},m) qt(Xm,m)。对于时不变码 q t ( ⋅ ∣ ⋅ ) q_t(\cdot|\cdot) qt() 独立于 t t t。如果输出序列是在具有符号转移概率 r ( ⋅ ∣ ⋅ ) r(\cdot|\cdot) r() 的DMC上发送的,则导出的码字组转移概率为
R ( Y t ∣ X t ) = ∏ j = 1 n 0 r ( y ( j ) ∣ x t ( j ) ) R(Y_{t}\mid X_{t})=\prod_{j=1}^{n_{0}}r(y^{(j)}\mid x_{t}^{(j)}) R(YtXt)=j=1n0r(y(j)xt(j))
其中 Y t = ( y t ( 1 ) , ⋯   , y t ( n 0 ) ) Y_{t}=({y_{t}}^{(1)},\cdots,{y_{t}}^{(n_{0})}) Yt=(yt(1),,yt(n0)) 是接收机在 t t t 时刻接收到的码组。例如,在转移概率为 p c p_c pc 的 BSC 信道中
R ( Y t ∣ X t ) = ( p c ) d ( 1 − p c ) n − d R(Y_{t}\mid X_{t})=(p_{c})^{d}(1-p_{c})^{n-d} R(YtXt)=(pc)d(1pc)nd
其中, d d d X t X_t Xt Y t Y_t Yt 之间的汉明距离。

为了最小化符号错误概率,我们必须从接收序列 Y 1 τ Y_1^\tau Y1τ 中确定最有可能的输入位 i t ( j ) i_t^{(j)} it(j)。我们假设 λ t ( m ) \lambda_{t}(m) λt(m) 根据上一节所讲已经被计算出。设 A t ( j ) A_t^{(j)} At(j)是状态 S t S_t St 的集合,使得 s t ( j ) = 0 s_t^{(j)}=0 st(j)=0。注意到 A t ( j ) A_t^{(j)} At(j) 不依赖于 t t t。则由(16)我们有
s t ( j ) = i t ( j ) , j = 1 , 2 , ⋯   , k 0 s_{t}^{(j)}=i_{t}^{(j)},\quad j=1,2,\cdots,k_{0} st(j)=it(j),j=1,2,,k0
这意味着
Pr { i t ( j ) = 0 ; Y 1 τ } = ∑ S t ∈ A t ( j ) λ t ( m ) . \text{Pr}\{i_{t}^{(j)}=0;Y_{1}^{\tau}\}=\sum_{S_{t}\in A_{t}^{(j)}}\lambda_{t}(m). Pr{it(j)=0;Y1τ}=StAt(j)λt(m).
通过 P r { Y 1 τ } = λ τ ( 0 ) \mathrm{Pr}\{Y_{1}^{\tau}\}=\lambda_{\tau}(0) Pr{Y1τ}=λτ(0) 归一化
Pr { i t ( j ) = 0 ∣ Y 1 τ } = 1 λ t ( 0 ) ∑ S t ∈ A t ( j ) λ t ( m ) \text{Pr}\{i_{t}^{(j)}=0\mid Y_{1}^{\tau}\}=\frac{1}{\lambda_{t}(0)}\sum_{S_{t}\in A_{t}^{(j)}}\lambda_{t}(m) Pr{it(j)=0Y1τ}=λt(0)1StAt(j)λt(m)
如果 P r { i t ( j ) = 0 ∣ Y 1 τ } ≥ 0.5 \mathrm{Pr}\{i_{t}^{(j)}=0|Y_{1}^{\tau}\}\geq0.5 Pr{it(j)=0∣Y1τ}0.5,译码 i t ( j ) = 0 i_{t}^{(j)}=0 it(j)=0,否则 i t ( j ) = 1 i_{t}^{(j)}=1 it(j)=1

有时感兴趣的是确定编码器输出数字的后验概率,即 Pr { x t ( j ) = 0 ∣ Y 1 τ } \text{Pr}\{x_{t}{}^{(j)}=\mathbf{0}\mid Y_{1}{}^{\tau}\} Pr{xt(j)=0Y1τ} 。需要这种概率的一个例子是自举混合译码[6]。设 B t ( j ) B_t^{(j)} Bt(j)是转移 S t − 1 = m ′ → S t = m {S_{t - 1}} = m' \to {S_t} = m St1=mSt=m 的集合,使得该转移上的第 j j j 个输出位 x t ( j ) x_t^{(j)} xt(j) 0 0 0。对于时不变码, B t ( j ) B_t^{(j)} Bt(j) 独立于 t t t ,因此
P r { x t ( j ) = 0 ; Y 1 τ } = ∑ ( m ′ , m ) ∈ B t ( j ) σ t ( m ′ , m ) \mathrm{Pr}\{x_{t}^{(j)}=0;{Y_{1}}^{\tau}\}=\sum_{(m^{\prime},m)\in B_{t}^{(j)}}\sigma_{t}(m^{\prime},m) Pr{xt(j)=0;Y1τ}=(m,m)Bt(j)σt(m,m)
其可以被归一化以给出 Pr { x t ( j ) = 0 ∣ Y 1 τ } \text{Pr}\{x_{t}{}^{(j)}=\mathbf{0}\mid Y_{1}{}^{\tau}\} Pr{xt(j)=0Y1τ} 。我们可以通过对适当的 λ t ( m ) \lambda_{t}(m) λt(m) 求和来获得作为状态函数的任何事件的概率;同样, σ t ( m ′ , m ) \sigma_{t}(m^{\prime},m) σt(m,m)可以用于获得作为转换函数的任何事件的概率。

遗憾的是,该算法需要较大的存储和相当大的计算量。 α t ( m ) \alpha_{t}(m) αt(m) 的所有值都必须被存储,这需要大约 2 k v 0 ⋅ τ 2^{kv_{0}}\cdot\tau 2kv0τ 的存储索引。存储大小随约束长度呈指数增长,随块长度呈线性增长。在确定每个 t t t α t ( m ) \alpha_{t}(m) αt(m)(或 β t ( m ) \beta_{t}(m) βt(m) )时的计算次数是分别为 2 k o 2^{k_o} 2ko 个数的 M ⋅ 2 k o M \cdot {2^{k_o}} M2ko 次乘法和 M M M 次加法。 γ t ( m ′ , m ) \gamma_t(m^{\prime},m) γt(m,m) 的计算非常简单,在实践中最容易通过表查找来完成。因此,在步骤 3) 中重新计算 γ t ( m ′ , m ) \gamma_t(m^{\prime},m) γt(m,m) 比在步骤 2) 中保存它们更容易。计算 λ t ( m ) \lambda_{t}(m) λt(m) 需要对每个时刻 t t t 进行 M M M 次乘法运算,计算输入位的后验概率需要 k 0 M / 2 k_0M /2 k0M/2 次加法运算。相比之下,Viterbi 算法需要计算基本上类似于每个 t t t 时刻具有 M ⋅ 2 k o M \cdot {2^{k_o}} M2ko 加法和 M ⋅ 2 k o M \cdot {2^{k_o}} M2ko 次比较的 γ t ( m ′ , m ) \gamma_t(m^{\prime},m) γt(m,m) 的计算量。鉴于算法的复杂性,仅对较短的约束长度和较短的块长度是实用的

四、在分组码的应用

五、评论与概括

最小化码字或符号错误概率的暴力方法是这样的:给定接收序列 Y 1 τ Y_1^{\tau} Y1τ,我们可以为每个码字 X 1 τ X_1^{\tau} X1τ 计算其后验概率 P r { X 1 t ∣ Y 1 t } \mathrm{Pr}\{X_{1}^{t}\mid Y_{1}^{t}\} Pr{X1tY1t}。为了最小化码字错误率,需要我们从所有码字中挑选出 P r { X 1 t ∣ Y 1 t } \mathrm{Pr}\{X_{1}^{t}\mid Y_{1}^{t}\} Pr{X1tY1t} 值最大的码字。为了最小化第 j j j 个输入数字的符号错误概率,我们计算 ∑ P r { X 1 t ∣ Y 1 t } \sum\mathrm{Pr}\{X_{1}^{t}\mid Y_{1}^{t}\} Pr{X1tY1t} ,其中求和覆盖所有第 j j j 个输入数字为 0 0 0 的码字;如果这个求和大于 0.5 0.5 0.5,我们将第 j j j 个输入位译码为 0 0 0。在线性码的情况下,我们可以利用码的状态结构来避免对每个可能的码字计算 P r { X 1 t ∣ Y 1 t } \mathrm{Pr}\{X_{1}^{t}\mid Y_{1}^{t}\} Pr{X1tY1t} 。暴力方法的复杂度与码字个数成正比,即正比于 2 k 2^k 2k。在卷积码 k = k 0 T ≫ k 0 v k=k_{0}T\gg k_{0}v k=k0Tk0v ,使得网格译码方法具有吸引力。在分组码中,只要 r < k r<k r<k,即高码率时,网格译码的方法就具有优势。

本文这种对应关系推导出的算法由于增加了复杂度,不能被认为是维特比译码的一个有吸引力的替代方案。尽管Viterbi译码在误比特率意义上不是最优的,但在大多数感兴趣的应用中,这两种算法的性能实际上是相同的。该算法的主要优点是可以获得信息位和信道的后验概率,这在bootstrap译码等应用中很有用。

算法的许多有趣的推广是可能的,我们指出了几个。首先,可以通过改变 α t ( m ) \alpha_{t}(m) αt(m) β t ( m ) \beta_{t}(m) βt(m) 的初始条件来消除已知源的起始状态和终止状态的限制。其次,通过将状态空间扩展为编码器状态和信道状态的交叉积,可以使该算法适用于所有有限状态信道。最后,向非二进制代码的扩展非常明显。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值