使用 gnuradio 进行 BPSK 星座解码

如何解决使用 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,一切正常。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?