首页 > 其他分享 >系统码的编译码与汉明码

系统码的编译码与汉明码

时间:2023-06-14 10:01:48浏览次数:40  
标签:错误 伴随 矩阵 系统 图样 译码 编译 码字 汉明码

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:<https://github.com/timerring/information-theory> 】或者公众号【AIShareLab】回复 信息论 获取。

系统码的编译码

线性分组码的编码器

  1. 如图硬件实现。生成矩阵为

系统码的编译码与汉明码_码字

系统码的编译码与汉明码_码字_02

  1. 查表。(软件)
  2. 矩阵乘法。(软件)

线性分组码的译码器

所有编码符合监督方程, 监督方程在译码中非常重要。

对二元信道, 传输后 系统码的编译码与汉明码_汉明码_03 , 向量 系统码的编译码与汉明码_码字_04 称为错误图样系统码的编译码与汉明码_译码器_05 表示第 i 位错误。

如果译码器能推测出错误图样e, 那它就可以给出译码结果为

系统码的编译码与汉明码_汉明码_06

伴随式校验(Syndrome Testing)

系统码的编译码与汉明码_译码器_07 是一个接收矢量,由传输的系统码的编译码与汉明码_译码器_08产生。可以将 系统码的编译码与汉明码_汉明码_09 写成系统码的编译码与汉明码_汉明码_03

其中 系统码的编译码与汉明码_码字_04 是由信道引入的错误矢量(图样)。

系统码的编译码与汉明码_码字_12系统码的编译码与汉明码_汉明码_13 元组空间中存在 系统码的编译码与汉明码_译码器_14 个非零的潜在错误图样。(为什么?)

系统码的编译码与汉明码_汉明码_09 的伴随式 (或称校正子) 定义为

系统码的编译码与汉明码_码字_16

  • 系统码的编译码与汉明码_译码器_17 是有效码字.
  • 若 $ \mathbf{y}$ 包含可检测到的错误,伴随式 系统码的编译码与汉明码_汉明码_18 ;
  • 若 $ \mathbf{y}$ 包含可以纠正的错误, 系统码的编译码与汉明码_码字_19 将由特殊的非零值来指示特定的错误图样。
    线性分组码的一个重要性质是,(可纠正的)错误图样与伴随式一一对应。

系统码的编译码与汉明码_汉明码_20

(7,4) 循环码校验矩阵如下所示, 设发送码字为 系统码的编译码与汉明码_汉明码_21 , 接收矢量为 系统码的编译码与汉明码_码字_22 试求伴随式矢量 系统码的编译码与汉明码_汉明码_23 并证明它等于 $ \mathrm{eH}^{\mathrm{T}}$

校验矩阵: $H=\left(\begin{array}{lllllll}0 & 1 & 1 & 1 & 1 & 0 & 0 \\ 1 & 1 & 0 & 1 & 0 & 1 & 0 \\ 1 & 0 & 1 & 1 & 0 & 0 & 1\end{array}\right) $

注意:监督矩阵必须具有两个性质:

  1. H中没有全0列,否则的话,相应码字位置上的错误就无法影响伴随式,因而无法检测。
  2. H中的所有列是唯一的,如果H有两列相同,那么对应这两列发生的错码位置将无法识别。

例:已知 (7,3) 线性分组码的监督矩阵为

系统码的编译码与汉明码_译码器_24

信道输出端的接收矢量为

系统码的编译码与汉明码_译码器_25

请求出 系统码的编译码与汉明码_汉明码_09 的伴随式。并估计最有可能的译码结果。

解: 系统码的编译码与汉明码_译码器_27 所有可能的错误图样有(1001001)(1010100) (1110011) (0000111) (0011010) (0100000) (0111101) 取码重最小即可能性最大的错误图样 (0100000) 为可纠正的错误图样。译码结果

系统码的编译码与汉明码_汉明码_28

纠错

伴随式不仅可以检测错误, 而且可以同时纠正错误, 因 为可纠正的错误图样与伴随式之间一一对应。

在硬判决译码中, 一般采用标准阵(standard array) 来完成纠错的设计。

