6.2 模拟乘法器及其运算电路中的应用

 

6.2 模拟乘法器及其在运算电路中的应用

模拟乘法器是一种实现两个模拟量相乘的非线性电子器件,利用它可以方便地实现乘法、除法、乘方和开方运算电路。此外,由于它还能广泛地应用于广播电视、通信、仪表和自动控制系统中进行模拟信号的处理,所以发展很快,成为模拟集成电路的重要分支之一。

6.2.1 模拟乘法器简介

模拟乘法器有两个输入端,一个输出端,输入及输出均对“地”而言,如图6.2.1(a)所示。输入的两个模拟信号是互不相关的物理量,输出电压是它们的乘积,即

𝑢𝑜𝑢𝑡=𝑘⋅𝑢𝑥⋅𝑢𝑦uout​=k⋅ux​⋅uy​

其中 𝑘k 为乘积系数,也称为乘积增益或标尺因子,其值多为 ±0.1 𝑉−1±0.1V−1。

(a) 符号 (b) 等效电路

模拟乘法器的等效电路如图6.2.1(b)所示,𝑟𝑥rx​ 和 𝑟𝑦ry​ 分别为两个输入端的输入电阻,𝑟𝑜ro​ 是输出电阻。理想模拟乘法器应具备如下条件:

  1. 𝑟𝑥rx​ 和 𝑟𝑦ry​ 为无穷大;
  2. 𝑟𝑜ro​ 为零;
  3. 𝑘k 值不随信号幅值和频率而产生变化;
  4. 当 𝑢𝑥ux​ 或 𝑢𝑦uy​ 为零时 𝑢𝑜𝑢𝑡uout​ 为零,电路没有失调电压、电流和噪声。

在上述条件下,无论 𝑢𝑥ux​ 和 𝑢𝑦uy​ 的波形、幅值、频率、极性如何变化,式(6.2.1) 均成立。本节的分析均设模拟乘法器为理想器件。

输入信号 𝑢𝑥ux​ 和 𝑢𝑦uy​ 的极性有四种可能的组合,在 𝑢𝑥ux​ 和 𝑢𝑦uy​ 的坐标平面上,分为四个区域,即四个象限,如图6.2.2所示。按照允许输入信号的极性,模拟乘法器有单象限、两象限和四象限之分。

6.2.2 单象限模拟乘法器

单象限模拟乘法器只能处理输入信号 𝑢𝑥ux​ 和 𝑢𝑦uy​ 都为正的情况,其工作区域仅限于第一象限。

6.2.3 两象限模拟乘法器

两象限模拟乘法器可以处理输入信号 𝑢𝑥ux​ 为正或负,而 𝑢𝑦uy​ 仅为正或 𝑢𝑦uy​ 为正或负,而 𝑢𝑥ux​ 仅为正的情况,其工作区域为第一和第二象限,或第一和第四象限。

6.2.4 四象限模拟乘法器

四象限模拟乘法器能够处理 𝑢𝑥ux​ 和 𝑢𝑦uy​ 都为正或负的情况,其工作区域覆盖所有四个象限。四象限模拟乘法器的广泛应用使其在信号处理、调制、解调、幅度检测和自动控制等领域中得到了广泛的应用。

6.2.5 模拟乘法器的应用

利用模拟乘法器可以实现多种复杂的运算和信号处理功能,下面介绍几种常见的应用:

1. 乘法运算电路

如前文所述,利用对数和指数运算电路可以实现乘法运算。模拟乘法器直接实现乘法运算更加简单和高效。

2. 除法运算电路

通过对数运算电路、差分运算电路和指数运算电路的组合,可以实现除法运算。同样地,利用模拟乘法器也可以简化除法运算的实现。

3. 乘方和开方运算电路

利用对数运算电路和指数运算电路,可以实现乘方和开方运算。模拟乘法器同样能够通过组合运算实现这些功能。

4. 调制和解调

