电子技术——电流镜负载的差分放大器

news2024/12/23 20:44:13

电子技术——电流镜负载的差分放大器

Logo

目前我们学习的差分放大器都是使用的是差分输出的方式,即在两个漏极之间获取电压。差分输出主要有以下优势:

  1. 降低了共模信号的增益,提高了共模抑制比。
  2. 降低了输入偏移电压。
  3. 提升了差分输入的增益。

由于差分输出巨大的优势使得几乎大部分集成IC放大器的初级输入都使用了 差分输入,差分输出 的模式,例如运算放大器。这使得集成IC放大器拥有优越的信号抗干扰能力,特别是针对于共模信号。尽管如此,有时我们不得不使用单端输出的方式,例如片外负载。下图展示了一个运算放大器基本原理图:

运算放大器
这个运算放大器前两级都是使用的差分输入,差分输出,最后一级将差分输出转换为单端输出。我们现在就来解决差分输出转换为单端输出的问题。

差分到单端输出

下图展示了一个最简单的差分到单端输出的方案:

单端输出
仅仅用一个输出端作为输出,因此 Q 1 Q_1 Q1 的负载电阻是可以省略的。但是这个电路有一个缺点,就是损失了一半的电压增益,而且还浪费了 Q 1 Q_1 Q1 的电流。一个更好的方法是将 Q 1 Q_1 Q1 的电流利用起来,这就是我们要讨论的。

电流镜负载的MOS差分放大器

下图展示了一个MOS差分放大器,只不过负载变成了一个电流镜:

电流镜负载的MOS差分放大器

为了说明该电路的工作方式,我们先讨论平衡的情况,也就是令 v G 1 = v G 2 = 0 v_{G1} = v_{G2} = 0 vG1=vG2=0 如图:

平衡的情况
因为电路的对称的,因此MOS Q 1 Q_1 Q1 Q 2 Q_2 Q2 的漏极电流相等且都为 I / 2 I/2 I/2 ,其中 Q 1 Q_1 Q1 的电流流向电流镜的电流采集输入 Q 3 Q_3 Q3 ,这将在 Q 4 Q_4 Q4 复制出电流 I / 2 I/2 I/2 。观察输出节点,我们发现从 Q 4 Q_4 Q4 流入和从 Q 2 Q_2 Q2 流出的电流均为 I / 2 I/2 I/2 ,也就是说输出电流为零,这正是我们想要的结果。而且,假设 Q 3 Q_3 Q3 Q 4 Q_4 Q4 完全匹配,此时的输出电压应为 V O = V D D − V S G 3 V_O = V_{DD} - V_{SG3} VO=VDDVSG3 。值得注意的是,实际情况下电路总是不对称的,因此存在净电流从输出端流出,在缺少负载电阻的情况下,净电流通过 Q 4 Q_4 Q4 Q 2 Q_2 Q2 的输出阻抗,这将造成输出电压与理论值存在较大的偏差。因此这个电路的偏置通常被负反馈所控制,之后我们会学习到。

接下来考虑应用一个差分信号 v i d v_{id} vid ,如图:

差分信号

因为我们讨论的是小信号,所有我们移除了所有的DC分量。根据我们之前的分析, Q 1 Q_1 Q1 Q 2 Q_2 Q2 的源极电流仍为:

i = v i d / ( 2 g m ) i = v_{id} /(\frac{2}{g_m}) i=vid/(gm2)

各个支路的电流方向如图所示,我们发现,流出输出节点的电流变成了 2 i 2i 2i ,我们无损的做到了将差分输出转为了单端输出。我们这里省略了输出负载,实际上的输出电压由 2 i 2_i 2i 和输出负载共同决定。

实际上,这个电路的精髓就在于:当输入的是共模信号的时候, Q 4 Q_4 Q4 输出的电流被 Q 2 Q_2 Q2 抵消。当输入的是差分信号的时候,此时 Q 4 Q_4 Q4 输出的电流被 Q 2 Q_2 Q2 叠加。

电流镜负载的差分放大器的差分增益

我们知道在IC中, r o r_o ro 的作用无法忽视。因此我们将在考虑 r o r_o ro 的情况下计算 v o / v i d v_o / v_{id} vo/vid 的值。我们发现,若考虑 r o r_o ro ,那么电路本身是不对称的,因为 Q 1 Q_1 Q1 看向 Q 3 Q_3 Q3 的阻抗较小,大约为 1 / g m 3 1/g_{m3} 1/gm3 ,而 Q 2 Q_2 Q2 看向 Q 4 Q_4 Q4 的阻抗是较大的,大约为 r o 4 r_{o4} ro4 ,此时共源极端点不再是虚拟地,因此我们不能使用半电路分析法。

