目录
- ①磁盘工作原理
- ②计算机总线
- ③系统可靠性分析
- ④校验码
- CRC循环校验码
- 海明校验码
①磁盘工作原理
计算题
②计算机总线
概念题
③系统可靠性分析
计算可靠度
④校验码
-
码距:是指两个码字之间的不同位数。例如,1010和1111之间的码距是2,因为它们在第二位和第三位上不同。在信息传输中,码距越大,就越容易检测和纠正错误。
-
在一个码组内为了检测e个误码,要求最小码距d应满足:d>=e+1
-
在一个码组内为了纠正t个误码,要求最小码距d应满足:d>=2t+1
CRC循环校验码
假设我们有一个11位二进制数据11001010101【原始报文】,我们想要使用CRC循环校验码来检测数据传输中是否出现了错误。我们可以使用以下步骤:
-
选择一个生成多项式,例如x4 + x3 + x + 1。
-
将数据位添加n个0,n为生成多项式的最高次数,即4。在本例中,我们需要在数据末尾添加4个0,变为110010101010000【被除数】。
-
根据生成多项式获得【除数】为11011。
-
用数据位除以生成多项式,得到【余数】。在本例中,我们可以使用模2法来计算,得到余数为0011。
-
将余数添加到原数据末尾,得到110010101010011。这就是我们的CRC循环校验码。
在数据传输过程中,接收方也可以使用相同的生成多项式和步骤来计算CRC循环校验码【被除数:110010101010011;除数:11011;余数为0则正确】,并将其与接收到的数据进行比较。如果两者不一致,则说明数据传输中出现了错误。
总之,CRC循环校验码是一种简单而有效的数据校验方法,可以在数据传输中检测出错误并进行纠正。它被广泛应用于计算机网络、通信和存储系统中。
海明校验码
海明校验码作为一种纠错码,它通过在数据中添加校验位来检测和纠正错误。海明码的校验位和信息位的关系如下:
-
校验位的数量:海明码的校验位数量是2的幂次方减1,即2^m-1,其中m为校验位数。
-
校验位的位置:海明码的校验位的位置是2的幂次方,即1、2、4、8、16等位置。
-
信息位的数量:海明码的信息位数量是总位数减去校验位数,即2^m-m-1。
-
校验位的计算:每个校验位的值是对应信息位的异或和,例如校验位1的值是第1、3、5、7等位置的信息位的异或和。
-
错误检测和纠正:如果接收到的数据与发送的数据存在差异,海明码可以检测出错误的位置,并根据校验位的值来纠正错误。
-
假设有一个4位二进制数1011,我们想要使用海明校验码来检查它的正确性,我们可以使用以下步骤:。
- 首先,我们需要确定校验位的数量。根据海明校验码的公式,校验位的数量应该是最小的n,使得2n>= n + m + 1,其中m是数据位的数量。在这种情况下,m = 4,因此我们需要至少3个校验位。
- 接下来,我们将数据位和校验位排列成一个矩阵,其中每个校验位的位置是2的幂次方(1、2、4、8等)。在这种情况下,我们需要在位置1、2和4上放置校验位【也可以由此来判断需要几个校验位】。
- 然后,我们计算每个校验位的值,以便总和(包括校验位)为偶数。这个值可以通过将与该校验位相关联的数据位相加来计算。【7=22+21+20,6=22+21,5=22+20,3=21+20;因此,r2= I4 ⊕ I3 ⊕ I2, r1= I4 ⊕ I3 ⊕ I1,r0= I4 ⊕ I2 ⊕ I1】
位数 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
---|---|---|---|---|---|---|---|
信息位 | I4=1 | I3=0 | I2=1 | I1=1 | |||
校验位 | r2=0 | r1=0 | r0=1 |
- 现在,我们可以将原始数据位和校验位组合成一个新的4位二进制数1010101。如果在传输过程中发生任何错误,接收方可以使用海明校验码来检测错误并纠正它们。【例如,接收到数据之后,接收方可以计算校验位的值,并与原始检验位异或运算,发现在某位置上存在错误。通过将该位从0更改为1【或从1改为0】,接收方可以纠正错误并恢复原始数据1011。】
- 假设发送方要发送一个8位的二进制数据01101001,并采用海明校验码进行纠错,具体步骤如下:
- 将8位数据分成4组,每组2位,分别为:01、10、10、01。
- 对每组数据进行奇偶校验,如果2位中有奇数个1,则校验位为0,否则为1。校验位分别为:0、1、1、0。
- 将原始数据和校验位组合成一个12位的海明码,为:011001011100。
- 发送方将海明码发送给接收方。
- 接收方收到海明码后,对每组数据和校验位进行奇偶校验,如果校验位与实际数据不一致,则说明出现了错误,可以根据校验位的位置确定错误的数据位。
- 例如,如果接收方收到的海明码为011001011110,校验位4与数据位3不一致,说明第3位数据出现了错误。接收方可以将第3位数据从0改为1,得到正确的数据01111001。
这就是海明校验码的纠错原理,通过添加校验位,可以检测出错误的数据位,并进行纠正。