gmd驿码c语言编程,线性分组码的软判决译码算法:GMD和Chase

GMD算法由Forney于1966年提出。GMD译码算法是一种简单优雅的软判决译码算法。对于最小距离为dmin的(n,

k)线性分组码,若2v+e<=dmin-1,则错误-删除译码算法可以纠正v个错误和e个删除的所有组合。GMD算法考虑e<=dmin-1个删除出现在dmin-1个最不可靠的位置上的所有情况,因为这些位置是最可能出错的位置。算法描述如下:

根据接收序列r得到硬判决接收序列z,并对z的每一个符号分配一个可靠性值。

修正序列z,方法为:如果dmin为偶数,则删除最不可靠的位置,或者删除最不可靠的三个位置,……,或者删除最不可靠的dmin-1个位置;如果dmin为奇数,则不删除任何位置,或者删除最不可靠的两个位置,……,或者删除最不可靠的dmin个位置。

使用错误-删除译码算法对上述所有修正的可能情况进行译码。

计算每个候选码字的软判决译码度量,选取最可能的码字作为最后的译码结果。

注意不是所有的修正后,都能译码成功。

对于R-S和BCH码,Berlekamp-Massey等代数译码算法只能接受硬判决输入,而代数译码算法的纠错能力受限于自由距离。具体的说,如果自由距离为d,则最多可以纠floor(d/2)个符号错误。对于二进制BCH码,这就意味着floor(d/2)个比特错误;对于R-S码,意味着floor(d/2)个Galois域符号错误。

为了采用软判决译码,引入错误模式的概念。将硬判决得到的接收码字与错误模式异或得到扰动后的码字,对该码字进行代数译码,根据译码结果再去掉错误模式的影响得到最后的译码结果,并对译码结果计算其软量。软判决译码显然不会只包含一个错误模式,而是包含许多个。对于每种错误模式,都按照上述过程计算其软量,挑选软量最大的那种结果做为最后的译码结果。软判决算法考虑码间距最大不超过d-1的码字集合,由于代数译码最多可以纠floor(d/2)个符号错误,所以错误模式的重量最大为floor(d/2)。

Chase算法是常用的软判决译码算法。Chase一共提供了三种算法:

Chase-1的错误模式重量均为floor(d/2),设码长为N,则这样的错误模式一共有[N choose

floor(d/2)]种。

Chase-2的错误模式只考虑硬判决码字中最不可靠的floor(d/2)个位置,这些位置上既可以取0(不扰动),也可以取1(扰动),一共有2^(floor(d/2))种。

Chase-3只考虑floor(d/2+1)种错误模式。如果d为偶数,则这些错误模式包括最不可靠的1位取1,最不可靠的3位取1,……,最不可靠的d-1位取1;如果d为奇数,则包括最不可靠的0位取1,最不可靠的2位取1,……,最不可靠的d-1位取1。

显然考虑的错误模式越多,译码性能越好,但是复杂度可能会显著提高。考虑到复杂度的缘故,Chase-3算法是最常用的。注意到,由于错误模式会人为纠正部分错误,尽管代数译码的性能不变,算法能纠正的错误个数实际上变多了,这就是Chase软判决译码算法比传统的代数译码算法性能好的原因。不过,算法性能的提高是以增加译码复杂度为代价的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值