问题描述
我正在尝试在 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 db 7e db 56 db 36 db 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 be 46 57 08 cb
如您所见,我使用“星座调制器”块和“符号同步”块来模拟调制/解调。然后由“星座解码器”块实现解码
我们可以在下图中看到一切似乎都运行良好:当我将输入位流与输出位流进行比较时,位是同步的
但是,当我在流程图的输出端打开文件时,我无法获得输入端的位帧。
你知道我该如何解决这个问题吗?任何帮助表示赞赏:)
谢谢,祝你有个美好的一天
解决方法
通常情况:您的位是正确的,但您没有成帧,因此您的接收器不知道一个字节(或任何其他数据单元)从哪里开始。
您需要添加一些框架!这可以像您要查找的二进制序言一样简单。
,好的,所以我尝试添加一些带有“相关访问代码”块和二进制访问代码 1acffc1d 的框架。这是流程图:
块然后在样本 53 处找到一个标签,在时间接收器上,我们可以验证该标签确实是 1acffc1d(二进制)。
但是我无法使“标记文件接收器”块起作用。在文档上说标签必须是“burst”才能让块开始将数据写入新文件,但我真的不明白这是什么意思。
再次感谢您的帮助。
尼古拉斯
,编辑:我下载了模块 gr-satellites 并使用了块同步并创建了打包的 pdu,一切正常。