如何理解 I/Q 信号?

本文所提及的 I/Q 和智商(Intelligence Quotient)无关。

引子

从事射频相关的工作,即使不是通信科班出身,相必也听说过 I/Q 信号。但是真正对 I/Q 信号的本质能够融会贯通者,想必寥寥。对于像我这种不从事无线通信物理层设计的人来说,不了解 I/Q 信号,似乎对工作也什么影响。但是这个世界其实就是这样,很多事情看似不了解没什么,但是一旦了解,逐步积累形成体系,量变引起质变,方至融会贯通的境界,举一而反三,无往不利。I/Q 信号大抵就属于这样一类知识,也就是所谓的基本功。

从第一次听说 I/Q 信号这个词儿开始,多年来,我对其一直都仅仅是知道些表象和皮毛的东西。最终想把 I/Q 调制弄清楚源于几个月前在公司内部做的一次有关利用 SDR 进行无线通信时序调试的分享。在讲 SDR 背景相关内容时谈到了 I/Q 调制解调的内容,但是除了正交、数字化聊不出来太多实质性的东西。然后就花了些时间在网上找资料学习研究,于是就有了这篇文章。

编外语:这篇文章中的内容大量参考了 W2AEW 大佬的几个关于 I/Q 信号视频。W2AEW 在电子电路方面的功力深厚,讲解深刻且通俗易懂,力荐!

I 和 Q

I 是 In-phase 的缩写,Q 是 Quadrature 的缩写。翻译成中文,I 表示同相,Q 表示正交。从同相去理解 I/Q 信号让人感觉非常抽象和不适,因为相位本身就是一个相对的概念,有了参考零点,才有相位,凭空来一个同相是啥意思?我觉得名称中只保留 Q,也就是正交信号,然后在引入水平垂直分量,可能会更好理解。扣字眼没意义,大家知道 I 和 Q 的英文原意有些费解也就罢了。

再来看看 I/Q 信号到底是干嘛的? I/Q 信号的本质其实是一种利用简单信号组织复杂信号的方法,这种信号充分利用了正弦波的特性,将信号的调制和解调过程进行了统一。利用 I/Q 信号的调制解调,我们可以将便于理解和编码的数字信号转为可进行供无线传输的模拟信号(射频信号)。I/Q 信号在射频通信中使用非常广泛。

接下来分别看一下 I/Q 信号的调制和解调的数学公式。

调制

调制:
s(t) = I(t)*cos(2πft) + Q(t)*sin(2πft)

其中,s(t) 表示某一个信号的本身,频率值 f 是固定常数(载波频率),cos(2πft) 对应同相信号(In-phase),sin(2πft) 对应正交信号(Quadrature)。可以看到 cos(2πft) 和 sin(2πft) 在相位上相差 90 度 ,这也就是正交一词得名由来(参考数学上的垂直来理解)。

cos(2πft) 的系数(幅值),用函数 I(t) 表示。

sin(2πft) 的系数(幅值),用函数 Q(t) 表示。

这样其实可以看到,**I/Q 信号调制的本质是一种基于幅度调制方法。**更重要的是,通过合理的调节幅值 I(t) 和 Q(t) 可以控制输出信号的幅度、相位、频率。

注:LO 为 Local Oscillator 缩写,指时钟。

那么,这个时候不免会有一个疑问,为什么要用这样的方式进行信号的调制呢?

我想有如下这么几个方面:

  1. 调制简便(乘法器(放大)和加法器(混频))
  2. 解调代价小(信号保真度高)
  3. 利用 I/Q 信号的特性进行数字编码方便

对整个 I/Q 信号的来历脑补一下,可能就是在人们研究信号调制解调方法过程中发现了正弦波相应的特性,同时利用相关特性在工程上加以运用,形成了固定的方法。

调制的过程比较好理解,使用乘法器(放大)和加法器(混频)对信号进行处理后就得到了我们最终要的信号。下面看一下解调。

解调

解调:
Q(t): s(t)*sin(2πft) = I(t)*cos(2πft)*sin(2πft) + Q(t)*sin(2πft)*sin(2πft)
	                 = I(t)*sin(4πft)/2 + Q(t)/2 + Q(t)*cos(4πft)/2

I(t): s(t)*cos(2πft) = I(t)*cos(2πft)*cos(2πft) + Q(t)*sin(2πft)*cos(2πft)
                     = I(t)/2 + I(t)*cos(4πft)/2 + I(t)*sin(4πft)/2

其中的三角函数变换使用到了积化和差公式。
cos(a)*cos(b) = sin(a)*sin(b) = cos(a+b)/2 + cos(a-b)/2;
cos(a)*sin(b) = sin(a+b)/2 - sin(a-b)/2;

根据上述公式进行变换可以知,解调需要对输入信号(接收信号)进行乘法运算。Q(t) 的解调乘以 sin(2πft),I(t) 的解调乘以 cos(2πft)。在进行乘法运算后会得到载波频率2倍频的信号,这样采用合适的低通滤波器进行滤波之后可以得到 Q(t) 信号。如果考虑到 Q(t) 和 I(t) 本身,解调过程将变得更为复杂。

示例

相位控制

s(t) 为红色曲线,I 信号为黄色曲线,Q 信号为红色曲线。

I(t) = Q(t) = 1

I(t) > Q(t)

I(t) < Q(t)

BPSK(Binary phase-shift keying)

I(t) = -1 / 1,Q(t) = 0,这样共用 2 种情况。

如下图红色为 I(t) ,绿色为调制后的信号 s(t)。

如上图可见,每次在 I(t) 数据有跳变时,输出信号 s(t) 发生相位变化。

QPSK(Quadrature phase-shift keying (QPSK))

I(t) = -1 / 1,Q(t) = - 1 / 1,这样可以共用 4 种情况。

如下图红色为 I(t),蓝色为 Q(t) ,绿色为调制后的信号 s(t)。

如上图可见,每次在 I(t) 或 Q(t) 数据有跳变时,输出信号发生相位变化。

一些思考

I/Q 信号调制与解调方法固然好,但是跟其他事物一样,有其局限性。当 I(t) / Q(t) 这两个幅值函数中包含过多载波倍频信号分量时,解调时将遇到问题,高频信号分量无法被过滤掉。

从我在网上查阅到的所有资料来看,均没有提及 I/Q 信号是谁发明的,可能是由于在较短的时间内很多科学家、工程师同时开始使用相同的方法,具体发现的人已经不可考,或者本身由于 I/Q 调制的原理不复杂,大家都没把这个事情当成一回事。从已发表的论文去寻找应用能够寻找到蛛丝马迹,但是一来工作量很大,二来其本身意义不大,这样我也就放弃了。如果有读者朋友了解 I/Q 信号或是 I/Q 调制解调的起源,欢迎留言告知,非常感谢。

参考资料