模拟乘法器在通信系统中被广泛用于调制和解调过程。调幅和混频等技术都依赖于乘法运算,而模拟乘法器则是实现这些运算的核心器件。

结论

模拟乘法器作为一种重要的非线性电子器件,在实现复杂的数学运算和信号处理方面有着重要的应用。通过合理设计和应用模拟乘法器,可以实现多种复杂的功能,提高电子系统的性能和效率。

 

 

6.2.2 变跨导型模拟乘法器的工作原理

实现模拟量相乘有多种方案,但在集成电路中,多采用变跨导型电路。变跨导型电路利用一路输入电压控制差分放大电路的差分管发射极电路,使其跨导随输入电压变化,从而实现与另一路输入电压相乘的目的。

一、差分放大电路的差模传输特性

差分放大电路的差模传输特性是指在差模信号作用下,输出电压与输入电压的函数关系。

在图6.2.3(a)所示的差分放大电路中, 𝑢𝑥ux​ 为差模输入电压,

𝑢𝑑=𝑢𝐵𝐸1−𝑢𝐵𝐸2ud​=uBE1​−uBE2​

差分管的跨导为:

𝑔𝑚=𝐼𝐶𝑉𝑇gm​=VT​IC​​

其中 𝐼𝐶IC​ 是集电极电流, 𝑉𝑇VT​ 是热电压。

恒流源电流为:

因此, 𝐼𝐶2IC2​ 管的发射极电流为:

同理,可得 𝐼𝐶1IC1​ 管的发射极电流为:

因此,

当 𝑢𝑥≪2𝑉𝑇ux​≪2VT​ (约为 2×262×26 mV) 时,有:

输出电压:

因而电路的差模电压传输特性如图6.2.3(b) 所示。

二、可控恒流源差分放大电路的乘法特性

在图6.2.4所示差分放大电路中,假设 𝐼𝐸IE​ 是受控电流源, 𝑢𝑦uy​ 控制 𝐼𝐸IE​ ,则:

代入前文公式可得:

式中 𝑢𝑥ux​ 可正可负,但 𝑢𝑦uy​ 必须大于零,故图6.2.4 所示为两象限模拟乘法器。电路有如下明显的缺点:

  1. 式(6.2.6) 表明, 𝑢𝑦uy​ 的值越小,运算误差越大;
  2. 式(6.2.7) 表明, 𝑢𝑜𝑢𝑡uout​ 与 𝑉𝑇VT​ 有关,即 𝑘k 与温度有关;
  3. 电路只能工作在两象限。

三、四象限变跨导型模拟乘法器

图6.2.5 所示为双平衡四象限变跨导型模拟乘法器。通过对图6.2.3 所示电路的分析,得到的式(6.2.4) 适用于图6.2.5 所示电路,因而:

将两者进行组合:

由于 𝑢𝑥ux​ 和 𝑢𝑦uy​ 均可正可负,故图6.2.5 所示电路为四象限模拟乘法器。它是双端输出形式,可利用图6.2.6 所示的集成运算电路,将其转换成单端输出形式。

通过以上分析,可以看出,变跨导型模拟乘法器通过控制跨导来实现模拟量相乘,其关键在于合理设计差分放大电路和恒流源,确保电路在所需的象限范围内工作,并尽量减小运算误差。

 

 

四、模拟乘法器的性能指标

与集成运放一样,为了衡量模拟乘法器的性能好坏,特别设定了一些指标参数。表6.2.1中列出了主要参数及其典型数值。

表6.2.1 模拟乘法器的主要参数
参数名称单位典型值测试条件
输入失调电流μA0.2𝑢𝑥=𝑢𝑦=0ux​=uy​=0 V
输入偏置电流μA2.0𝑢𝑥=𝑢𝑦=0ux​=uy​=0 V

6.2.3 模拟乘法器在运算电路中的应用

模拟乘法器不仅能够实现两个模拟信号的乘法和平方运算,还可以与其他电路相配合构成除法、开方、均方根等运算电路。

