Viterbi译码
发布时间:2008/12/17 0:00:00 访问次数:1495
对于卷积码的解码方法中,viterbi译码算法是被应用的最广泛的译码算法。是一种最大似然译码算法(mld,maximu likelihooddecoding)。它接收输人的信息序列后,寻找任何可能的路径值,而后找一条最佳路径值当作解码输出。为了描述viterbi译码算法,常用网格图(trellis diagram,根 据时间的增加将网格图扩充所得到的图形,如图1所示)来表示演算过程。网格图中的节点,代表编码器中的各个状态, 而在其中的分支代表编码器的所有可能的状态转移情况。图1显示为(2,1,3)网格图。
图1 (2,1,3)网l=5时的网格图
此图是l=5时,该(2,1,3)码的状态转移时间关系图,总共有l+m+1个时间单位(节点),以0至l+m标号,其中m =k ̄1为编码存储。若编码器从so(00)状态开始,并且结束于so状态,则最先的m=2个节点(0,1),相应于编码器 由so状态出发往各个状态行进,而最后m2个节点(6,7),相应于编码器由各状态返回到so状态。因而,在开始和最后m 个时间单位,编码器不可能处于任意状态中,而只能处于某些特定状态(如so,sl)中之一,仅仅从第m(2)至第l(5 )节点,编码器可以处于任何状态之中(即4个状态so、s1、s2、s3中之任一个)。编码器从全0的so状态出发,最后叉 回到so状态时所输出的码序列,称为结尾卷积码序列。因此,当送完l段信息序列后,还必须向编码器再送入m段全0序列 ,以迫使编码器回到so状态。
网格图中每一状态有两个输入和两个输出分支。在某一节点i,离开每一状态的虚线分支(下面分支),表示输人编码 器中的信息子组ml=1;而实线分支(上面分支)表示此时刻输人至编码器的信息子组ml=o;每一分支上的2(no)个数 字,表示第i时刻编码器输出的子组01=(cl(1),cl(2)),因此网格图中的每一条路径都对应于不同输入的信息序 列。由于所有可能输人的信息序列共有2k1条不同的路径,相应于编码器输出的2k1个码序列。
viterbi译码算法考虑的是如何去掉不可能成为最大似然选择对象的格形图上的路径,即如果有两条路径到达同一个状 态,则具有最佳度量的路径被选中,称为幸存路径(survtvmgpath)。对所有状态都将进行这样的选路操作,译码器不 断在格形图上深人,通过去除可能性最小的路径实现判决。较早地抛弃不可能的路径从而降低了译码器上实现的复杂度 。omura在1969年证明了viterbi译码算法其实就是最大似然算法。也就是说,选择最优路径可以表述为选择具有最大似 然度量的码字,或者选择具有最小距离的码字。
viterbi译码算法中硬判决viterbi译码和软判决viterbi译码的性能差异。由于对模拟信号的处理比较复杂,因此在软 判决译码之前,一般先要对接收序列进行量化。实际上,可以将硬判决译码看做软判决译码的特殊情况,即采用了1比特 量化。而软判决采用的是多比特量化。在理想的软判决情况下,信道接收值直接用于译码器。相应地,卷积码的viterbi 译码也有硬判决viterbi译码和软判决viterbi译码两种译码方式。从仿真的结果来看,对于高斯信道来说,8级量化比2级量 化的信噪比提高了大约2db,这说明了为了获得相同的比特差错性能,8级软判决需要的ec/no比硬判决低2db,模拟装置 比2级量化的性能提高2.2db;因此,8级量化比无穷级量化的性能损失了仅0.2db。由于这个原因,量化级超过8级只能 获得较少的性能提高。因此,软判决viterbi译码算法一般采用3比特量化,它比硬判决viterbi算法所要处理的数据量要 多3倍。可见,软判决译码的代价是译码器所需存储量的增大。
卷积码的编码码字序列c是输入信息序列m与编码器冲激响应g卷积的结果。码字序列c经过信号传输映射并送至有噪信道 传输,在接收端得到接收序列r。viterbi译码算法就是利用接收序列r,根据最大似然估计准则来得到估计的码字序列y 。即寻找在接收序列r的条件下使条件概率p(r/y)取得最大值时所对应的码字序列y。序列y必须取自许用码字集合。
对于码率为r的(no,k0,m)卷积码,在每个时间单位并行输人k0个码元,同时并行输出no个码元。一般输人序列表示为:
其中下标中的m表示卷积码编码器中寄存单元的个数,l表示输入信息序列的长度。事实上,最后增加的m个码元为零码 元,目的是得到结尾码字,即使编码器在编码结束时的状态回到初始全零状态。相应的接收序列表示为:
类似地,接收序列r和估计序列y也有类似的表示形式:
对于最大似然译码,viterbi算法选择使p(r/y)最大的y作为估计序列。如
对于卷积码的解码方法中,viterbi译码算法是被应用的最广泛的译码算法。是一种最大似然译码算法(mld,maximu likelihooddecoding)。它接收输人的信息序列后,寻找任何可能的路径值,而后找一条最佳路径值当作解码输出。为了描述viterbi译码算法,常用网格图(trellis diagram,根 据时间的增加将网格图扩充所得到的图形,如图1所示)来表示演算过程。网格图中的节点,代表编码器中的各个状态, 而在其中的分支代表编码器的所有可能的状态转移情况。图1显示为(2,1,3)网格图。
图1 (2,1,3)网l=5时的网格图
此图是l=5时,该(2,1,3)码的状态转移时间关系图,总共有l+m+1个时间单位(节点),以0至l+m标号,其中m =k ̄1为编码存储。若编码器从so(00)状态开始,并且结束于so状态,则最先的m=2个节点(0,1),相应于编码器 由so状态出发往各个状态行进,而最后m2个节点(6,7),相应于编码器由各状态返回到so状态。因而,在开始和最后m 个时间单位,编码器不可能处于任意状态中,而只能处于某些特定状态(如so,sl)中之一,仅仅从第m(2)至第l(5 )节点,编码器可以处于任何状态之中(即4个状态so、s1、s2、s3中之任一个)。编码器从全0的so状态出发,最后叉 回到so状态时所输出的码序列,称为结尾卷积码序列。因此,当送完l段信息序列后,还必须向编码器再送入m段全0序列 ,以迫使编码器回到so状态。
网格图中每一状态有两个输入和两个输出分支。在某一节点i,离开每一状态的虚线分支(下面分支),表示输人编码 器中的信息子组ml=1;而实线分支(上面分支)表示此时刻输人至编码器的信息子组ml=o;每一分支上的2(no)个数 字,表示第i时刻编码器输出的子组01=(cl(1),cl(2)),因此网格图中的每一条路径都对应于不同输入的信息序 列。由于所有可能输人的信息序列共有2k1条不同的路径,相应于编码器输出的2k1个码序列。
viterbi译码算法考虑的是如何去掉不可能成为最大似然选择对象的格形图上的路径,即如果有两条路径到达同一个状 态,则具有最佳度量的路径被选中,称为幸存路径(survtvmgpath)。对所有状态都将进行这样的选路操作,译码器不 断在格形图上深人,通过去除可能性最小的路径实现判决。较早地抛弃不可能的路径从而降低了译码器上实现的复杂度 。omura在1969年证明了viterbi译码算法其实就是最大似然算法。也就是说,选择最优路径可以表述为选择具有最大似 然度量的码字,或者选择具有最小距离的码字。
viterbi译码算法中硬判决viterbi译码和软判决viterbi译码的性能差异。由于对模拟信号的处理比较复杂,因此在软 判决译码之前,一般先要对接收序列进行量化。实际上,可以将硬判决译码看做软判决译码的特殊情况,即采用了1比特 量化。而软判决采用的是多比特量化。在理想的软判决情况下,信道接收值直接用于译码器。相应地,卷积码的viterbi 译码也有硬判决viterbi译码和软判决viterbi译码两种译码方式。从仿真的结果来看,对于高斯信道来说,8级量化比2级量 化的信噪比提高了大约2db,这说明了为了获得相同的比特差错性能,8级软判决需要的ec/no比硬判决低2db,模拟装置 比2级量化的性能提高2.2db;因此,8级量化比无穷级量化的性能损失了仅0.2db。由于这个原因,量化级超过8级只能 获得较少的性能提高。因此,软判决viterbi译码算法一般采用3比特量化,它比硬判决viterbi算法所要处理的数据量要 多3倍。可见,软判决译码的代价是译码器所需存储量的增大。
卷积码的编码码字序列c是输入信息序列m与编码器冲激响应g卷积的结果。码字序列c经过信号传输映射并送至有噪信道 传输,在接收端得到接收序列r。viterbi译码算法就是利用接收序列r,根据最大似然估计准则来得到估计的码字序列y 。即寻找在接收序列r的条件下使条件概率p(r/y)取得最大值时所对应的码字序列y。序列y必须取自许用码字集合。
对于码率为r的(no,k0,m)卷积码,在每个时间单位并行输人k0个码元,同时并行输出no个码元。一般输人序列表示为:
其中下标中的m表示卷积码编码器中寄存单元的个数,l表示输入信息序列的长度。事实上,最后增加的m个码元为零码 元,目的是得到结尾码字,即使编码器在编码结束时的状态回到初始全零状态。相应的接收序列表示为:
类似地,接收序列r和估计序列y也有类似的表示形式:
对于最大似然译码,viterbi算法选择使p(r/y)最大的y作为估计序列。如
上一篇:DSP配置头文件
上一篇:Viterb译码RS编码