如何在软件中执行载波相位恢复?


13

在软件中恢复BPSK信号的相位有哪些选择?我可以在网上找到的唯一资源包括电路图-似乎没有人愿意向不熟悉模拟电路的人解释这一点。

我想对载流子恢复在理论上是如何工作的任何解释,并且也喜欢伪代码或代码示例。


我们通常不提供代码示例-尤其是对于像BPSK解调器这样复杂的事情。
吉姆·克莱

1
正如JimClay所指出的那样,您不太可能让某人有足够的时间来提供用于实现解调器的完整源代码。但是,如果您了解概念,创建实现的机制应该很容易。通常,软件接收器将具有与相应硬件技术类似的结构(例如,基于前馈非线性的同步器或基于反馈PLL的方法)。您是否有计划要定位的特定拓扑?
杰森R

感谢您的评论@JimClay和JasonR –我并不是要问工作源代码。我已经更新了更具体的问题:我只是在寻找不以理解模拟电路和电路图为前提的任何解释。
Keith

Answers:


25

要解调BPSK最简单的相移键控信号,必须恢复载波频率,相位和符号时序。

突发信号 一些信号为突发信号,并提供称为前同步码或中间同步码的已知数据序列(取决于它出现在突发的开始还是中间)。解调器可以使用匹配的滤波器,“寻找”已知的数据序列,并使用它来确定突发的频率,相位和符号时序。他们为每个突发执行此操作,而不必担心“漂移”(随着小误差的积累,在解调器和接收信号之间逐渐建立的距离),因为突发通常足够短,以至于漂移不会问题。

连续信号 然后有连续信号。与突发信号相比,它们在许多方面都很难恢复,因为通常没有已知的数据序列可以帮助锁定信号,并且即使锁定信号后,您也必须担心漂移。我将尝试在较高级别上描述通常用于恢复连续信号的主要步骤。

载波恢复

通常,您知道要查找的信号将处于哪个频率,或者至少知道该信号可能处于哪个频率集。但是,即使掌握了这些知识,您通常也必须能够校正频率偏移,因为没有两个发射机以相同的频率进行发送。总是有一些错误。然后,通常的方法是混合您认为信号将达到的频率,然后校正残留频率误差。这可以通过Costas Loop来完成,或者取基带信号数据的四次方并寻找频率尖峰。载波偏移* 4处应有一个频率尖峰(例如,如果将数据进行FFT转换为4次幂,并且看到8300 Hz处的频率尖峰,则意味着载波偏移为8300/4 = 2075 Hz)。这是获得频率偏移初始锁定的非常有效的方法。如果您偶尔进行重新调整,也可以使用它来补偿漂移。还有另一种补偿漂移的方法,我将在稍后讨论。

载波相位

此时,如果您在复杂平面上绘制复杂数据(x轴是实轴,y轴是虚轴),则它应类似于以下内容:

旋转BPSK

如果仔细观察,您会看到模糊线末端的两个密集区域。这些是BPSK星座点。中间的点是星座点之间的过渡。一旦获得符号计时,这些将清除。线倾斜的原因是由于载波相位。这可以通过将所有具有负实数值的点乘以来镜像信号来测量ËĴπ

旋转并镜像BPSK

然后取这些点的角度的平均值。计算完该角度后,通过将点乘以,从已去除载波偏移的所有点中减去该角度。您还可以使用此技术通过动态更新相位偏移来补偿载波偏移。数据经过相位校正后,它应该看起来像这样-ËĴ-ω

嘈杂的BPSK

数据经过相位校正后,您可以删除其虚部,因为它不会添加任何信息。

符号时序

通常,您应该先验地知道要解调的信号的符号周期。但是,如果确实需要确定符号周期/频率,则可以采用与检测载波偏移的方式类似的方式来进行。您可以对数据求平方,这将导致符号频率两倍的频率尖峰。

像使用载波一样,您将必须正确调整相位(时序),然后补偿漂移。解决这两个问题的常用方法是寻找零交叉点。除非噪声非常严重,否则它应仅在符号从-1到1或从1到-1过渡的中间越过零点。即使噪声确实导致这种情况发生在符号中间,也不会经常发生。

眼图

上面的图片通常称为“眼图”或“眼图”。它是两个符号周期宽,并且有许多符号“堆叠”在另一个顶部。我不知道您是否熟悉示波器,但是您可以让示波器显示这样的图片。无论如何,两个“ X”是符号转换。X的高线到低线是当符号从1转换为-1时,X的低线到高线是当符号从-1转换为1时的线。粉色线是采样数据以查看符号是1还是-1的最佳位置。

可以使用相同的技术来处理符号定时漂移。取到之前的零交叉点与之后的零交叉点的距离的移动平均值。如果两个平均值大致相同,则一切都很好。如果一个样本大于另一个样本,则需要转移获取样本的位置。

在正确的点上对符号进行采样后,您的数据点应该会看起来像经典的BPSK星座点。

嘈杂的BPSK星座

我希望这有帮助。


为了使这个精彩的帖子变得更好,也许您可​​以在符号计时之前添加一个时钟恢复部分?
LWZ

我想我可能知道您的想法,但不确定。您有什么特别的想法?
吉姆·克莱

非常感谢!我没有想到要寻找零交叉,或以这种方式在x / y上绘制实数/虚数。我只是盯着相位图,想知道如何同步所有内容。再次感谢!
Keith

@JimClay,在“ 符号时序”部分的开头,您提到“您通常应该知道要解调的信号的符号周期。”这通常是由时钟恢复单元实现的,因为通常您不会随数据一起发送时钟。对于BPSK信号,这很容易,您可以在其中平方信号,从而删除数据。然后,您查看功率谱,应该有一个称为时钟音的峰值频率,它为您提供符号周期。
LWZ 2013年

在符号频率上添加了一段。
吉姆·克莱
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.