0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

线性纠错码的基石——奇偶校验

SSDFans 来源:未知 作者:李倩 2018-07-13 17:14 次阅读

纠错编码的核心设计思想是通过增加冗余信息,使得原始信息的编码之间有足够大的区别。

编码距离

还记得蛋蛋表白的时候,信息为“我 喜 欢 你”四个字,为了防止女神听不到,他添加了冗余信息。经过蛋蛋添加冗余后变为了“我 我 我 喜 喜 喜 欢 欢欢 你 你 你”,其实女神收到的信号为(我 我 饿 T x x 欢 花 欢 x x 里),其中x表示为邻座大妈的霸气的笑声,女神是如何正确的捕捉到蛋蛋的意图呢?显然女神在这方面很有经验,识破了蛋蛋重复三遍的伎俩,电光火石间,在她脑海里飞速搜索比对推理,得出一个通顺而有意义的结论。换句话说,在女神的词典中,有意义的语句全都列出来,发现跟蛋蛋发出声音最相似的就是:“我我 我 喜 喜 喜 欢 欢 欢 你 你 你“

女神的词典可以看成所有可能编码的集合,如何衡量这个编码集合中,容易混淆的程度呢?这个参数就是编码距离。什么是距离呢,这里指的是汉明距离,指的是两个信号之间有多少bit 不同。比如信号(0,1,1)与(0,0,0)的距离为2,(1,1,1)与(0,0,0)的距离为3.

蛋蛋有4个信息,为00,01,10,11. 现在如何插入冗余呢?

首先想到的是重复法:

q 00 变为 00 00 00 00

q 01 变为 01 01 01 01

q 10 变为 10 10 10 10

q 11 变为 11 11 11 11

现在接收到信号 为 00 01 00 00, 我们发现跟这个信号最相似的是 00 00 00 00,距离为1.

一个编码集合里,大家不一定是均匀分布的,有些编码之间距离比较近,有些比较远,编码距离指的是最近的两个编码之间距离。

解码的时候,一个最暴力的方法就是一一比较接收到的信号和所有有效编码之间的编码距离,选择编码距离最小的。所以编码距离的重要作用是可以指示编码可以纠错的bit个数。蛋蛋和阿呆住在不同的地方,相距为d,蛋蛋养了一群羊,阿呆也养了一群羊。羊会乱跑,显然只要羊跑的距离小于d/2 距离,就可以判断羊属于蛋蛋还是阿呆。所以对纠错码而言,编码距离为d,只要bit翻转个数小于d/2,我们可以根据离得谁近就归谁的原则去纠错(赶羊回家)。

线性纠错码的基石——奇偶校验(parity-Check)

收钱的阿姨狐疑地拿起蛋蛋递过来的皱巴巴的100块钱,迎着灯光仔细打量过后,又取出了紫外线灯从头到尾照了一下,终于把钱放进钱盒子里,找了蛋蛋99块5。阿姨担心收到假币,她检查钞票可不敢马虎。

阿姨检查钞票的行为叫做信号校验,信号校验的基本模型是:

对信号进行某种特定的处理后,得到期望的结果是为校验通过,否则校验失败。

这里信号用表示,特定的处理用H表示,表示对信号y进行了处理。处理结果用CR表示。

在二进制的世界里,最基础的校验方法是奇偶校验即parity-Check。

对于nbit 二进制信号:

例如长度为16的二进制数据:1000100111011011,其中1的个数为9,故CR = 1。

判断信号里的1的个数为奇还是偶,有非常简单的方法。在二进制里,有一种异或

(即xor)运算,符号为 ,运算方式先进行加法运算,然后运算结果对2取余数(mod(2)),或者更简单的记忆为“相加不进位”:

图1 异或运算表达式

可以验证只要把二进制的每一个bit依次进行xor运算,奇数个bit 1的结果为1,偶数个bit 1的结果为0,与bit 0的个数无关。

所以,用 表示第bit i的值(0或1),有

利用奇偶校验可以构造最简单的校验码——单bit校验码SPC(即single bit parity check code)。

把长度为n的二进制信息,增加1 bit 变成y’,使得:

现在y’构成了y的单bit校验码。(a)又叫做奇偶校验方程。

显然,y’中任意一个bit如果发生bit反转,无论从0到1,还是1到0,校验方程 CR = 1 。

SPC 可以探知任意单bit的反转。对于偶数个bit 反转SPC无法探知。而且校验方程并无法知道是bit反转的位置,所以无法纠错。

一个自然的想法是,增加SPC的个数,增加冗余的校验信息。同一个bit被好几个校验方程保护,当它出现错误时候,就不会被漏掉。

后面的文章中,用 + 代替

校验矩阵H和 生成矩阵G

蛋蛋的丈母娘,在女儿结婚前对未来女婿有一个要求列表,前五条是1)一定是博士学位,2)脾气要好,3)人要长得帅,4)会做家务, 5)财政上交

这样,蛋蛋的丈母娘通过提出要求,就轻而易举实现了对地球上所有男性同胞的一个划分。每一条要求都是一个校验方程。什么样的校验方程组,决定了这个男性同胞群到底有哪些人组成。

多个校验方程可以表示为校验矩阵 H。有了H 就可以确定所有可能的编码。

对于所有x(〖x_0 ,x〗_1 ,x_2,x_3,x_4,x_5…),只要满足

Hx^T= 0

x 就是合理的编码。如果不满足,x不属于合理的编码,认为在传输的过程中x出现了错误。