一、乘方运算电路

利用四象限模拟乘法器能够实现四象限平方运算电路,如图6.2.7所示。输出电压:

当 𝑢𝑖𝑛uin​ 为正弦波 𝑈𝑖𝑛Uin​,且 𝑢𝑖𝑛=2𝑈𝑖𝑛sin⁡𝜔𝑡uin​=2​Uin​sinωt 时,则:

输出为输入的二倍频电压信号。为了得到纯交流电压,可在输出端加耦合电容,以隔离直流电压。

从理论上讲,可以用多个模拟乘法器串联组成 𝑢𝑖𝑛uin​ 的任意次方的运算电路,图6.2.8(a) 和 (b) 所示分别为三次方和四次方运算电路。它们的表达式分别为:

𝑢𝑜𝑢𝑡=𝑘2𝑢𝑖𝑛3uout​=k2uin3​ 𝑢𝑜𝑢𝑡=𝑘3𝑢𝑖𝑛4uout​=k3uin4​

(a) 三次方运算电路 (b) 四次方运算电路

但是,实际上,当串联的模拟乘法器超过三个时,运算误差的积累会使得电路的精度变得很差,因此在要求较高时不适用。在实现高次幂的乘方运算时,可以考虑采用模拟乘法器与集成对数运算电路和指数运算电路组合而成,如图6.2.9所示。

N次幂运算电路

对数运算电路的输出电压:

模拟乘法器的输出电压:

指数运算电路的输出电压:

设 𝑘1=1k1​=1,𝑘2=0.1 𝑉−1k2​=0.1V−1,则当 𝑁>1N>1 时,电路实现乘方运算。若 𝑁=2N=2,则电路为平方运算电路;若 𝑁=10N=10,则电路为十次幂运算电路。

结论

模拟乘法器作为一种重要的非线性电子器件,在实现复杂的数学运算和信号处理方面有着重要应用。通过合理设计和应用模拟乘法器,可以实现多种复杂的功能,提高电子系统的性能和效率。

 

二、除法运算电路

利用反函数型运算电路的基本原理,将模拟乘法器置于集成运放的负反馈通路中,便可构成除法运算电路,如图6.2.10所示。与只用集成运放组成的运算电路一样,在用模拟乘法器和集成运放共同构成运算电路时,必须引入负反馈,据此可确定二者的连接方法。

在图6.2.10所示电路中,设集成运放为理想运放,则 𝑢𝑥=𝑢𝑝=0ux​=up​=0,为虚地,且 𝑖1=𝑖2i1​=i2​,即:

𝑢𝑖𝑛𝑅1=𝑢𝑜𝑢𝑡𝑅2R1​uin​​=R2​uout​​

整理上式,得出输出电压:

𝑢𝑜𝑢𝑡=−𝑅2𝑅1⋅𝑢𝑖𝑛𝑢𝑚𝑢𝑙𝑡uout​=−R1​R2​​⋅umult​uin​​

由于 𝑢𝑚𝑢𝑙𝑡umult​ 的极性受 𝑘k 的限制,故图6.2.10所示电路为两象限除法运算电路。对于一个确定的除法运算电路,模拟乘法器 𝑘k 的极性是唯一的,故 𝑢𝑚𝑢𝑙𝑡umult​ 的极性是唯一的,其运算关系式也是唯一的;换言之,若 𝑘k 或 𝑢𝑚𝑢𝑙𝑡umult​ 的极性变化,则电路的接法应遵循引入负反馈的原则产生相应的变化。

三、开方运算电路

利用乘方运算电路作为集成运放的负反馈通路,就可构成开方运算电路。在除法运算电路中,令 𝑢𝑚𝑢𝑙𝑡=𝑢𝑜𝑢𝑡umult​=uout​,就构成平方根运算电路,如图6.2.11所示。

若电路引入的是负反馈,则 𝑢𝑥=𝑢𝑝=0ux​=up​=0,为虚地,且 𝑖1=𝑖2i1​=i2​,即:

