Razavi习题6.8(a):共源级高频响应与传输函数推导详解
2026/9/1 3:46:34 网站建设 项目流程

Razavi 模集教材的习题 6.8(a),是不少人在第 6 章频率响应部分遇到的第一道坎。这道题不是单纯考记忆,而是考你能不能把一个放大器的传输函数从等效电路里完整推出来,并判断它的极点和零点。下面我按最常见的共源级高频分析版本,把推导过程完整走一遍。如果你手边教材里的 6.8(a) 电路和我这里不完全一样,也不要紧,替换元件后,整个分析流程照样能用。

这种题最大的价值,是帮你建立一套“画小信号模型 -> 列节点方程 -> 消元整理 -> 检验极限 -> 画波特图”的固定思路。一旦这个流程跑顺,后面 6.8(b)、6.9、6.10 都会轻松很多。

1. 拿到 6.8(a) 以后,先别急着列方程

1.1 先确认题目考的是低频响应还是高频响应

Razavi 教材第 6 章标题叫“频率响应”,但里面的习题并不是都要求你列全频段的传输函数。有的题考低频响应,主要看耦合电容、旁路电容对增益的影响;有的题考高频响应,主要看晶体管寄生电容 Cgs、Cgd、Cdb 的作用。

6.8(a) 属于哪一类,取决于你手里的具体版本。我遇到的常见情况是:它给的是一个共源放大器,输入源内阻 RS,输出端有负载电容,节点上还有晶体管电容,要求推导 Vout/Vin,并画出波特图。这就是典型的高频响应题目。

判断方法很简单:看题图里把哪些电容看作大电容、哪些电容看作小电容。如果耦合电容和旁路电容画得很大,通常低频时视为短路,重点分析寄生电容;如果题目只画了 Cgs、Cgd、CL 这类小电容,说明直接进入高频分析。

1.2 判断电路拓扑属于哪一类

第 6 章的例题和习题里,拓扑不外乎共源级、共栅级、源跟随器、级联结构。6.8(a) 如果只有一个晶体管,通常就是共源级。共源级的特征是输入加在栅极,输出取自漏极,源极交流接地。

如果源极串了一个电阻 R_S? 不,注意这里输入源内阻 RS 和源极电阻是两回事。Razavi 题目里,信号源一般不是理想电压源,会带一个源内阻 RS,这个电阻对输入极点影响很大,必须保留。如果源极还有电阻,那属于源极负反馈,推导会更复杂,但分析方法一样。

先判断拓扑,再画等效电路,否则很容易把节点方程写错。我见过不少人拿到题就开始套“密勒定理”,结果题目要求精确传输函数,密勒近似反而导致极点和零点个数都对不上。

1.3 建立推导步骤清单

做这类题,我一般会按五步走:

  1. 画出高频小信号等效电路。
  2. 在关键节点写 KCL 方程。
  3. 消去中间变量,得到 Vout/Vin 的表达式。
  4. 整理成标准形式,提取直流增益、零点、极点。
  5. 用低频极限和高频极限验证结果,再画波特图。

不要跳过第一步直接写公式。即使你记得共源级传输函数的最终形式,也要学会自己推一遍,因为 6.8(a) 后面的小问很可能让你改条件。

2. 小信号等效电路和三件最容易漏掉的事

2.1 输入源内阻 RS 必须画进去,否则输入极点会丢

很多同学画等效电路时,喜欢把输入信号直接接到栅极,认为 Vin 就等于 Vg。这在低频题里问题不大,但在频率响应题里是错误的。

信号源 Vin 通过源内阻 RS 接到栅极,栅极节点对地还有 Cgs 和 Cgd 的等效电容。高频时,电容阻抗变小,RS 和电容构成一个 RC 网络,会产生一个输入极点。如果漏掉 RS,这个极点就消失,传输函数少一阶,答案自然不对。

所以拿到 6.8(a),第一件事就是在输入端把 RS 画出来。即使题目里没给 RS,也通常会在图里标一个,要仔细看。

2.2 Cgd 的处理方式,直接决定零点是否存在

在共源级中,Cgd 跨接在栅极和漏极之间。它不仅是输入电容的一部分,还提供了一条从输入到输出的前馈通路。

在高频处,Cgd 可以把信号直接从栅极耦合到漏极。这个耦合信号与晶体管 gm 产生的放大信号方向相反,所以会在传输函数中产生一个右半平面零点。这个零点频率大约是 gm / Cgd,但更要紧的是它的相位贡献是滞后的,画波特图时不能当成普通零点处理。

