• 比特冗余


    “纠错码”的应用,主要作用是牺牲有效性,换取可靠性。以1/3码率的Turbo码来说,有效位和校验位之比为1:2。

    如果说纠错码的“浪费”是经数学证明所不得不添加的冗余,那么另一种“浪费”则是在物理实现上的无奈:

    无论是在编码还是在组帧时,常见的操作便是“补零”。只是这里补的零在数学上来看不起任何作用,完全没有必要。

    那么“补零”操作的原因是什么呢?这主要是因为在硬件实现时很多东西都是写死了的(电路线已布好)。

    无论是编码器还是组帧结构,一个有效的方法便是以出现概率最大的方式来设计:

    当LDPC编码器设计为(5120,4096)的结构时,对于3456bit的待编码数据就要补640个零以满足编码器输入条件。

    一些特殊情况下,组帧也是按照长帧结构来设计的,发短帧时就不得不通过补零来满足帧结构设计。

    上面提到“以出现概率最大的方式来设计是有效的”,其理论依据便是哈夫曼编码,其设计思想便是码长与其出现概率成反比,即出现概率大的符号用短码,出现概率小的符号用长码,最后得到的总码长的期望值则是较小的和有效的--在通信上有效是指有效率(efficient),而在医学上有效则是指有效果(effective)。

    编码所造成的效率降低可通过“打孔”的方式弥补回来--为达到所需要的码率,在损失一定可靠性的前提下可对编码后的数据进行打孔。这样,在接收端译码前先对打孔处的数据以零填充。考虑到译码采用软判决,零数据就相当于是1bit置信度为0的删除信息。也就是说对于迭代译码的软判决,原本可以“帮助”译码的信息丢失了,导致纠错码性能的降低。虽然零信息帮不上忙,但也不会帮倒忙,因此合适的打孔策略是能满足我们对于性能的需求的。

    尤其需要注意的是,当采用补零的方式进行编码时,自然想到可以对零数据进行打孔,只是在译码时打孔处的数据就不能是用零来填充了,而应以表示零数据的软信息的最大值来填充(比如,8位软信息,取值为-128到127,若软信息取负值时表示零符号,则被打孔处的数据就要以-128来填充)。

    该部分内容可结合另一篇博文来看:https://www.cnblogs.com/achangchang/p/11396958.html

  • 相关阅读:
    无向图最小割Stoer-Wagner算法学习
    centos7下opencv的安装
    problems when installed mysql in linux ubuntu
    gcc内嵌汇编
    python第三方库镜像地址
    docker命令
    搭建小型web服务
    装饰器
    docker-influxdb
    shell基础命令
  • 原文地址:https://www.cnblogs.com/achangchang/p/11403911.html
Copyright © 2020-2023  润新知