使用 gnuradio 进行 BPSK 星座解码

问题描述

我正在尝试在 GNU Radio 上解码 BPSK 信号,但我有点挣扎,所以我希望你能帮助我。

我使用的流程图如下:

Gnuradio Flowgraph

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

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

如您所见,我使用“星座调制器”块和“符号同步”块来模拟调制/解调。然后由“星座解码器”块实现解码

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

Results

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

你知道我该如何解决这个问题吗?任何帮助表示赞赏:)

谢谢,祝你有个美好的一天

解决方法

通常情况:您的位是正确的,但您没有成帧,因此您的接收器不知道一个字节(或任何其他数据单元)从哪里开始。

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

,

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

Gnuradio Flowgraph

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

Results

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

再次感谢您的帮助。

尼古拉斯

,

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...