您描述的操作是数字接收机中的一种高效实现方案,其核心目的是 利用CORDIC算法直接完成数字下变频(DDC)中的复数混频(频率搬移)和相位旋转功能。将DDC的频率控制字配置作为CORDIC旋转的初始角度是整个设计的关键。
以下是这种操作的目的、作用和工作原理的详细解释:
-
核心目的:实现高效、精确的数字下变频(DDC)
- DDC的任务是将射频(RF)或中频(IF)的数字化信号(I/Q数据)的中心频率搬移到零频(基带),以便进行后续的低通滤波和低速率处理(如解调)。
- 传统DDC使用数字混频器(乘法器)将输入I/Q信号与数字本振(NCO生成的正弦/余弦)相乘来实现频谱搬移。
- 本方案的精髓在于:它用CORDIC算法替代了传统的复数乘法器来实现混频和相位旋转。
-
CORDIC 的角色:复数旋转器
- CORDIC 算法最擅长的就是计算向量旋转(或相位旋转)。
- 将一个复数
I_in + jQ_in
乘以一个单位复数e^(jθ) = cosθ + jsinθ
的效果,等价于 将原始复数向量(I_in, Q_in)
在复平面上旋转角度θ
。 - 复数乘法 (I_in + jQ_in) * (cosθ + jsinθ) 等价于将向量 (I_in, Q_in) 旋转角度 θ。
因此,CORDIC 可以直接用来实现复数混频器,替代传统的乘法器结构。输入是 (I_in, Q_in),旋转角度 θ 由 NCO 提供(即相位累加器的当前输出值 Φ),输出就是下变频后的基带信号 (I_out, Q_out)。
* 这正是混频所需的操作! 如果 θ
是随时间线性递增的角度(θ[n] = 2π * f_lo * n * Ts
,其中 f_lo
是目标下变频的本振频率,Ts
是采样周期),那么CORDIC的连续旋转操作就实现了输入信号频谱在频率轴上平移 -f_lo
的效果。
-
频率控制字作为初始角度的意义:驱动相位旋转
- 频率控制字(FTW) 是控制数字下变频目标频率(本振频率
f_lo
)的关键参数。它决定了NCO(数字控制振荡器)相位累加器的步进步长。 - 相位累加器 是NCO的核心。每个时钟周期,它在其当前相位值上累加一次FTW:
Φ[n+1] = (Φ[n] + FTW) mod 2^N
。 - 相位累加器的输出
Φ[n]
就是当前时刻n
的本振相位值(以数字量表示,范围0
到2π
)。 - 将
Φ[n]
直接作为CORDIC旋转器的目标旋转角度θ
输入: 这就是您描述的“配置输入的数字下变频(DDC)的频率控制字作为cordic旋转的初始角度”的本质。更准确地说,是将当前时刻NCO相位累加器的输出值Φ[n]
作为CORDIC此刻要旋转的角度θ
。频率控制字(FTW)是用来不断更新Φ[n]
的,而Φ[n]
本身才是当前时刻的相位角度。
- 频率控制字(FTW) 是控制数字下变频目标频率(本振频率
-
14次CORDIC迭代的作用:逼近目标旋转角度
- CORDIC算法通过一系列预先定义的、角度不断减半的微小旋转(
arctan(1), arctan(1/2), arctan(1/4), ..., arctan(1/8192)
)来逼近任意目标旋转角度θ
。 - 每次迭代完成一次简单的移位和加法操作。
- 14次迭代 提供了非常高的旋转角度精度(通常能达到优于0.01°的精度)。迭代次数越多,精度越高,但计算延迟也越大。14次是精度和延迟的一个常用平衡点。
- CORDIC算法通过一系列预先定义的、角度不断减半的微小旋转(
-
CORDIC的输出:下变频后的基带I/Q信号
- 输入: RF/IF 采样得到的原始复信号
(I_in[n], Q_in[n])
。 - 操作: CORDIC 使用当前时刻NCO计算出的相位
θ[n] = Φ[n]
作为旋转目标,对这个输入向量进行(14次迭代逼近的)旋转。 - 输出: 旋转后的复信号
(I_out[n], Q_out[n])
。 - 输出的物理意义:
- 如果
θ[n]
的增量速率精确对应期望下变频的频率f_lo
,那么(I_out[n], Q_out[n])
就是输入信号频谱被搬移了-f_lo
后的结果。换句话说,原本中心在f_c
的信号,其中心频率被搬移到了f_c - f_lo
。目标通常是f_c - f_lo = 0
(零中频)。 (I_out[n], Q_out[n])
就是数字下变频后得到的基带(或低中频)I/Q信号。
- 如果
- 输入: RF/IF 采样得到的原始复信号
总结目的与作用:
- 实现核心DDC功能: 直接利用CORDIC的向量旋转能力完成复数混频(频率搬移),是DDC的核心步骤。
- 高效性: CORDIC仅用移位器和加法器实现复杂的三角函数计算和乘法操作,节省了大量硬件资源(尤其是乘法器),特别适合FPGA/ASIC实现。
- 高精度: 14次迭代提供了足够高的旋转角度精度,保证了下变频的准确性和信号保真度(低失真、低相位噪声)。
- 相位同步: 将NCO实时生成的相位
Φ[n]
直接作为CORDIC的角度输入,确保了混频本振的相位与输入信号在时间上严格同步,避免了因处理延迟造成的相位误差(这是实现高性能正交下变频的关键)。 - 简化架构: 将NCO(相位生成)和混频器(复数乘法/旋转)的功能通过CORDIC算法优雅地结合在一起,简化了DDC的硬件结构。
- 输出结果: CORDIC的输出
(I_out, Q_out)
就是经过数字下变频(频率搬移到基带附近)后的基带I/Q信号对。这个信号可以直接进行低通滤波(滤除搬移后产生的高频镜像分量和带外噪声),然后进行抽取(降低采样率)和后续的解调等基带处理。
简而言之: 这种配置利用CORDIC算法,将RF输入的I/Q数据,根据由DDC频率控制字驱动的、实时生成的NCO相位,进行高精度复数旋转(混频),其输出就是中心频率被搬移到零频(或低中频)的基带I/Q信号。这是一种资源高效、精度高且同步性好的DDC实现方案。
以下讲解以下:
将一个复数 I_in + jQ_in 乘以一个单位复数 e^(jθ) = cosθ + jsinθ 的效果,等价于 将原始复数向量 (I_in, Q_in) 在复平面上旋转角度 θ; 这句话的原理是什么
将复数
乘以单位复数
等价于在复平面上将向量
旋转角度 theta,其数学原理源于复数的极坐标表示和欧拉公式。以下是详细证明:
1. 复数的极坐标表示
2. 复数乘法的几何意义
3. 直角坐标下的代数证明
4. 几何示意图
^ Q
| z_out = (I_out, Q_out)
| /
| /
| /
| / : rotated by θ
| /
| /
| /
| / φ+θ
z_in |/
(I_in, Q_in) / ------> I
/ | φ
/ |
/ |
/ |