我们的分析方法是,将电路等效为一般形式:
一般形式

这里 G m v i d G_m v_{id} Gmvid 是电流镜负载的差分放大器的输出信号电压, R o R_o Ro 是输出阻抗。我们先给出结论:

这里 G m G_m Gm 是整体传导系数,其值为:

G m = g m 1 , 2 G_m = g_{m1,2} Gm=gm1,2

这里 g m 1 , 2 g_{m1,2} gm1,2 Q 1 Q_1 Q1 Q 2 Q_2 Q2 的互导系数。

R o = r o 2 ∣ ∣ r o 4 R_o = r_{o2} || r_{o4} Ro=ro2∣∣ro4

此时开路电压增益为:

A d ≡ v o v i d = G m R o = g m 1 , 2 ( r o 2 ∣ ∣ r o 4 ) A_d \equiv \frac{v_o}{v_{id}} = G_mR_o = g_{m1,2}(r_{o2} || r_{o4}) Advidvo=GmRo=gm1,2(ro2∣∣ro4)

我们将 g m 1 , 2 g_{m1,2} gm1,2 简记为 g m g_m gm ,并且令 r o 2 = r o 4 = r o r_{o2} = r_{o4} = r_o ro2=ro4=ro ,则:

A d = 1 2 g m r o = 1 2 A 0 A_d = \frac{1}{2}g_m r_o = \frac{1}{2}A_0 Ad=21gmro=21A0

这里 A 0 A_0 A0 是固有增益。

首先我们推导短路互导系数,下图中,我们将输出端置地:

输出端置地
则短路互导系数定义为:

G m ≡ i o v i d G_m \equiv \frac{i_o}{v_{id}} Gmvidio

观察到将输出端置地后,此时的电路几乎是平衡状态,因为从 Q 1 Q_1 Q1 看向 Q 3 Q_3 Q3 是一个接近零的小阻抗,从 Q 2 Q_2 Q2 看向 Q 4 Q_4 Q4 此时阻抗为零。因此我们近似的将共源极端点的电压看做是零点。紧接着我们将其使用混合 π \pi π 模型展开,注意到 Q 3 Q_3 Q3 可以看做是输出阻抗为 1 / g m 3 ∣ ∣ r o 3 1/g_{m3}||r_{o3} 1/gm3∣∣ro3 的二极管:

混合pi模型
通过节点电压法我们能够写出:

i o = g m 2 ( v i d 2 ) − g m 4 v g s 4 i_o = g_{m2}(\frac{v_{id}}{2})-g_{m4}v_{gs4} io=gm2(2vid)gm4vgs4

注意到:

v g s 3 = v g s 4 v_{gs3} = v_{gs4} vgs3=vgs4

而且:

v g s 3 = − g m 1 ( v i d 2 ) ( 1 g m 3 ∣ ∣ r o 3 ∣ ∣ r o 1 ) v_{gs3} = -g_{m1}(\frac{v_{id}}{2})(\frac{1}{g_{m3}}||r_{o3}||r_{o1}) vgs3=gm1(2vid)(gm31∣∣ro3∣∣ro1)

因为 1 g m 3 ≪ r o 3 , r o 1 \frac{1}{g_{m3}} \ll r_{o3},r_{o1} gm31ro3,ro1 所以:

v g s 3 ≃ − g m 1 g m 3 ( v i d 2 ) v_{gs3} \simeq -\frac{g_{m1}}{g_{m3}}(\frac{v_{id}}{2}) vgs3gm3gm1(2vid)

若此时 g m 3 = g m 4 g_{m3} = g_{m4} gm3=gm4 并且 g m 1 = g m 2 = g m g_{m1} = g_{m2} = g_m gm1=gm2=gm 则:

i o = g m v i d i_o = g_m v_{id} io=gmvid

则:

G m = g m G_m = g_m Gm=gm

最后我们推导输出阻抗 R o R_o Ro ,下图中我们将输入端置地,在输出端接入测试电压源:

测试电压源
则输出阻抗定义为:

R o ≡ v x i x R_o \equiv \frac{v_x}{i_x} Roixvx

在图中,我们将分析顺序使用编号标出,电流 i i i 依次流入 Q 2 Q_2 Q2 Q 1 Q_1 Q1 ,因为 Q 3 Q_3 Q3 是二极管接法,而且 1 / g m 3 ≪ r o 3 1/g_{m3} \ll r_{o3} 1/gm3ro3 所以大部分电流都流入 Q 3 Q_3 Q3 ,这将导致在 Q 4 Q_4 Q4 也复制出相同的电流 i i i 。根据输出端点电压:

i = i x / R o 2 i = i_x / R_{o2} i=ix/Ro2

这里 R o 2 R_{o2} Ro2 是从输出端点向下看的阻抗。为了计算 R o 2 R_{o2} Ro2 我们先计算电流镜 Q 3 Q_3 Q3 的输入阻抗:

R i n 3 = 1 g m 3 ∣ ∣ r o 3 ≃ 1 g m 3 R_{in3} = \frac{1}{g_{m3}}||r_{o3} \simeq \frac{1}{g_{m3}} Rin3=gm31∣∣ro3gm31

然后是CG放大器 Q 1 Q_1 Q1 的输入阻抗,在上一章我们计算过为:

R i n 1 = r o 1 + R L g m 1 r o 1 R_{in1} = \frac{r_{o1} + R_L}{g_{m1}r_{o1}} Rin1=gm1ro1ro1+RL

带入 R L = R i n 3 = 1 g m 3 R_L = R_{in3} = \frac{1}{g_{m3}} RL=Rin3=gm31

R i n 1 = 1 g m 1 + 1 / g m 3 g m 1 r o 1 ≃ 1 g m 1 R_{in1} = \frac{1}{g_{m1}} + \frac{1/g_{m3}}{g_{m1}r_{o1}} \simeq \frac{1}{g_{m1}} Rin1=gm11+gm1ro11/gm3gm11

此时 R o 2 R_{o2} Ro2 是CG放大器 Q 2 Q_2 Q2 的输出阻抗,在上一章我们计算过为:

R o 2 = R i n 1 + r o 2 + g m 2 r o 2 R i n 1 = 1 g m 1 + r o 2 + g m 2 g m 1 r o 2 R_{o2} = R_{in1} + r_{o2} + g_{m2}r_{o2}R_{in1} = \frac{1}{g_m1} + r_{o2} + \frac{g_{m2}}{g_{m1}}r_{o2} Ro2=Rin1+ro2+gm2ro2Rin1=gm11+ro2+gm1gm2ro2

这里令 g m 1 = g m 2 = g m g_{m1} = g_{m2} = g_m gm1=gm2=gm 则:

R o 2 ≃ 2 r o 2 R_{o2} \simeq 2r_{o2} Ro22ro2

带回原方程我们得到:

i x = i + i + v x r o 4 = 2 v x R o 2 + v x r o 4 = v x r o 2 + v x r o 4 i_x = i + i + \frac{v_x}{r_{o4}} = 2 \frac{v_x}{R_{o2}} + \frac{v_x}{r_{o4}} = \frac{v_x}{r_{o2}} + \frac{v_x}{r_{o4}} ix=i+i+ro4vx=2Ro2vx+ro4vx=ro2vx+ro4vx

所以:

R o = r o 2 ∣ ∣ r o 4 R_o = r_{o2} || r_{o4} Ro=ro2∣∣ro4

电流镜负载的BJT差分放大器

BJT版本的电流镜负载的BJT差分放大器如下图所示:

电流镜负载的BJT差分放大器
在这里我们忽略有限 β \beta β 的基极电流的影响,并且假设电路是平衡的,我们分析的方法和MOS一样。其中短路互导系数为:

G m = g m 1 , 2 G_m = g_{m1,2} Gm=gm1,2

输出阻抗为:

R o = r o 2 ∣ ∣ r o 4 R_o = r_{o2} || r_{o4} Ro=ro2∣∣ro4

与MOS一致。

开路差分增益为:

A d = v o v i d = G m R o = g m ( r o 2 ∣ ∣ r o 4 ) A_d = \frac{v_o}{v_{id}} = G_mR_o = g_m(r_{o2} || r_{o4}) Ad=vidvo=GmRo=gm(ro2∣∣ro4)