𝑢𝑖𝑛𝑅1=𝑢𝑜𝑢𝑡𝑅2R1​uin​​=R2​uout​​

整理得:

𝑢𝑜𝑢𝑡=𝑅2𝑅1𝑢𝑖𝑛uout​=R1​R2​​uin​​

为了使根号下为正数,𝑢𝑖𝑛uin​ 与 𝑘k 必须符号相反。因此,由于 𝑢𝑜𝑢𝑡uout​ 与 𝑢𝑚𝑢𝑙𝑡umult​ 极性相反,故当 𝑢𝑖𝑛>0uin​>0、𝑘<0k<0 时,运算关系式应为:

𝑢𝑜𝑢𝑡=−𝑅2𝑅1𝑢𝑖𝑛uout​=−R1​R2​​uin​​

当 𝑢𝑖𝑛<0uin​<0、𝑘>0k>0 时,运算关系式应为:

𝑢𝑜𝑢𝑡=𝑅2𝑅1𝑢𝑖𝑛uout​=R1​R2​​uin​​

与除法运算电路相同,因为当模拟乘法器选定后 𝑘k 的极性就唯一地被确定,因此实际电路的运算关系式只可能是上述两个中的一个。

在图6.2.11中,若 𝑢𝑖𝑛<0uin​<0、𝑘>0k>0,则图中所标注的电流方向是在上述条件下电阻中电流的实际方向。如果因某种原因使 𝑢𝑖𝑛uin​ 大于零,则必然导致 𝑢𝑜𝑢𝑡uout​ 大于零,从而使反馈极性变正,最终使集成运放电路内部的晶体管工作到截止区或饱和区,输出电压接近电源电压,以至于即使 𝑢𝑖𝑛uin​ 变得小于零,集成运放也不能回到线性区,电路不能恢复正常工作,运放出现闭锁或称为锁定现象。为了防止闭锁现象的出现,实用电路中常在输出回路串联一个二极管,如图6.2.12所示。

按照平方根运算电路的组成思路,将三次方电路作为集成运放的负反馈通路,就可实现立方根运算电路,如图6.2.13所示。

由于 𝑘2k2 大于零,且 𝑢𝑜𝑢𝑡uout​ 与 𝑢𝑚𝑢𝑙𝑡umult​ 反相,所以不管 𝑘k 值为正还是为负,电路均引入了负反馈。电路中 𝑢𝑥=𝑢𝑝=0ux​=up​=0,为虚地,且 𝑖1=𝑖2i1​=i2​,即:

𝑢𝑖𝑛𝑅1=𝑢𝑜𝑢𝑡𝑅2R1​uin​​=R2​uout​​

整理得:

𝑢𝑜𝑢𝑡=𝑅2𝑅1𝑢𝑖𝑛3uout​=3R1​R2​​uin​​

与乘方运算电路相类似,当多个模拟乘法器串联实现高次根的运算时,将产生较大的误差。因此,为了提高精度,也可采用如图6.2.9所示电路。

从式(6.2.14)可以看出,若 𝑘1=10k1​=10、𝑘2=0.1 𝑉−1k2​=0.1V−1,则 𝑘=1k=1;当 𝑁<1N<1 时,电路为开方运算电路。当 𝑁=0.1N=0.1 时,𝑢𝑜𝑢𝑡=𝑘1𝑢𝑖𝑛0.1uout​=k1​uin0.1​;当 𝑁=0.5N=0.5 时,𝑢𝑜𝑢𝑡=𝑘1𝑢𝑖𝑛0.5uout​=k1​uin0.5​。

例6.2.1 运算电路分析

运算电路如图6.2.14所示。已知模拟乘法器的运算关系式为 𝑢𝑜𝑢𝑡=𝑘𝑢𝑥𝑢𝑦=−0.1 𝑉−1𝑢𝑥𝑢𝑦uout​=kux​uy​=−0.1V−1ux​uy​。

  1. 电路对 𝑢𝑜𝑢𝑡uout​ 的极性是否有要求,简述理由;
  2. 求解电路的运算关系式。

