每日精学 147|三乘法复数乘法

2026-09-25

← 技术专题 · 每日精学目录

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

复数乘法可用三次实乘与若干加减实现,但减少乘法器的同时会扩大预加与重组中间量的动态范围。

01
模型与符号

输入为 a+\mathrm jb 与 c+\mathrm jd,先讨论精确实数算术,再讨论整数位宽。

p1,p2,p3:三个实乘结果(乘积单位)

a,b,c,d:复数分量(输入幅度)

u,v:结果实虚部(输出幅度)

W:输入位宽(bit)

02
从模型到公式

直接展开

由复数代数

(a+\mathrm jb)(c+\mathrm jd)=(ac-bd)+\mathrm j(ad+bc).

直接形式需要ac、bd、ad、bc四次实乘。

三乘重组

定义

p_1=ac,\qquad p_2=bd,\qquad p_3=(a+b)(c+d).

展开第三项 p3=ac+ad+bc+bd,所以

u=p_1-p_2,\qquad v=p_3-p_1-p_2.

该恒等式在不截断的整数算术中同样精确。

中间范围

若四分量绝对值不超过A,则 |a+b|,|c+d|≤2A,因此

|p_3|\leq4A^2,\qquad |u|,|v|\leq2A^2.

预加需要W+1位,第三乘积的保守位宽为2W+2;过早缩窄会破坏原本精确的代数等价。

乘法数量与中间位宽的交换

令两个复数为

a+\mathrm jb

、

c+\mathrm jd

三乘法结构使用 p=ac、q=bd、r=(a+b)(c+d),输出为

y_R=p-q,\qquad y_I=r-p-q=ad+bc.

若四个分量的绝对值均不超过 A,则

|p|,|q|\le A^2,\quad |r|\le4A^2,\quad |y_R|,|y_I|\le2A^2.

虽然最终结果范围与传统四乘法相同,第三个乘积需要更宽的输入预加器与内部乘积。

若只按最终范围分配中间位宽,代数相消发生之前可能已经溢出。减少乘法器也会增加加减法和组合路径,因此资源优势取决于目标器件的乘法块尺寸及流水分割。

03
物理含义

第三乘法把两个交叉乘积打包到一个展开式,再减去已知对角乘积。节省资源是否值得取决于加法器、乘法器和时序结构。

04
固定参数算例

使用固定种子的有符号整数四元组和边界点,比较三乘与四乘复数结果,并记录预加与第三乘积峰值。

固定参数数值验证结果
量数值
向量数4096
max complex error0
preadd peak65536
third product peak4294967296
real output peak1700106960
imag output peak2147483648
real multiplications3
图 1:三乘法复数乘法的理论关系与固定参数验证图 1:三乘法复数乘法的理论关系与固定参数验证

图 1 三乘法复数乘法的理论关系与固定参数验证

表中数值和图中曲线由 MATLAB 实际运行得到,随机种子为 20261066;运行版本与完整结果另存为独立文件。

05
数字实现的边界

RTL实现完整三乘法复乘,a、b、c、d为16位整数分量,先扩展到64位再预加及相乘,输出完整实部与虚部。 RTL 采用同步有效信号和异步低有效复位;

空拍保持状态且输出无效。除另有说明外,输入为16位有符号整数,结果为64位有符号整数,测试范围内不截断或饱和。输出在采样时钟上升沿更新。自检覆盖连续样本、空拍和复位;

未进行器件布局布线、时序收敛或功耗验证。

独立自检程序已在 Icarus Verilog 13.0 中实际运行并通过。该结果不包含器件综合、静态时序分析或板级测试。

06
适用范围

三乘法复乘用于复数混频、旋转因子乘法和复FIR乘加单元。是否比四乘结构更适合目标器件,取决于乘法器端口宽度、预加器资源和流水时序。位宽评估必须包含第三乘积的较大中间范围。

07
工程上需要注意

预加器成为额外组合路径,可能影响最高时钟。

不同舍入位置使浮点和定点误差不同。

乘法器资源利用率取决于目标器件,不以算术计数代替综合结果。

复数乘法可用三次实乘与若干加减实现,但减少乘法器的同时会扩大预加与重组中间量的动态范围。

内容依据:每日精学第 147 课《三乘法复数乘法》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。

阅读7
分享
写评论...