什么是纠错?
在检测方法中,只能检测到错误。然而,在纠错方法中,错误会在接收端自动纠正,无需重新传输。突发错误纠正仅限于2位。
每个k比特的数据块都添加冗余位,构成n比特的码字(n > k)。发送端使用前向纠错编码器。然后,传输码字。信号被解调以生成与初始码字等效的比特串,其中包含接收端的错误。
如果没有比特错误,FEC解码器的输出 = 原始码字并产生原始数据。
作为特定的错误设计,解码器可以识别和修复错误是可行的。FEC解码器能够将此块映射到原始数据。
对于特定错误,解码器可以识别但不能修复错误。它会被报告为不可管理的错误。
示例
假设,使用汉明码来识别和纠正单比特错误,考虑每个码字包含在七位数据区域中,例如ASCII字符。
例如,在编码设计中需要校验位,因为在这个设计中,校验位出现在所有位位置上,这些位位置是2的幂。因此,此代码称为(1, 7)块码。
例如,值1001101的位位置如下:
比特位置 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|
比特值 | 1 | 0 | 0 | x | 1 | 1 | 0 | x | 1 | x | x |
四个比特位置用x表示。它可以用于校验位,假设如下。与这些比特位置对应的四个比特二进制数具有二进制1。它们使用模2算术相加,然后四个校验位就是四个比特的和。
11 = 1011 7 = 0111 6 = 0110 3 = 0011 1011
因此,传输的码字如下:
比特位置 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|
比特值 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 |
类似地,在接收端,与那些具有二进制1的位置对应的四个比特二进制数被用作校验位。它们再次相加,如果没有任何错误出现,模2和应该为零。
11 = 1101 8 = 1101 7 = 0111 6 = 0110 3 = 0011 1 = 0001 0000
假设单个比特错误。可以说比特11从1损坏为0。新的模2和将如下所示:
8 = 1000 7 = 0111 6 = 0110 3 = 0011 1 = 0001 0 = 1011
首先,和非零,这表示存在错误。
其次,模2和等于十进制11,表明比特11是错误比特。
广告