如果你用密勒定理把 Cgd 拆成输入侧和输出侧两个电容,那是近似做法。它会丢掉这个右半平面零点,因为密勒等效只保留了大小,不保留方向。在 6.8(a) 这种要求完整传输函数的题里,除非题目明确说“用密勒近似”,否则建议保留 Cgd 的跨接关系,直接列节点方程。

2.3 r_o 和体效应什么时候保留,什么时候先去掉

Razavi 教材里的小信号模型有多个版本:只含 gm 的理想电流源、带 r_o 的非理想电流源、考虑体效应 gmb 的完整模型。

6.8(a) 到底用哪个模型,要回看题目条件。如果题目没有特别提到沟道长度调制或 lambda,通常可以先忽略 r_o,这样推导简单很多。如果题目明确要求考虑 r_o,那输出节点就要并一个 r_o,公式会变长,但流程不变。

我的建议是:第一遍推导先忽略 r_o 和 gmb,把主体结果推出来。等主体公式没问题,再回头加 r_o 作修正。否则一上来就满屏符号,很容易在代数化简时出错。

3. 以最常见的共源级 6.8(a) 为例,完整推导传输函数

下面以这个典型电路为例:

  • 输入信号源 Vin,源内阻 RS;
  • NMOS 共源级,栅极有 Cgs,栅漏之间有 Cgd;
  • 漏极接电阻 RD 到电源,输出节点还有负载电容 CL;
  • 源极交流接地,暂时忽略 r_o 和体效应。

这个结构在 Razavi 教材第 6 章里非常常见。如果 6.8(a) 的电路不是它,你也可以照同样的方法重推。

3.1 先画小信号等效电路,再写节点方程

高频等效电路里,所有直流电源都置为交流地,VDD 视为地。晶体管用压控电流源 gm*Vgs 表示,Vgs 就是栅极到源极的电压,在源极接地时,Vgs = Vg。

这时有两个独立节点:栅极节点 G 和漏极节点 D。源极是地。

在节点 G,流入节点的电流来自 RS 左侧的 Vin,流出节点的电流有两条:一条通过 Cgs 到地,一条通过 Cgd 到漏极。写 KCL:

(Vin - Vg) / RS = s*Cgs*Vg + s*Cgd*(Vg - Vout)

注意,Cgd 两端的电压是 Vg - Vout,所以电流是 s*Cgd*(Vg - Vout)。方向是从栅极流向漏极。

在节点 D,流出节点的电流包括:压控电流源 gm*Vg,电阻 RD 上的电流 Vout/RD,电容 CL 上的电流 s*CL*Vout,以及 Cgd 上的电流 s*Cgd*(Vout - Vg)。注意 Cgd 在漏极这一端看到的电压是 Vout - Vg,所以电流方向和栅极那端相反。写 KCL:

gm*Vg + Vout/RD + s*CL*Vout + s*Cgd*(Vout - Vg) = 0

这里把压控电流源画成了从漏极流出到源极,所以 KCL 写成流出电流代数和为零。如果你习惯用流入电流,符号会全部反过来,最终结果是一样的,但中间步骤更容易错。

3.2 消去 Vg,得到 Vout/Vin

从栅极节点方程可以解出 Vg:

(Vin - Vg) / RS = s*(Cgs + Cgd)*Vg - s*Cgd*Vout

移项:

Vin / RS = Vg / RS + s*(Cgs + Cgd)*Vg - s*Cgd*Vout

所以:

Vg = (Vin + s*RS*Cgd*Vout) / (1 + s*RS*(Cgs + Cgd))

从漏极节点方程解出 Vg 和 Vout 的关系:

gmb? 不用管,gm*Vg + Vout/RD + s*CL*Vout + s*Cgd*(Vout - Vg) = 0

整理:

(gm - s*Cgd)*Vg + Vout*(1/RD + s*CL + s*Cgd) = 0

因此:

Vg = - Vout * (1/RD + s*(CL + Cgd)) / (gm - s*Cgd)

联立两个 Vg 表达式,去掉 Vg,得到:

(Vin + s*RS*Cgd*Vout) / (1 + s*RS*(Cgs + Cgd)) = - Vout * (1/RD + s*(CL + Cgd)) / (gm - s*Cgd)

然后交叉相乘,整理出:

Vout/Vin = - gm*RD * (1 - s*Cgd/gm) / [ 1 + s*A + s^2*B ]

其中:

A = RS*(Cgs + Cgd) + RD*(CL + Cgd) + gm*RD*RS*Cgd B = RS*RD*(Cgs*CL + Cgs*Cgd + Cgd*CL)

