错误检测与纠正
什么是错误?
错误是指输出信息与输入信息不匹配的情况。在传输过程中,数字信号会受到噪声的影响,噪声会在从一个系统传输到另一个系统的二进制位中引入错误。这意味着 0 位可能会变为 1,或者 1 位可能会变为 0。

错误检测代码
每当传输消息时,它都可能因噪声而变得混乱,或者数据可能会损坏。为了避免这种情况,我们使用错误检测代码,它们是添加到给定数字消息中的附加数据,以帮助我们检测消息传输过程中是否发生错误。错误检测码的一个简单示例是奇偶校验。
纠错码
除了错误检测码,我们还可以传递一些数据来从收到的损坏消息中找出原始消息。这种类型的代码称为纠错码。纠错码也采用与错误检测码相同的策略,但此外,此类代码还可以检测损坏位的确切位置。
在纠错码中,奇偶校验具有一种简单的错误检测方法以及一种确定损坏位位置的复杂机制。一旦找到损坏位,其值就会被恢复(从 0 到 1 或从 1 到 0)以获取原始消息。
如何检测和纠正错误?
为了检测和纠正错误,在传输时会将额外的位添加到数据位中。
附加位称为奇偶校验位。它们允许检测或纠正错误。
数据位与奇偶校验位一起形成代码字。
错误检测的奇偶校验
这是检测和纠正错误的最简单技术。8 位字的 MSB 用作奇偶校验位,其余 7 位用作数据或消息位。 8 位传输字的奇偶校验可以是偶校验或奇校验。

偶校验 - 偶校验意味着给定字(包括校验位)中的 1 的数量应为偶数(2、4、6、....)。
奇校验 - 奇校验意味着给定字(包括校验位)中的 1 的数量应为奇数(1、3、5、....)。
奇校验位的使用
根据所需奇偶校验的类型,可以将奇校验位设置为 0 或 1。
对于偶校验,此位设置为 1 或 0,以使整个字中的"1 位"数量为偶数。如图 (a) 所示。
对于奇校验,此位设置为 1 或 0,使得整个字中的"1 位"数量为奇数。如图 (b) 所示。

如何进行错误检测?
如果接收器信号的奇偶校验与预期的奇偶校验不同,接收器的奇偶校验可以检测到错误的存在。这意味着,如果已知传输信号的奇偶校验始终为"偶数",并且如果接收的信号具有奇校验,则接收器可以断定接收的信号不正确。如果检测到错误,则接收器将忽略接收到的字节并请求将同一字节重新传输给发送器。
