汉明重量汉明距离译码与纠错

目录

  • 汉明重量
  • 汉明距离
  • 汉明重量与校验矩阵的关系
  • 错误图样&最小距离译码规则
  • 检错纠错能力与最小汉明重量

汉明重量

定义14 设 G G G 不是零矩阵,则称非零码字中非零元的数量为该码字的汉明重。一个编码中所有非零码字的汉明重的最小值称为 G G G的最小汉明重。



汉明距离

定义15 设 x = ( x 1 , ⋯ , x n ) , y = ( y 1 , ⋯ , y n ) x=(x_1,\cdots,x_n),y=(y_1,\cdots,y_n) x=(x1,,xn),y=(y1,,yn)是两码字。则定义
d ( x , y ) : = ∑ i = 1 n ( x i ⊕ y i ) d(x,y):=\sum_{i=1}^n\left(x_i\oplus y_i\right) d(x,y):=i=1n(xiyi)

为它们的汉明距离。

求和号表示的是普通的加法,而求和号里面是二元域的加法。

可以证明,汉明距离确实是一个距离,即满足严格正定性、对称性和三角不等式。

由上述定义可知,一个线性码的最小汉明重等于码字集中的最小汉明距离。



汉明重量与校验矩阵的关系

定理9 设 H H H G G G的校验矩阵,则 H H H的任意 t t t列线性无关且存在 t + 1 t+1 t+1列线性相关当且仅当 G G G的最小汉明重为 t + 1 t+1 t+1

证明 G G G的最小汉明重为 t + 1 t+1 t+1 ,当且仅当线性方程组 H X = 0 HX=0 HX=0的任意解的非零分量数不低于 t + 1 t+1 t+1 ,并且可以取到 t + 1 t+1 t+1 。而这就当且仅当 H H H的任意 t t t列线性无关,且存在 t + 1 t+1 t+1 列线性相关。



错误图样&最小距离译码规则

设输入 x n = ( x 1 , ⋯ , x n ) x^n=(x_1,\cdots,x_n) xn=(x1,,xn),输出 y n = ( y 1 , ⋯ , y n ) y^n=(y_1,\cdots,y_n) yn=(y1,,yn) 。如果 y n y^{n} yn 适合 y n k H ′ = 0 y^{n_k}H^{\prime}=0 ynkH=0 ,那么我们就认为输入的码字就是 y n k y^{n_k} ynk (当然这其实也不一定,但是信道恰好把一个码字变为另一个码字的概率也不是很大);而如果 y n H ′ ≠ 0 y^nH^{\prime}\neq0 ynH=0 ,那说明传输一定发生了错误。

定义一个向量 E : = ( e 1 , ⋯ , e n ) E:=(e_1,\cdots,e_n) E:=(e1,,en) ,其中如果第官位发生错误,就令 e i i = 1 e_{i_i}=1 eii=1,否则令 e i = 0 e_i=0 ei=0 。于是有 y n = x n + E y^n=x^n+E yn=xn+E (时刻不要忘记我们是在二元域上讨论的,这也是二元域加法定义的好处)。记 S = y r k H ′ S=y^{r_k}H^{\prime} S=yrkH,则 S = ( x n + E ) H ′ = E H ′ S=(x^n+E)H^{\prime}=EH^{\prime} S=(xn+E)H=EH ,即 S S S是一个只与发生错误的位置有关的向量,称为监督子,校验子或伴随式, E E E称为错误图样。

不过即使如此,不同的错误图样仍然有可能诱导出不同的伴随子,究其原因, S = E H ′ S=EH^{\prime} S=EH式取转置即得 H E ′ = S HE^{\prime}=S HE=S ,而 H H H的列数肯定大于行数,因此解必不唯一。

于是需要给出一种译码规则,把 y x k y^{x_k} yxk映到一个码字。这就是最小距离译码规则:我们选择使得 d ( x n , y n ) d(x^n,y^n) d(xn,yn)达到最小的那个 x n ∈ x^n\in xnIm G ′ G^{\prime } G作为 y n y^{n} yn的译码。这是为什么呢?
因为假设每个字母翻译错的概率为 p p p ,那么结合实际来看, p p p是个很小的数。计算可知,恰好传输错 t t t位的概率为 p t ( 1 − p ) n − t p^t(1-p)^{n-t} pt(1p)nt ,有
p 1 ( 1 − p ) n − 1 > > p 2 ( 1 − p ) n − 2 > > ⋯ > > p t ( 1 − p ) n − t > > ⋯ p^1(1-p)^{n-1}>>p^2(1-p)^{n-2}>>\cdots>>p^t(1-p)^{n-t}>>\cdots p1(1p)n1>>p2(1p)n2>>>>pt(1p)nt>>