标准阵包含了 系统码的编译码与汉明码_汉明码_29 个所有的可能接收矢量. 其第一行以全 0 码 字开始,包括了所有码字, 而第一列包括了所有可纠正的错误图样 (一般选汉明重量最小的元素)。每行称为一个陪集 (coset), 由第一列的错误图样 (称为陪集首)及其干扰的码字组成。 系统码的编译码与汉明码_译码器_30 码的标准阵如下:

系统码的编译码与汉明码_译码器_31

注意:码字 系统码的编译码与汉明码_汉明码_32 (全0码)起两个作用:既是其中的一个码字, 也是错误图样 系统码的编译码与汉明码_码字_33 ,代表没有错误, 即 系统码的编译码与汉明码_汉明码_34 .

译码机制要求将每个有错的矢量用此矢量同列的最顶端的有效码字代替。

假设一个码字 系统码的编译码与汉明码_译码器_35 通过一个噪声信道, 接收矢量为量将被正确译码为码字 系统码的编译码与汉明码_译码器_35 。 如果错误图样不是一个陪集首, 那么将会导致译码错误。

陪集的伴随式

陪集中的每一个元素具有相同的伴随式。伴随式用于估计错误图样。

纠错译码
  1. 计算 系统码的编译码与汉明码_汉明码_09 的伴随式 系统码的编译码与汉明码_汉明码_23 .
  2. 定位错误图样 (陪集首) 系统码的编译码与汉明码_译码器_39 , 它的伴随式与 系统码的编译码与汉明码_码字_40 相等。
  3. 假设错误图样是由信道衰落引起的。
  4. 错误接收的矢量或码字表示为 系统码的编译码与汉明码_汉明码_41 。通过减去其中已识别出的错误来恢复正确码字。

Example: (6,3)线性分组码如下表所示,求它的生成矩阵和监督矩阵。

系统码的编译码与汉明码_汉明码_42

其生成矩阵为

系统码的编译码与汉明码_码字_43

监督矩阵为

系统码的编译码与汉明码_码字_44

(6,3)码的标准阵如下。

系统码的编译码与汉明码_译码器_45

根据标准阵,可以得到错误图样与伴随式的一一对应关系,可用来译码,同时完成纠错。

系统码的编译码与汉明码_译码器_46

在线性分组码中,\[全0码]码字一定是有效码字。

已知接收矢量y=001110.请问译码器译码所得是什么?

系统码的编译码与汉明码_码字_47

S = 100,监督矩阵为

系统码的编译码与汉明码_码字_44

S=100

C=101110

U=110

译码方法与译码电路

(1) 在设计阶段:

对每一种可能伴随式的取值确定出它所对应的可纠正错误图样,存储为表格。

(2)译码器运行时:

当接收端收到y后,计算伴随式S,用S查可纠正错误图样表,根据查表结果纠正错误。

“查错误图样表”这个环节往往可以进行逻辑化简,比如在(7.4)码的情形下,“查错误图样表”是用3比特地址查8种结果,所有结果除全0外,只有1个1。这样的电路类似38译码器。

(7,4)码错误图样与伴随式表

系统码的编译码与汉明码_汉明码_49

系统码的编译码与汉明码_译码器_50

汉明码

一能纠正单个随机错误、编码效率最高的线性分组码

  • 主要参数:码长 系统码的编译码与汉明码_码字_51 ;
  • 信息位: 系统码的编译码与汉明码_译码器_52 ;
  • 监督位: 系统码的编译码与汉明码_汉明码_53 , 且 系统码的编译码与汉明码_译码器_54
  • 最小距离 : 系统码的编译码与汉明码_码字_55
  • 汉明码的非全 0 伴随式有 系统码的编译码与汉明码_汉明码_56 个, 每个伴随式对应一种单比特错误图样, 因此每个伴随式就是监督矩阵 系统码的编译码与汉明码_译码器_57 的一个列, 而 系统码的编译码与汉明码_译码器_57 的所有列构成了全 0 以外的所有可能的 系统码的编译码与汉明码_译码器_59 比特向量。

