实时BPSK解调

信息处理 数字通信 解调 bpsk 参考实现
2022-02-18 19:42:29

我目前正在研究BPSK解调。很可能我的问题非常基本,但我很难理解实时 bpsk 解调的情况。基本上,所有示例(matlab、理论书籍等)都假设我在接收器上拥有具有频率和相位偏移的整个信号,它们在其中应用频率和相位偏移估计以及后来的符号和定时恢复。我发现很难以实时方式实现这个方案,例如,我不断地从缓冲区中的天线接收样本。

我如何在不隔离信号的情况下开始执行 bpsk 解调,因为在我检查的示例中稍后执行了定时恢复?

当然,我遗漏了一些东西或混淆了这些概念。您能否提供这种方法的玩具示例,或者指出一种在实时实现中执行的常用技术。

亲切的问候,J

3个回答

在实际接收器的实现中,您必须执行所谓的“流式传输”,或实时将样本从一个块传递到下一个块。

Matlab 不适合处理流样本;你需要一个不同的工具。

例如,GnuRadio旨在实时处理流样本。您甚至可以使用具有拖放不同模块的可视化工具来设计解调器。

也应该可以使用 Python,通过设置管道从前端读取样本并按顺序处理它们。

如果您想使用 DSP,我可以推荐这本书:http ://amzn.com/0387748857 ,它描述了使用 DSP 评估板的流式数字通信系统的整个设计。

我非常感谢 MBaz 的回答,因为这意味着我不必每次都成为提出 GNU Radio 的人 :)

所以,

我如何在不隔离信号的情况下开始执行 bpsk 解调,因为在我检查的示例中稍后执行了定时恢复?

从概念上讲,您将在时序恢复后进行解调。看看这个 BPSK 信号

BPSK信号

接收到的(蓝色/红色)与传输的(青色/黑色)不同,清晰的 BPSK 符号序列。它始终是它的低通滤波版本(两者都对通道属性起作用,而且在法律上通常不允许在没有脉冲整形的情况下进行高速二进制传输 - 频谱会有很多 Sinc 式旁瓣) ,因此“平滑”的边缘,总是一个时间,因此,相移版本,因此应用于信号的复杂旋转(即,尽管您发送了 BPSK,但您将同时拥有非零实部和虚部)。

此外,关于解调更重要的是:假设 TX 符号的“中心”位于 x 轴上的 0,10,20,30,40... 标记上,但您不进行计时恢复,因此您在 5,15,25,35,45,... 处对接收信号(青色/黑色)进行采样。

显然,您将很难从中恢复 TX 信号(因为那里的值不是 1j*({-1,1}),而是类似于 -0.28+0.2j)!

因此,首先是时序恢复,然后是符号解映射。

实际上,在某些系统中,符号解映射(解调)和时序恢复都可以协同工作,但无论如何,在解调之前,您都需要先点击符号的中心。

正如 MBaz 已经说过的,GNU Radio 拥有所有工具(顺便说一下,我使用它生成了上面的信号图),并且用于接收实时信号。试试看!我强烈建议您阅读第 1 章到第 7 章的官方教程(按此顺序),因为它们使您能够理解和构建自己的 PSK 接收器。

实时有点用词不当。实际上,数字解调器通常使用“过去”的数据片段进行解码。它缓冲足够的信号,直到它可以开始进行定时恢复,然后从过去的数据中保存足够的状态以帮助恢复后续数据(或数据窗口),但同样,使用来自/过去的数据进行解调,经过系统延迟和过滤脉冲响应瞬态等。