Equivalent Input Noise Generators

Generated from NOISE.wxm with rfMaxima 0.2.5 on Maxima 5.46.0. All results were computed by executing the notebook; none is transcribed.

/* Put rfMaxima.mac in the same directory as this notebook, or add its
   directory to file_search_maxima. */
load("rfMaxima.mac")$

See "Analysis and Design of Analog Integrated Circuits", 4th Ed., by P. R. Gray, P. J. Hurst, S. H. Lewis, R. G. Meyer, Wiley, 2001, p. 768-773

declare([r_b,r_pi,C_pi,g_m,r_o],[constant,real,scalar])$
assume(r_b>0)$
assume(r_pi>0)$
assume(C_pi>0)$
assume(g_m>0)$
assume(r_o>0)$

Sign conventions in this notebook:

* The NOMINAL equation set below writes i_out flowing INTO the network, which is what Solution2Y() expects. * The NOISE equation sets write -i_out, i.e. i_out flowing OUT of the network, which is what the ABCD referral below expects.

That difference is deliberate, and 0.2.4 never said so.

Referral of an internal noise source to the input:

v_eq = A*v_out|(i_out=0) + B*i_out|(v_out=0) i_eq = C*v_out|(i_out=0) + D*i_out|(v_out=0)

A single linsolve can only deliver ONE of v_out and i_out -- with the input terminated, the two-port still has one free degree of freedom at the output. So "...1" (solved for i_out) gives the B/D term and "...2" (solved for v_out) gives the A/C term, and the two must be SUMMED. 0.2.4 printed the four partial results side by side without saying so, which reads as four independent answers.

ABCD Matrix

