IQ 调制技术简介
一、基本原理
IQ 调制很早就在模拟调制技术中得到应用,最初是为了解决多个信号的合成问题。
传统的信号合成是采用三角函数的乘法。
定义:载波信号为$\cos \omega_ct$,基带信号为$s(t)=\cos \omega t$,则调制结果为
$$ s_{RF}(t) = s(t) \cos \omega_ct = \cos \omega t \cos \omega _ct
= \frac {\cos(\omega_c - \omega)t + \cos(\omega_c + \omega)t} 2
$$

测试结果显示 1hz 和 10hz 的两个频率相乘后生成了一个 10-1,10+1 两个频率,过滤其中一个就可以还原出基带信号。然而,两个对称的频率脉冲比较接近,剔除不太容易,还浪费了宝贵的频率带宽。
二、模拟信号处理
在 IQ 调制中,信号被分解为两个正交的分量独立地携带信息,从而提高数据传输的效率。
- I(In-phase)分量:同相分量,与载波信号同相位。
- Q(Quadrature)分量:正交分量,与载波信号相位相差90度(或π/2弧度)。

1. 调制环节
载波信号和基带信号的调制采用三角函数的减法,结果是一个单一的正弦波,频率是 $\omega_c - \omega $ 。
$$ s_{RF}(t) = \cos (\omega_ct - \omega t)
= \cos\omega_ct \cos \omega t + \sin \omega _ct \sin \omega t
$$
令:$ I(t) = \cos \omega t ,Q(t) = \sin \omega t $ ,则:
$$ s_{RF}(t) = I(t) \cos \omega_ct + Q(t) \sin \omega_ct $$
其中,$\omega_c $ 是载波的角频率,$I(t)$ 和 $Q(t)$ 分别是调制信号的同相和正交分量。

调制的技术实现
- 载波发生器提供一个 $\cos(\omega_ct)$ 余弦信号,并通过移相生成一个 $\sin(\omega_ct)$ 正弦信号;
- Q 基带信号和正弦载波信号相乘,I 基带信号和余弦载波信号相乘;
- 再将两路信号相加,最后得到调制结果信号 $I \cos \omega_ct + Q \sin \omega_ct $。

2. 解调环节
在解调环节,分别处理 I 分支和 Q 分支:
对于 I 分支,利用相同的载波,乘以两倍的余弦信号:
$$
\begin {align}
[I \cos \omega_ct + Q \sin \omega_ct].2\cos \omega_ct & = I.2 \cos ^2\omega_ct + Q.\sin 2\omega_ct \\
& = I.(1+\cos 2\omega_ct) + Q.\sin 2\omega_ct \\
& = I + I.\cos 2\omega_ct + Q.\sin 2\omega t
\end {align}
$$
对于 Q 分支,基于同一载波的相位偏移得到正弦信号,并同样做乘法:
$$
\begin {align}
[I \cos \omega_ct + Q \sin \omega_ct].2\sin \omega_ct & = I.\sin 2\omega_ct + Q.2 \sin ^2\omega_ct \\
& = I.\sin 2\omega_ct + Q.(1-\cos 2\omega_ct) \\
& = Q - Q.\cos 2\omega_ct + I.\sin 2\omega_ct
\end {align}
$$
上面的数学结果似乎很复杂,但由于 $2\omega_c$ 频率远高于载波频率 $\omega_c$,使用一个低通滤波器就可以剔除,结果就是纯净的 I 和 Q 基带信号。
解调的技术实现
- 接受端的载波发生器与发送端完全相同,提供一个 $\cos(\omega_ct)$ 余弦信号,并通过移相生成一个 $\sin(\omega_ct)$ 正弦信号;
- 收到的调制信号和余弦载波信号相乘,通过低通滤波器清除高频部分,得到纯净的 I 基带信号
- 收到的调制信号和正弦载波信号相乘,通过低通滤波器清除高频部分,得到纯净的 Q 基带信号

三、数字信号处理
IQ 模式同样可以用于数字调制方式,只不过数字信息要通过数模转换生成和判决。其数学原理基于三角函数的辅助角公式,即:
$$ a\sin \alpha + b \cos \alpha = \sqrt {a^2+b^2} \sin (\alpha + \varphi), 其中 \tan \varphi = \frac b a $$

