AM解调的gnuradio相位漂移

时间:2015-11-10 18:16:49

标签: audio signal-processing gnuradio gnuradio-companion

我正在使用GNUradio和廉价的SDR开始一个项目。

http://www.amazon.com/gp/product/B00SXZDUAQ?psc=1&redirect=true&ref_=oh_aui_search_detailpage

项目的一部分要求我生成参考音频,并将该音调的相位与解调音频进行比较。

为了模拟系统的这一部分,我生成了一个简单的GNUradio流程图:

gnuradio flowgraph

我对源和解调音频有一些问题,因为它们会相互漂移。这发生在原始流程图上的范围同步上。为了帮助进行故障排除,我通过声卡的第二个通道发送解调后的音频,并在外部示波器上监控除了调制RF之外的两个音频流:

scope photo #1

最初一切似乎都很好,但解调后的音频相对于原始信号和RF漂移:

scope photo #2

我的问题是:我在流程图中做错了什么,或者我是否期望从便宜的SDR中获得太多性能?

提前感谢任何见解

1 个答案:

答案 0 :(得分:2)

在完全数字仿真或完全模拟电路只有一个振荡器的情况下,您不能指望出现零相位漂移,因为没有两个(物理)振荡器具有相同的频率。

在您的情况下,涉及两个相关的振荡器:

  1. RTL-SDR单元中的采样时钟。
  2. 声卡输出中的采样时钟。
  3. 在GNU Radio流程图中,本身没有时间参考,一切都取决于连接到硬件的源和接收器。

    流程图中的相关来源是RTL-SDR硬件;只要它的振荡器不同于其标称值(28.8 MHz,就像它发生的那样),它产生的一切都将是绝对意义上的非频率(RF载波频率解调输出的音频频率)

    但你实际上并没有绝对频率参考;你有声卡产生的音调。声卡有自己的振荡器,它决定了采样转换为模拟信号的速率,从而确定了流程图中采样的速率。

    因此,您的参考信号将相对于您接收和解调的信号漂移,其速率由两个振荡器之间的频率误差差异决定。

    此外,由于您的声卡将接受来自流程图的样本,实时速率与RTL-SDR 生成的实时速率略有不同,您会注意到当误差累积并且必须处理时,音频中出现周期性毛刺;它们将立即开始发生(如果源比接收器慢,要求声卡发出静音)或者在缓冲器达到最大尺寸后延迟(如果源比接收器快,则需要RTL- SDR放弃一些样品。)