这里若 g m 1 = g m 2 = g m = V T I / 2 g_{m1} =g_{m2} =g_m = \frac{V_T}{I/2} gm1=gm2=gm=I/2VT 以及 r o 2 = r o 4 = r o r_{o2} = r_{o4} = r_o ro2=ro4=ro ,则:

A d = 1 2 g m r o A_d = \frac{1}{2} g_m r_o Ad=21gmro

以上均和MOS的情况一致,但是BJT的 g m g_m gm 要比MOS的大很多因此增益要比MOS大,但是因为基极电流的影响,其存在有限的输入阻抗:

R i d = 2 r π R_{id} = 2 r_\pi Rid=2rπ

系统性输入偏移电压误差

考虑到BJT电流镜即使完全匹配,其电流传导比也不是单位一。因此在BJT电流镜中存在系统误差,如图:

系统性输入偏移电压误差
此时 Q 4 Q_4 Q4 输出的电流为:

I 4 = α I / 2 1 + 2 β p I_4 = \frac{\alpha I/2}{1 + \frac{2}{\beta_p}} I4=1+βp2αI/2

Q 2 Q_2 Q2 的输出电流不匹配,因此输出端存在净电流:

Δ i = α I 2 − α I / 2 1 + 2 β p ≃ α I β p \Delta i = \frac{\alpha I}{2} - \frac{\alpha I/2}{1 + \frac{2}{\beta_p}} \simeq \frac{\alpha I}{\beta_p} Δi=2αI1+βp2αI/2βpαI

为了让误差归零,我们必须额外的输入差分电压:

V O S = − Δ i G m = − 2 V T β p V_{OS} = -\frac{\Delta i}{G_m} = -\frac{2V_T}{\beta_p} VOS=GmΔi=βp2VT

一个改进的方法是使用高级电流镜。

共模增益和共模抑制

电路在任何时候都不是理想情况,因此电流镜负载的差分放大器也存在共模增益和共模抑制。因为电流镜的传导比实际上是一个非常接近于单位一的数字,当输入一个共模信号,和 Q 2 Q_2 Q2 的抵消电流就会出现不相等的情况,因此存在一个共模信号输出。我们希望推导出 A c m A_{cm} Acm 。下图是我们使用的电路图:

共模增益和共模抑制
注意到我们省去了DC偏移,并且只留下了 R S S R_{SS} RSS 。尽管负载电路是不对称的,但是这不影响我们可以将 R S S R_{SS} RSS 拆开为:

等效电路
这相当于带源极电阻 2 R S S 2R_{SS} 2RSS 的CS放大器。其等效模型为:

混合pi模型
为了决定 G m c m G_{mcm} Gmcm 的大小,我们将 Q 1 Q_1 Q1 的漏极置地得到:

漏极置地
在上图中:

v s = v i c m ( 2 R S S ∣ ∣ r o 1 ) ( 2 R S S ∣ ∣ r o 1 ) + ( 1 / g m 1 ) ≃ v i c m v_s = v_{icm} \frac{(2R_{SS}||r_{o1})}{(2R_{SS}||r_{o1}) + (1/g_{m1})} \simeq v_{icm} vs=vicm(2RSS∣∣ro1)+(1/gm1)(2RSS∣∣ro1)vicm

i o i_o io 为:

i o = v c 2 R S S ≃ v i c m 2 R S S i_o = \frac{v_c}{2R_{SS}} \simeq \frac{v_{icm}}{2R_{SS}} io=2RSSvc2RSSvicm

所以互导系数为:

G m c m ≡ i o v i c m = 1 2 R S S G_{mcm} \equiv \frac{i_o}{v_{icm}} = \frac{1}{2R_{SS}} Gmcmvicmio=2RSS1

R o R_o Ro 是带源极电阻的CS放大器的输出阻抗为:

R o 1 = 2 R S S + r o 1 + ( g m 1 r o 1 ) ( 2 R S S ) R_{o1} = 2R_{SS} + r_{o1} + (g_{m1}r_{o1})(2R_{SS}) Ro1=2RSS+ro1+(gm1ro1)(2RSS)

同样的:

R o 2 = 2 R S S + r o 2 + ( g m 2 r o 2 ) ( 2 R S S ) R_{o2} = 2R_{SS} + r_{o2} + (g_{m2}r_{o2})(2R_{SS}) Ro2=2RSS+ro2+(gm2ro2)(2RSS)