四、代码实例
发送端代码
1 | # NumPy 是一个数学函数库,支持维度数组与矩阵运算 |

接收端代码
1 | import numpy as np |

附录一:时域和频域
时域(time domain):是信号在时间轴随时间变化的总体概括。是真实世界存在的域,可以通过示波器来看。
频域(frequency domain):描述频率变化和幅度变化的关系,是把时域波形的表达式做傅立叶等变化得到复频域的表达式。是一个存在于数学定义中的域,可以通过频谱仪来看。


从时域到频域,转换方法就是傅里叶变换,有三种类型:
- FI(Fourier Integral,傅里叶积分):用于将时域内的理想数学表达式变换为频域表示,是将时域时间轴从负无穷到正无穷积分,得出从零到正无穷上连续的频域函数。
- DFT(Discrete Fourier Transform,离散傅里叶变换):是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其 DTFT(Discrete-time Fourier Transform,离散时间傅里叶变换)的频域采样。
离散傅里叶变换不需要积分计算,只需要通过求和就可以实现转换。 - FFT(Fast Fourier Transform,快速傅里叶变换):只应用于时域中数据点个数是 2 的整数次幂的情况(如 256、512、1024 点),使用了快速矩阵代数学的方法,计算速度可以比普通离散傅里叶变换快很多。
需要注意的是,快速傅里叶变换要求信号是周期重复的,所以需要对原始信号进行相干采样,或在采样后加窗处理。
IFFT(Inverse Fast Fourier Transform,逆快速傅里叶变换)算法是 FFT 的逆过程,它将频域信号转换回时域信号。在数学上,IFFT是FFT的逆运算,用于恢复原始的时域信号。

附录二:数字滤波器
数字滤波器是利用计算机程序、专用芯片等软、硬件改变数字信号频谱。如果要处理的是模拟信号可以通过 A/D 在信号形式上进行变换,在利用数字滤波器处理后经过 D/A 恢复为模拟信号。
根据冲激响应的不同,数字滤波器分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。
- FIR 滤波器:冲激响应在有限时间内衰减为零,其输出仅取决于当前和过去的输入信号值。
- IIR 滤波器:冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,也取决于过去的信号输出值。
FIR 滤波器
FIR(Finite impulse response,有限冲激响应),是冲激响应为有限长度的滤波器,脉冲输入信号的响应会在有限时间内变为零。FIR 滤波器的表达式,也称为离散卷积:
$$ y[n] = b_0x[n] + b_1x[n-1] + b_2x[n-2] + … = \sum _{i=0}^N b_i \cdot x[n-i] $$
其中:
- $N$ 是滤波器阶数,$N^{th}$ 阶滤波器表示在右边有 $ N+1$ 项
- $b_i$ 是 $N^{th}$ 阶滤波器在第 $i$ 时间的脉冲响应。
- $x[n]$ 是输入信号
- $y[n]$ 是输出信号
IIR 滤波器
IIR(Infinite Impulse Response,无限冲激响应),是数字滤波器的一种。由于无限冲激响应滤波器中存在反馈回路,因此对于脉冲输入信号的响应是无限延续的。IIR 滤波器的表达式:
$$ y[n] = \sum _{i=0}^P b_ix[n-i] + \sum _{i=1}^Q a_iy[n-i] $$
其中:
- $P$ 是前馈滤波器顺序
- $b_i$ 是前馈滤波器系数
- $Q$ 是反馈滤波器顺序
- $a_i$ 是反馈滤波器系数
- $x[n]$ 是输入信号
- $y[n]$ 是输出信号
参考文献
- In-phase and quadrature components - Wiki
- IQ 调制基本理论及解调简述
- 详解IQ调制以及星座图原理
- Josh 的学习笔记之数字通信(Part 4——带通调制和解调)
- 常用的信号处理函数 Scipy 之滤波器
- 如何通俗易懂地理解 FIR/IIR 滤波器
- 详解 FIR 滤波器与 IIR 滤波器的具体区别
- 快速傅里叶变换及python代码实现