如 m=3 , 则可以得到一个 系统码的编译码与汉明码_码字_60 的 (7,4) 汉明码, 其 系统码的编译码与汉明码_译码器_57 矩阵的列由所有非 0 三重组成:

系统码的编译码与汉明码_码字_62

由于任意两列线性无关 (d=3, t=1) , 故能纠任意单个随机错误(监督矩阵的特性 d )。 系统码的编译码与汉明码_译码器_63 .

高效率纠错码。广泛应用于RAM中。

总结

线性分组码

①编码:生成矩阵编码

②译码:校验矩阵,错误图样,伴随式译码,标准阵

③生成矩阵与监督矩阵的关系

④汉明码

参考文献:

  1. Proakis, John G., et al. Communication systems engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  2. Proakis, John G., et al. SOLUTIONS MANUAL Communication Systems Engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  3. 周炯槃. 通信原理(第3版)\[M]. 北京:北京邮电大学出版社, 2008.
  4. 樊昌信, 曹丽娜. 通信原理(第7版) \[M]. 北京:国防工业出版社, 2012.

标签:错误,伴随,矩阵,系统,图样,译码,编译,码字,汉明码
From: https://blog.51cto.com/u_15736437/6475613

相关文章

  • minio分布式文件存储系统
    1什么是minio?MinlO是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinlO是一个非常轻量的......
  • 基于Matlab实现DS-CDMA通信系统仿真
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • m基于FPGA的AGC自适应增益控制系统verilog实现,包含testbench
    1.算法仿真效果Vivado2019.2仿真结果如下:放大后可以看到:2.算法涉及理论知识概要数字AGC(AutomaticGainControl)是一种广泛应用于通信系统中的自动增益控制技术。它可以自动调节接收信号的增益,以使信号的强度保持在适当的范围内,从而保证接收到的信号质量。数字AGC广泛应......
  • SSM+Tomcat+J2EE开发的药店管理系统
    基于SSM的药店管理系统项目介绍......
  • m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
    1.算法仿真效果本系统进行了两个平台的开发,分别是:Vivado2019.2Quartusii18.0+ModelSim-Altera6.6dStarterEdition其中Vivado2019.2仿真结果如下:Quartusii18.0+ModelSim-Altera6.6dStarterEdition的测试结果如下:对比matlab结果:2.算法涉及理论知识概要CRC(CyclicR......
  • m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
    1.算法仿真效果本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:   Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:  对比matlab结果:  2......
  • 交叉编译之为RISC v平台编译x86的gcc
    读者应该比较了解交叉编译的概念,一般都是在x86平台下使用gcc编译出其它平台的代码,这里我尝试在RISCv平台下编译出可以在x86平台使用的代码。环境在x86_64平台上编译riscv64-unknown-linux-gnu-gcc编译器,网上教程很多不再赘述在x86_64平台上使用riscv64-unknown-linux-......
  • 关于mkfs.xfs创建xfs文件系统指定block-size为512字节时报错-Minimum block size for
    今天笔者看到mkfs.xfs命令的帮助文档手册时,有如下一段内容可以通过-bsize=value的方式指定block的大小,默认值是4096bytes,最小为512,最大为65536Thedefaultvalueis4096bytes(4KiB),  theminimumis512,andthemaximumis65536(64KiB).于是笔者就尝试,创建x......
  • 关于Linux系统中xfs文件系统的创建方法及过程
    XFS一种高性能的日志文件系统,最早于1993年,由SiliconGraphics为他们的IRIX操作系统而开发,是IRIX5.3版的默认文件系统。2000年5月,SiliconGraphics以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux内核上。XFS特别擅长处理大文件,同时提供平滑的数据传输。XFS最初是......
  • m基于FPGA的AGC自适应增益控制系统verilog实现,包含testbench
    1.算法仿真效果Vivado2019.2仿真结果如下:  放大后可以看到:   2.算法涉及理论知识概要       数字AGC(AutomaticGainControl)是一种广泛应用于通信系统中的自动增益控制技术。它可以自动调节接收信号的增益,以使信号的强度保持在适当的范围内,从而保证接收到......