现在对于电流镜的输入阻抗为 R i m R_{im} Rim 电流传导比为 A m A_m Am 输出阻抗为 R o m R_{om} Rom 这对于任何的电流源均适用,因为 R o 1 R_{o1} Ro1 要远大于 R i m R_{im} Rim 所以电流源的输入电流为 i i i_i ii

i i ≃ G m c m v i c m i_i \simeq G_{mcm} v_{icm} iiGmcmvicm

此时输出电压为:

v o = ( A m i i − G m c m v i c m ) ( R o m ∣ ∣ R o 2 ) v_{o} = (A_m i_i - G_{mcm}v_{icm})(R_{om} || R_{o2}) vo=(AmiiGmcmvicm)(Rom∣∣Ro2)

全部带入得到:

A c m ≡ v o v i c m = − ( 1 − A m ) G m c m ( R o m ∣ ∣ R o 2 ) A_{cm} \equiv \frac{v_o}{v_{icm}} = -(1 - A_m)G_{mcm}(R_{om} || R_{o2}) Acmvicmvo=(1Am)Gmcm(Rom∣∣Ro2)

这是一个通用的公式,适用于所有的电流镜。针对于简单电流镜:

R i m = 1 g m 3 ∣ ∣ r o 3 R_{im} = \frac{1}{g_{m3}} || r_{o3} Rim=gm31∣∣ro3

R o m = r o 4 R_{om} = r_{o4} Rom=ro4

电流增益为:

A m i i = − g m 4 v g s 4 = − g m 4 v g s 3 A_m i_i = -g_{m4}v_{gs4} = -g_{m4}v_{gs3} Amii=gm4vgs4=gm4vgs3

这里:

v g s 3 = − i i R i n v_{gs3} = -i_i R_{in} vgs3=iiRin

因此:

A m = g m 4 R i n A_{m} = g_{m4}R_{in} Am=gm4Rin

假设 g m 4 = g m 3 g_{m4} = g_{m3} gm4=gm3 有:

A m = 1 / ( 1 + 1 g m 3 r o 3 ) A_m = 1 / (1 + \frac{1}{g_{m3} r_{o3}}) Am=1/(1+gm3ro31)

整体带入得到:

A c m ≃ − 1 2 g m 3 R S S A_{cm} \simeq -\frac{1}{2g_{m3}R_{SS}} Acm2gm3RSS1

这是因为 r o 4 ≪ R o 2 , r o 4 = r o 3 , g m r o 3 ≪ 1 r_{o4} \ll R_{o2},r_{o4} = r_{o3},g_{m}r_{o3} \ll 1 ro4Ro2,ro4=ro3,gmro31

因此共模抑制比为:

C M R R = ≡ ∣ A d ∣ ∣ A c m ∣ = [ g m ( r o 2 ∣ ∣ r o 4 ) ] [ 2 g m 3 R S S ] CMRR = \equiv \frac{|A_d|}{|A_{cm}|} = [g_m(r_{o2} || r_{o4})][2g_{m3}R_{SS}] CMRR=≡AcmAd=[gm(ro2∣∣ro4)][2gm3RSS]

对于 r o 2 = r o 4 = r o r_{o2} = r_{o4} = r_o ro2=ro4=ro 并且 g m 3 = g m g_{m3} = g_m gm3=gm 来说:

C M R R = ( g m r o ) ( g m R S S ) CMRR = (g_mr_o)(g_mR_{SS}) CMRR=(gmro)(gmRSS)

我们发现要提高CMRR可以提高偏置电流 I I I 或者提供输出阻抗,这可以使用共源共栅电流镜或者高级电流镜。

BJT情况

对于BJT来说:

G m c m = 1 2 R E E G_{mcm} = \frac{1}{2R_{EE}} Gmcm=2REE1

并且:

R i m = 1 g m 3 ∣ ∣ r π 3 ∣ ∣ r π 4 ∣ ∣ r o 3 R_{im} = \frac{1}{g_{m3}} || r_{\pi 3} || r_{\pi 4} || r_{o3} Rim=gm31∣∣rπ3∣∣rπ4∣∣ro3

因为 r o 3 ≫ r π 3 r_{o3} \gg r_{\pi 3} ro3rπ3 并且 r π 3 = r π 4 r_{\pi 3} = r_{\pi 4} rπ3=rπ4 得到:

