在各种系统的讨论中,无论是模拟系统还是数字系统,我们发现误差这个术语几乎无处不在。有输入和相应输出的错误是不祥的。类似地,在数字系统的各种情况下,无论是数字计算机或数字通信设置,错误发生是一种常见的现象。为此,第一步是检测错误,然后纠正错误。
错误最常见的原因是噪声在从发射机到接收机的传输过程中渗入位流。如果这些错误不被发现和纠正,结果可能是灾难性的,因为数字系统对错误非常敏感,会由于传输代码中最轻微的错误而发生故障。
有各种各样的方法错误检测和纠正比如添加额外的位,也被称为校验位,有时它们也被称为冗余位,因为它们里面没有任何信息。在这篇文章中,我们将讨论用于错误检测和校正代码在数字系统中。
奇偶校验码
在从发射机发送时,将奇偶校验位添加到传输的比特串中,以检测接收端接收到的数据中的任何错误。基本上,奇偶校验码只是在数据串中添加了一个额外的位。现在有两种奇偶校验,偶偶校验和奇偶校验。
现在我们得到一个偶数奇偶校验,当数据串中1的总数是偶数后,加上那个额外的位。类似地,当在数据串中添加额外的位后,数据中1的总数是奇数时,我们得到一个奇偶校验。我们可以用一个例子来理解,假设我们有一个8位的ASCII代码- 01000001。
现在,如果添加的位是0,那么数字将变成001000001。这个数字中1的总数是偶数所以我们得到偶数奇偶性。同样,如果我们在数字上加上1,数字将变成101000001。这里1的个数是3,这是奇数所以我们得到了奇偶校验。通常使用偶数等值,这几乎已经成为一种惯例。
现在奇偶校验能够检测一个比特错误,但如果数据中有两个变化,它就失败了,这是该系统最大的缺点。这就是为什么有其他几个代码来检测和纠正一个以上的比特错误。
重复的代码
在重复码中,单个位数据被认为是一个预定值的位串并发送给接收端,这能够检测到一个以上的数据位错误。这可以用一个例子来说明,假设最初的数字是101。
现在在传输过程中,所有的数字都重复了3次,所以最终的传输数字是111000111。因此,当数字收到1位错误和2位错误可以很容易地识别,如它将是011,110或101。所以它是一种更好的检测和纠正数据的方法,但是随着重复比特数的增加,它变得非常低效。
循环冗余校验码
循环冗余校验(CRC)码在低冗余水平上提供了合理的高水平保护。给定数据字的循环代码如下所示。首先,我们必须添加某些数字零(这些数字由所需的位校验次数决定。
这个新的数据位序列然后除以一个特殊的二进制字,它的长度等于n + 1, n是要加的校验位的数目。然后将模-2除法得到的余数加到被除位序列中,得到循环码。
在操作后生成的码字被用于生成代码的除数完全整除。因此,当我们用相同的除数除接收到的代码时,一个无错误的接收应该导致一个全部为“0”的余数。
非零余数表示存在错误。的概率错误检测取决于用于构造循环代码的校验位的个数n。对于单位和双位错误,它是100%。当出现奇数位错误并且错误突发的长度小于n + 1时,这也是100%。被发现的概率减小到1 - (1/2)n−1对于错误突发长度等于n + 1和1 - (1/2)n错误突发长度大于n + 1。





