每日精学 110|CORDIC 向量模式幅相计算

2026-09-25

雷达 · 通信 · 电子战 / 基础精学 110

DDS 由相位生成正余弦,而接收机还经常需要从同相正交样本反求幅相。CORDIC 为这两类转换提供统一硬件结构。

CORDIC 向量模式用一系列角度逐次减半的微旋转把输入向量转到横轴,只需移位 加减和小型角度表即可同时得到幅度与相位。

01
模型与符号

xi,yi:第 i 次迭代向量(定点)

zi:累计相位(rad)

di:旋转方向(正负一)

KI:迭代尺度因子(无量纲)

I:迭代级数(次)

02
向量迭代

向量模式取

d_i=\operatorname{sign}(y_i)

并更新

x_{i+1}=x_i+d_iy_i2^{-i}
y_{i+1}=y_i-d_ix_i2^{-i}

03
角度累加

相位更新

z_{i+1}=z_i+d_i\arctan(2^{-i})

迭代后 yI 接近零,zI 接近输入角度。

04
尺度校正

横轴结果被固定因子

K_I=\prod_i\sqrt{1+2^{-2i}}

放大,幅度需乘其倒数或在后级吸收该增益。

05
物理含义

每次微旋转选择一个方向让纵坐标绝对值减小。旋转角的正切是二的负整数次幂,所以乘法变成算术移位。

06
固定参数算例

MATLAB 对多个象限内的向量执行十二次向量模式迭代,比较幅度与相位真值、迭代误差和尺度因子收敛。

MATLAB 固定参数数值验证结果
量数值
向量数500
迭代次数12
CORDIC 增益1.64676019268
rms magnitude error6.17871891294e-08
maximum magnitude error2.23845417091e-07
rms angle error rad0.000277171405155
maximum angle error rad0.000484835293161
final residual y rms0.000540935216713
图 1:CORDIC 迭代轨迹 幅度相位误差与尺度因子(子图 1)图 1:CORDIC 迭代轨迹 幅度相位误差与尺度因子(子图 2)图 1:CORDIC 迭代轨迹 幅度相位误差与尺度因子(子图 3)图 1:CORDIC 迭代轨迹 幅度相位误差与尺度因子(子图 4)

图 1 CORDIC 迭代轨迹 幅度相位误差与尺度因子

数值结果由配套 MATLAB 脚本在固定参数和固定随机种子下实际执行。脚本包含针对闭式关系 边界条件或估计误差的断言,并把 MATLAB 版本与关键数值写入独立结果文件。

07
数字实现的边界

RTL 实现单级参数化 CORDIC 微旋转,流水级联后每拍可接收一个向量;象限预处理保证全圆范围。

配套 RTL 只实现本课中可明确量化的定点核函数或数据通路。浮点矩阵分解 概率统计和图形生成保留在 MATLAB 参考程序中。

08
适用范围

CORDIC 用于幅相估计、数字下变频旋转和极坐标转换。级数决定精度与延迟,定点位宽决定量化噪声。

09
工程上需要注意

  • 未做象限预处理时收敛范围有限。

  • 每级截位会积累偏差。

  • 尺度因子必须统一处理。

  • 极小幅度时相位对噪声敏感。

CORDIC 向量模式用移位加法逐步消除纵坐标,并输出累积角度。迭代级数与定点位宽共同决定幅相误差。

内容依据:每日精学第 110 课《CORDIC 向量模式幅相计算》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。

阅读8
分享
写评论...