R i m ≃ 1 g m 3 ∣ ∣ 2 r π 3 R_{im} \simeq \frac{1}{g_{m3}} || \frac{2}{r_{\pi 3}} Rimgm31∣∣rπ32

R o m = r o 4 R_{om} = r_{o4} Rom=ro4

电流传导比为:

A m = g m 4 R i m A_{m} = g_{m4}R_{im} Am=gm4Rim

假设 g m 4 = g m 3 g_{m4} = g_{m3} gm4=gm3 使用 r o 4 ≫ R o 2 r_{o4} \gg R_{o2} ro4Ro2

A c m ≃ − r o 4 2 R E E 2 r π 3 g m 3 + 2 r π 3 ≃ − r o 4 2 R E E 2 β 3 = − r o 4 β 3 R E E A_{cm} \simeq -\frac{r_{o4}}{2R_{EE}}\frac{\frac{2}{r_{\pi 3}}}{g_{m3} + \frac{2}{r_{\pi 3}}} \simeq -\frac{r_{o4}}{2R_{EE}} \frac{2}{\beta_3} = -\frac{r_{o4}}{\beta_3 R_{EE}} Acm2REEro4gm3+rπ32rπ322REEro4β32=β3REEro4

则共模抑制比为:

C M R R = g m ( r o 2 ∣ ∣ r o 4 ) ( β 3 R E E r o 4 ) CMRR = g_{m}(r_{o2}||r_{o4})(\frac{\beta_3R_{EE}}{r_{o4}}) CMRR=gm(ro2∣∣ro4)(ro4β3REE)

对于 r o 2 = r o 4 = r o r_{o2} = r_{o4} = r_o ro2=ro4=ro 来说:

C M R R = 1 2 β 3 g m R E E CMRR = \frac{1}{2}\beta_3 g_m R_{EE} CMRR=21β3gmREE

同样的为了提高BJT的CMRR,我们可以使用较大的偏置电流,或者使用较高输出阻抗的高级电流镜。

总结:电流镜负载的差分放大器共模增益主要原因是由于电流镜的电流传导比上的误差,对于MOS来说这是由于 r o 3 r_{o3} ro3 引起的,对于BJT来说是由于有限的 β \beta β 引起的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【单目标优化算法】食肉植物优化算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

vant 4 正式发布,支持暗黑主题,那么是如何实现的呢

2022年10月25日首发于掘金,现在同步到公众号。11. 前言大家好,我是若川。我倾力持续组织了一年多源码共读,感兴趣的可以加我微信 lxchuan12 参与。另外,想学源码,极力推荐关注我写的专栏《学习源码整体架构系列》&…

八股文总是忘?一张图牢记JVM内存结构|金三银四系列

金三银四又来啦!八股文还是得复习起来,最近准备把一些常见的八股文知识点聊聊。本文详解了JVM内存结构和各个部分详细内容,应付面试绰绰有余!点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达…

visual studio2022配置opencv

标题:在vs下配置使用opencv 流程: 1、下载安装opencv 2、添加环境变量 3、vs中配置属性 4、使用 5、可能遇到的报错和解决 1、 下载安装opencv 官网下载地址: https://opencv.org/releases/ 我这里是windows环境,所以选择点击w…

Java数据结构之优先级队列

前言总是忘了优先队列的一些应用,其实这都是很基础的了。为了再加强印象,抄一遍吧。PriorityQueue简介PriorityQueue,即优先级队列。优先级队列可以保证每次取出来的元素都是队列中的最小或最大的元素(Java优先级队列默认每次取出…

微信小程序 if语法、for循环 条件渲染、列表渲染等讲解

这篇文章我想给大家学习的就是如何使用 if 去判断 组件的是显示和隐藏,如何使用for循环来渲染列表等重复的内容。 1.if语法的使用 在小程序中,我们可以使用wx:if"{{条件}}"来判断是否需要渲染该代码块 也可以用 wx:elif 和wx:else 来添加 el…

【java】Spring Boot -- Spring的IOC实现原理

文章目录IOC定义理解IOC不使用IOC:使用IOC:使用IOC的好处IOC提供被依赖对象的方式构造器注入setter 方法注入接口方式注入简单模拟IOC总结IOC定义 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI&…

【Selenium】十分钟手把手带你学会WebDriver API

目录 1、定位元素【8种】 2、操作测试对象 3、添加等待 4、弹窗类型 5、浏览器的操作 6、键盘事件 7、选择框 8、上传文件 1、定位元素【8种】 元素定位是自动化测试的核心,想要去操作一个对象,第一步就是需要我们先去识别这个对象。每个对象就会…

全民ChatGPT热:快来解锁你的“全能网友”

前 言 2021年11月30日,OpenAI推出人工智能聊天原型ChatGPT,赚足了眼球,在AI界引发了类似AIGC让艺术家失业的大讨论。 据报道,ChatGPT在开放试用的短短几天,就吸引了超过 100 万互联网注册用户。并且社交网络流传出各种…

html5标签

图片:image 主要属性: src:源属性的值是图像的 URL 地址。 alt:用来为图像定义一串预备的可替换的文本。 注意事项: 注意: 假如某个 HTML 文件包含十个图像,那么为了正确显示这个页面,需要加…

速通Spring

尚硅谷2023最新版Spring6课程_bilibili 1 Spring 【强制】Spring是什么? 1) Spring是一款主流的Java EE轻量级开源框架。 轻量级:体积很小,且不需要依赖于其他组件。 2) 狭义的Spring。 Spring Framework。 3) 广义的Spring。 以Spring F…

