首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏MatheMagician

    纠错码与魔术(三)——汉明纠错码魔术初步

    本系列前面两篇已经介绍了纠错码的基本原理和在魔术中的应用和一些魔术例子,相关内容请戳: 纠错码与魔术(二)——魔术《矩阵感应》等 纠错码与魔术(一)——纠错码与汉明码简介 在mathematical 扫描二维码 关注更多精彩 纠错码与魔术(二)——魔术《矩阵感应》等 破解魔术的秘密(四)——前移原理介绍和案例分享 你真的分得清“前后左右”和“东西南北”吗?

    79420编辑于 2023-01-30
  • 来自专栏MatheMagician

    纠错码与魔术(四)——汉明纠错码魔术进阶

    在上一篇中,我们介绍了两个汉明纠错码思想构造的魔术,哪两个都是最基本的应用,相关内容请戳: 纠错码与魔术(三)——汉明纠错码魔术初步 纠错码与魔术(二)——魔术《矩阵感应》等 纠错码与魔术(一)—— 纠错码与汉明码简介 而今天是本系列最后一篇,仍然是汉明编码的魔术,但是其使用的巧妙程度和层级要更深,魔术效果也更好。 好了,这就是这个小而美的《纠错码与魔术》系列的四篇文章,在通信编码系列里,还有更多系列等着和大家见面,下个系列见! 扫描二维码 关注更多精彩 纠错码与魔术(三)——汉明纠错码魔术初步 破解魔术的秘密(四)——前移原理介绍和案例分享 你真的分得清“前后左右”和“东西南北”吗?

    78930编辑于 2023-01-30
  • 来自专栏烟草的香味

    纠错码简介

    这个时候, 纠错码出现了. 简单介绍一下, 其中所有有关数学的内容的去掉了, 毕竟太高深, 咱也不懂. 思考 因为计算机传输中只存在0和1, 所以可以简单将其类比为数字. 这种纠错方式被称为: 二维奇偶校验码. ---- 计算机硬盘, 网络通信等都有着纠错码的身影, 它保证了数据的传输可靠. 在TCP的每个包中都存在校验和内容, 若校验出错, 则包会被直接丢弃.

    1.1K30发布于 2020-05-14
  • 来自专栏MatheMagician

    纠错码与魔术(一)——纠错码与汉明码简介

    今天我们来学习编码中一个非常重要的编码类型——纠错码,以及自然地,这种纠错码的思想是如何应用到魔术中的。 这一篇,我们从纠错码的基本原理说起。 此外,还有作为散列函数的循环冗余校验CRC,以及加密散列函数等,而格雷码则是在编码的过程中引入相邻数代码仅有1位不同,使得其自动具有纠错码的功能。 Hamming Code 汉明码,是一种线性纠错码,由汉明于1950年发明。相比而言,简单的奇偶校验码除了不能纠正错误之外,也只能侦测出奇数个的错误。 设待传输的信号长度为k位,我们试图寻找一个长度为n的编码,带(n - k)位纠错码,能够保证定位到1位错误以及其位置。

    1.7K30编辑于 2023-01-30
  • 来自专栏用户6811391的专栏

    QR 二维码纠错码(三)

    纠错码可以帮助 QR 读码器检测 QR 二维码中的错误并予以校正。继对文本数据编码后,本篇将继续介绍生成纠错码的过程。 之前提到,纠错码使用了多项式除法。那么此过程需要两个多项式。 尽管 QR 二维码总是需要超过 2 个纠错码/块,本篇只展示如何计算 2 个纠错码的过程,因为其它计算过程也是相似的。 第八步:生成纠错码 终于,我们走到了生成纠错码这一环节。 该余数多项式的系数即纠错码。 接下来我们一步步展示除法过程。

    2.7K21发布于 2020-07-09
  • 来自专栏嵌入式项目开发

    基于纠错码的哈希函数构造方案

    HRHF算法通过结合纠错码与SM3算法的Merkle-Damgård迭代结构,不仅增强了哈希值的随机性,还保证了算法的安全性和执行效率。 HRHF算法结合了纠错码与SM3算法的Merkle-Damgård迭代结构,通过这种方式增强了哈希值的随机性。 计算纠错码的生成矩阵。 对生成矩阵进行循环左移操作以增加随机性。 对输入数据进行迭代压缩操作。 输出最终的256位哈希值。

    23400编辑于 2025-05-27
  • 来自专栏MatheMagician

    纠错码与魔术(二)——魔术《矩阵感应》等

    在本系列前面的文章里,我们已经介绍了纠错码的基本原理和Hamming码的内容,相关内容请戳: 纠错码与魔术(一)——纠错码与汉明码简介 今天我们来具体聊聊纠错码和魔术之间的关系,以及一个经典作品等。 比较神奇的是,纠错码居然可以在信息还没有到来之前就好像完成了这个编码,使得看起来是一种以不变应万变的编码方式,靠发信者自己去暴露自己的信息。 好了,说了这么多,我们来通过真正的魔术案例来说明这些纠错码在魔术上到底是怎么被应用的。 矩阵感应 视频1 矩阵感应 这是一个典型的奇偶校验码,是我在深大的一次沙龙里,Albert老师第一次表演的。 这也是纠错码原理比一般的通信编码的优势,在做出选择以后到完成辨识以前,不再需要托来传递什么信息,信息早就暗含在了纠错码代表的这些隐含关系的成立与破坏中。 扫描二维码 关注更多精彩 纠错码与魔术(一)——纠错码与汉明码简介 破解魔术的秘密(四)——前移原理介绍和案例分享 你真的分得清“前后左右”和“东西南北”吗?

    43230编辑于 2023-01-30
  • 来自专栏用户6811391的专栏

    构建最终编码(四)

    经过生成纠错码环节,目前我们已经拥有了数据编码和其对应的纠错码。最初我们提到过,较大的 QR 二维码需要我们数据码拆成小块,而且针对每一块生成对应的纠错码。 在这种情况下,数据块和纠错码必须根据 QR 二维码规范穿插放置,本篇将解释该过程。 第一步:决定需要多少数据块和纠错码 纠错表展示了每种 QR 二维码版本在不同纠错级别下所需的数据块和纠错码数字。 这种情况下不需要穿插放置码块,直接将纠错码字节放在数据码字节后即可跳过本篇进入下一环节。 同时由纠错表查得 5-Q 码的纠错码个数为每块 18 个,这里总共有 4 个块,所以需要 4 组 18 个的纠错码。生成结果如下: ? 接下来我们看下穿插放置码块的过程。 即先取第一列,再第二列等,最终得到 67,246,182,... ,7,236 对数据码字节排列完,同样的逻辑接着排列纠错码: ?

    56410发布于 2020-07-09
  • 来自专栏用户4480853的专栏

    汉明码的原理及其应用

    汉明码对纠错码的处理模式如下: 如果 1 出现的次数为偶数次,则纠错码保持为 0; 如果 1 出现的次数为奇数次,则纠错码改变为 1,将数据中 1 的个数改变为偶数个; 数据接收方接收到处理后的汉明码后进行如下处理 结论: 纠错码的存在不是 “用一个数据去保护所有数据” 而是 “通过一个数据改变整组数据的奇偶性”,纠错码本身就存在于整组数据中。换而言之,纠错码在保护其他数据的同时,也保护了纠错码自身。 A:纠错码的存在不是 “用一个数据去保护所有数据” 而是 “通过一个数据改变整组数据的奇偶性”,纠错码本身就存在于整组数据中。 假设验证: 以下数据深色区域为占位纠错码: image.png 经过校验发现修改任何一个位置上的纠错码都能通过奇偶校验发现纠错码出现了错误(红色位置)。 3.1 少量纠错码的优势 使用少量的纠错码对大量的数据就错并不是汉明码最厉害的地方。

    2K00编辑于 2022-08-05
  • 来自专栏FreeBuf

    跟我一起学习玩转二维码

    数据码和纠错码 除了上述的那些地方,剩下的地方存放 数据码 和纠错码。 这也是为什么纠错码字数为r2,当后面有一个箭头时,表示r2之后还要加1。 定义一个对象,设置生成的纠错码个数为10个。 ? 3. 为字符串“hello world”编码,生成纠错码。 ? 4. 进行解码 ? 5. 现在大致了解了reedsolo模块的使用方法,那现在了解一下纠错码的作用,比如,我们现在将“hello world”写成错误的“hellx xorld”,这里我们出现了两个错误,配上之前生成的纠错码进行解码 ,输出的就是正确的字符串,纠错码就是这样了。

    2.9K41发布于 2019-06-03
  • 来自专栏程序员互动联盟

    二维码是如何实现的?

    3、纠错编码:按需要将上面的码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个新的序列。 在二维码规格和纠错等级确定的情况下,其实它所能容纳的码字总数和纠错码字数也就确定了,比如:版本10,纠错等级时H时,总共能容纳346个码字,其中224个纠错码字。 对于这224个纠错码字,它能够纠正112个替代错误(如黑白颠倒)或者224个据读错误(无法读到或者无法译码),这样纠错容量为:112/346=32.4% 4、构造最终数据信息:在规格确定的条件下,将上面产生的序列按次序放如分块中按规定把数据分块 ,然后对每一块进行计算,得出相应的纠错码字区块,把纠错码字区块 按顺序构成一个序列,添加到原先的数据码字序列后面。 数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。

    1.2K50发布于 2018-03-15
  • 来自专栏用户6811391的专栏

    手绘二维码攻略

    01110010 11011100 01001101 01000011 01000000 11101100 00010001 11101100 11101100 00010001 11101100 纠错码 通过信息多项式与生成多项式除法(过程较复杂,详情可见《QR 二维码纠错码(三)》),我们可以得到 10 个纠错码: 196 35 39 119 235 215 231 226 93 23 以上标注的黑、白、蓝色区域在 QR 版本 1 的二维码中是固定的,蓝色区域等待之后填充格式信息,浅绿色区域即我们之前得到的 128 位数据编码和 80 位纠错码要填充的区域,我们可以计算下在这 21 x 掩码只对我们填充的 208 为数据编码和纠错码进行处理,其余预先填好的功能模块和预留区域都不受掩码影响。 经过掩码处理后的 QR 二维码结果如图: ? 本来想着自己手算个 "I LOVE U" 的纠错码的,结果算到一半卡住了,只好退而求其次,选用素材中验证过的 "HELLO WORLD" 当原型来绘制二维码了。

    1.9K21发布于 2020-07-08
  • 来自专栏系统设计与开发

    分享一个在线二维码生成器(基于qrcode.js开发)

    二维码的生成原理涉及到编码过程和纠错码的生成。以下是基本的步骤: 1.数据编码:首先,需要将需要存储的数据转换为二进制码。 2.生成纠错码:为了提高二维码的识别率,需要为每个字符生成一组纠错码纠错码的作用是检测和修正错误,通常采用的是Reed-Solomon编码。 3.模块排列:将数据和纠错码按照一定的规则排列到二维码矩阵中。具体的排列方式取决于二维码的类型和版本。 QR码支持如下的编码: Numeric mode 数字编码,从0到9。

    1K10编辑于 2023-08-30
  • 来自专栏magicsoar

    二维码知识介绍

    数据和纠错码:记录了数据信息和相应的纠错码纠错码的存在使得当二维码的数据出现允许范围内的错误时,也可以正确解码。 版本信息       :仅在版本7以上存在,记录具体的版本信息。 图5   一些编码方式及其标识 纠错码 二维码存在4个级别的纠错等级,每个纠错级别可修正的错误与标识见图6,纠错级别越高,可以修正的错误就越多,需要的纠错码的数量也变多,相应的可储存的数据就会减少,版本 图12  坐标系和掩码运算的图案 这里我们选择标识为011的掩码 格式信息的组成为                       :纠错标识+掩码标识+BCH纠错码 所以前面的纠错标识+掩码标识为:00011 BCH纠错码计算为: ? 得到纠错码为                             :011 0101 1001 格式信息为                                :00011 1101011001

    4K100发布于 2018-02-06
  • 来自专栏龙首琴剑庐

    ECC(指令纠错) 内存

    什么是ECC内存 对于大多数企业来说,消除数据损坏是一项关键任务——这正是 ECC(纠错码)内存的目的。 在将数据写入到内存时,ECC 内存使用附加位来存储加密代码,同时存储纠错码(Error Correcting Code)。 读取数据时,会将存储的纠错码与读取数据时生成的纠错码进行比较。

    5.8K10发布于 2019-12-16
  • 来自专栏容器云生态

    开源分布式对象存储-MinIO 顶

    为什么纠错码有用 与RAID或复制不同,纠错码可以保护数据不受多个驱动器故障的影响。 比如,在经典的RAID6中可以在损失两块盘的情况下不丢数据,然而在Minio中纠错码可以保证当一般的盘故障时依然不会影响到数据。此外,纠错码在在对象级别,并且每次就可以修复一个对象。 MinIO的纠错码后端是为提高操作效率而设计的,它可以更加高效的利用硬件而达到加速的效果。 而在Minio内部的设计中采用了高速的HighwayHash校验和来保护Bit Bot Drivers是如何使用纠错码的 MinIO将您提供的驱动器分为4、6、8、10、12、14或16个驱动器的纠错码集 一个分布式的Minio集群最小需要4块盘(其实是纠错码要求最小4块)来驱动整个集群,当我们启动分布式集群后,纠错码会自动启动 高可用: 多节点组成的分布式minio可保证服务的高可用(一个N节点的分布式

    4.8K63发布于 2020-02-18
  • 来自专栏游戏开发之旅

    二维码的生成细节和原理

    数据码和纠错码 除了上述的那些地方,剩下的地方存放 Data Code 数据码 和 Error Correction Code 纠错码。 数据编码 我们先来说说数据编码。 就是一个8bits的byte)(再注:最后一例中的(c, k, r )的公式为:c = k + 2 * r,因为后脚注解释了:纠错码的容量小于纠错码的一半) 下图给一个5-Q的示例(因为二进制写起来会让表格太大 ,所以,我都用了十进制,我们可以看到每一块的纠错码有18个codewords,也就是18个8bits的二进制数) 组 块 数据 对每个块的纠错码 1 1 67 85 70 134 87 38 85 194 二维码的混乱技术还没有玩完,它还要把数据码和纠错码的各个codewords交替放在一起。 Version Information一共是18个bits,其中包括6个bits的版本号以及12个bits的纠错码,下面是一个示例: ? 而其填充位置如下: ?

    3.6K11发布于 2019-12-03
  • 来自专栏琦小虾的Binary

    二维码生成原理及解析代码

    纠错码 前文提到了不同的纠错级别(Error Correction Code Level)。 纠错码容量小于纠错码个数的一般 以上图 4.1 中的 Version 5 + H 纠错机为例:图中红色方框说明共需要 4 个块(上下行各一组,每组 2 个块)。 其中组 1 的每个块,都有 11 个数据码, 22 个纠错码;组 2 的每个块,都有 12 个数据码,22 个纠错码。 6.6 数据码与纠错码 此后即可填充第五章得到的数据内容了。 填充方式上图 6.14,图中深色区域(如 D1 区域)填充数据码,白色区域(如 E15 区域)填充纠错码

    9.8K104发布于 2018-01-02
  • 来自专栏机器之心

    从本科作业到Nature子刊:悉尼大学大二学生突破困扰量子计算近20年的纠错码难题

    Brown(右) 在量子计算领域,利用量子计算机执行大规模计算可能需要基于量子纠错码的容错架构,其中面临的挑战在于设计一种使用适度资源即可有效对抗实际噪声的实用量子纠错码。 他所在的研究团队对一些常用的量子纠错码进行了简单但优雅的更改,将它们的纠错能力提升了一倍,从而缩短了实现可扩展量子计算的进程。在此之前,这种常用的纠错码已经被研究了近 20 年。 但是,Bonilla 等人的这项研究令我惊讶,我没想到量子纠错码的微小变化会对预测性能产生这么大的影响。」 Bonilla 所做的工作就是在每一秒都重新调整纠错码的一部分。这种码被称为 surface code,可以在已经连通的量子比特的二维网络中工作。

    44020编辑于 2023-03-29
  • 来自专栏信道编码学习专栏

    信道编码(1)编码类别

    纠错码分类: 从不同角度、不同侧面去看问题,可以对纠错码做出不同归类。图片 以上分类是从不同角度对信道编码进行划分,当然,有多少观察问题的角度,就有多少种分类方法。

    1.3K00编辑于 2022-11-26
领券