Algorithm 丢失位的纠错码

Algorithm 丢失位的纠错码,algorithm,checksum,error-correction,error-detection,Algorithm,Checksum,Error Correction,Error Detection,如果我们必须从发送方接收一个数据块(比如8位) 但是,传输不可靠,导致了比特丢失。(不是位翻转) 这意味着,块中的任何位都可能不存在,而接收方只能接收7位。 我研究了一些纠错编码,比如“汉明码”。但是,在这种情况下,代码旨在恢复翻转位而不是丢失位 如果您对低熵代码感到满意,并且可以检测到消息的结尾,那么只需将每个比特发送两次即可 此代码可以从不同运行中发生的任意数量的删除中恢复: 接收时,找到所有奇数大小的管路,并将其延长一位。如果最终的位数少于预期的位数,则无法从多次删除中恢复 如果要确保可以

如果我们必须从发送方接收一个数据块(比如8位)

但是,传输不可靠,导致了比特丢失。(不是位翻转) 这意味着,块中的任何位都可能不存在,而接收方只能接收7位。


我研究了一些纠错编码,比如“汉明码”。但是,在这种情况下,代码旨在恢复翻转位而不是丢失位

如果您对低熵代码感到满意,并且可以检测到消息的结尾,那么只需将每个比特发送两次即可

此代码可以从不同运行中发生的任意数量的删除中恢复:

接收时,找到所有奇数大小的管路,并将其延长一位。如果最终的位数少于预期的位数,则无法从多次删除中恢复

如果要确保可以恢复的固定错误率,请使用位填充

例如:

0110

encoded as:
00 11 11 00

a double error occurs:
0x 11 x1 00

received:
011100

'0' and '111' are odd-sized runs. Fix:
00111100

we have 8 bits, and have recovered from a double error.
decode:
0110
例2:

0101

encoded as
00110011

transmitted as
0xxx0011

received as
00011

corrected as
000011

decoded as
001

which is shorter than expected. A transmission error has occured.
示例3(运行3位后的位填充):


你对一个(8,4)代码满意吗?它可以修复任何一次删除?更重要的是,你能检测到你读取的数据少于8位,还是在最后读取了垃圾?
0000 1111

stuffed as
00010 11101

sent as
0000001100 1111110011