首先我要说我是SDR和GNU Radio的非常。这可能是一个愚蠢的问题,但是我已经在谷歌上搜索和测试了大约两个月的时间,试图使它成功运行。任何帮助或指示,将不胜感激!
我正在尝试使用GNU Radio 3.8使用差分QPSK传输文件。我试图遵循Wiki上的教程以及我在互联网上找到的几篇类似的学术论文(这些论文似乎也基于Wiki教程)。他们都不是一个人工作,而是结合了每个人的实际工作,我设法创建了一个流程图,没有硬件,的确确实从文件发送和接收数据。 Here's the Flowgraph和here is a screenshot of the results.结果显示了四个星座点,并且来自文件源的数据与经过整个发送+接收链的数据完全匹配。在仿真中,我有一个节流块和一个通道模型块,LimeSDR Source和LimeSDR Sink块将位于其中。到目前为止一切正常(至少据我所知)。
当我实际上开始使用SDR发送此信号时,接收到的数据不再与发送的数据匹配。 Here's the flowgraph I've been using for the transmission.我添加了一个协议格式化程序和一些本可以删除的FEC块,但要点是,仅查看哪些比特进入调制器而要恢复的比特,这两个就不匹配了。这个星座看起来不错(据我所知),但是这些位都是错误的。 Here's a screenshot showing the bits being transmitted.您会在所传输信号的屏幕截图中注意到,该信号具有重复的三个平顶“ 1”序列,其两侧被周期“ 0”包围(时间为1.5ms和3.5ms) 。 This is a screenshot of the received bits.在1毫秒和3毫秒的时间,您可以看到它在1到0之间的过渡要多得多。
所以在这一点上我很困惑。该模拟有效,但实际测试无效。我把RRC过滤器属性弄得一团糟。我不知道我选择的值是否正确,因为我没有找到有关此操作的教程或解释。我只是看了一些示例流程图,并对这些值是如何得出的以及如何将这些猜测应用于我的用例进行了一些猜测。它在模拟中效果很好,所以我认为在实际测试中会很好。我已经尝试过每个符号进行各种采样,但是我的目标是每秒传输4800位,并且每个符号使用不同的采样仍然无济于事。为了使它正常工作,我应该更改什么?
奖金问题:星座图对象具有QPSK和DQPSK,而星座图调制器具有差分复选框。选择以获得差动QPSK调制的最佳实践是什么?