这个结果就是典型共源级的高频传输函数。

3.3 检查量纲和极限行为

推导完成后,先别急着画波特图,做两个快速检查。

第一个检查是零频极限。令 s = 0,分子变成 -gm*RD,分母是 1,所以 H(0) = -gm*RD。这正好是共源级的中频电压增益,符号为负,说明输入输出反相。如果这里算出正号,肯定是前面某个电流方向写错了。

第二个检查是高频极限。令 s → ∞,分子趋于 -gm*RD*(-s*Cgd/gm) = RD*Cgd*s,分母趋于 s^2*B,所以 H(s) 趋于 RD*Cgd / (s*B),即随频率升高而下降,最终趋于 0。这与实际电路在高频时增益下降的直觉一致。

还有一个检查:如果 Cgd = 0,分子变成 -gm*RD,零点消失;分母里 A = RS*Cgs + RD*CL,B = RS*RD*Cgs*CL。这说明电路退化成两个独立的一阶 RC 环节,分别是输入节点 RS 与 Cgs、输出节点 RD 与 CL。这个退化结果也符合物理预期。

3.4 极点和零点的物理意义

从传输函数可以看出,分子有一个零点:

z1 = gm / Cgd

它位于 s 平面的右半平面,所以叫右半平面零点。它来自 Cgd 的前馈通路,频率越高,Cgd 阻抗越低,信号越容易直接耦合到输出,抵消部分放大信号。

分母是一个二阶多项式,所以有两个极点。在大多数实际设计里,两个极点分离得比较远,可以近似求出主极点和次极点。主极点大约在:

p1 ≈ - 1 / [ RS*(Cgs + Cgd) + RD*(CL + Cgd) + gm*RD*RS*Cgd ]

这个表达式里的每一项都有物理含义:

  • RS*(Cgs + Cgd) 是输入节点对地电容与源内阻形成的时间常数;
  • RD*(CL + Cgd) 是输出节点对地电容与漏极电阻形成的时间常数;
  • gm*RD*RS*Cgd 是密勒效应引起的等效输入阻抗折算到输入端后的附加时间常数,也是三项里最容易忘记的。

如果两个极点不分离,那就用二次方程直接求极点,不要强行用主极点近似。Razavi 的习题里,有时会特意让两个极点接近,考查你能否正确处理二阶系统。

4. 验证答案的三个实用技巧

4.1 用低频极限验证直流增益

前面已经说过,s = 0 时 H(0) 必须等于 -gm*RD。这是所有共源级推导必须满足的基本条件。

有的题目里 RD 不是纯电阻,可能是电阻并联电容,或者负载是电流镜,输出阻抗也不同。但不管怎么变,s=0 时所有电容都开路,电路退化成直流等效电路,增益就由 gm 和漏极总阻抗决定。

如果推导结果在零频时不等于直流增益,说明你在整理过程中丢项或符号写错。这个时候不要继续往下画波特图,回到节点方程重新检查。

4.2 用高频极限检查阶数

传输函数分子分母的阶数之差,决定了高频衰减斜率。对于共源级,分母是二阶,分子是一阶,所以高频时增益按 -20dB/dec 衰减。

如果推导出来的分母只有一阶,说明你漏掉了一个极点。常见原因是把 Cgd 直接当作密勒电容拆掉,丢失了它在输出节点上的贡献。如果分子阶数不对,可能是 Cgd 前馈方向没处理好。

另一个技巧是把 Cgd=0 代入,看结果是否是两个独立的一阶 RC 的乘积。如果是,说明主体结构没问题。

4.3 与密勒近似的结果对比

Razavi 在正文里经常用密勒近似分析共源级的高频响应,但习题里往往要求精确结果。你可以用两种方法各自算一遍,然后对比差别。

密勒近似的做法是:把 Cgd 等效为栅极到地的电容 Cgd*(1 + gm*RD),同时忽略输出端引入的 Cgd 影响。这样会得到一个没有零点的二阶系统,输入极点频率偏低,而且完全看不到右半平面零点。

精确结果与近似结果的差异在哪里?

  • 精确结果有一个右半平面零点,密勒近似没有。
  • 精确结果的输入极点时间常数里包含 gm*RD*RS*Cgd,与密勒等效类似,但精确结果的第二个极点也包含 Cgd 的影响。
  • 当 gm*RD 很大时,密勒近似的主极点很接近精确结果,但零点对相位的影响在高频段不可忽视。

如果题目要求画波特图,一定要用精确结果标注零点,否则相位曲线会差 45 度以上。

