GnuRadio CC 解码器或如何使用 FEC 扩展解码器

信息处理 反卷积 格努拉迪奥 维特双算法
2022-02-11 00:49:19

我目前正在尝试恢复按照 CCSDS 标准编码的卫星信号。这包括一个速率为 1/2 且约束长度为 7 的卷积码。

我通过使用同轴电缆直接连接到发送器的 SDR 接收信号,中间有一些衰减。出于测试目的,我交替发送 0 和 1。对于解调和解码,我目前正在使用本文所附的图表。

直到卷积解码器,一切似乎都没有问题。当停用发送方和接收方的代码时,我可以毫无问题地解码数据。当卷积码处于活动状态时,解码器有时能够正确解码数据,但大多数时候,输出只是包含垃圾。

因此,我想知道,我是否以错误的方式使用解码器块?很难找到有关如何正确使用此块的文档。我已经为解码器定义尝试了不同的设置,但到目前为止没有任何帮助。

谁能帮我这个?亲切的问候瓦尔基里

使用 GnuRadio Graph

2个回答

在 CCSDS 信道编码标准中,有一个称为 ASM 的同步字。

它是 32、64 或 256 位的模式序列,用于流内的同步。解决我在下面描述的两点很有用。

在您的 GNU 框图中,我看到两件事可能是个问题:

  • 相位模糊:解调中没有解决BPSK相位模糊的机制。如果没有解决(歧义),我不确定 Viterbi 解码器是否可以正常工作。

  • CC 的两位多义性:这种类型的码以 1/2 的速率产生两个编码位,一个非编码位。在解码器的输入端,您必须与一对的第一个编码位同步。

这可以解释有时您的系统在打开/关闭后工作。碰巧超过两个或四个...

其他备注,使用 0 和 1 的交替模式可能会让你错过调试的东西。尝试 32 位模式。

告诉我们你是否发现了什么

顺便说一句,由于 CC 编码器是透明的,您还可以关联 ASM 的预 CC 编码版本。这有点棘手,但如果您使用它而不是差分编码,可以为您节省 3dB。