所以传输过程中错的位数应该很少,错得越少的概率越大。因此我们就选那个与 y n y^{n} yn相差位数最少的码字作为译码结果。


检错纠错能力与最小汉明重量

对于最小汉明重为 d d d ( n , k ) (n,k) (n,k)线性码,
(1)若 d = 2 e + 1 d=2e+1 d=2e+1 ,则该码能纠正 e e e个错误;
(2)若 d = l + 1 d=l+1 d=l+1 ,则该码能检测 l l l个错误;
(3)若 d = e + l + 1 ( e < l ) d=e+l+1(e<l) d=e+l+1(e<l) ,则该码能在纠正 e e e个错误的同时检测 l l l个错误。

证明
(1)设输入 x n = ( x 1 , ⋯ , x n ) x^n=(x_1,\cdots,x_n) xn=(x1,,xn),输出 y n = ( y 1 , ⋯ , y n ) y^n=(y_1,\cdots,y_n) yn=(y1,,yn),假设发生了 e e e 个错误,即 d ( x n , y n ) = e d(x^n,y^n)=e d(xn,yn)=e ,又对任意其他码字 z z z , d ( x , z ) ≥ d = 2 e + 1 d(x,z)\geq d=2e+1 d(x,z)d=2e+1 。从而由三角不等式得: d ( y n , z n ) ≥ e + 1 > e = d ( x n , y n ) d(y^n,z^n)\geq e+1>e=d(x^n,y^n) d(yn,zn)e+1>e=d(xn,yn) ,从而根据最小距离译码规则必把 y n y^{n} yn译为 x n x^n xn

(2)假设发生了 l l l个错误,则 d ( x n , y n ) = l d(x^n,y^n)=l d(xn,yn)=l 。而对任意码字 z z z , d ( x n , z ) ≥ l + 1 d(x^n,z)\geq l+1 d(xn,z)l+1 ,于是立即知道 y n y^{n} yn不是码字,这就发现了错误。

(3)结合(1)(2)即得。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Unity】Unity拖拽在Android设备有延迟和卡顿问题的解决

一、介绍 在制作Block类游戏时&#xff0c;其核心的逻辑就是拖拽方块放入到地图中&#xff0c;这里最先想到的就是Unity的拖拽接口IDragHandler,然后通过 IPointerDownHandler, IPointerUpHandler 这两个接口判断按下和松手&#xff0c;具体的实现逻辑就是下面 public void On…

解线性方程组(二)

实验类型&#xff1a;●验证性实验 ○综合性实验 ○设计性实验 实验目的&#xff1a;进一步熟练掌握用Jacobi迭代法和Gauss-Seidel法解线性方程组的算法&#xff0c;提高编程能力和解算线性方程组问题的实践技能。 实验内容&#xff1a; 1)取初值性x(0)(0,0,0,0)T, 精度要求ε…

易语言模拟真人动态生成鼠标滑动路径

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序&#xff0c;它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言&#xff0c;原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势&#xff1a; 模拟…

python语言基础-4 常用模块-4.2 time模块

声明&#xff1a;本内容非盈利性质&#xff0c;也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站&#xff0c;会尽量附上原文链接&#xff0c;并鼓励大家看原文。侵删。 4.2 time模块 python中提供了处理时间的标准库time。利用time库可以获取时间、进行时…

Charles抓包_Android

1.下载地址 2.破解方法 3.安卓调试办法 查看官方文档&#xff0c;Android N之后抓包要声明App可用User目录下的CA证书 3.1.在Proxy下进行以下设置&#xff08;路径Proxy->Proxy Settings&#xff09; 3.1.1.不抓包Windows&#xff0c;即不勾选此项&#xff0c;免得打输出不…

进程崩溃难以定位,日志分析五步搞定|OceanBase故障排查实践

作者&#xff1a;胡呈清&#xff0c;爱可生 DBA 团队成员&#xff0c;擅长故障分析、性能优化。 背景 Server 进程崩溃的常见原因包括程序bug、文件损坏、磁盘坏块以及内存坏块&#xff0c;这类故障通常较难分析和定位。 在OceanBase 集群部署时&#xff0c;系统会自动配置co…

[spring源码]spring配置类解析

解析配置类 在启动Spring时&#xff0c;需要传入一个AppConfig.class给ApplicationContext&#xff0c;ApplicationContext会根据AppConfig类封装为一个BeanDefinition&#xff0c;这种BeanDefinition我们把它称为配置类BeanDefinition AnnotationConfigApplicationContext a…

低压电容器衰减的计算方法