举例:长度为4的信号,x(x_0 ,x_1 ,x_2,x_3),有2个校验方程:

x_0+x_2=0

x_1+x_2+x_3=0

现在用 + 代替 ⨁,

可见,H矩阵里每一行可以表示一个校验方程。行里的1的位置i表示信号中第i bit 参与校验方程。

所有满足奇偶校验方程的x组成了一个编码集合。一般来说,编码长度为n bit,有r个线性独立的校验方程,则可以提供k = (n – r)个有效信息bit,和r个校验bit。

对于线性分组编码而言,原始信号u经过一定的线性变换可以生成纠错码c。完成冗余的添加。线性变换可以写成矩阵的形式,这个矩阵就是生成矩阵G。

表示为,c =uG

c为 n bit 信号。u 为k bit 信号,G 为 k x n 大小的矩阵。由H 矩阵可以推导出生成矩阵G。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 冗余
    +关注

    关注

    1

    文章

    109

    浏览量

    20177
  • 信号
    +关注

    关注

    11

    文章

    2778

    浏览量

    76606
  • 编码
    +关注

    关注

    6

    文章

    935

    浏览量

    54759

原文标题:蛋蛋表白地铁女孩与闪存纠错编码

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    认证系统与纠错码的应用研

    针对数字签名,探讨了纠错码理论和技术在数字签名中的重要作用,介绍了一类纠错码数字签名方案;提出了一种将签名与加密、纠错相结合的公钥密码新体制,新体制比较充分
    发表于 08-13 10:49 6次下载

    新的非对称量子纠错码的构造

    量子纠错码在量子通信和量子计算中起着非常重要的作用,之前的量子纠错码的构造大部分都集中在对称的量子信道,即量子比特翻转的错误概率与量子相位翻转的错误概率相等。
    发表于 02-10 11:13 6次下载

    奇偶校验

    奇偶校验码   奇偶校验码是一种开销最小,能发现数据代码中一位出错情况的编码,常用于存储器读写检查,或ASCII字符、其它类
    发表于 10-13 16:42 5293次阅读

    奇偶校验器,奇偶校验器是什么意思

    奇偶校验器,奇偶校验器是什么意思 奇偶校验器定义 为了系统的可靠性,对于位数
    发表于 03-08 17:32 2191次阅读

    奇偶校验码,奇偶校验码原理是什么?

    奇偶校验码,奇偶校验码原理是什么? 奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码
    发表于 03-17 17:39 6.3w次阅读

    RS纠错码在图文电视数据广播中的应用

    Reed-Solomon 以下称 RS 码 是性能优良的纠错码线性分组码中它的纠错能力和编码效率是最高的例如日本的BEST 纠错码是(272 190)大数逻辑码可以纠8 个错误比特编
    发表于 07-21 15:20 35次下载

    奇偶校验器_奇偶校验设计程序

    本内容提供了奇偶校验器_奇偶校验设计的程序代码,希望对大家有帮助
    发表于 11-11 10:04 5697次阅读

    纠错码与通信系统的保密

    纠错码与通信系统的保密,有需要的下来看看。
    发表于 07-29 19:05 0次下载

    适用于SRAM_PUF的纠错码研究

    适用于SRAM_PUF的纠错码研究_冯志华
    发表于 01-08 15:15 10次下载

    基于纠错码的灰度位信息隐藏算法

    针对空域图像信息隐藏(IH)算法健壮性较差的缺陷,研究了基于纠错码的图像信息隐藏算法。利用纠错码能够纠正随机错误的特性提高空域信息隐藏算法抵抗攻击者修改载体的能力。给出了两类不同的算法:基于纠错码
    发表于 01-07 10:12 0次下载
    基于<b class='flag-5'>纠错码</b>的灰度位信息隐藏算法

    stm32 usart奇偶校验如何配置

    stm32 usart奇偶校验如何配置?或许你在stm32 usart奇偶校验过程中会遇到如下一些坑,stm32 usart偶校验错误标志位以及出现偶校验错误,
    的头像 发表于 07-23 09:55 7457次阅读
    stm32 usart<b class='flag-5'>奇偶校验</b>如何配置

    增强FIFO模式下的奇偶校验

    自昊芯推出专题讲解SCI串口通讯奇偶校验,分为两期讲解,上期主要讲解标准SCI模式下的奇偶校验,本期主要讲解增强FIFO模式下的奇偶校验
    的头像 发表于 11-02 09:30 997次阅读

    什么是奇偶校验 奇偶校验的基本原理 奇偶校验电路什么意思

    什么是奇偶校验 奇偶校验的基本原理 奇偶校验电路什么意思  奇偶校验是一种用于检测二进制数据中错误的方法。它的基本原理是在二进制数据的末尾添加一个额外的位,使得数据中二进制 1 的数量
    的头像 发表于 10-17 16:16 3594次阅读

    什么是奇偶校验电路?奇偶校验器是时序逻辑电路吗?

    什么是奇偶校验电路?奇偶校验器是时序逻辑电路吗? 奇偶校验电路是一种数字电路,在数据传输过程中用于检测数据是否发生错误。在每个数据字节(通常是8位)的最高位添加一位(偶校验)或两位(奇
    的头像 发表于 10-17 16:16 3515次阅读

    奇偶校验和crc校验的区别 CRC校验奇偶校验之间有什么关系?

    奇偶校验和crc校验的区别 CRC校验奇偶校验之间有什么关系? 奇偶校验和 CRC(Cyclic Redundancy Check)
    的头像 发表于 10-17 16:28 3259次阅读