python对多个csv文件进行合并(表头需一致)

之前写过python对【多个Excel文件】中的【单个sheet】进行合并,参考:点我 之前也写过python对【多个Excel文件】中的【多个sheet】进行合并,参考:点我 今天再写一个python对多个csv格式的文件进行合并的小工具 但是大家切记&am…

GIS开源框架:ArcGIS文件地理数据库(GDB)解析与入库

对于GIS专业毕业的同学,想必对于ArcGIS软件不会太陌生,对于地理数据库也有一定的了解和使用经验。但是,撇开软件操作层面不谈,作为一个WebGIS/GIS开发人员,我们如何通过GIS开源框架去完成地理数据库的自动化解析和入库…

解决不同影像裁剪后栅格数据行列不一致问题

前言在处理栅格数据时,尽管用同一个矢量文件裁剪栅格数据,不同数据来源的栅格行列数也会出现不一致的情况。如果忽略或解决不好,会导致后续数据处理出现意想不到的误差或错误,尤其是利用编程实现数据处理时。因此,应当…

VisualGDB 5.6R9 FOR WINDOWS

Go cross-platform with comfort VisualGDB 是 Visual Studio 的一个非常强大的扩展,它允许您调试或调试嵌入式系统。这个程序有一个非常有吸引力的用户界面,它有许多调试或调试代码的功能。VisualGDB 还有一个向导可以帮助您调试程序,为您提…

【C++】关键字、命名空间、输入和输出、缺省参数、函数重载

C关键字(C98)命名空间产生背景命名空间定义命名空间使用输入&输出缺省参数什么叫缺省参数缺省参数分类函数重载函数重载概念C支持函数重载的原理--名字修饰C关键字(C98) C总计63个关键字,C语言32个关键字。 下面我们先看一下C有多少关键字,不对关键…

Linux 解压JAR包 查看class内容

快速解决方案 查询class相对路径:jar tf test.jar | grep "test.class"单独解压class文件:jar xvf test.jar com/test/test.class查看class文件内容:javap -c com/test/test.class 背景 服务运行后,日志打印出来发现…

【taichi】利用 taichi 编写深度学习算子 —— 以提取右上三角阵为例

本文以取 (bs, n, n) 张量的右上三角阵并展平为向量 (bs, n*(n1)//2)) 为例,展示如何用 taichi 编写深度学习算子。 如图,要把形状为 (bs,n,n)(bs,n,n)(bs,n,n) 的张量,转化为 (bs,n(n1)2)(bs,\frac{n(n1)}{2})(bs,2n(n1)​) 的向量。我们先写…

各种素材网站大全【全部倾倒,福利倒计时-JS,HTML,游戏素材,UI,图片素材等

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:解忧杂货铺 ⭐各种素材网站大全⭐ 文章目录⭐各种素材网站大全⭐🎶大家必逛的四大天王…

STM32F769BIT6微控制器STM32F769IGT6详细规格

说明STM32F7 32 位 MCUFPU 基于高性能的 ARMCortex-M7 32 位 RISC 内核,工作频率高达 216MHz。Cortex-M7 内核具有单浮点单元(SFPU)精度,支持所有 ARM 单精度数据处理指令与数据类型。同时执行全套 DSP 指令和存储保护单元(MPU)&a…