Solution:linsolve([v_in-v_1=r_b*i_in,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),i_in=i_1+i_2,i_out=i_3+g_m*v_1,v_out=r_o*i_3],[i_in,i_out,i_1,i_2,i_3,v_1]);
define(ABCD(s),Y2ABCD(Solution2Y(Solution)));
[iin=(Cπ rπ s+1) vinrb (Cπ rπ s+1)+rπ,iout=rb (Cπ rπ s vout+vout)+rπ vout+gm ro rπ vinrb (Cπ ro rπ s+ro)+ro rπ,i1=vinrb (Cπ rπ s+1)+rπ,i2=Cπ rπ s vinrb (Cπ rπ s+1)+rπ,i3=voutro,v1=rπ vinrb (Cπ rπ s+1)+rπ]\left[ \mathit{i}_{in}={{\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)\,\mathit{v}_{in}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , \mathit{i}_{out}={{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s\,\mathit{v}_{out}+\mathit{v}_{out}\right)+\mathit{r}_{\pi}\,\mathit{v}_{out}+\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,\mathit{v}_{in}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,s+\mathit{r}_{o}\right)+\mathit{r}_{o}\,\mathit{r}_{\pi}}} , i_{1}={{\mathit{v}_{in}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{2}={{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s\,\mathit{v}_{in}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{3}={{\mathit{v}_{out}}\over{\mathit{r}_{o}}} , v_{1}={{\mathit{r}_{\pi}\,\mathit{v}_{in}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} \right]ABCD(s):=(−Cπ rb rπ s+rπ+rbgm ro rπ−Cπ rb rπ s+rπ+rbgm rπ−Cπ rπ s+1gm ro rπ−Cπ rπ s+1gm rπ)\mathit{ABCD}\left(s\right):=\begin{pmatrix} -{{\mathit{C}_{\pi}\,\mathit{r}_{b}\,\mathit{r}_{\pi}\,s+\mathit{r}_{\pi}+\mathit{r}_{b}}\over{\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{r}_{\pi}}}&-{{\mathit{C}_{\pi}\,\mathit{r}_{b}\,\mathit{r}_{\pi}\,s+\mathit{r}_{\pi}+\mathit{r}_{b}}\over{\mathit{g}_{m}\,\mathit{r}_{\pi}}}\\ -{{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}\over{\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{r}_{\pi}}}&-{{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}\over{\mathit{g}_{m}\,\mathit{r}_{\pi}}} \end{pmatrix}

r_b Contribution (|v_noise|^2=|v_b|^2=4*k*T*r_b*B)

NoiseSolutionInputShorted1:linsolve([v_noise-v_1=r_b*i_in,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),i_in=i_1+i_2,-i_out=i_3+g_m*v_1,v_out=r_o*i_3],[i_out,i_1,i_2,i_3,v_1,i_in]);
[iout=−rb (Cπ rπ s vout+vout)+rπ vout+gm ro rπ vnoiserb (Cπ ro rπ s+ro)+ro rπ,i1=vnoiserb (Cπ rπ s+1)+rπ,i2=Cπ rπ s vnoiserb (Cπ rπ s+1)+rπ,i3=voutro,v1=rπ vnoiserb (Cπ rπ s+1)+rπ,iin=(Cπ rπ s+1) vnoiserb (Cπ rπ s+1)+rπ]\left[ \mathit{i}_{out}=-{{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s\,\mathit{v}_{out}+\mathit{v}_{out}\right)+\mathit{r}_{\pi}\,\mathit{v}_{out}+\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,\mathit{v}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,s+\mathit{r}_{o}\right)+\mathit{r}_{o}\,\mathit{r}_{\pi}}} , i_{1}={{\mathit{v}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{2}={{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s\,\mathit{v}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{3}={{\mathit{v}_{out}}\over{\mathit{r}_{o}}} , v_{1}={{\mathit{r}_{\pi}\,\mathit{v}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , \mathit{i}_{in}={{\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)\,\mathit{v}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} \right]
NoiseSolutionInputOpened1:linsolve([v_in-v_1=r_b*i_noise,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),i_noise=i_1+i_2,-i_out=i_3+g_m*v_1,v_out=r_o*i_3],[i_out,i_1,i_2,i_3,v_1,v_in]);
[iout=−Cπ rπ s vout+vout+gm ro rπ inoiseCπ ro rπ s+ro,i1=inoiseCπ rπ s+1,i2=Cπ rπ inoise sCπ rπ s+1,i3=voutro,v1=rπ inoiseCπ rπ s+1,vin=inoise (rb (Cπ rπ s+1)+rπ)Cπ rπ s+1]\left[ \mathit{i}_{out}=-{{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s\,\mathit{v}_{out}+\mathit{v}_{out}+\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,s+\mathit{r}_{o}}} , i_{1}={{\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{2}={{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}\,s}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{3}={{\mathit{v}_{out}}\over{\mathit{r}_{o}}} , v_{1}={{\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , \mathit{v}_{in}={{\mathit{i}_{noise}\,\left(\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}\right)}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} \right]
NoiseSolutionInputShorted2:linsolve([v_noise-v_1=r_b*i_in,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),i_in=i_1+i_2,-i_out=i_3+g_m*v_1,v_out=r_o*i_3],[v_out,i_1,i_2,i_3,v_1,i_in]);
[vout=−gm ro rπ vnoise+rb (Cπ ro rπ iout s+ro iout)+ro rπ ioutrb (Cπ rπ s+1)+rπ,i1=vnoiserb (Cπ rπ s+1)+rπ,i2=Cπ rπ s vnoiserb (Cπ rπ s+1)+rπ,i3=−gm rπ vnoise+rb (Cπ rπ iout s+iout)+rπ ioutrb (Cπ rπ s+1)+rπ,v1=rπ vnoiserb (Cπ rπ s+1)+rπ,iin=(Cπ rπ s+1) vnoiserb (Cπ rπ s+1)+rπ]\left[ \mathit{v}_{out}=-{{\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,\mathit{v}_{noise}+\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,\mathit{i}_{out}\,s+\mathit{r}_{o}\,\mathit{i}_{out}\right)+\mathit{r}_{o}\,\mathit{r}_{\pi}\,\mathit{i}_{out}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{1}={{\mathit{v}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{2}={{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s\,\mathit{v}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{3}=-{{\mathit{g}_{m}\,\mathit{r}_{\pi}\,\mathit{v}_{noise}+\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,\mathit{i}_{out}\,s+\mathit{i}_{out}\right)+\mathit{r}_{\pi}\,\mathit{i}_{out}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , v_{1}={{\mathit{r}_{\pi}\,\mathit{v}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , \mathit{i}_{in}={{\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)\,\mathit{v}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} \right]
NoiseSolutionInputOpened2:linsolve([v_in-v_1=r_b*i_noise,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),i_noise=i_1+i_2,-i_out=i_3+g_m*v_1,v_out=r_o*i_3],[v_out,i_1,i_2,i_3,v_1,v_in]);
[vout=−Cπ ro rπ iout s+ro iout+gm ro rπ inoiseCπ rπ s+1,i1=inoiseCπ rπ s+1,i2=Cπ rπ inoise sCπ rπ s+1,i3=−Cπ rπ iout s+iout+gm rπ inoiseCπ rπ s+1,v1=rπ inoiseCπ rπ s+1,vin=inoise (rb (Cπ rπ s+1)+rπ)Cπ rπ s+1]\left[ \mathit{v}_{out}=-{{\mathit{C}_{\pi}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,\mathit{i}_{out}\,s+\mathit{r}_{o}\,\mathit{i}_{out}+\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{1}={{\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{2}={{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}\,s}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{3}=-{{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,\mathit{i}_{out}\,s+\mathit{i}_{out}+\mathit{g}_{m}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , v_{1}={{\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , \mathit{v}_{in}={{\mathit{i}_{noise}\,\left(\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}\right)}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} \right]
v_eq_rb:ratsimp(
    NoiseVoltage2EquivalentInputNoiseVoltage(ABCD(s),NoiseSolutionInputShorted1)
   +NoiseVoltage2EquivalentInputNoiseVoltage(ABCD(s),NoiseSolutionInputShorted2));
2 vnoise2\,\mathit{v}_{noise}
i_eq_rb:ratsimp(
    NoiseVoltage2EquivalentInputNoiseCurrent(ABCD(s),NoiseSolutionInputOpened1)
   +NoiseVoltage2EquivalentInputNoiseCurrent(ABCD(s),NoiseSolutionInputOpened2));
00

i_b Contribution (|i_noise|^2=|i_b|^2=2*q*I_B*B+K_1*I_Ba/f*B)

NoiseSolutionInputShorted1:linsolve([-v_1=r_b*i_in,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),i_in=i_1+i_2+i_noise,-i_out=i_3+g_m*v_1,v_out=r_o*i_3],[i_out,i_1,i_2,i_3,v_1,i_in]);
[iout=−rb (rπ (Cπ s vout−gm ro inoise)+vout)+rπ voutrb (Cπ ro rπ s+ro)+ro rπ,i1=−rb inoiserb (Cπ rπ s+1)+rπ,i2=−Cπ rb rπ inoise srb (Cπ rπ s+1)+rπ,i3=voutro,v1=−rb rπ inoiserb (Cπ rπ s+1)+rπ,iin=rπ inoiserb (Cπ rπ s+1)+rπ]\left[ \mathit{i}_{out}=-{{\mathit{r}_{b}\,\left(\mathit{r}_{\pi}\,\left(\mathit{C}_{\pi}\,s\,\mathit{v}_{out}-\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{i}_{noise}\right)+\mathit{v}_{out}\right)+\mathit{r}_{\pi}\,\mathit{v}_{out}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,s+\mathit{r}_{o}\right)+\mathit{r}_{o}\,\mathit{r}_{\pi}}} , i_{1}=-{{\mathit{r}_{b}\,\mathit{i}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{2}=-{{\mathit{C}_{\pi}\,\mathit{r}_{b}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}\,s}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{3}={{\mathit{v}_{out}}\over{\mathit{r}_{o}}} , v_{1}=-{{\mathit{r}_{b}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , \mathit{i}_{in}={{\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} \right]
NoiseSolutionInputShorted2:linsolve([-v_1=r_b*i_in,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),i_in=i_1+i_2+i_noise,-i_out=i_3+g_m*v_1,v_out=r_o*i_3],[v_out,i_1,i_2,i_3,v_1,i_in]);
[vout=−rb (rπ (Cπ ro iout s−gm ro inoise)+ro iout)+ro rπ ioutrb (Cπ rπ s+1)+rπ,i1=−rb inoiserb (Cπ rπ s+1)+rπ,i2=−Cπ rb rπ inoise srb (Cπ rπ s+1)+rπ,i3=−rb (rπ (Cπ iout s−gm inoise)+iout)+rπ ioutrb (Cπ rπ s+1)+rπ,v1=−rb rπ inoiserb (Cπ rπ s+1)+rπ,iin=rπ inoiserb (Cπ rπ s+1)+rπ]\left[ \mathit{v}_{out}=-{{\mathit{r}_{b}\,\left(\mathit{r}_{\pi}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{o}\,\mathit{i}_{out}\,s-\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{i}_{noise}\right)+\mathit{r}_{o}\,\mathit{i}_{out}\right)+\mathit{r}_{o}\,\mathit{r}_{\pi}\,\mathit{i}_{out}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{1}=-{{\mathit{r}_{b}\,\mathit{i}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{2}=-{{\mathit{C}_{\pi}\,\mathit{r}_{b}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}\,s}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , i_{3}=-{{\mathit{r}_{b}\,\left(\mathit{r}_{\pi}\,\left(\mathit{C}_{\pi}\,\mathit{i}_{out}\,s-\mathit{g}_{m}\,\mathit{i}_{noise}\right)+\mathit{i}_{out}\right)+\mathit{r}_{\pi}\,\mathit{i}_{out}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , v_{1}=-{{\mathit{r}_{b}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} , \mathit{i}_{in}={{\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{r}_{b}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1\right)+\mathit{r}_{\pi}}} \right]
NoiseSolutionInputOpened1:linsolve([v_in=v_1,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),0=i_1+i_2+i_noise,-i_out=i_3+g_m*v_1,v_out=r_o*i_3],[i_out,i_1,i_2,i_3,v_1,v_in]);
[iout=−rπ (Cπ s vout−gm ro inoise)+voutCπ ro rπ s+ro,i1=−inoiseCπ rπ s+1,i2=−Cπ rπ inoise sCπ rπ s+1,i3=voutro,v1=−rπ inoiseCπ rπ s+1,vin=−rπ inoiseCπ rπ s+1]\left[ \mathit{i}_{out}=-{{\mathit{r}_{\pi}\,\left(\mathit{C}_{\pi}\,s\,\mathit{v}_{out}-\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{i}_{noise}\right)+\mathit{v}_{out}}\over{\mathit{C}_{\pi}\,\mathit{r}_{o}\,\mathit{r}_{\pi}\,s+\mathit{r}_{o}}} , i_{1}=-{{\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{2}=-{{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}\,s}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{3}={{\mathit{v}_{out}}\over{\mathit{r}_{o}}} , v_{1}=-{{\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , \mathit{v}_{in}=-{{\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} \right]
NoiseSolutionInputOpened2:linsolve([v_in=v_1,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),0=i_1+i_2+i_noise,-i_out=i_3+g_m*v_1,v_out=r_o*i_3],[v_out,i_1,i_2,i_3,v_1,v_in]);
[vout=−rπ (Cπ ro iout s−gm ro inoise)+ro ioutCπ rπ s+1,i1=−inoiseCπ rπ s+1,i2=−Cπ rπ inoise sCπ rπ s+1,i3=−rπ (Cπ iout s−gm inoise)+ioutCπ rπ s+1,v1=−rπ inoiseCπ rπ s+1,vin=−rπ inoiseCπ rπ s+1]\left[ \mathit{v}_{out}=-{{\mathit{r}_{\pi}\,\left(\mathit{C}_{\pi}\,\mathit{r}_{o}\,\mathit{i}_{out}\,s-\mathit{g}_{m}\,\mathit{r}_{o}\,\mathit{i}_{noise}\right)+\mathit{r}_{o}\,\mathit{i}_{out}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{1}=-{{\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{2}=-{{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}\,s}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , i_{3}=-{{\mathit{r}_{\pi}\,\left(\mathit{C}_{\pi}\,\mathit{i}_{out}\,s-\mathit{g}_{m}\,\mathit{i}_{noise}\right)+\mathit{i}_{out}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , v_{1}=-{{\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} , \mathit{v}_{in}=-{{\mathit{r}_{\pi}\,\mathit{i}_{noise}}\over{\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,s+1}} \right]
v_eq_ib:ratsimp(
    NoiseCurrent2EquivalentInputNoiseVoltage(ABCD(s),NoiseSolutionInputShorted1)
   +NoiseCurrent2EquivalentInputNoiseVoltage(ABCD(s),NoiseSolutionInputShorted2));
−2 rb inoise-2\,\mathit{r}_{b}\,\mathit{i}_{noise}
i_eq_ib:ratsimp(
    NoiseCurrent2EquivalentInputNoiseCurrent(ABCD(s),NoiseSolutionInputOpened1)
   +NoiseCurrent2EquivalentInputNoiseCurrent(ABCD(s),NoiseSolutionInputOpened2));
−2 inoise-2\,\mathit{i}_{noise}

i_c Contribution (|i_noise|^2=|i_c|^2=2*q*I_C*B)

NoiseSolutionInputShorted1:linsolve([-v_1=r_b*i_in,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),i_in=i_1+i_2,-i_out=i_noise+i_3+g_m*v_1,v_out=r_o*i_3],[i_out,i_1,i_2,i_3,v_1,i_in]);
[iout=−vout+ro inoisero,i1=0,i2=0,i3=voutro,v1=0,iin=0]\left[ \mathit{i}_{out}=-{{\mathit{v}_{out}+\mathit{r}_{o}\,\mathit{i}_{noise}}\over{\mathit{r}_{o}}} , i_{1}=0 , i_{2}=0 , i_{3}={{\mathit{v}_{out}}\over{\mathit{r}_{o}}} , v_{1}=0 , \mathit{i}_{in}=0 \right]
NoiseSolutionInputShorted2:linsolve([-v_1=r_b*i_in,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),i_in=i_1+i_2,-i_out=i_noise+i_3+g_m*v_1,v_out=r_o*i_3],[v_out,i_1,i_2,i_3,v_1,i_in]);
[vout=−ro iout−ro inoise,i1=0,i2=0,i3=−iout−inoise,v1=0,iin=0]\left[ \mathit{v}_{out}=-\mathit{r}_{o}\,\mathit{i}_{out}-\mathit{r}_{o}\,\mathit{i}_{noise} , i_{1}=0 , i_{2}=0 , i_{3}=-\mathit{i}_{out}-\mathit{i}_{noise} , v_{1}=0 , \mathit{i}_{in}=0 \right]
NoiseSolutionInputOpened1:linsolve([v_in=v_1,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),0=i_1+i_2,-i_out=i_noise+i_3+g_m*v_1,v_out=r_o*i_3],[i_out,i_1,i_2,i_3,v_1,v_in]);
[iout=−vout+ro inoisero,i1=0,i2=0,i3=voutro,v1=0,vin=0]\left[ \mathit{i}_{out}=-{{\mathit{v}_{out}+\mathit{r}_{o}\,\mathit{i}_{noise}}\over{\mathit{r}_{o}}} , i_{1}=0 , i_{2}=0 , i_{3}={{\mathit{v}_{out}}\over{\mathit{r}_{o}}} , v_{1}=0 , \mathit{v}_{in}=0 \right]
NoiseSolutionInputOpened2:linsolve([v_in=v_1,v_1=r_pi*i_1,v_1=i_2/(s*C_pi),0=i_1+i_2,-i_out=i_noise+i_3+g_m*v_1,v_out=r_o*i_3],[v_out,i_1,i_2,i_3,v_1,v_in]);
[vout=−ro iout−ro inoise,i1=0,i2=0,i3=−iout−inoise,v1=0,vin=0]\left[ \mathit{v}_{out}=-\mathit{r}_{o}\,\mathit{i}_{out}-\mathit{r}_{o}\,\mathit{i}_{noise} , i_{1}=0 , i_{2}=0 , i_{3}=-\mathit{i}_{out}-\mathit{i}_{noise} , v_{1}=0 , \mathit{v}_{in}=0 \right]
v_eq_ic:ratsimp(
    NoiseCurrent2EquivalentInputNoiseVoltage(ABCD(s),NoiseSolutionInputShorted1)
   +NoiseCurrent2EquivalentInputNoiseVoltage(ABCD(s),NoiseSolutionInputShorted2));
2 Cπ rb rπ inoise s+(2 rπ+2 rb) inoisegm rπ{{2\,\mathit{C}_{\pi}\,\mathit{r}_{b}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}\,s+\left(2\,\mathit{r}_{\pi}+2\,\mathit{r}_{b}\right)\,\mathit{i}_{noise}}\over{\mathit{g}_{m}\,\mathit{r}_{\pi}}}
i_eq_ic:ratsimp(
    NoiseCurrent2EquivalentInputNoiseCurrent(ABCD(s),NoiseSolutionInputOpened1)
   +NoiseCurrent2EquivalentInputNoiseCurrent(ABCD(s),NoiseSolutionInputOpened2));
2 Cπ rπ inoise s+2 inoisegm rπ{{2\,\mathit{C}_{\pi}\,\mathit{r}_{\pi}\,\mathit{i}_{noise}\,s+2\,\mathit{i}_{noise}}\over{\mathit{g}_{m}\,\mathit{r}_{\pi}}}

Total Equivalent Input Noise Generators

The three sources (r_b thermal, i_b shot + 1/f, i_c shot) are uncorrelated, so the equivalent input VARIANCES add. Substitute the per-source spectral densities from the section headings before evaluating.

v_eq_total_squared:ratsimp(
    (coeff(v_eq_rb,v_noise,1)*v_noise)^2
   +(coeff(v_eq_ib,i_noise,1)*i_noise)^2
   +(coeff(v_eq_ic,i_noise,1)*i_noise)^2);
i_eq_total_squared:ratsimp(
    (coeff(i_eq_rb,v_noise,1)*v_noise)^2
   +(coeff(i_eq_ib,i_noise,1)*i_noise)^2
   +(coeff(i_eq_ic,i_noise,1)*i_noise)^2);
4 vnoise2+4 rb2 inoise24\,\mathit{v}_{noise}^2+4\,\mathit{r}_{b}^2\,\mathit{i}_{noise}^24 inoise24\,\mathit{i}_{noise}^2