RC coupled FET Amplifier Frequency Response Plot, Mid & 3dB Frequencies

(Uses Maple V): restart, solve, assign, evalc, evalf, abs, argument, log10, plots, loglogplot, fsolve
(REF: Electronic Circuits: Physical Principles, Analysis and Design, by P. Chirlian, chap.9, prob 9.2 page 555, McGraw Hill, 1971.)

We illustrate calculation of the low, mid and high 3dB frequencies of an RC coupled FET amplifier. The magnitude dB and phase angle in degrees versus frequency in Hertz are also given.

Specifically problem 9.2 on page 555 of Chirlian's book:

"Compute the magnitude of the mid-frequeny voltage gain, the upper and lower half-power frequencies, and plot the frequency response (amplitude and phase) of the amplifier given below. The FET has the following parameter values: gm=5000 umhos, rd=10,000 ohms, Cgd=1 pf, Cgs=3 pf, Cds= 3 pf. The circuit constants are RL=10,000 ohms, Cc= 0,1 uF, Rg=1M ohms. Assume that the wiring capacitance is 5 pf and that Ci= 15 pf."

Typical single stage RC-coupled FET in common source configuration,

Showing only those elements to be used in this Maple V sample calculation,

Linear model to be employed in the nodal analysis,

Here is the Maple V code,

> # FETp9_2.txt - RC coupled FET amplifier
> restart;
> eq2:=0=V2*(s*(Cc+Cin)+1/Rg)-Vd*s*Cc;
> eqd:=0=Vd*(s*(Cc+Co)+1/RL+1/rd) + gm*V1- V2*s*Cc;
> 
> solve({eq2,eqd},{V1,V2}):
> assign("):                    #assign variables to the solutions
> 
> H:=V2/V1;
> 
> omega:=2*Pi*f:
> s:=I*omega:
> H:
> Mag:=evalc(abs(H)):
> Phase:=evalc(argument(H)):
> evalf(360/(2*Pi)):
> Deg:="*Phase:
> dB:=20*log10(Mag):
> rd:=10000:
> RL:=10000:
> Rg:=1000000:
> gm:=5000*10^(-6):
> 
> #Cgd:=1*10^(-12):   #not needed
> #Cgs:=3*10^(-12):   #not needed
> #Cds:=3*10^(-12)    #included in Co
> Cc:=0.1*10^(-6):
> Co:=8*10^(-12):     #Co=Cds+wiring Capacitance =3+5=8pf
> Cin:=15*10^(-12):
> 
> with(plots):
> loglogplot(dB,f=1..100*10^6,title='Mag_in_dB');
> loglogplot(Deg,f=.1..100*10^6,90..200,title=`Phase_in_Degrees`);
> 
> f:=5000:             #mid frequency
> Mid:=evalf(dB);
> 
> f:='f':              #this line is IMPORTANT!
> 
> eq5:=24.91415248=20*log10(Mag);     #set at 3dB lower
> `f3db low`:=fsolve(eq5,f,f=1..1000);
> `f3db high`:=fsolve(eq5,f,f=10000..100*10^6);
> 

The execution result,

The Magnitude dB Plot,

The Phase degrees Plot,