如何确定在哪里进行 BPSK 信号解调的采样?

信息处理 采样 解调 bpsk 同步 定时
2021-12-27 20:56:25

我有一个简单的 BPSK 解调器。很简单,信号进来并分成两个分支,一个用于 I,一个用于 Q。

  1. I分支与载波的正弦波混合,Q分支与载波的余弦波混合。
  2. 然后,每个输出都与匹配滤波器进行卷积(在这种情况下是根升余弦,它最初对我的传输位进行脉冲整形)。
  3. 现在,如果我结合两个输出并取它们的大小 (I^2 + Q^2),我得到了包络。
  4. 从这里,我寻找峰,并选择它们的指标。
  5. 然后,我使用从 (4) 中获得的相同指标,并在相同的指标上对我的 I 和 Q 进行采样。现在我有了复杂的 softbit 值,并且能够校正任何相位或频率偏移,并且可以从那里做出艰难的决定。(顺便说一句,我有后期处理的奢侈)。

这种技术适用于高到中等 SNR。问题是 SNR 较低(可能是多路径),我不知道如何执行项目符号 (4)。问题是,我现在有多个峰值,而不是对应于一位的包络中的一个峰值,并且“峰值选择”将不起作用,因为有太多可供选择......如何缓解这个问题?这似乎是一个瓶颈,因为如果我不知道我的“位”在哪里,我就无法前进。有什么想法吗?

任何帮助表示赞赏,数学很好,尽管我会提前要求答案更倾向于伪代码/概念。谢谢!

编辑:感谢 Dilip 的反馈,我还应该补充一点,当有信号和没有信号时,我可以清楚地看到包络中的“能量”。(即,在我的信号到达之前),所以这让我相信我应该能够同步/解调并且这不仅仅是一个 SNR 问题......

1个回答

我在 MATLAB 中做了类似的事情。在我的事业中,我使用了Early/Late Gate时钟恢复方法来估计发送和接收符号时序之间的偏移。此方法每个符号使用3 个样本 - 一个在最佳采样时间,一个延迟 1 个样本,1 个提前一个样本。这适用于开/关键控信号,因为信号没有负部分,但我认为下面的方法对双极信号效果更好。

另一种方法是穆勒和穆勒算法,每个符号使用 1 个样本。这使用方程,其中是 error ,是先前和当前的符号样本,并且是决策输出(在您的情况下为 -1 或 +1)。M&M要求先回收载体。en=(yn^yn1)(yny^n1)enyn1ynyn^y^n1

第三种算法与上述算法非常相似,是Gardner 算法在该算法中,误差信号为,其中是过去的样本一个符号,而半个符号在过去。这需要每个符号 2 个样本,但对载波不敏感。en=(ynynT)ynT/2ynTynT/2

M&M 检测器正在查看峰值,而Gardner方法正在查看峰值过零以获取时序估计。

在所有情况下,您都将获取误差估计值,将其馈入环路滤波器,然后将其输出用于提前延迟符号时钟以进行下一次时序估计。环路滤波器可以被认为是一个低通滤波器、一个平滑滤波器,或者简单地认为旧估计的权重小于新估计的权重。环路滤波器控制 a) 时序收敛的速度和 b) 影响估计的噪声量。

另一种选择是使用均衡器,然后从信号中消除时间延迟。我相信这也有助于处理非常嘈杂的信号。

我已经使用这些资源来形成这个答案: http: //www.comlab.hut.fi/opetus/333/2004_2005_slides/CarrierTimingRecovery.pdf http://mobiledevdesign.com/tutorials/radio_matched_filtering_timing/

这篇文章特别有用:http ://rfdesign.com/images/archive/0901Litwin32.pdf 这里是 Gardner 1986 年原始论文的链接:http: //ieeexplore.ieee.org/xpls/abs_all.jsp ?arnumber= 1096561&标签=1

注意通常该区域称为“时钟和数据恢复”或“CDR”。具体来说,我们正在处理“符号同步”。这些术语应该可以帮助您进行搜索。