在软件中恢复BPSK信号的相位有哪些选择?我可以在网上找到的唯一资源包括电路图-似乎没有人愿意向不熟悉模拟电路的人解释这一点。
我想对载流子恢复在理论上是如何工作的任何解释,并且也喜欢伪代码或代码示例。
在软件中恢复BPSK信号的相位有哪些选择?我可以在网上找到的唯一资源包括电路图-似乎没有人愿意向不熟悉模拟电路的人解释这一点。
我想对载流子恢复在理论上是如何工作的任何解释,并且也喜欢伪代码或代码示例。
Answers:
要解调BPSK最简单的相移键控信号,必须恢复载波频率,相位和符号时序。
突发信号 一些信号为突发信号,并提供称为前同步码或中间同步码的已知数据序列(取决于它出现在突发的开始还是中间)。解调器可以使用匹配的滤波器,“寻找”已知的数据序列,并使用它来确定突发的频率,相位和符号时序。他们为每个突发执行此操作,而不必担心“漂移”(随着小误差的积累,在解调器和接收信号之间逐渐建立的距离),因为突发通常足够短,以至于漂移不会问题。
连续信号 然后有连续信号。与突发信号相比,它们在许多方面都很难恢复,因为通常没有已知的数据序列可以帮助锁定信号,并且即使锁定信号后,您也必须担心漂移。我将尝试在较高级别上描述通常用于恢复连续信号的主要步骤。
载波恢复
通常,您知道要查找的信号将处于哪个频率,或者至少知道该信号可能处于哪个频率集。但是,即使掌握了这些知识,您通常也必须能够校正频率偏移,因为没有两个发射机以相同的频率进行发送。总是有一些错误。然后,通常的方法是混合您认为信号将达到的频率,然后校正残留频率误差。这可以通过Costas Loop来完成,或者取基带信号数据的四次方并寻找频率尖峰。载波偏移* 4处应有一个频率尖峰(例如,如果将数据进行FFT转换为4次幂,并且看到8300 Hz处的频率尖峰,则意味着载波偏移为8300/4 = 2075 Hz)。这是获得频率偏移初始锁定的非常有效的方法。如果您偶尔进行重新调整,也可以使用它来补偿漂移。还有另一种补偿漂移的方法,我将在稍后讨论。
载波相位
此时,如果您在复杂平面上绘制复杂数据(x轴是实轴,y轴是虚轴),则它应类似于以下内容:
如果仔细观察,您会看到模糊线末端的两个密集区域。这些是BPSK星座点。中间的点是星座点之间的过渡。一旦获得符号计时,这些将清除。线倾斜的原因是由于载波相位。这可以通过将所有具有负实数值的点乘以来镜像信号来测量
然后取这些点的角度的平均值。计算完该角度后,通过将点乘以,从已去除载波偏移的所有点中减去该角度。您还可以使用此技术通过动态更新相位偏移来补偿载波偏移。数据经过相位校正后,它应该看起来像这样-
数据经过相位校正后,您可以删除其虚部,因为它不会添加任何信息。
符号时序
通常,您应该先验地知道要解调的信号的符号周期。但是,如果确实需要确定符号周期/频率,则可以采用与检测载波偏移的方式类似的方式来进行。您可以对数据求平方,这将导致符号频率两倍的频率尖峰。
像使用载波一样,您将必须正确调整相位(时序),然后补偿漂移。解决这两个问题的常用方法是寻找零交叉点。除非噪声非常严重,否则它应仅在符号从-1到1或从1到-1过渡的中间越过零点。即使噪声确实导致这种情况发生在符号中间,也不会经常发生。
上面的图片通常称为“眼图”或“眼图”。它是两个符号周期宽,并且有许多符号“堆叠”在另一个顶部。我不知道您是否熟悉示波器,但是您可以让示波器显示这样的图片。无论如何,两个“ X”是符号转换。X的高线到低线是当符号从1转换为-1时,X的低线到高线是当符号从-1转换为1时的线。粉色线是采样数据以查看符号是1还是-1的最佳位置。
可以使用相同的技术来处理符号定时漂移。取到之前的零交叉点与之后的零交叉点的距离的移动平均值。如果两个平均值大致相同,则一切都很好。如果一个样本大于另一个样本,则需要转移获取样本的位置。
在正确的点上对符号进行采样后,您的数据点应该会看起来像经典的BPSK星座点。
我希望这有帮助。