低压电容器的衰减&#xff08;通常指电容器容量的衰减&#xff09;是指电容器在长时间运行或经历一些不良工作环境下&#xff0c;电容值随时间逐渐减少的现象。这个衰减会影响电容器的工作性能&#xff0c;尤其是在无功补偿和功率因数校正等应用中。计算电容器衰减的具体方法可…

C++之priority_queue容器

priority_queue 是 C STL (Standard Template Library) 中的一种容器适配器&#xff0c;用于实现优先队列。优先队列是一种特殊的队列&#xff0c;其中每个元素都有一个优先级&#xff0c;元素的出队顺序取决于其优先级&#xff0c;而不是插入顺序。默认情况下&#xff0c;优先…

Maven的安装配置

文章目录 一、MVN 的下载二、配置maven2.1、更改maven/conf/settings.xml配置2.2、配置环境变量一、MVN 的下载 还是那句话,要去就去官网或者github,别的地方不要去下载。我们下载binaries/ 目录下的 cd /opt/server wget https://downloads.apache.org/maven/maven-3/3.9.6/…

构建Java教学新生态:SpringBoot应用实例

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

C#如何锁定和解除鼠标及键盘BlockInput

在C#中&#xff0c;"BlockInput"通常指的是一个功能或方法&#xff0c;用于阻止或暂停用户输入一段时间。这在某些特定的应用场景下非常有用&#xff0c;比如在游戏中防止玩家连续快速点击导致游戏逻辑错误&#xff0c;或者在UI应用中防止用户在某个操作正在进行时进…

flex安装学习笔记

https://zhuanlan.zhihu.com/p/2783726096 3.下载 Flux 模型 FLUX.1 [dev] &#xff1a;官方版本满配版&#xff0c;最低显存要求 24G&#xff1b;FLUX.1 [dev] fp8&#xff1a;大佬优化 [dev] 后版本&#xff0c;建议选择此版本&#xff0c;最低 12G 显存可跑&#xff1b;FLU…

ctfshow(316)--XSS漏洞--反射性XSS

Web316 进入界面&#xff1a; 审计 显示是关于反射性XSS的题目。 思路 首先想到利用XSS平台解题&#xff0c;看其他师傅的wp提示flag是在cookie中。 当前页面的cookie是flagyou%20are%20not%20admin%20no%20flag。 但是这里我使用XSS平台&#xff0c;显示的cookie还是这样…

【设计模式系列】建造者模式(十)

目录 一、什么是建造者模式 二、建造者模式的角色 三、建造者模式的典型应用 四、建造者模式在StringBuilder中的应用 五、典型建造者模式的案例 一、什么是建造者模式 建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;用于构建复杂对…

NVR批量管理软件/平台EasyNVR多个NVR同时管理的智能化革新

随着安防监控技术的不断进步和普及&#xff0c;视频监控系统在各行各业中的应用愈发广泛。无论是大型企业、工业园区&#xff0c;还是公共场所、住宅小区&#xff0c;视频监控都成为了保障安全、提升管理效率的重要手段。 NVR批量管理软件/平台EasyNVR&#xff0c;作为一款集多…

【公司新闻】实力出圈!开放传神(OpenCSG)登上《IT时报》!

2024年11月1日&#xff08;星期五&#xff09;&#xff0c;《IT时报》刊登了关于开放传神&#xff08;以下简称&#xff1a;OpenCSG&#xff09;的新闻内容&#xff0c;这期报道究竟揭示了哪些亮点&#xff1f;让我们一起来深入了解。 来源&#xff1a;《 IT时报 》 本报记者 &…

python的安装环境Miniconda(Conda 命令管理依赖配置)

这一段时间&#xff0c;对AI大模型 有了兴趣就想研究一下。 在研究之前肯定要先把需要的编程技能掌握了。经过我查阅资料&#xff0c;今天就先学一下 python的 环境安装。 Node.js 包管理工具&#xff1a;npm 依赖配置文件&#xff1a;package.json 环境管理&#xff1a;nvm&am…

在 Sass 中使用 Mixins

在 Sass 中使用 Mixins 如果您是深入研究前端开发领域的人,那么您很有可能遇到过Sass(Syntactically Awesome Stylesheets)。Sass 是一个功能强大的 CSS 预处理器,它通过提供变量、嵌套、函数和 mixins等功能来增强您的 CSS 工作流程。在这些功能中,mixins脱颖而出,成为…

初级图像处理工具

图像处理-初级 1、功能概览 初级图像处理工具旨在为用户提供一个易于使用的界面来执行常见的图像处理任务。该工具集成了多项实用功能&#xff0c;从显示和调整图像的基本属性到应用各种滤镜效果&#xff0c;用户都可以通过简单的命令行交互来完成。 我们的初级图像处理工具…