使用gnuradio进行BPSK星座解码

BPSK constellation decoding using gnuradio

我正在尝试在 GNU Radio 上解码 BPSK 信号,但我遇到了一些困难,所以希望您能帮助我。

我使用的流程图如下:

我在流程图输入端发送的位帧是:

1a cf fc 1d ff fd 55 53 33 3b bb a5 a5 8d 8d ed ed 6d 6c 93 6e 3b 68 5b 60 分贝 7e 分贝 56 分贝 36 分贝 b6 da 49 27 1c 74 2f 4f 94 ea 31 67 bc 8a 51 e7 3d 74 53 4f 3b 14 5b cf 25 14 73 cf 45 14 f3 ce ba e9 a6 9d 89 d2 1d 38 2c 5f 90 d5 c1 32 fc 46 AF 09 94 1d cf d2 ea c6 99 09 dc 1d 2f d3 95 3a 33 a7 ba 75 a7 4d 8b 12 1b c7 da f5 26 b3 89 ba 1d a7 d2 75 38 b3 a1 ba 7d a7 52 74 c7 4e f4 e9 4e 9c e9 d1 62 c3 79 04 a3 f1 85 42 0c f8 11 5f c3 2a fb 99 5a 23 27 84 75 f0 b2 是 46 57 08 cb

如您所见,我正在使用“Constellation Modulator”模块,然后使用“Symbol Sync”模块来模拟 modulation/demodulation。然后解码由块“Constellation decoder”

实现

我们可以在下图中看到一切似乎都运行良好:当我将输入比特流与输出比特流进行比较时,比特是同步的

然而,当我在流程图的输出端打开文件时,我无法获得输入端的位帧。

你知道我该如何解决这个问题吗?感谢您的帮助:)

谢谢,祝你有美好的一天

通常:你的位是正确的,但你没有成帧,所以你的接收器不知道字节(或任何其他数据单元)从哪里开始。

您需要添加一些框架!这可以像您要​​查找的二进制序言一样简单。

好的,所以我尝试使用“关联访问代码”块和二进制访问代码 1acffc1d 添加一些框架。这是流程图:

Gnuradio Flowgraph

然后该块在样本 53 处找到一个标签,在 Time Sink 上我们可以验证该标签确实是 1acffc1d(二进制)。

Results

但是我无法使块“标记文件接收器”工作。在文档中说标签必须“爆裂”才能让块开始将数据写入新文件,但我真的不明白这是什么意思。

再次感谢您的帮助。

尼古拉斯

编辑:我下载了模块 gr-satellites 并使用了块同步并创建了打包的 pdu,一切正常。