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