在LTspice中从零搭建一个模拟乘法器:不只是仿真,更是理解电路本质
你有没有试过在面包板上调试一个模拟乘法电路,结果输出波形总是不对劲?削顶、失真、温漂严重……最后发现是某个偏置点没调好,或者晶体管匹配度不够。这类问题太常见了——模拟电路的设计,从来都不是“搭完就能用”那么简单。
尤其是在涉及非线性运算的场景下,比如两个信号相乘,稍有不慎就会引入严重的谐波和动态误差。而如果我们每次都要靠实测来试错,成本高、周期长,还容易误判根本原因。
这时候,电路仿真软件的价值就凸显出来了。它不仅是画图工具,更是一个可以让你“看到电流如何流动、电压如何变化”的虚拟实验室。今天,我们就以四象限模拟乘法器为例,带你从原理出发,在LTspice中一步步构建并验证一个真正可用的模拟乘法电路。
这不是简单的网表粘贴教程,而是教你如何像一名资深模拟工程师那样思考:为什么选这个结构?参数怎么定?哪里最容易出问题?以及——如何通过仿真提前规避这些问题。
为什么要用模拟乘法器?
先别急着拉元件。我们得搞清楚一件事:什么时候非得用“模拟乘法”,而不是数字计算?
设想这样一个场景:你在设计一个音频压缩器,需要实时检测输入信号的能量,并据此调整增益。如果走ADC → DSP → DAC这条路,延迟可能达到几毫秒——对于现场演出设备来说,这已经能被人耳察觉了。
而如果直接在模拟域完成 $ V_{\text{out}} = K \cdot V_X \cdot V_Y $ 这个操作呢?没有采样,没有处理延迟,响应几乎是瞬时的。
这就是模拟乘法器的核心优势:
-连续时间处理,无采样延迟;
-低功耗、结构紧凑,适合前端集成;
- 可用于AM调制、RMS计算、AGC环路、锁相环鉴相等关键功能。
当然,代价也很明显:对温度敏感、线性度依赖器件匹配、带宽受限。但这些,恰恰是仿真最有用武之地的地方。
四象限乘法的本质:让跨导“动起来”
理想乘法器的输出满足:
$$
V_{\text{out}} = K \cdot V_X \cdot V_Y
$$
难点在于:普通放大器的增益是固定的,而我们要的是一个“增益随另一个信号变化”的放大器。
解决思路很巧妙:把 $V_Y$ 映射成放大器的跨导 $g_m$,然后让 $V_X$ 输入进去,输出电流自然就是:
$$
I_{\text{out}} = g_m(V_Y) \cdot V_X
$$
只要 $g_m \propto V_Y$,那就实现了乘法。
这种思想最常见的实现方式有两种:
1.吉尔伯特单元(Gilbert Cell):基于差分对尾电流调制,高频应用广泛;
2.OTA + 压控增益结构:利用控制电压调节跨导,更适合通用仿真环境。
本文选择第二种,因为它更容易在LTspice中复现,也更适合初学者理解核心机制。
搭建你的第一个可变增益乘法核
我们现在要做的,不是直接调用AD633这种现成芯片模型(虽然也可以),而是自己动手搭一个基于OTA的乘法结构,这样才能真正掌握其中的关键细节。
核心架构:OTA + IABC 控制
LM13700 是一款经典的双跨导放大器芯片,它的最大特点就是:跨导 $g_m$ 由外部注入电流 $I_{ABC}$ 决定,且近似满足:
$$
g_m \approx 19.2 \times I_{ABC}
$$
这意味着,只要我们让 $I_{ABC} \propto V_Y$,就能实现 $g_m \propto V_Y$,从而达成乘法目的。
于是整个结构清晰了:
- 用 $V_Y$ 驱动一个压控电流源,生成 $I_{ABC}$
- 将 $V_X$ 接入OTA输入端
- OTA输出电流经负载电阻转为电压
- 输出即为 $V_{\text{out}} \propto V_X \cdot V_Y$
听起来简单?但实际仿真中,有几个坑几乎人人都会踩。
SPICE网表实战:不只是复制粘贴
下面是完整的LTspice网表示例,但我们不只贴代码,更要解释每一行背后的工程考量:
* 模拟乘法器仿真 - 基于LM13700 OTA * 实现 Vout ≈ K * Vx * Vy * 输入信号定义 VX INP 0 SIN(0 1 1K) ; Vx = 1Vpp 正弦波,1kHz VY EN 0 SIN(0 2 100) ; Vy = 2Vpp 慢变控制信号,100Hz * ABC电流生成:Iabc ∝ Vy RSET 0 IABC 10k ; 将Vy转换为电流,Iabc = Vy / Rset VABC IABC EN DC 0 AC 1 ; 提供直流路径,不影响交流耦合 * OTA连接(使用LM13700的一个单元) X1 0 INP 0 0 IABC 0 OUT LM13700 * 引脚顺序:Inv_In, NonInv_In, Buff_Out, V-, I_ABC, V+, Output * 输出负载 ROUT OUT 0 100K ; 负载电阻 CLOAD OUT 0 10PF ; 模拟寄生电容,限制带宽 * 包含模型文件 .include lm13700.sub * 分析设置 .tran 1u 5m ; 瞬态分析5ms,步长1μs .ac dec 10 1 1Meg ; 交流小信号分析 .param K=0.2 ; 定义比例系数参数(可用于扫描) * 保存输出变量 .save V(out)关键点解析:
RSET = 10k的作用:将控制电压 $V_Y$ 转换为电流 $I_{ABC}$。这里必须注意极性——LM13700要求 $I_{ABC}$ 流入引脚,所以 $V_Y$ 应为正电压驱动。VABC的接法:看似多余,实则关键。它确保 $I_{ABC}$ 节点有明确的直流回路,避免仿真不收敛。.include lm13700.sub:你必须下载或编写该模型文件。推荐使用厂商提供的SPICE模型,否则内部结构无法准确反映非线性和带宽特性。CLOAD = 10pF:不要忽略寄生电容!它会影响上升时间和稳定性,加入后仿真结果更贴近真实PCB表现。
如何验证乘法关系成立?
运行.tran仿真后,你会看到V(out)的波形。但它真的是 $V_X \cdot V_Y$ 吗?别猜,要验证。
在LTspice波形查看器中,输入以下表达式:
V(out)/(V(INP)*V(EN))*1k如果电路工作正常,这个值应该接近一个常数(例如 0.2),说明输出确实与两输入的乘积成正比。
💡 提示:若曲线波动大,可能是信号不同步或动态范围超限。尝试降低输入幅度或添加DC偏置。
三大常见问题及调试秘籍
哪怕是最简单的乘法器,在仿真中也会遇到各种“诡异”现象。以下是我在实践中总结的典型问题与应对策略。
❌ 问题1:输出削顶(饱和)
现象:波形顶部被切平,像梯形。
根源:OTA输出摆幅受限,或增益过高导致瞬时过载。
解决方案:
- 减小 $V_X$ 或 $V_Y$ 的幅值;
- 在 $V_Y$ 上加直流偏置(如改为SIN(1 2 100)),避免 $I_{ABC}=0$;
- 使用负反馈网络降低有效增益(进阶技巧);
- 检查电源电压是否足够(LM13700通常需±5V以上)。
❌ 问题2:严重非线性失真(THD > 5%)
现象:输出波形畸变,频谱分析出现明显三次谐波。
根源:$g_m$ 与 $I_{ABC}$ 并非完全线性,尤其在低电流区存在弯曲。
解决方案:
- 避免 $I_{ABC}$ 接近0;保持最小偏置电流(如加100μA底偏);
- 使用差分输入结构扩展线性范围;
- 引入预失真补偿电路(如指数-对数变换);
- 在控制路径串入小电阻进行局部负反馈。
📊 建议使用
.four命令做FFT分析,量化THD:
.four 1k V(out)
❌ 问题3:温度漂移严重
现象:室温从25°C升到85°C,输出偏移超过10%。
根源:BJT参数随温度变化,$I_S$、$\beta$、$V_{BE}$ 均不稳定。
解决方案:
- 使用PTAT(Proportional to Absolute Temperature)电流源替代固定偏置;
- 采用匹配晶体管对构建差分结构;
- 在仿真中启用多温度测试:
.temp -40 .temp 25 .temp 85你会发现,未补偿电路在高温下 $g_m$ 明显下降,导致增益衰减。
性能评估:不只是看波形
真正专业的仿真,不会止步于“看起来差不多”。你需要系统评估以下指标:
| 指标 | 测试方法 | 目标 |
|---|---|---|
| 动态范围 | 扫描 $V_X$ 幅度,观察THD<1%的最大输入 | ≥40dB |
| 带宽 (-3dB) | .ac分析,找增益下降3dB频率 | >100kHz |
| 线性度误差 | 计算 $V_{\text{out}}/(V_X V_Y)$ 的标准差 | <5% |
| 温度稳定性 | 多温度点仿真,统计增益变化 | ±2%/°C以内 |
你可以结合.step param指令自动化测试:
.step param VIN list 0.1 0.5 1.0 1.5 2.0这样一次运行就能得到不同输入下的性能对比曲线。
更进一步:你能用它做什么?
掌握了基础乘法器之后,真正的乐趣才刚开始。
✅ 应用1:幅度调制(AM)
将 $V_X$ 设为音频信号,$V_Y$ 设为高频载波(如100kHz),输出就是标准的AM信号。
在波形中你能清晰看到包络变化,甚至可以用包络检波还原原始信号。
✅ 应用2:真有效值(True RMS)计算
利用公式:
$$
V_{\text{RMS}} = \sqrt{\frac{1}{T}\int_0^T v^2(t)\,dt}
$$
步骤如下:
1. 用乘法器实现 $v(t) \times v(t)$ 得到平方项;
2. 经低通滤波积分;
3. 再用模拟开方电路(可用对数-指数结构实现)取根号。
整个过程无需ADC,适用于高速功率测量。
✅ 应用3:自动增益控制(AGC)
将输出信号整流滤波后反馈至 $V_Y$ 端,形成闭环:
- 输出强 → $V_Y$ 增大 → 增益下降 → 输出回落
- 输出弱 → $V_Y$ 减小 → 增益上升 → 输出提升
这就是专业麦克风前置放大器的核心逻辑。
写在最后:仿真不是替代硬件,而是让你更懂硬件
有人问:“既然能仿真,干嘛还要做板子?”
答案是:仿真永远不会完全替代硬件,但它能让你第一次就把板子做对。
通过这次乘法器的设计,你应该已经体会到:
- 一个看似简单的“乘法”功能,背后涉及多少非理想因素;
- 温度、寄生、非线性、偏置点……每一个都可能成为失败的关键;
- 而仿真,给了你一个“无限试错”的空间,去逐一排查、优化、验证。
下次当你面对一个新的模拟电路需求时,不妨先在LTspice里跑一遍。也许你会发现,那些你以为需要高端IC才能实现的功能,其实用几个基本模块就能搞定。
如果你在实现过程中遇到了其他挑战,欢迎在评论区分享讨论。