跳到内容
← 全部问题

非无前缀码在解码 00 或 11 时如何引起歧义?

非无前缀码会引起歧义,因为接收到的比特串可以用多种方法分割成有效的码字。对于 Code 3,接收到的字符串 00 可以被解析为两个码字 0(得到 x1x1x_1x_1)或一个码字 00(得到 x3x_3)。类似地,11 可以被解析为 x2x2x_2x_2 或 x4x_4。

适用条件

  • 当至少一个码字是另一个码字的前缀时发生。**
  • 此处针对 Code 3 下的连接接收字符串进行说明。

理解与推导

  1. 考虑 Code 3 下接收到的比特串 00。
  2. 识别 0 是 x1x_1 的有效码字,00 是 x3x_3 的有效码字。
  3. 将 00 分割为 0 后跟 0,结果为 x1x1x_1x_1。
  4. 将 00 分割为单个码字 00,结果为 x3x_3。
  5. 得出接收方无法唯一确定原始符号序列的结论。

例子

视频下方的表格显示,对于接收到的字符串 00,标注为“x1x1 OR x3 --- confusion while decoding”,对于接收到的字符串 11,标注为“x2x2 OR x4 --- confusion while decoding”。

容易误解的地方

  • 假设接收方总是可以贪婪地选择最长匹配的码字而不出错。
  • 认为码字的不同性可以防止解码歧义。

观看对应讲解

继续追问

答案依据视频资料生成并经过独立核验。若有疑问,请核对原视频或联系原作者。