解:

  1. 只有电路中引入负反馈,才能实现运算。而只有 𝑢𝑖𝑛uin​ 与 𝑢𝑜𝑢𝑡uout​ 符号相反,电路引入的才是负反馈;已知 𝑢𝑜𝑢𝑡uout​ 与 𝑢𝑚𝑢𝑙𝑡umult​ 反相,故 𝑢𝑜𝑢𝑡uout​ 应与 𝑢𝑚𝑢𝑙𝑡umult​ 同符号。因为 𝑘<0k<0,所以 𝑢𝑖𝑛uin​ 应小于零。

  2. 𝑃P 点电位:

𝑢𝑝=𝑅2𝑅1+𝑅2𝑢𝑜𝑢𝑡=100𝑘Ω10𝑘Ω+100𝑘Ω𝑢𝑜𝑢𝑡=1011𝑢𝑜𝑢𝑡up​=R1​+R2​R2​​uout​=10kΩ+100kΩ100kΩ​uout​=1110​uout​

节点 𝑁N 的电流方程为:

𝑢𝑖𝑛−𝑢𝑝𝑅1=𝑢𝑜𝑢𝑡𝑅1R1​uin​−up​​=R1​uout​​

将 𝑢𝑝up​ 的表达式代入上式,整理得出:

𝑢𝑖𝑛−1011𝑢𝑜𝑢𝑡100𝑘Ω=𝑢𝑜𝑢𝑡100𝑘Ω100kΩuin​−1110​uout​​=100kΩuout​​

所以输出电压:

𝑢𝑜𝑢𝑡=−0.1×10×𝑢𝑖𝑛=−𝑢𝑖𝑛uout​=−0.1×10×uin​=−uin​

因此,电路的运算关系式为:

𝑢𝑜𝑢𝑡=−𝑢𝑖𝑛uout​=−uin​

 

 

 

 

 

 

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ResRep 剪枝方法是一种有效的神经网络压缩方法,可以通过减少网络的冗余参数和计算量来实现模型的压缩,从而提高模型的效率和速度。在 YOLOv5 6.2 版本,已经应用了 ResRep 剪枝方法,下面是详细的代码复现过程。 首先,我们需要下载 YOLOv5 6.2 版本的代码,并安装相应的依赖包。可以使用以下命令进行下载和安装: ``` git clone https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt ``` 接下来,我们需要准备数据集。可以使用 COCO2017 数据集进行训练和测试,可以使用以下命令进行下载: ``` mkdir data cd data wget https://dl.fbaipublicfiles.com/detectron2/COCO-Detection/faster_rcnn_R_50_C4_1x/137257644/model_final_721ade.pkl wget http://images.cocodataset.org/zips/train2017.zip && unzip train2017.zip wget http://images.cocodataset.org/zips/val2017.zip && unzip val2017.zip wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip && unzip annotations_trainval2017.zip cd .. ``` 然后,我们需要进行数据集的预处理和划分。可以使用以下命令进行预处理和划分: ``` python data/scripts/preprocess.py --output data/coco --dataset coco2017 --type train,val --skip-existing ``` 接下来,我们需要进行模型的训练。可以使用以下命令进行训练: ``` python train.py --data data/coco.yaml --cfg models/yolov5s.yaml --weights '' --batch-size 16 --epochs 30 --img 640 --device 0 --name yolov5s_resrep ``` 在训练过程,会自动应用 ResRep 剪枝方法来压缩模型,从而提高模型的效率和速度。 最后,我们可以使用以下命令进行模型的测试: ``` python val.py --data data/coco.yaml --weights runs/train/yolov5s_resrep/weights/best.pt --batch-size 16 --img 640 --iou 0.65 --device 0 ``` 以上就是 YOLOv5 6.2 应用 ResRep 剪枝方法的完整详细代码复现过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值