5. 6.8(a) 解答中常见的错误和排查顺序

5.1 Cgd 电流方向写反,导致零点符号错误

这是最高频的错误。Cgd 跨接在栅极和漏极之间,栅极一侧的电流表达式是 s*Cgd*(Vg - Vout),漏极一侧是 s*Cgd*(Vout - Vg)。两个方向正好相反,很多人在两个节点分别写方程时,不自觉写成同一个方向,导致最终分子的零点跑到左半平面。

检查方法很简单:零点的表达式如果变成 -gm/Cgd,或者符号不对,就回头看看 Cgd 电流方向。你可以用电流从高电位流向低电位这个物理直觉来判断:当 Vg 上升时,Vout 因为是反相放大器而下降,所以 Cgd 两端电压差增大,电流方向应该从栅极流向漏极还是反向?想清楚这个,符号就不容易错。

5.2 漏掉 RS 或 RD,导致极点缺失

输入源内阻 RS 如果被忽略,输入极点就消失;漏极负载电阻 RD 如果被忽略,输出极点也消失。这两种情况都会让分母阶数下降。

如果题目里信号源标注为理想的,也就是没有 RS,那输入极点可能确实没有;但绝大多数高频响应题一定有 RS,否则输入节点只有一个电容,没有电阻,无法形成有限极点。

5.3 整理多项式时丢失 s^2 项

在联立两个节点方程后,需要做一次交叉相乘和展开。这个过程很容易丢项,尤其是 s^2 项。因为 s^2 项前面会有多个乘积,比如 Cgs*CL、Cgs*Cgd、Cgd*CL,少任何一个都不对。

我常用的整理方法是:先把两个 Vg 表达式写清楚,再代入消元,最后用“系数对比法”检查。

比如我们得到的分母二阶项系数:

B = RS*RD*(Cgs*CL + Cgs*Cgd + Cgd*CL)

如果你展开后少了中间交叉项,说明在 (Cgs+Cgd)(CL+Cgd) 的展开中漏了 Cgs*Cgd 或 Cgd*CL。检查时可以用一个简单办法:令 Cgs = CL = 1nF,Cgd = 0.5nF,代入公式看数值是否符合展开结果。数值验算比符号验算更直观。

5.4 画波特图时右半平面零点处理错误

普通的左半平面零点会引起增益上升,相位超前;右半平面零点同样会让增益上升,但相位是滞后。很多人在画 6.8(a) 的波特图时,把零点当成左半平面的来画,结果相位曲线完全错掉。

正确画法是:在零点频率 fz = gm / (2π*Cgd) 处,幅频曲线斜率增加 20dB/dec,但相频曲线继续下降 45 度,在十倍频程后下降接近 90 度。也就是说,这个零点不会像普通零点那样把相位往回升,而是让相位更负。

如果零点频率远高于第二个极点,那波特图上的零点可能出现在第二个极点之后,最终斜率是 -20dB/dec,但因为零点的作用,在零点到第二个极点之间的区间斜率可能被拉平。画图前要把 fz、p1、p2 的相对大小先估算出来,再决定转折点的先后顺序。

5.5 如果推不出结果,回到原始电路重新画模型

有些同学在推导中途卡住,会选择硬凑公式,这不可取。我踩过几次坑以后发现,90% 的推导问题都出在等效电路本身画错了,而不是代数运算能力不够。

这时候建议做一次“归零检查”:

  1. 把所以电容全部替换成开路,看直流等效电路是否正确;
  2. 把 Cgd 设为 0,看看是否退化成两个独立极点;
  3. 把输出端短接到地,看看前馈零点是否还存在。

做完这三步,基本能定位是模型问题、方程问题还是整理问题。

最后说一点

Razavi 教材的习题 6.8(a) 只是频率响应章节的起点。它真正的意义不是让你背下那个传输函数,而是让你熟练掌握“列节点方程 -> 消元 -> 整理 -> 检验”这套流程。

在这个流程里,最值得花时间的不是最终公式,而是每一步的物理判断:Cgd 为什么会产生右半平面零点?RS 为什么会影响输入极点?输出电容为什么直接决定第二个极点位置?把这些想清楚,后面再做源跟随器、共栅级、Cascode 的习题,会发现只是换了一个拓扑,分析方法完全一致。

如果你手里的 6.8(a) 电路和上面这个共源级不一样,建议不要急着找现成答案,先按这套流程自己推一遍。推完以后,再对比 Razavi 书上的参考解答,你会比直接看答案收获大得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询