在这种情况下,任何纠错码仍然有效吗?

信息处理 数字通信 信息论 信道编码
2021-12-24 09:17:47

在这种情况下,我正在寻找一种可以纠正我的代码字的纠错代码或解决方案:

我的消息保留k位,和2k位码字(速率为1/2) 由生成矩阵产生,例如k=5,所以它产生10位码字1001100111. 如果代码字由于某种原因被擦除并变成1xx1x00xx1(类似于通过二进制擦除通道传输的码字,并且x是未知的,要么'0' 要么 '1'),我还能纠正所有的“x位”在这种情况下,如误码率是1/2?

我已经阅读了一些纠错码,例如块码,卷积码和LDPC,并得到以下问题:

  1. 所有这些ECC在通信中都有实际应用,所以当BER接近时它们仍然有效1/2(我认为BER不可能这么高)?

  2. 我的情况有什么可行的解决方案吗?事实上,我的信息是30位,我可以介绍另一个30位冗余作为奇偶校验位。即使在接收者知道他没有正确接收到哪些位的情况下擦除了它的半位,我仍然可以更正我的代码字吗?

  3. ECC的限制是多少?如果它不能纠正被擦除的一半码字,它最多可以纠正多少位?

任何指南或建议表示赞赏!

1个回答

恐怕这将是一个不完整的答案,但我给出它是希望它总比没有好。

用 50% 的 BER 恢复任何信息是不可能的,因为正如信息论告诉我们的那样,没有信息通过这样的渠道。如果您意识到无论您发送什么位(0 或 1),它到达接收器的机会都与 0 或 1 相同,因此您可以直观地看到这一点,因此您收到的内容不会告诉您实际发送的内容。在这种情况下,理论上不可能创建一个完全有帮助的 ECC。

不过,在某些情况下,擦除比错误要好。Reed-Solomon 解码器经常使用擦除来增加它们的纠错能力。它起作用的原因是因为对于 RS 代码,您有两组未知数:错误位置和错误幅度(错误的数量也是隐含的未知数)。擦除为解码器提供了错误位置,因此它只需要计算出幅度。

然而,在位的上下文中谈论“擦除”几乎没有意义,因为基于位的代码只有一组未知数:错误位置。错误幅度始终为 1。因此,如果您有一点“擦除”,您就是在用一个未知(错误位置)换取另一个(错误幅度)。

对于像维特比码这样的基于位的代码,擦除的模拟是使用软判决。软判决包含“置信度”信息——即接收器如何确定该比特是真正的 1 还是真正的 0。该信息可用于极大地提高解码器性能。

尽管如此,如果您的错误/擦除率真的那么高,您可能无法从任何 ECC 中获得良好的性能。