• 错误检测(2)奇偶校验


    之前的实验中 通过按按钮启动两个板子,由于clock不同步产生了问题,于是我们接入了clock信号使信号保持同步,

    但是即使这样,由于磁场影响或者其他原因,传输的数据仍然可能出现错误:

    怎么来进行错误检测呢,

    1.可以说一共有104个bits

    所以103 或者110个都是有错误的

    2.可以说47%的bit都是1:

    3.可以说最多有6个zero:

     

    4.可以说有49个1:

    (可是,如果1个字节里面1消失了 另个里面1存在了,其实也还是49个1

    parity n.奇偶性

    奇数个1

    …using a single bit)

    D触发器

    (能通过触发储存一比特数据

    然后把output接到input上:

    然后再插个xor门:

    走一下:

    然后发现这个东东发奇数个1 ,就是输出1,发偶数个1就输出0

    插上东西跑一下:

    (灯会根据传送字节中的奇偶最终保持亮暗

    现在我们希望能再receiver这边也检查出parity 如果parity不一样,那就是有错

    跑一次:

     

    (跑通了

    (这次就有错了,中间没有逗号

    定义一下Parity

    最后再多传1bit,如果奇数个,就传1 最后整体是偶数个

    如果偶数个就传0 ,最后整体还是偶数个

    最后就是 

    (如果灯亮了就说明出错了

    到这里基本结束了,

    但是以上都是在考虑1个bit改变的情况

    如果两个bit同时变了呢 最后反映出的结果似乎是没有错

    所以不够perfect

    我们可以给每个字节后面都进行parity计算

    这样就检测出一个字节的错误了

    但是就算这样也有一个字节中出错的可能

     

    所以我们可以每4bits 每2bits来检测

    trade off

    以后介绍其他的更复杂的错误检测方法

    ??

  • 相关阅读:
    短链设计
    .NET Core .NET标准REST库Refit
    .net core 实现动态 Web API
    Visual Studio 2013 Web开发
    .Net 跨平台可移植类库PCL可用于任何平台包括Mono
    Jexus 支持PHP的三种方式
    单元测试模拟框架:Nsubstitute
    开发便于运维的Windows服务
    搭建Linux+Jexus+MariaDB+ASP.NET[LJMA]环境
    在Linux和Windows平台上操作MemoryMappedFile(简称MMF)
  • 原文地址:https://www.cnblogs.com/eret9616/p/10230927.html
Copyright © 2020-2023  润新知