2.2、数据校验

一、数据校验的基本原理

  • 数据校验的必要性
    image

  • 校验的基本原理
    image

  • 码距的概念
    image

  • 码距与检错或纠错能力的关系
    image

  • 选择码距要考虑的因素
    image

二、奇偶校验

2.1、基本原理

image

2.2、奇校验的检错方法与电路

image

2.3、偶校验的检错方法与电路

image

2.4、奇偶校验的问题
  • 奇校验无法检测出奇数个1,并且在传输过程中同时出现偶数位错误的电路,如下所示,如果传输过程中出现了2位错误,并且原序列中有偶数个1,奇校验无法检测出来
    image

  • 偶校验无法检测出偶数个1,并且在传输过程中同时出现偶数位错误的电路,如下所示,如果传输过程中出现了2位错误,并且原序列中有偶数个1,偶校验无法检测出来
    image

  • 奇偶校验不能纠正错误(不能定位错误),只能检测错误,无错误结论不可靠,是一种错误检测码

2.5、奇偶校验的码距

  奇偶校验的码距为2,所以只能检错1位,不能纠错。

2.6、改进的奇偶校验(二维奇偶校验)

image

三、CRC校验

3.1、基本原理

image
image

模2除运算的示例如下所示:
image

3.2、生成多项式G(x)=1011时CRC编码、检错和纠错的示例

①、生成多项式G(x)=1011传输序列为1100时CRC编码
image
image

②、生成多项式G(x)=1011传输序列为1100时CRC检错

  • CRC的检错(无错误的场景)
    image

  • CRC的检错(有错误的场景)
    image

  • 以4位二进制信息1100为例,生成多项式G(x)=1011,不同数位出错的余数对应表
    image

③、生成多项式G(x)=1011传输序列为1100时CRC纠错
image
image

3.3、生成多项式G(x)=10011的CRC校验硬件实现

image

3.4、CRC校验的应用

image

四、海明校验

4.1、基本原理

image
image

由此可以总结得到每个校验位负责校验的数据位:
①、P1校验位负责的数据位有b1,b2,b4,b5,b7;
②、P2校验位负责的数据位有b1,b3,b4,b6,b7;
③、P3校验位负责的数据位有b2,b3,b4;
④、P4校验位负责的数据位有b5,b6,b7。
每个校验位都有对应的指错字,校验位P1 ~ P4分别对应指错字G1 ~ G4,指错字G1 ~ G4的计算规则为:(每个校验位)⊕(每个校验位负责的数据位),指错字G1 ~ G4分别如下:
image

指错字的目的就是指出海明校验序列的传输当中是否发生了错误,如果这个序列发生错误的话,指错字可以指出具体哪一位发生了错误,

4.2、海明校验编码举例

image

4.3、海明校验纠错举例(海明编码的二进制序列为01100110000,并且在传输过程中没有发生错误)

image

4.4、海明校验纠错举例(海明编码的二进制序列为01100110000,在传输过程中发生了错误,传输后的二进制序列为01100110001)

image

4.5、海明校验的特点

①、无错结论不可靠,比如海明编码的二进制序列为01100110000,在传输过程中发生了错误,传输后的二进制序列为10000110000,虽然指错字G1 ~ G4都等于0,但是并不能保证二进制序列没有发生错误;
②、不能区别是1个bit位出错还是2个bit位出错,比如海明编码的二进制序列为01100110000,在传输过程中发生了错误,出错场景分为2种:
a、传输后的二进制序列为01001110000(发生了2个bit位出错,分别为b1和b2);
b、传输后的二进制序列为01100010000(发生了1个bit位出错,为b3);
以上2种出错的场景中,指错字相同,都是G4=0,G3=1,G2=1,G1=0,因此海明校验不能区别是1个bit位出错还是2个bit位出错。

4.6、海明校验+奇偶校验的电路图

image

posted @ 2026-05-20 17:54  Carey_ccl  阅读(26)  评论(0)    收藏  举报