I/Q 对输入数据的采样解调

信息处理 解调
2022-01-27 09:20:42

我正在尝试将一些未缩放的原始 I/Q 样本数据转换回原始输入数据。我已经阅读了很多关于 I/Q 解调的不同帖子和文章,重点几乎完全集中在将发射器侧的两个独立 I 和 Q 部分合并为一个,然后在接收器侧将它们再次分离的过程. 我还没有找到任何有关如何完成最后一部分的有用文档。

存在许多直接以 I/Q 原始格式输出数据的程序。就我而言,我有 16 位有符号整数,格式为i[0],q[0],i[1],q[1],.... 据推测,该信号源自发射器端的二进制输出。在第一个解调部分之后,在接收端分离 I 和 Q 值,需要哪些最后步骤才能完成循环返回到输入的二进制值?

我意识到这很可能非常简单,尤其是在必须完成所有数学运算以从单个 RF 中获取两个波形之后。尽管如此,我还没有找到对这个最终过程的体面解释。

2个回答

除了hotpaw2的回答

据推测,该信号源自发射器端的二进制输出。

我会说这很可能是错误的。

基于复杂基带的典型数字收发器如下所示:

Binary data -(0/1)->
 Symbol mapper =(complex-valued symbols)=>
  pulse shaper =(complex-valued, "smooth" digital baseband signal)=>
   synchronous dual-DAC =(I & Q signals)=>
    filters =>
     I: mix with cos(2 pi f_RF) --\
                                   subtract--> filters -(RF signal)-> Antenna
     Q: mix with sin(2 pi f_RF) --/

在发射器端,您会看到一些射频信号——它总是模拟的,而不是二进制的。

我还没有找到任何有关如何完成最后一部分的有用文档。

你不可能读得太多,因为我知道的每本教科书都介绍了直接转换发射器和直接转换接收器(注意:它们有不同的名称,还有零如果正交接收器)。

由于您已经获得了复杂的样本,我们可能会假设您正在使用像这样工作的接收器

Antenna -(RF signal)->
 band-pass filter ->
  multiply with cos(2 pi f_RF) -> low-pass filter -(I signal) ->
  multiply with sin(2 pi f_RF) -> low-pass filter -(Q signal) ->
   =(IQ signal pair)=> synchronous dual ADC =(digital complex baseband signal)=> 
    PC software

所以,模拟部分已经为你完成了。

现在,由您的 PC 软件来执行(不一定按此顺序,但所有这些通常都是必需的):

  • f_RF 差异的估计/校正(没有两个物理振荡器完全相同)
  • 相位差的估计/校正(即接收器和发射器的 cos() 没有同时“启动”,并且由于速度有限,信号在非零时间内“悬空”了一段时间光)
  • 反转发射器的脉冲整形
  • 符号率的估计/校正(即单个符号长多少个数字样本?)
  • 猜测发射器发送了哪些符号
  • 将这些符号转换回它们所代表的位

实际上,还有一些额外的步骤(通道编码、硬件缺陷校正、均衡……)。

无论如何,这些步骤的顺序以及它们的完成方式完全取决于发射器产生什么样的调制方案/波形;请注意,您如何无法使用 3G 手机获取您的无绳固定电话发送的比特,或使用您的 WiFi 卡接收数字电视,或使用您的闭路电视接收器接收卫星电话。

即使对于相同类型信号的接收器,SDR 工程师也有很多选择——定时恢复机制的类型,例如,将样本转换为符号时可接受的计算复杂度与这样做时的错误率,以及很多很多更多的。

因此,

我意识到这很可能非常简单,

没有。这是数字通信技术中最困难的问题,也是主要问题,科学支持现代最大的技术领域之一。一般来说,建立好的接收器很难有很多工具可以帮助您解决这个问题。但是:即使是这些工具,也需要对数字通信背后的理论有深入的了解,然后才能走出去编写自己的 SDR 接收器。

但不要绝望:

有很多“简单”的系统相对容易接受,单独的教程可能会让你走得很远。这是一个令人兴奋的技术领域,如果不好玩,我就不会在这上面花费我一生的大部分时间!

我已经见证了几十次如何能够从只是模拟信号的数字表示的东西中实际获取二进制数据使人们a)快乐并且b)使对该理论的理解取得巨大飞跃。

我会鼓励你尝试数字信号!

根据您的假设,传输的信号是二进制的,我将继续大胆猜测您的专业:您可能是计算机科学专业的学生吗?

我可以看到这个信号世界可能有点令人生畏,如果你来自一个你可以安全假设的背景

input---wire/file/network-->output

输入==输出,但数字通信并非如此。

无论如何,无论您是什么,我都建议您阅读有关信号理论的内容。GNU Radio wiki 有一个关于推荐文献的页面。获得一本 DSP 基础书籍和一本 Digital Comm 基础书籍;其中一些以 PDF 格式免费提供。

同时,花 5 分钟阅读GNU Radio 指导教程的介绍章节。这些教程旨在缓慢、仔细、按顺序(不要跳过一章)让您构建一个简单的数字接收器。他们所做的是教一个工具,但他们需要依赖一些信号理论背景,所以如果你缺乏这些,他们可能不会那么清楚。

一种常见的情况是,要传输的 IQ 数据被限制在 RF 载波频率的一小部分以下。某些 SDR 接收器前端(RTL-SDR USB 加密狗等)可能会将 RF 输入乘以载波频率处或附近的复数相量,然后对该中间结果进行低通滤波和下采样,以产生接收到的 IQ 数据流,可以从中恢复原始带限二进制数据(精度概率取决于信道 S/N、频率偏移和相位同步误差等) 二进制数据恢复的确切方法取决于确切的调制方案(BPSK、GMSK/FSK、ODFM等)