diff options
Diffstat (limited to '1223')
176 files changed, 3450 insertions, 0 deletions
diff --git a/1223/CH1/EX1.1/Ex1_1.sce b/1223/CH1/EX1.1/Ex1_1.sce new file mode 100755 index 000000000..cfabe9327 --- /dev/null +++ b/1223/CH1/EX1.1/Ex1_1.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 1.1
+T=300;//((°K)temperature)
+//for silicon
+B=5.23*10^(15);//Constant (per centimeter cube degree kelvin)
+Eg=1.1;//bandgap energy in electrovolt(eV)
+k=86*10^(-6);//Boltzmann's constant(eV per degree kelvin)
+n_i=B*T^(3/2)*exp(-Eg/(2*k*T));//intrinsic carrier concentration
+printf('intrinsic carrier concentration=%f cm^-3',n_i);
diff --git a/1223/CH1/EX1.10/Ex1_10.sce b/1223/CH1/EX1.10/Ex1_10.sce new file mode 100755 index 000000000..64ecfc680 --- /dev/null +++ b/1223/CH1/EX1.10/Ex1_10.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 1.10
+V_Y=0.7;//(V)cut in voltage for pn junction
+r_f=0;
+V_PS=4;//(V)
+R1=4,R2=4//(KOhm) from given circuit
+I1=(V_PS-V_Y)/R1;
+printf('\ncurrent through pn junction diode=%.3f mA\n',I1)
+V_Y=0.3;//(V)cut in voltage for Schottky diode
+I2=(V_PS-V_Y)/R2;
+printf('\ncurrent through Schottky diode=%.3f mA\n',I2)
diff --git a/1223/CH1/EX1.11/Ex1_11.sce b/1223/CH1/EX1.11/Ex1_11.sce new file mode 100755 index 000000000..9b1de53e6 --- /dev/null +++ b/1223/CH1/EX1.11/Ex1_11.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 1.11
+V_Z=5.6;//(V)Zener diode breakdown voltage
+r_z=0;//(Ohm)Zener resistance
+I=3;//(mA)current in the diode
+V_PS=10;//(V)
+//I=(V_PS-V_Z)/R
+R=(V_PS-V_Z)/I;
+printf('\nresistance=%.3f KOhm\n',R)
diff --git a/1223/CH1/EX1.2/Ex1_2.sce b/1223/CH1/EX1.2/Ex1_2.sce new file mode 100755 index 000000000..9b5f48f55 --- /dev/null +++ b/1223/CH1/EX1.2/Ex1_2.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 1.2
+T=300;//(°K)Given Temperature
+Nd=10^16;//(cm^-3)Donor concentration
+n_i=1.5*10^10;//(cm^-3)intrinsic carrier concentration
+//since Nd>>n_i
+n_o=10^16;//(cm^-3)electron concentration
+//by using formula ::n_i^2=n_o*p_o
+p_o=(n_i)^2/Nd;//hole concentration
+printf('\nelectron concentration= %.e cm^-3',n_o);
+printf('\nhole concentration =%e cm^-3',p_o);
diff --git a/1223/CH1/EX1.3/Ex1_3.sce b/1223/CH1/EX1.3/Ex1_3.sce new file mode 100755 index 000000000..112b5f20e --- /dev/null +++ b/1223/CH1/EX1.3/Ex1_3.sce @@ -0,0 +1,11 @@ +clear;
+clc;
+//Example1.3
+T=300;//(°K)Given Temperature
+Na=10^16;//(cm^-3)Acceptor concentration in p region
+Nd=10^17;//(cm^-3)Donor concentration in n region
+n_i=1.5*10^10;//(cm^-3)intrinsic carrier concentration
+V_T=0.026;//(Volt)terminal voltage
+//built-in potential
+V_bi=V_T*log(Na*Nd/(n_i)^2);
+printf('\nthe built-in potential=%f V',V_bi)
diff --git a/1223/CH1/EX1.4/Ex1_4.sce b/1223/CH1/EX1.4/Ex1_4.sce new file mode 100755 index 000000000..05f639543 --- /dev/null +++ b/1223/CH1/EX1.4/Ex1_4.sce @@ -0,0 +1,19 @@ +clear;
+clc;
+//Example 1.4
+T=300;//(°K)Given Temperature
+Na=10^16;//(cm^-3)Acceptor concentration in p region
+Nd=10^15;//(cm^-3)Donor concentration in n region
+n_i=1.5*10^10;//(cm^-3)intrinsic carrier concentration
+C_jo=0.5;//(pF)junction capacitance at zero applied voltage
+V_T=0.026;//(Volt)terminal voltage
+//built-in potential
+V_bi=V_T*log(Na*Nd/(n_i)^2);
+disp(V_bi,"the built-in potential(V)")
+//the junction capacitance for
+V_R=1;//(V)reverse bias voltage
+Cj=C_jo*(1+V_R/V_bi)^(-1/2);
+printf('\nthe junction capacitance for V_R=1V=%f pF\n',Cj)
+V_R=5;//(V)reverse bias voltage
+Cj=C_jo*(1+V_R/V_bi)^(-1/2);
+printf('\nthe junction capacitance for V_R=5V =%f pF',Cj)
diff --git a/1223/CH1/EX1.5/Ex1_5.sce b/1223/CH1/EX1.5/Ex1_5.sce new file mode 100755 index 000000000..4f99faae1 --- /dev/null +++ b/1223/CH1/EX1.5/Ex1_5.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 1.5
+T=300;//(°K)Given Temperature
+V_T=0.026;//(Volt)terminal voltage
+Is=10^-11;//(mA)reverse bias saturation current
+n=1;//emission coefficient
+v_D=+0.7;//(V)applied voltage
+//pn junction is forward biased
+i_D=Is*(exp(v_D/V_T)-1);//diode current
+printf('\ndiode current=%f mA\n',i_D)
+v_D=-0.7;//(V)pn junction is reverse biased
+Is=10^-14//A;
+i_D=Is*(exp(v_D/V_T)-1);//diode current
+printf('\ndiode current=%e A',i_D)
diff --git a/1223/CH1/EX1.6/Ex1_6.sce b/1223/CH1/EX1.6/Ex1_6.sce new file mode 100755 index 000000000..21c8afcff --- /dev/null +++ b/1223/CH1/EX1.6/Ex1_6.sce @@ -0,0 +1,22 @@ +clear;
+clc;
+//Example 1.6
+Is=10^-13;//(A)reverse saturation current
+V_PS=5;//(V)applied voltage
+R=2;//(KOhm)Resistance in circuit
+V_T=0.026;//(Volt)terminal voltage
+//V_PS=Is*R*(exp(V_D/V_T)-1)+V_D
+//5=(10^-13)*(2000)*(exp(V_D/V_T)-1)+V_D
+//let right side of equation be x=(10^-13)*(2000)*(exp(V_D/V_T)-1)+V_D
+V_D=0.6;//(V)
+x=(10^-13)*(2000)*(exp(V_D/V_T)-1)+V_D
+//so the equation is not balanced
+V_D=0.65;//(V)
+x=(10^-13)*(2000)*(exp(V_D/V_T)-1)+V_D
+//again equation is not balanced .solution for V_D is between 0.6V and 0.65V
+V_D=0.619;//(V)
+x=(10^-13)*(2000)*(exp(V_D/V_T)-1)+V_D
+//essentially equal to the value of the left side of the equation i.e 5V
+printf('\ndiode voltage=%f V',V_D)
+I_D=(V_PS-V_D)/R;//(A)diode current
+printf('\nthe diode current=%f mA',I_D)
diff --git a/1223/CH1/EX1.7/Ex1_7.sce b/1223/CH1/EX1.7/Ex1_7.sce new file mode 100755 index 000000000..4210044e4 --- /dev/null +++ b/1223/CH1/EX1.7/Ex1_7.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 1.7
+//piecewise linear diode parameters
+V_Y=0.6;//(V)
+r_f=0.010;//(KOhm)
+V_PS=5;//(V)applied voltage
+R=2;//(KOhm)Resistance in circuit
+I_D=(V_PS-V_Y)/(R+r_f);//(A)diode current
+printf('\nthe diode current=%f mA\n',I_D)
+V_D=V_Y+I_D*r_f;//(V)diode voltage
+printf('\ndiode voltage=%f V',V_D)
diff --git a/1223/CH1/EX1.9/Ex1_9.sce b/1223/CH1/EX1.9/Ex1_9.sce new file mode 100755 index 000000000..10d352790 --- /dev/null +++ b/1223/CH1/EX1.9/Ex1_9.sce @@ -0,0 +1,24 @@ +clear;
+clc;
+//Example 1.9
+//circuit and diode parameters
+V_PS=5;//(V)
+R=5;//(KOhm)
+V_Y=0.6;//(V)
+V_T=0.026;//(Volt)terminal voltage
+v_i=0.1//*sin(wt)Volt
+//dc analysis
+I_DQ=(V_PS-V_Y)/R;
+printf('\ndc quiescent current=%f mA\n',I_DQ)
+V_O=I_DQ*R;
+printf('\ndc output voltage=%f V\n',V_O)
+//ac analysis
+V_PS=0;
+//Kirchhoff voltage law equation becomes
+//v_i=i_d*r_d+i_d*R
+r_d=V_T/I_DQ//(Ohm)small signal diode diffusion resistance
+i_d=v_i/(r_d+R);//ac diode current
+printf('\nac diode current=%fsin(wt) A\n',i_d)
+
+v_o=i_d*R;//ac output voltage
+printf('\nac output voltage=%fsin(wt) V',v_o)
diff --git a/1223/CH10/EX10.1/Ex10_1.sce b/1223/CH10/EX10.1/Ex10_1.sce new file mode 100755 index 000000000..4c174d2c6 --- /dev/null +++ b/1223/CH10/EX10.1/Ex10_1.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 10.1
+Vbe=0.6;//(V)
+b=100;
+V1=5;
+Io=200;//micro A
+Iref=Io*(1+2/b);
+printf('\nreference current=%.2f microA\n',Iref)
+Iref=Iref*0.001;//mA
+R1=(V1-Vbe)/Iref;
+printf('\nR1=%.2f KOhm\n',R1)
diff --git a/1223/CH10/EX10.10/Ex10_10.sce b/1223/CH10/EX10.10/Ex10_10.sce new file mode 100755 index 000000000..a2d2fec50 --- /dev/null +++ b/1223/CH10/EX10.10/Ex10_10.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 10.10
+Vt=0.026;
+Van=120;
+Vap=80;
+Av=-(1/Vt)/(1/Van+1/Vap);
+printf('\nsmall signal open circuit voltage gain=%.2f\n',Av)
diff --git a/1223/CH10/EX10.11/Ex10_11.sce b/1223/CH10/EX10.11/Ex10_11.sce new file mode 100755 index 000000000..444556b97 --- /dev/null +++ b/1223/CH10/EX10.11/Ex10_11.sce @@ -0,0 +1,16 @@ +clear;
+clc;
+//Example 10.11
+Van=120;
+Vap=80;
+Vt=0.026;
+Ico=0.001;
+//Rl=infinity
+Av=-(1/Vt)/(1/Van+1/Vap);
+printf('\nsmall signal open circuit voltage gain=%.2f\n',Av)
+Rl=100;
+Av1=-(1/Vt)/(1/Van+1/Vap+1/Rl);
+printf('\nsmall signal open circuit voltage gain=%.2f\n',Av1)
+Rl=10;
+Av2=-(1/Vt)/(1/Van+1/Vap+1/Rl);
+printf('\nsmall signal open circuit voltage gain=%.2f\n',Av2)
diff --git a/1223/CH10/EX10.12/Ex10_12.sce b/1223/CH10/EX10.12/Ex10_12.sce new file mode 100755 index 000000000..14e0efb72 --- /dev/null +++ b/1223/CH10/EX10.12/Ex10_12.sce @@ -0,0 +1,21 @@ +clear;
+clc;
+//Example 10.12
+//lambda=y
+yn=0.01;
+yp=0.01;
+Vtn=1;
+Kn=1;
+Iref=0.5;
+gm=2*sqrt(Kn*Iref);
+printf('\ntransconductance =%.2fmA/V\n',gm)
+go=yn*Iref;
+printf('\nsmall signal transistor conductance=%.4f mA/V\n',go)
+go2=go;
+//for Rl=infinity
+Av=-gm/(go+go2);
+printf('\nvoltage gain=%.2f \n',Av)
+Rl=100;//Kohm
+gl=0.01;
+Av=-gm/(go+gl+go2);
+printf('\nvoltage gain=%.2f \n',Av)
diff --git a/1223/CH10/EX10.2/Ex10_2.sce b/1223/CH10/EX10.2/Ex10_2.sce new file mode 100755 index 000000000..92b033d02 --- /dev/null +++ b/1223/CH10/EX10.2/Ex10_2.sce @@ -0,0 +1,22 @@ +clear;
+clc;
+//Example 10.2
+V1=5;
+V2=-5;
+R1=9.3;
+b=50;
+Vbe=0.7;
+Va=80;
+Iref=(V1-Vbe-V2)/R1;
+printf('\nreference current =%.3fmA\n',Iref)
+Io=Iref/(1+2/b);
+printf('\noutput current=%.2fmA\n',Io)
+ro=Va/Io;
+printf('\nsmall signal output resistance=%.2f KOhm\n',ro)
+//dIo=dVce2/ro
+Vce2=0.7;
+dIo=(V1-Vce2)/ro;
+printf('\nchange in load current=%.3f mA\n',dIo)
+x=dIo/Io;
+x=x*100;
+printf('\npercent change in output current=%.2f \n',x)
diff --git a/1223/CH10/EX10.4/Ex10_4.sce b/1223/CH10/EX10.4/Ex10_4.sce new file mode 100755 index 000000000..f84c1ace2 --- /dev/null +++ b/1223/CH10/EX10.4/Ex10_4.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 10.4
+Iref=1;
+Io=12*10^-3;
+V1=5;
+V2=-5;
+Vt=0.026;
+Vbe=0.7;
+R1=(V1-Vbe-V2)/Iref;
+printf('\nResistance R1 =%.2fKOhm\n',R1)
+Re=(Vt/Io)*log(Iref/Io);
+printf('\nResistance Re =%.2fKOhm\n',Re)
+Vbe=Io*Re;
+printf('\ndifference between two B-E voltages=%.2f V\n',Vbe)
diff --git a/1223/CH10/EX10.5/Ex10_5.sce b/1223/CH10/EX10.5/Ex10_5.sce new file mode 100755 index 000000000..5c135fb1d --- /dev/null +++ b/1223/CH10/EX10.5/Ex10_5.sce @@ -0,0 +1,28 @@ +clear;
+clc;
+//Example 10.5
+V1=5;
+V2=-5;
+R1=9.3;
+Re=9.580;
+Vt=0.026;
+b=100;
+Vbe=0.7;
+Va=80;
+Io=12;
+ro2=Va/Io;
+printf('\nsmall signal collector resistance=%.2f MOhm\n',ro2)
+Io=12*0.001;//mA
+gm2=Io/Vt;
+printf('\ntransconductance=%.3f mA/V\n',gm2)
+r=b*Vt/Io;
+printf('\nResistance=%.2f KOhm\n',r)
+Ro=ro2*(1+gm2*Re*r/(Re+r));
+printf('\noutput resistance=%.2f MOhm\n',Ro)
+dVc2=4;
+dIo=dVc2/Ro;
+printf('\nchange in load current=%.3f microA\n',dIo)
+Io=12;//micro A
+x=dIo/Io;
+x=x*100;
+printf('\npercent change in output current =%.4f\n',x)
diff --git a/1223/CH10/EX10.6/Ex10_6.sce b/1223/CH10/EX10.6/Ex10_6.sce new file mode 100755 index 000000000..da5f5b74a --- /dev/null +++ b/1223/CH10/EX10.6/Ex10_6.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 10.6
+V1=5;
+V2=-5;
+Vbe=0.6;
+Veb=0.6;
+Iq2=400*10^-3;//mA
+Iref=200*10^-3;//mA
+Iq1=Iref;
+Iq3=Iq1;
+Iq4=600*10^-6;
+R1=(V1-Veb-Vbe-V2)/Iref;
+printf('\nResistance R1=%.f KOhm\n',R1)
diff --git a/1223/CH10/EX10.7/Ex10_7.sce b/1223/CH10/EX10.7/Ex10_7.sce new file mode 100755 index 000000000..4e54e8eae --- /dev/null +++ b/1223/CH10/EX10.7/Ex10_7.sce @@ -0,0 +1,21 @@ +clear;
+clc;
+//Example 10.7
+//uox*Cox/2=x
+x=20*10^-6;//A/V^2
+Vtn=1;
+V1=5;
+V2=0;
+Iref=0.25*10^-3;
+Io=0.1*10^-3;
+Vgs2=1.85;
+//let y=W/L
+y2=Io/(x*(Vgs2-Vtn)^2);
+printf('\nwidth per length 2=%.2f\n',y2)
+y1=Iref/(x*(Vgs2-Vtn)^2);
+printf('\nwidth per length 1=%.2f\n',y1)
+Vgs1=Vgs2;
+Vgs3=V1-V2-Vgs1;
+printf('\nVgs3=%.2f V\n',Vgs3)
+y3=Iref/(x*(Vgs3-Vtn)^2);
+printf('\nwidth per length 3=%.2f\n',y3)
diff --git a/1223/CH10/EX10.8/Ex10_8.sce b/1223/CH10/EX10.8/Ex10_8.sce new file mode 100755 index 000000000..3e84383c5 --- /dev/null +++ b/1223/CH10/EX10.8/Ex10_8.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 10.8
+Iref=100;
+Io=Iref;
+//lambda=y
+y=0.01;
+gm=0.5*10^+3;
+ro=1/(y*Iref);
+printf('\noutput resistance=%.2f MOhm\n',ro)
+ro2=1;
+ro4=1;
+Ro=ro4+ro2*(1+gm*ro4);
+printf('\noutput resistance of cascode circuit=%.2f MOhm\n',Ro)
diff --git a/1223/CH10/EX10.9/Ex10_9.sce b/1223/CH10/EX10.9/Ex10_9.sce new file mode 100755 index 000000000..070731e28 --- /dev/null +++ b/1223/CH10/EX10.9/Ex10_9.sce @@ -0,0 +1,20 @@ +clear;
+clc;
+//Example 10.9
+Idss1=2;
+Idss2=1;
+Vp1=-1.5;
+Vp2=Vp1;
+//lambda=y
+y1=0.05;
+y2=y1;
+V2=-5;
+Vds=1.5;
+Vsmin=Vds+V2;
+printf('\nminimum value of Vs=%.2f V\n',Vsmin)
+Io=Idss2*(1+y1*Vds);
+printf('\noutput current=%.2f mA\n',Io)
+Vgs1=(1-sqrt(Io/Idss1))*Vp1;
+printf('\ngate to source voltage of Q1=%.2f V\n',Vgs1)
+V1=Vgs1+Vsmin;
+printf('\nV1=%.2f V\n',V1)
diff --git a/1223/CH11/EX11.1/Ex11_1.sce b/1223/CH11/EX11.1/Ex11_1.sce new file mode 100755 index 000000000..a460fea23 --- /dev/null +++ b/1223/CH11/EX11.1/Ex11_1.sce @@ -0,0 +1,26 @@ +clear;
+clc;
+//Example 11.1
+V1=10;
+V2=-10;
+Iq=1;
+Rc=10;
+Vbe=0.7;
+iC1=Iq/2;
+iC2=iC1;
+printf('\ncollector currents =%.2fmA\n',iC1)
+Vc1=V1-iC1*Rc;
+Vc2=Vc1;
+printf('\ncollector voltages =%.2fV\n',Vc1)
+Vcm=0;
+Ve=Vcm-Vbe;
+Vce1=Vc1-Ve;
+printf('\ncollector emitter voltage=%.2f V\n',Vce1)
+Vcm=-5;
+Ve=Vcm-Vbe;
+Vce1=Vc1-Ve;
+printf('\ncollector emitter voltage =%.2fV\n',Vce1)
+Vcm=5;
+Ve=Vcm-Vbe;
+Vce1=Vc1-Ve;
+printf('\ncollector emitter voltage=%.2f V\n',Vce1)
diff --git a/1223/CH11/EX11.10/Ex11_10.sce b/1223/CH11/EX11.10/Ex11_10.sce new file mode 100755 index 000000000..c9f6fef92 --- /dev/null +++ b/1223/CH11/EX11.10/Ex11_10.sce @@ -0,0 +1,32 @@ +clear;
+clc;
+//Example 11.10
+Kn1=0.1;
+Kn2=Kn1;
+Kn3=0.1;
+Kn4=Kn3;
+R1=30;
+Vtn=1;
+Rd=16;
+//I1=(20-Vgs4)/R1 and I1=Kn3*(Vgs4-Vtn)^2
+Vgs4=poly(0,'Vgs4')
+p=poly([-1 -17 9],'Vgs4','c')
+printf('\nroots=%.2fV\n',roots(p))
+Vgs4=2.40;
+I1=(20-Vgs4)/R1;
+printf('\nI1=%.2f mA\n',I1)
+Iq=I1;
+Id1=Iq/2;
+printf('\nId1 and Id2 =%.2fmA\n',Id1)
+Vgs1=sqrt(Id1/Kn1)+Vtn;
+printf('\nVgs1 and Vgs2 =%.2fV\n',Vgs1)
+vo1=10-Id1*Rd;
+printf('\nvo1 and vo2=%.2f V\n',vo1)
+Vds1=Vgs1-Vtn;
+printf('\nVds1=Vds2=Vds1(sat)=%.2f V\n',Vds1)
+Vcm=vo1-Vds1+Vgs1;
+printf('\nVcm max=%.2f V\n',Vcm)
+Vds4=Vgs4-Vtn;
+printf('\nVds4=%.2f V\n',Vds4)
+Vcm2=Vgs1+Vds4-10;
+printf('\nVcm min=%.2fV\n',Vcm2)
diff --git a/1223/CH11/EX11.11/Ex11_11.sce b/1223/CH11/EX11.11/Ex11_11.sce new file mode 100755 index 000000000..b0307023d --- /dev/null +++ b/1223/CH11/EX11.11/Ex11_11.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 11.11
+Kn=0.5;
+Iq=1;
+Vt=0.026;
+//transconductance of the MOSFET
+gm=2*sqrt(Kn*Iq/2);
+printf('\ntransconductance=%.3f mA/V\n',gm)
+//transconductance of the bipolar transistor
+gm=Iq/(2*Vt);
+printf('\ntransconductance=%.3f mA/V\n',gm)
diff --git a/1223/CH11/EX11.12/Ex11_12.sce b/1223/CH11/EX11.12/Ex11_12.sce new file mode 100755 index 000000000..ae72f3dfc --- /dev/null +++ b/1223/CH11/EX11.12/Ex11_12.sce @@ -0,0 +1,16 @@ +clear;
+clc;
+//Example 11.12
+Iq=0.587;
+Kn=1;
+Rd=16;
+//lambda=y
+y=0.01;
+Ro=1/(y*Iq);
+printf('\noutput resistance =%.2fKOhm\n',Ro)
+Ad=sqrt(Kn*Iq/2)*Rd;
+printf('\ndifferential mode voltage gain=%.2f \n',Ad)
+Acm=-sqrt(2*Kn*Iq)*Rd/(1+2*sqrt(2*Kn*Iq)*Ro);
+printf('\ncommon mode voltage gain=%.2f\n',Acm)
+CMRR=20*log10(-Ad/Acm);
+printf('\ncommon mode rejection ratio=%.2f dB\n',CMRR)
diff --git a/1223/CH11/EX11.13/Ex11_13.sce b/1223/CH11/EX11.13/Ex11_13.sce new file mode 100755 index 000000000..4f3123ce8 --- /dev/null +++ b/1223/CH11/EX11.13/Ex11_13.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 11.13
+Iq=0.2;
+Va=100;
+Va2=Va;
+Va4=Va;
+Rl=100;
+Vt=0.026;
+Ad=(1/Vt)/(1/Va2+1/Va4);
+printf('\nopen circuit voltage gain=%.2f\n',Ad)
+Ad=(Iq/(2*Vt))/(Iq/(2*Va2)+Iq/(2*Va4)+1/Rl);
+printf('\nvoltage gain=%.2f\n',Ad)
diff --git a/1223/CH11/EX11.15/Ex11_15.sce b/1223/CH11/EX11.15/Ex11_15.sce new file mode 100755 index 000000000..28d88be30 --- /dev/null +++ b/1223/CH11/EX11.15/Ex11_15.sce @@ -0,0 +1,20 @@ +clear;
+clc;
+//Example 11.15
+Kn=0.2;
+Idq=0.1;
+ro4=1000;//Kohm
+ro6=1000;//KOhm
+ro2=ro4;
+//lambda=y
+y=0.01;
+gm=2*sqrt(Kn*Idq);
+printf('\ntransconductance=%.3f mA/V\n',gm)
+ro=1/(y*Idq);
+printf('\noutput resistance=%.2f KOhm\n',ro)
+Ro=ro4+ro6*(1+gm*ro);
+Ro=Ro*0.001;//Mohm
+printf('\noutput resistance of the cascode active load=%.2fMohm\n',Ro)
+Ro=Ro*1000;//KOhm
+Ad=gm*ro2*Ro/(ro4+Ro);
+printf('\ndifferential mode voltage gain=%.2f\n',Ad)
diff --git a/1223/CH11/EX11.16/Ex11_16.sce b/1223/CH11/EX11.16/Ex11_16.sce new file mode 100755 index 000000000..08892dcc2 --- /dev/null +++ b/1223/CH11/EX11.16/Ex11_16.sce @@ -0,0 +1,35 @@ +clear;
+clc;
+//Example 11.16
+Iq=0.2;
+Ic1=Iq;
+Icb=1;
+R4=10;
+R3=0.2;
+b=100;
+Va=100;
+Vt=0.026;
+Ri=2*(1+b)*b*Vt/Iq;
+Ri=Ri*0.001;//MOhm
+printf('\ninput resistance=%.2f MOhm\n',Ri)
+R11=b*Vt/Iq;
+printf('\nresistance R11=%.2f KOhm\n',R11)
+Re=R11*R3/(R11+R3);
+printf('\nRe=%.2f KOhm\n',Re)
+gm11=Iq/Vt;
+printf('\ngm11=%.3f mA/V\n',gm11)
+ro11=Va/Iq;
+printf('\nro11 =%.2fKOhm\n',ro11)
+Rc11=ro11*(1+gm11*Re);
+Rc11=Rc11*0.001;//MOhm
+printf('\nRc11=%.2f MOhm\n',Rc11)
+r8=b*Vt/Icb;
+printf('\nresistance=%.2fKOhm\n',r8)
+//answer of following given in the book is wrong
+Rb8=r8+(1+b)*R4;
+Rb8=Rb8*0.001;//MOhm
+printf('\nRb8 =%.2fMOhm\n',Rb8)
+Rl7=Rc11*Rb8/(Rc11+Rb8);
+printf('\nRl7=%.2f MOhm\n',Rl7)
+Av=Iq*Rl7/(2*Vt);
+printf('\nsmall signal voltage gain=%.2f\n',Av)
diff --git a/1223/CH11/EX11.17/Ex11_17.sce b/1223/CH11/EX11.17/Ex11_17.sce new file mode 100755 index 000000000..e8c46d6c4 --- /dev/null +++ b/1223/CH11/EX11.17/Ex11_17.sce @@ -0,0 +1,16 @@ +clear;
+clc;
+//Example 11.17
+Va=100;
+R4=10;
+b=100;
+Rc11=1.26*10^3;
+r8=2.6;
+Iq=0.2;
+Rc7=Va/Iq;
+printf('\nRc7=%.2f KOhm\n',Rc7)
+Z=Rc11*Rc7/(Rc11+Rc7);
+printf('\nZ=%.2f KOhm\n',Z)
+x=(r8+Z)/(1+b);
+Ro=R4*x/(R4+x);
+printf('\noutput resistance=%.2f KOhm\n',Ro)
diff --git a/1223/CH11/EX11.19/Ex11_19.sce b/1223/CH11/EX11.19/Ex11_19.sce new file mode 100755 index 000000000..5ee9b28ba --- /dev/null +++ b/1223/CH11/EX11.19/Ex11_19.sce @@ -0,0 +1,35 @@ +clear;
+clc;
+//Example 11.19
+b=100;
+Vt=0.026;
+Rc=20;
+Ir4=0.4;
+Iq=Ir4;
+Ir6=Ir4;
+r4=b*Vt/Ir4;
+printf('\nr4=%.2f KOhm\n',r4)
+r3=b^2*Vt/Ir4;
+printf('\nr3=%.2f KOhm\n',r3)
+Ri2=r3+(1+b)*r4;
+printf('\ninput resistance=%.2f KOhm\n',Ri2)
+gm=Iq/(2*Vt);
+printf('\ntransconductance=%.3f mA/V\n',gm)
+Ad1=gm*Rc*Ri2/(2*(Rc+Ri2));
+printf('\ngain of differential amplifier stage=%.2f\n',Ad1)
+r5=b*Vt/Ir6;
+printf('\nr5 =%.2fKOhm\n',r5)
+Ir7=2;
+r6=b*Vt/Ir7;
+printf('\nr6=%.2f KOhm\n',r6)
+R6=16.5;
+R7=5;
+Ri3=r5+(1+b)*(R6+r6+(1+b)*R7);
+Ri3=Ri3*0.001;//MOhm
+printf('\nRi3=%.2f MOhm\n',Ri3)
+Rs=5;
+A2=Ir4*Rs/(2*Vt);
+printf('\nvoltage gain A2=%.2f\n',A2)
+A3=1;//vo/vo3
+Ad=Ad1*A2*A3;
+printf('\nsmall signal voltage gain=%.2f\n',Ad)
diff --git a/1223/CH11/EX11.20/Ex11_20.sce b/1223/CH11/EX11.20/Ex11_20.sce new file mode 100755 index 000000000..ee0a7f943 --- /dev/null +++ b/1223/CH11/EX11.20/Ex11_20.sce @@ -0,0 +1,16 @@ +clear;
+clc;
+//Example 11.20
+Ro=10000000;
+Co=1*10^-12;
+Rb=500;
+r=10000;
+b=100;
+f=1/(2*%pi*Ro*Co);
+f=f*0.001;//KHz
+printf('\nfrequency of the zero=%.2f KHz\n',f)
+Req=Ro*(1+Rb/r)/(1+Rb/r+2*(1+b)*Ro/r);
+printf('\nReq=%.2f Ohm\n',Req)
+f=1/(2*%pi*Req*Co);
+f=f*10^-9;//GHz
+printf('\nfrequency of the pole=%.2f GHz\n',f)
diff --git a/1223/CH11/EX11.3/Ex11_3.sce b/1223/CH11/EX11.3/Ex11_3.sce new file mode 100755 index 000000000..c17381010 --- /dev/null +++ b/1223/CH11/EX11.3/Ex11_3.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 11.3
+V1=10;
+V2=-10;
+Iq=0.8*10^-3;
+Rc=12000;
+Ro=25000;
+b=100;
+Vt=0.026;
+Ad=Iq*Rc/(4*Vt);
+printf('\ndifferential gain=%.3f\n',Ad)
+Acm=-(Iq*Rc/(2*Vt))/(1+(1+b)*Iq*Ro/(Vt*b));
+printf('\ncommon mode gain=%.3f\n',Acm)
diff --git a/1223/CH11/EX11.7/Ex11_7.sce b/1223/CH11/EX11.7/Ex11_7.sce new file mode 100755 index 000000000..7f520a16d --- /dev/null +++ b/1223/CH11/EX11.7/Ex11_7.sce @@ -0,0 +1,9 @@ +clear;
+clc;
+//Example 11.7
+Ad=92.3;
+Acm=0.237;//mod of Acm
+CMRR=Ad/Acm;
+printf('\ncommon mode rejection ratio=%.2f\n',CMRR)
+CMRRdB=20*log10(CMRR);
+printf('\nCMRR in decibels=%.2f dB\n',CMRRdB)
diff --git a/1223/CH11/EX11.8/Ex11_8.sce b/1223/CH11/EX11.8/Ex11_8.sce new file mode 100755 index 000000000..5cba74459 --- /dev/null +++ b/1223/CH11/EX11.8/Ex11_8.sce @@ -0,0 +1,11 @@ +clear;
+clc;
+//Example 11.8
+CMRRdB=90;//dB
+CMRR=3.16*10^4;
+b=100;
+Vt=0.026;
+Iq=0.8;
+Ro=(2*CMRR-1)*Vt*b/((1+b)*Iq);
+Ro=Ro*10^-3;//Mohm
+disp(Ro,"output resistance (MOhm)")
diff --git a/1223/CH11/EX11.9/Ex11_9.sce b/1223/CH11/EX11.9/Ex11_9.sce new file mode 100755 index 000000000..4deb8ba6f --- /dev/null +++ b/1223/CH11/EX11.9/Ex11_9.sce @@ -0,0 +1,22 @@ +clear;
+clc;
+//Example 11.9
+b=100;
+Vbe=0.7;
+Va=100;
+Vt=0.026;
+Iref=0.5;
+Iq=Iref;
+I1=Iq/2
+Icq=I1;
+r=b*Vt/Icq;
+printf('\nsmall signal parameter=%.2f KOhm\n',r)
+ro=Va/Icq;
+printf('\nro=%.2f KOhm\n',ro)
+Ro=Va/Iq;
+printf('\noutput resistance of Q4=%.2f KOhm\n',Ro)
+Rid=2*r;
+printf('\ndifferential mode input resistance =%.2fKOhm\n',Rid)
+Ricm=(1+b)*(Ro*ro/2)/(Ro+ro/2);
+Ricm=Ricm*0.001;//Mohm
+printf('\ncommon mode input resistance=%.2f MOhm\n',Ricm)
diff --git a/1223/CH12/EX12.1/Ex12_1.sce b/1223/CH12/EX12.1/Ex12_1.sce new file mode 100755 index 000000000..457d63894 --- /dev/null +++ b/1223/CH12/EX12.1/Ex12_1.sce @@ -0,0 +1,11 @@ +clear;
+clc;
+//Example 12.1
+A=10^5;//open loop gain
+Af=50;//closed loop gain
+b=(A/Af-1)/A;
+printf('\nfeedback transfer function=%f\n',b)
+A=-10^5;
+Af=-50;
+b=(A/Af-1)/A;
+printf('\nfeedback transfer function=%f\n',b)
diff --git a/1223/CH12/EX12.11/Ex12_11.sce b/1223/CH12/EX12.11/Ex12_11.sce new file mode 100755 index 000000000..386f757d4 --- /dev/null +++ b/1223/CH12/EX12.11/Ex12_11.sce @@ -0,0 +1,25 @@ +clear;
+clc;
+//Example 12.11
+hFE=100;//transistor parameter
+Vbe=0.7;
+Vcc=10;
+R1=55;
+R2=12;
+Re=1;
+Rc=4;
+Rl=4;
+Icq=0.983;
+Vceq=5.08;
+Vt=0.026;
+r=hFE*Vt/Icq;
+printf('\nsmall signal parameter resistance=%.2f KOhm\n',r)
+gm=Icq/Vt;
+printf('\ntransconductance=%.3f mA/V\n',gm)
+Agf=-gm*(Rc/(Rc+Rl))/(1+Re*(gm+1/r));
+printf('\ntransconductance transfer function=%.3f mA/V\n',Agf)
+//as first approximation
+Agf2=-1/Re;
+printf('\nAgf=%.2f mA/V\n',Agf2)
+Avf=Agf*Rl;
+printf('\nvoltage gain=%.2f\n',Avf)
diff --git a/1223/CH12/EX12.16/Ex12_16.sce b/1223/CH12/EX12.16/Ex12_16.sce new file mode 100755 index 000000000..067c17d40 --- /dev/null +++ b/1223/CH12/EX12.16/Ex12_16.sce @@ -0,0 +1,22 @@ +clear;
+clc;
+//Example 12.15
+//Determine the loop gain fig12.45(a)
+hFE=100;
+Vbe=0.7;
+Icq=0.492;
+r=5.28;
+gm=18.9;
+Rs=10;
+R1=51;
+R2=5.5;
+Re=0.500;
+Rc=10;
+Rf=82;
+x=r*R2/(r+R2);
+y=R1*x/(x+R1);
+t=Rs*y/(y+Rs);
+Req=t;
+printf('\nequivalent resistance=%.2f KOhm\n',t)
+T=gm*Rc*Req/(Rc+Rf+Req);
+printf('\nthe loop gain=%.2f\n',T)
diff --git a/1223/CH12/EX12.19/Ex12_19.sce b/1223/CH12/EX12.19/Ex12_19.sce new file mode 100755 index 000000000..59487c6fc --- /dev/null +++ b/1223/CH12/EX12.19/Ex12_19.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 12.19
+//T=b*100/(sqrt(1+(f/10^5)^2) angle=-3tan^-1(f/10^5)
+//stable at f180 at which phase becomes -180 degrees
+//-3*atan(f180/10^5)=-180
+f180=tand(180/3)*10^5;
+printf('\nfrequency at -180 degree=%ef Hz\n',f180)
+b=0.2;
+T=b*100/(sqrt(1+(f180/10^5)^2))^3;
+printf('\nmagnitude of the loop gain=%.2f\n',T)
+b=0.02;
+T=b*100/(sqrt(1+(f180/10^5)^2))^3;
+printf('\nmagnitude of the loop gain=%.2f\n',T)
diff --git a/1223/CH12/EX12.2/Ex12_2.sce b/1223/CH12/EX12.2/Ex12_2.sce new file mode 100755 index 000000000..b80559b2f --- /dev/null +++ b/1223/CH12/EX12.2/Ex12_2.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 12.2
+A=10^5;
+Af=50;
+b=0.019999;
+dA=10^4;
+dAf=Af*dA/(A*(1+b*A));
+printf('\ndAf=%e\n',dAf)
+//x=dAf/Af
+x=dAf/Af;
+x=x*100;
+printf('\npercent change dAf/Af=%f\n',x)
diff --git a/1223/CH12/EX12.22/Ex12_22.sce b/1223/CH12/EX12.22/Ex12_22.sce new file mode 100755 index 000000000..caab2aad9 --- /dev/null +++ b/1223/CH12/EX12.22/Ex12_22.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 12.22
+Ao=10^6;
+fPD=0.010;//KHz
+b=0.01;
+Af=Ao/(1+b*Ao);
+printf('\nlow frequency closed loop gain=%.2f\n',Af)
+fc=fPD*(1+b*Ao);
+printf('\nclosed loop 3dB frequency=%.2f KHz\n',fc)
diff --git a/1223/CH12/EX12.23/Ex12_23.sce b/1223/CH12/EX12.23/Ex12_23.sce new file mode 100755 index 000000000..740d94362 --- /dev/null +++ b/1223/CH12/EX12.23/Ex12_23.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 12.23
+A=10^3;
+Cf=30*10^-12;//feedback capacitor (F)
+R2=5*10^5;
+Cm=Cf*(1+A);
+printf('\nMiller capacitance=%e F\n',Cm)
+fp=1/(2*%pi*R2*Cm);
+printf('\ndominant pole frequency =%.2fHz\n',fp)
diff --git a/1223/CH12/EX12.3/Ex12_3.sce b/1223/CH12/EX12.3/Ex12_3.sce new file mode 100755 index 000000000..a13e4756b --- /dev/null +++ b/1223/CH12/EX12.3/Ex12_3.sce @@ -0,0 +1,11 @@ +clear;
+clc;
+//Example 12.3
+Ao=10^4;
+wh=2*%pi*100;//rad/s
+Af=50;
+//x=(1+bAo)
+x=Ao/Af;
+printf('\n(1+bAo)=%f\n',x)
+wfh=wh*x;
+printf('\nclosed loop bandwidth=%f\n',wfh)
diff --git a/1223/CH12/EX12.5/Ex12_5.sce b/1223/CH12/EX12.5/Ex12_5.sce new file mode 100755 index 000000000..8456b3ea8 --- /dev/null +++ b/1223/CH12/EX12.5/Ex12_5.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 12.5
+Av=10^5;
+Avf=50;
+Rf=10;//Kohm
+Ro=20000;//Ohm
+//x=(1+bvAv)
+x=Av/Avf;
+printf('\n(1+bvAv)=%.e\n',x)
+Rif=Rf*x;
+Rif=Rif*0.001;//MOhm
+printf('\ninput resistance=%.2f MOhm\n',Rif)
+Rof=Ro/x;
+printf('\noutput resistance=%.2f Ohm\n',Rof)
diff --git a/1223/CH12/EX12.6/Ex12_6.sce b/1223/CH12/EX12.6/Ex12_6.sce new file mode 100755 index 000000000..d491874a1 --- /dev/null +++ b/1223/CH12/EX12.6/Ex12_6.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 12.6
+Af=10^5;
+Aif=50;
+Rf=10000;
+Ro=20;
+//x=(1+biAi)
+x=Af/Aif;
+printf('\n(1+biAi)=%.e\n',x)
+Rif=Rf/x;
+printf('\ninput resistance =%.2fOhm\n',Rif)
+Rof=Ro*x;
+Rof=Rof*0.001;//Mohm
+printf('\noutput resistance=%.2f MOhm\n',Rof)
diff --git a/1223/CH12/EX12.7/Ex12_7.sce b/1223/CH12/EX12.7/Ex12_7.sce new file mode 100755 index 000000000..6edce62f2 --- /dev/null +++ b/1223/CH12/EX12.7/Ex12_7.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 12.7
+Ri=50;
+R1=10;
+R2=90;
+Av=10^4;
+bv=1/(1+R2/R1);
+printf('\nfeedback transfer function=%.2f\n',bv)
+Rif=Ri*(1+bv*Av);
+Rif=Rif*0.001;//Mohm
+printf('\ninput resistance=%.2f MOhm\n',Rif)
diff --git a/1223/CH13/EX13.1/Ex13_1.sce b/1223/CH13/EX13.1/Ex13_1.sce new file mode 100755 index 000000000..4f0909959 --- /dev/null +++ b/1223/CH13/EX13.1/Ex13_1.sce @@ -0,0 +1,20 @@ +clear;
+clc;
+//Example 13.1
+V1=15;//positive supply voltage
+V2=-15;//negative supply voltage
+Veb12=0.6;
+Vbe11=0.6;
+Rs=40;
+Iref=(V1-V2-Veb12-Vbe11)/Rs;
+printf('\nreference current=%.2f mA\n',Iref)
+Ic10=19;
+Ic1=Ic10/2;
+printf('\nIc1=Ic2=Ic3=Ic4= %.3fmicroA\n',Ic1)
+Ic1=Ic1*0.001;//mA
+Vbe7=0.6;
+Vbe6=0.6;
+Ic6=Ic1;
+R2=1;
+Vc6=Vbe7+Vbe6+Ic6*R2+V2;
+printf('\nvoltage at collector of Q6=%.2f V\n',Vc6)
diff --git a/1223/CH13/EX13.10/Ex13_10.sce b/1223/CH13/EX13.10/Ex13_10.sce new file mode 100755 index 000000000..03750db9b --- /dev/null +++ b/1223/CH13/EX13.10/Ex13_10.sce @@ -0,0 +1,29 @@ +clear;
+clc;
+//Example 13.10
+Iref=100;
+Kn=80;
+Kp=40;
+//W/L=x
+x=25;
+//lambda=y
+y=0.02;
+Id=Iref/2;
+gm1=2*sqrt(Kp*x*Id/2);
+printf('\ntransconductance gm1=gm8=%.3f microA/V\n',gm1)
+gm6=2*sqrt(Kn*x*Id/2);
+printf('\ntransconductance=%.3f microA/V\n',gm6)
+ro1=1/(y*Id);
+ro8=ro1;
+ro6=ro1;
+ro10=ro1;
+printf('\noutput resistance ro1=ro8=ro6=ro10=%.3f MOhm\n',ro1)
+Id4=Iref;
+ro4=1/(y*Id4);
+printf('\nro4=%.3f MOhm\n',ro4)
+Ro8=gm1*ro8*ro10;
+printf('\ncomposite output resistances =%.2f MOhm\n',Ro8)
+Ro6=gm6*ro6*ro4*ro1/(ro4+ro1);
+printf('\ncomposite output resistances=%.2f MOhm\n',Ro6)
+Ad=gm1*Ro6*Ro8/(Ro6+Ro8);
+printf('\ndifferential voltage gain=%.2f\n',Ad)
diff --git a/1223/CH13/EX13.12/Ex13_12.sce b/1223/CH13/EX13.12/Ex13_12.sce new file mode 100755 index 000000000..448cd70ce --- /dev/null +++ b/1223/CH13/EX13.12/Ex13_12.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 13.12
+Kp=0.6;
+bn=200;
+Va=50;
+Vt=0.026;
+Ic13=0.20;
+Ri2=bn*Vt/Ic13;
+printf('\ninput resistance to the gain stage=%.2f KOhm\n',Ri2)
+Iq5=Ic13;
+Ad=sqrt(2*Kp*Iq5)*Ri2;
+printf('\nsmall signal voltage gain=%.2f\n',Ad)
diff --git a/1223/CH13/EX13.13/Ex13_13.sce b/1223/CH13/EX13.13/Ex13_13.sce new file mode 100755 index 000000000..d3f138c8b --- /dev/null +++ b/1223/CH13/EX13.13/Ex13_13.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 13.13
+Va=150;
+Vt=0.026;
+Ic13=0.2;
+gm13=Ic13/Vt;
+printf('\ntransconductance=%.2f mA/V\n',gm13)
+ro13=Va/Ic13;
+printf('\noutput resistance=%.2f KOhm\n',ro13)
+Av2=gm13*ro13;
+printf('\nvoltage gain=%.2f \n',Av2)
diff --git a/1223/CH13/EX13.14/Ex13_14.sce b/1223/CH13/EX13.14/Ex13_14.sce new file mode 100755 index 000000000..4054325ef --- /dev/null +++ b/1223/CH13/EX13.14/Ex13_14.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 13.14
+Av2=5768;
+C1=12;
+Ci=C1*(1+Av2);
+printf('\neffective input capacitance=%.2f pF\n',Ci)
+Ri2=26000;//gain stage input resistance (Ohm)
+Ci=Ci*10^-12;//F
+fPD=1/(2*%pi*Ri2*Ci);
+printf('\ndominant pole frequency=%.f Hz\n',fPD)
+Av=73254;
+fT=fPD*Av;
+fT=fT*10^-6;//MHz
+printf('\nunity gain bandwidth=%.2f MHz\n',fT)
diff --git a/1223/CH13/EX13.2/Ex13_2.sce b/1223/CH13/EX13.2/Ex13_2.sce new file mode 100755 index 000000000..8beede8e4 --- /dev/null +++ b/1223/CH13/EX13.2/Ex13_2.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 13.2
+Iref=0.72;
+Ic17=0.75*Iref;
+printf('\ncollector currents in Q17=%.2f mA\n',Ic17)
+b=200;
+Ib17=Ic17/b;
+Ie17=Ic17;
+R8=0.100;
+Vbe17=0.6;
+R9=50;
+Ic16=Ib17+(Ie17*R8+Vbe17)/R9;
+Ic16=Ic16*1000;
+printf('\ncollector current in Q16=%.2f microA\n',Ic16)
diff --git a/1223/CH13/EX13.3/Ex13_3.sce b/1223/CH13/EX13.3/Ex13_3.sce new file mode 100755 index 000000000..18704e15f --- /dev/null +++ b/1223/CH13/EX13.3/Ex13_3.sce @@ -0,0 +1,34 @@ +clear;
+clc;
+//Example 13.3
+Is1=10^-14;//reverse saturation currents for Q18 Q19
+Is2=3*10^-14;//reverse saturation currents for Q14 Q20
+Iref=0.72;
+Vt=0.026;
+Ic13a=0.25*Iref;
+printf('\nIc13a=%.2f mA\n',Ic13a)
+Vbe19=0.6;
+R10=50;
+Ir1o=Vbe19/R10;
+printf('\ncurrent in Ro=%.3f mA\n',Ir1o)
+Ic19=Ic13a-Ir1o;
+printf('\ncurrent in Q19 =%.3fmA\n',Ic19)
+Ic19=Ic19*0.001;//A
+Vbe19=Vt*log(Ic19/Is1);
+printf('\nB-E voltage of Q19=%.2f V\n',Vbe19)
+b=200;
+Ic19=Ic19*10^6;//micro A
+Iv19=Ic19*1000;
+Ib18=Ic19/b;
+Ir1o=Ir1o*1000;
+printf('\nbase current in Q18=%.3f microA\n',Ib18)
+Ic18=Ir1o+Ib18;
+printf('\ncurrents in Q18=%.3f microA\n',Ic18)
+Ic18=Ic18*10^-6;
+Vbe18=Vt*log(Ic18/Is1);
+printf('\nB-E voltage of Q18=%.2f V\n',Vbe18)
+Vbb=Vbe18+Vbe19;
+printf('\nvoltage difference Vbb=%.2f V\n',Vbb)
+Ic14=Is2*exp(Vbb/(2*Vt));
+Ic14=Ic14*10^6;//micro A
+printf('\nquiescent currents in Q14 and Q20 =%.fmicroA\n',Ic14)
diff --git a/1223/CH13/EX13.4/Ex13_4.sce b/1223/CH13/EX13.4/Ex13_4.sce new file mode 100755 index 000000000..510409d3b --- /dev/null +++ b/1223/CH13/EX13.4/Ex13_4.sce @@ -0,0 +1,40 @@ +clear;
+clc;
+//Example 13.4
+b=200;
+Va=50
+Vt=0.026;
+R2=1;
+Ic6=0.0095;
+Ic4=Ic6;
+Ic16=0.0158;
+Ic17=0.54;
+r17=b*Vt/Ic17;
+printf('\ninput resistance to gain stage=%.2f KOhm\n',r17)
+R9=50;
+R8=0.100;
+x=r17+(1+b)*R8;
+Re=x*R9/(x+R9);
+printf('\nRe=%.3f KOhm\n',Re)
+r16=b*Vt/Ic16;
+printf('\nr16=%.2f KOhm\n',r16)
+Ri2=r16+(1+b)*Re;
+Ri2=Ri2*0.001;//MOhm
+printf('\nRi2=%.2f KOhm\n',Ri2)
+r6=b*Vt/Ic6;
+printf('\nresistance of the active load=%.2f KOhm\n',r6)
+gm=Ic6/Vt;
+printf('\ntransconductance =%.3fmA/V\n',gm)
+ro6=Va/Ic6;
+ro6=ro6*0.001;//MOhm
+printf('\nro6=%.2f MOhm\n',ro6)
+R=ro6*(1+gm*R2*r6/(R2+r6));
+printf('\neffective resistance of active load=%.2f MOhm\n',R)
+ro4=Va/Ic4;
+ro4=ro4*0.001;//Mohm
+printf('\nResistance ro4=%.2f KOhm\n',ro4)
+Icq=9.5;
+x=Ri2*R/(R+Ri2);
+y=ro4*x/(ro4+x);
+Ad=-y*Icq/Vt;
+printf('\nsmall signal differential voltage gain=%.2f\n',Ad)
diff --git a/1223/CH13/EX13.5/Ex13_5.sce b/1223/CH13/EX13.5/Ex13_5.sce new file mode 100755 index 000000000..d22f66062 --- /dev/null +++ b/1223/CH13/EX13.5/Ex13_5.sce @@ -0,0 +1,36 @@ +clear;
+clc;
+//Example 13.5
+bp=50;
+bn=200;
+Va=50;
+R9=50;
+R8=0.100;
+Rl=2;
+Vt=0.026;
+Ri2=4070;
+Ic20=0.138;
+r20=bp*Vt/Ic20;
+printf('\nr20=%.2f KOhm\n',r20)
+R20=r20+(1+bp)*Rl;
+printf('\nR20=%.2f KOhm\n',R20)
+Ic13A=0.18;
+R19=Va/Ic13A;
+printf('\nR19=%.2f KOhm\n',R19)
+r22=bp*Vt/Ic13A;
+printf('\nr22=%.2f KOhm\n',r22)
+Ri3=r22+(1+bp)*R19*R20/(R19+R20);
+Ri3=Ri3*0.001;//MOhm
+printf('\ninput resistance to the output stage=%.2f MOhm\n',Ri3)
+Ic13B=0.54;
+R=Va/Ic13B;
+printf('\neffective resistance of the active load=%.2f KOhm\n',R)
+Ic17=Ic13B;
+R17=Va/Ic17;
+printf('\noutput resistance Ro17 =%.2fKOhm\n',R17)
+Ri3=Ri3*1000;//KOhm
+r17=9.63;
+x=R17*Ri3/(Ri3+R17);
+y=x*R/(R+x);
+A=-bn*R9*(1+bn)*y/(Ri2*(R9+r17+(1+bn)*R8));
+printf('\nsmall signal voltage gain=%.2f\n',A)
diff --git a/1223/CH13/EX13.6/Ex13_6.sce b/1223/CH13/EX13.6/Ex13_6.sce new file mode 100755 index 000000000..4e64f889d --- /dev/null +++ b/1223/CH13/EX13.6/Ex13_6.sce @@ -0,0 +1,27 @@ +clear;
+clc;
+//Example 13.6
+Ic20=2;
+bn=200;
+bp=50;
+Va=50;
+r17=9.63;
+r22=7.22;
+R20=0.260;
+gm17=20.8;
+ro17=92.6;
+Ro13B=92.6;
+R8=0.100;
+Rc17=ro17*(1+gm17*R8*r17/(R8+r17));
+printf('\nRc17=%.2f KOhm\n',Rc17)
+Rc22=(r22+Rc17*Ro13B/(Rc17+Ro13B))/(1+bp);
+printf('\nRc22=%.2f KOhm\n',Rc22)
+Ic13A=0.18;
+Rc19=Va/Ic13A;
+printf('\nRc19=%.2f KOhm\n',Rc19)
+Rc20=(R20+Rc22*Rc19/(Rc22+Rc19))/(1+bp);
+printf('\nRc20=%.5f KOhm\n',Rc20)
+Rc20=Rc20*1000;//Ohm
+R3=22;
+Ro=R3+Rc20;
+printf('\noutput resistance=%.2f Ohm\n',Ro)
diff --git a/1223/CH13/EX13.7/Ex13_7.sce b/1223/CH13/EX13.7/Ex13_7.sce new file mode 100755 index 000000000..1b2b8f574 --- /dev/null +++ b/1223/CH13/EX13.7/Ex13_7.sce @@ -0,0 +1,18 @@ +clear;
+clc;
+//Example 13.7
+Av2=285;
+C1=30;
+Ci=C1*(1+Av2);
+printf('\ninput capacitance=%.2f pF\n',Ci)
+Ri2=4.07;
+Ract=7.18;
+ro4=5.26;
+Ro1=Ract*ro4/(Ract+ro4);
+printf('\ngate stage input resistance=%.2fMOhm \n',Ro1)
+Req=Ro1*Ri2/(Ri2+Ro1);
+printf('\nequivalent resistance=%.2f MOhm\n',Req)
+Req=Req*10^6;//Ohm
+Ci=Ci*10^-12;//F
+fPD=1/(2*%pi*Req*Ci);
+printf('\ndominant pole frequency =%.2fHz\n',fPD)
diff --git a/1223/CH13/EX13.9/Ex13_9.sce b/1223/CH13/EX13.9/Ex13_9.sce new file mode 100755 index 000000000..aa02379e8 --- /dev/null +++ b/1223/CH13/EX13.9/Ex13_9.sce @@ -0,0 +1,33 @@ +clear;
+clc;
+//Example 13.9
+//lambda=y
+y=0.02;
+//W/L=x and u*Cox/2=t
+x=12.5;
+t=10;
+Kp1=x*t;
+printf('\nconduction parameters of M1 and M2=%.fmicroA/V^2\n',Kp1)
+Kp1=Kp1*0.001;//mA/V^2
+Id=0.0199;
+ro2=1/(y*Id);
+ro2=ro2*0.001;//Mohm
+printf('\noutput resistance=%.2f MOhm\n',ro2)
+Iq=0.0397;
+ro2=ro2*1000;//Kohm
+ro4=ro2;
+Ad=sqrt(2*Kp1*Iq)*ro2*ro4/(ro2+ro4);
+printf('\nthe gain of input stage=%.2f \n',Ad)
+Kn7=0.250;
+Id7=Iq;
+gm7=2*sqrt(Kn7*Id7)
+printf('\ntransconductance of M7=%.2f mA/V\n',gm7)
+ro7=1/(y*Id7);
+ro7=ro7*0.001;
+printf('\noutput resistance of M7 and M8 =%.2fMOhm\n',ro7)
+ro7=ro7*1000;//Kohm
+ro8=ro7;
+Av2=gm7*ro7*ro8/(ro7+ro8);
+printf('\ngain of the second stage=%.2f\n',Av2)
+Av=Ad*Av2;
+printf('\noverall voltage gain=%.2f\n',Av)
diff --git a/1223/CH14/EX14.10/Ex14_10.sce b/1223/CH14/EX14.10/Ex14_10.sce new file mode 100755 index 000000000..91a971f84 --- /dev/null +++ b/1223/CH14/EX14.10/Ex14_10.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 14.10
+Kn1=105;
+Kn2=100;
+Iq=200;
+dKn=Kn1-Kn2;
+printf('\ndifference in conduction parameter=%.2f microA/V^2\n',dKn)
+Kn=(Kn1+Kn2)/2;
+printf('\naverage of the conduction parameter=%.2f microA/V^2\n',Kn)
+Vos=sqrt(Iq/(2*Kn))*dKn/(2*Kn);
+printf('\noffset voltage=%f V\n',Vos)
diff --git a/1223/CH14/EX14.11/Ex14_11.sce b/1223/CH14/EX14.11/Ex14_11.sce new file mode 100755 index 000000000..54353ea70 --- /dev/null +++ b/1223/CH14/EX14.11/Ex14_11.sce @@ -0,0 +1,11 @@ +clear;
+clc;
+//Example 14.11
+Rs=100;
+R4=100000;
+R3=100000;
+V1=15;
+V2=-15;
+Vy=Rs*V1/(Rs+R4);
+Vy=Vy*1000;//mV
+printf('\nVoltage Vy =%.2fmV\n',Vy)
diff --git a/1223/CH14/EX14.13/Ex14_13.sce b/1223/CH14/EX14.13/Ex14_13.sce new file mode 100755 index 000000000..220b7582f --- /dev/null +++ b/1223/CH14/EX14.13/Ex14_13.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 14.13
+R1=10;
+R2=100;
+Ib1=1.1*10^-3;
+Ib2=1*10^-3;
+vo=Ib1*R2;
+printf('\noutput voltage =%.2fV\n',vo)
+R3=R1*R2/(R1+R2);
+printf('\nR3=%.2f KOhm\n',R3)
+vo=R2*(Ib1-Ib2);
+printf('\noutput voltage=%.2f V\n',vo)
diff --git a/1223/CH14/EX14.2/Ex14_2.sce b/1223/CH14/EX14.2/Ex14_2.sce new file mode 100755 index 000000000..dec5a58f0 --- /dev/null +++ b/1223/CH14/EX14.2/Ex14_2.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 14.2
+R2=10000;
+Ri=10000;
+Aol=10^5;
+Rif=1/(1/Ri+(1+Aol)/R2);
+printf('\nclosed loop input resistance =%.2fOhm\n',Rif)
diff --git a/1223/CH14/EX14.3/Ex14_3.sce b/1223/CH14/EX14.3/Ex14_3.sce new file mode 100755 index 000000000..021e2b1ad --- /dev/null +++ b/1223/CH14/EX14.3/Ex14_3.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 14.3
+Aol=10^5;
+Ri=10;
+R1=10;
+R2=R1;
+Rif=(Ri*(1+Aol)+R2*(1+Ri/R1))/(1+R2/R1);
+Rif=Rif*0.001;//Mohm
+printf('\ninput resistance =%.fMOhm\n',Rif)
diff --git a/1223/CH14/EX14.5/Ex14_5.sce b/1223/CH14/EX14.5/Ex14_5.sce new file mode 100755 index 000000000..e511c7aed --- /dev/null +++ b/1223/CH14/EX14.5/Ex14_5.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 14.5
+Ao=2*10^5;
+fPD=5;
+fT=fPD*Ao;
+printf('\nunity gain bandwidth=%.e Hz\n',fT)
+f3dB=20*10^3;
+Acl=fT/f3dB;
+printf('\nclosed loop gain=%.2f\n',Acl)
diff --git a/1223/CH14/EX14.6/Ex14_6.sce b/1223/CH14/EX14.6/Ex14_6.sce new file mode 100755 index 000000000..214a11fb9 --- /dev/null +++ b/1223/CH14/EX14.6/Ex14_6.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 14.6
+Iq=19*10^-6;
+C1=30*10^-12;
+SR=Iq/C1;
+SR=SR*10^-6;
+printf('\nslew rate=%.2f V/micros\n',SR)
diff --git a/1223/CH14/EX14.7/Ex14_7.sce b/1223/CH14/EX14.7/Ex14_7.sce new file mode 100755 index 000000000..89046db36 --- /dev/null +++ b/1223/CH14/EX14.7/Ex14_7.sce @@ -0,0 +1,11 @@ +clear;
+clc;
+//Example 14.7
+fT=1000;//KHz
+Aclo=10;
+SR=1*10^3;
+Vpo=10;
+f3dB=fT/Aclo;
+printf('\nsmall signal closed loop bandwidth=%.2f KHz\n',f3dB)
+fmax=SR/(2*%pi*Vpo);
+printf('\nfull power bandwidth=%.2f KHz\n',fmax)
diff --git a/1223/CH14/EX14.8/Ex14_8.sce b/1223/CH14/EX14.8/Ex14_8.sce new file mode 100755 index 000000000..e20b3d9cc --- /dev/null +++ b/1223/CH14/EX14.8/Ex14_8.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 14.8
+Is1=10^-14;
+Is2=1.05*10^-14;
+Vt=0.026;
+Vos=Vt*log(Is2/Is1);
+printf('\nthe offset voltage =%fV\n',Vos)
diff --git a/1223/CH15/EX15.10/Ex15_10.sce b/1223/CH15/EX15.10/Ex15_10.sce new file mode 100755 index 000000000..b7b428546 --- /dev/null +++ b/1223/CH15/EX15.10/Ex15_10.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 15.10
+C=15*10^-9;
+T=100*10^-6;//(s) time
+R=T/(1.1*C);
+R=R*0.001;//Kohm
+printf('\nResistance R=%.2f KOhm\n',R)
diff --git a/1223/CH15/EX15.13/Ex15_13.sce b/1223/CH15/EX15.13/Ex15_13.sce new file mode 100755 index 000000000..207a5f139 --- /dev/null +++ b/1223/CH15/EX15.13/Ex15_13.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 15.13
+Rl=10;//load resistance
+Pl=20;//power delivered to the load
+Ps=20;//(W)
+Vp=sqrt(2*Rl*Pl);
+printf('\npeak output voltage=%.2f V\n',Vp)
+Ip=Vp/Rl;
+printf('\npeak load current =%.2fA\n',Ip)
+Vs=%pi*Rl*Ps/Vp;
+printf('\nrequired supply voltage=%.2f V\n',Vs)
diff --git a/1223/CH15/EX15.14/Ex15_14.sce b/1223/CH15/EX15.14/Ex15_14.sce new file mode 100755 index 000000000..8d31e99fa --- /dev/null +++ b/1223/CH15/EX15.14/Ex15_14.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 15.14
+Vonl=5;
+Vofl=4.96;
+I1=0.005;
+I2=1.5;
+dVo=Vonl-Vofl;
+dIo=I1-I2;
+Rvf=-dVo/dIo;
+printf('\noutput resistance=%f Ohm\n',Rvf)
+LR=100*(Vonl-Vofl)/Vonl;
+printf('\nload regulation =%.2f\n',LR)
diff --git a/1223/CH15/EX15.15/Ex15_15.sce b/1223/CH15/EX15.15/Ex15_15.sce new file mode 100755 index 000000000..4a6ea02a8 --- /dev/null +++ b/1223/CH15/EX15.15/Ex15_15.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 15.15
+Aol=1000;
+Vref=5;
+Vo=10;
+Io=0.1*0.001;
+Vt=0.026;
+Rof=2*Vt*Vo/(Io*Vref*Aol);
+printf('\noutput resistance=%.2f mOhm\n',Rof)
+//dVo/Vo=V and dIo/Io=I
+//V=-I*2*Vt/(Vref*Aol)
+//V/I=x
+x=-2*Vt/(Vref*Aol);
+printf('\npercent change=%.2e\n',x)
diff --git a/1223/CH15/EX15.16/Ex15_16.sce b/1223/CH15/EX15.16/Ex15_16.sce new file mode 100755 index 000000000..8a87694aa --- /dev/null +++ b/1223/CH15/EX15.16/Ex15_16.sce @@ -0,0 +1,17 @@ +clear;
+clc;
+//Example 15.16
+Vz=6.3;
+Vbe=0.6;
+Veb=0.6;
+Vo=8;
+R1=3.9;
+R2=3.4;
+R3=0.576;
+Ic3=(Vz-3*Vbe)/(R1+R2+R3);
+printf('\nbias current =%.3f mA\n',Ic3)
+Vb7=Ic3*R1+2*Vbe;
+printf('\ntemperature compensated reference voltage=%.2f V\n',Vb7)
+R13=2.23;
+R12=R13*Vo/Vb7-R13;
+printf('\nR12=%.2f KOhm\n',R12)
diff --git a/1223/CH15/EX15.2/Ex15_2.sce b/1223/CH15/EX15.2/Ex15_2.sce new file mode 100755 index 000000000..792c3da8f --- /dev/null +++ b/1223/CH15/EX15.2/Ex15_2.sce @@ -0,0 +1,7 @@ +clear;
+clc;
+//Example 15.2
+C=20*10^-6;
+Req=1000;
+fC=1/(C*Req);
+printf('\nclock frequency =%.2fKHz\n',fC)
diff --git a/1223/CH15/EX15.3/Ex15_3.sce b/1223/CH15/EX15.3/Ex15_3.sce new file mode 100755 index 000000000..43e3c2fe5 --- /dev/null +++ b/1223/CH15/EX15.3/Ex15_3.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 15.3
+fC=10000;
+f3dB=1000;
+//x=C2/C1
+x=2*%pi*f3dB/fC;
+printf('\ncapacitances C2/C1=%.3f \n',x)
diff --git a/1223/CH15/EX15.4/Ex15_4.sce b/1223/CH15/EX15.4/Ex15_4.sce new file mode 100755 index 000000000..79e7e4dc8 --- /dev/null +++ b/1223/CH15/EX15.4/Ex15_4.sce @@ -0,0 +1,11 @@ +clear;
+clc;
+//Example 15.4
+C=0.1*10^-6;
+R=1000;
+fo=1/(2*%pi*R*C*sqrt(3));
+printf('\nthe oscillation frequency =%.2fHz\n',fo)
+//minimum amplifier gain=8
+R=1;//KOhm
+R2=8*R;
+printf('\nR2=%.f KOhm\n',R2)
diff --git a/1223/CH15/EX15.6/Ex15_6.sce b/1223/CH15/EX15.6/Ex15_6.sce new file mode 100755 index 000000000..831272d8c --- /dev/null +++ b/1223/CH15/EX15.6/Ex15_6.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 15.6
+R1=10000;
+R2=90000;
+Vh=10;
+Vl=-10;
+Vth=R1*Vh/(R1+R2);
+printf('\nupper crossover voltage=%.f V\n',Vth)
+Vtl=R1*Vl/(R1+R2);
+printf('\nlower crossover voltage=%.f V\n',Vtl)
+x=Vth-Vtl;
+printf('\nhysteresis width =%.fV\n',x)
diff --git a/1223/CH15/EX15.7/Ex15_7.sce b/1223/CH15/EX15.7/Ex15_7.sce new file mode 100755 index 000000000..56fe1f3e2 --- /dev/null +++ b/1223/CH15/EX15.7/Ex15_7.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 15.7
+Vs=2;
+Vh=15;
+Vl=-15;
+//hysteresis width=x
+x=60*0.001;//(V)
+//Vth-Vtl=(R1/(R1+R2))*(Vh-Vl)
+//R2/R=y
+y=(Vh-Vl)/x-1;
+printf('\nR2/R1=%.2f \n',y)
+Vref=(1+1/y)*Vs;
+printf('\nreference voltage=%.4f V\n',Vref)
diff --git a/1223/CH16/EX16.10/Ex16_10.sce b/1223/CH16/EX16.10/Ex16_10.sce new file mode 100755 index 000000000..09dda081d --- /dev/null +++ b/1223/CH16/EX16.10/Ex16_10.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 16.10
+Cl=2*10^-6;
+Vdd=5;
+f=100000;
+P=f*Cl*Vdd^2;
+printf('\npower dissipation in the CMOS inverter=%.3f microW\n',P)
diff --git a/1223/CH16/EX16.11/Ex16_11.sce b/1223/CH16/EX16.11/Ex16_11.sce new file mode 100755 index 000000000..1c5069df5 --- /dev/null +++ b/1223/CH16/EX16.11/Ex16_11.sce @@ -0,0 +1,19 @@ +clear;
+clc;
+//Example 16.11
+Vtn=1;
+Vtp=-1;
+Vdd=5;
+Vth=1;
+Vil=Vtn+3*(Vdd+Vtp-Vth)/8;
+printf('\ninput voltage at the transition points Vil=%.3f V\n',Vil)
+Vih=Vtn+5*(Vdd+Vtp-Vtn)/8;
+printf('\ninput voltage at the transition points Vih=%.3fV\n',Vih)
+Vohu=1*(2*Vil+Vdd-Vtn-Vtp)/2;
+printf('\noutput voltage =%.3f V\n',Vohu)
+Volu=1*(2*Vih-Vdd-Vtn-Vtp)/2;
+printf('\noutput voltage =%.2f V\n',Volu)
+NML=Vil-Volu;
+printf('\nnoise margin =%.3f V\n',NML)
+NMH=Vohu-Vih;
+printf('\nnoise margin=%.3f V\n',NML)
diff --git a/1223/CH16/EX16.15/Ex16_15.sce b/1223/CH16/EX16.15/Ex16_15.sce new file mode 100755 index 000000000..1e00bfea2 --- /dev/null +++ b/1223/CH16/EX16.15/Ex16_15.sce @@ -0,0 +1,33 @@ +clear;
+clc;
+//Example 16.15
+Vdd=3;
+Kn=60;
+Vtnd=0.5;
+//W/L=x
+xd=2;
+Vtnl=-1;
+xl=0.5;
+R=2;//(MOhm)
+Vgsl=0;
+//solution with Depletion load
+iD=Kn*xl*(Vgsl-Vtnl)^2/2;
+printf('\nfrain currents in M1 and M3 =%.fmicroA\n',iD)
+P=iD*Vdd;
+printf('\npower dissipation in the circuit=%.f microW\n',P)
+//iD=Kn/2*x*(2*Vgsd-Vtnd)Vdsd-Vdsd^2
+Q=poly(0,'Q');
+p=poly([0.25 -5 1],'Q','c');
+roots(p)
+disp("Q=50.5 (mV)")
+//solution with Resistor load
+//(Vdd-Q)/R=Kn/2*xd*(2*Vgsd-Vtnd)Q-Q^2
+Q=poly(0,'Q');
+p=poly([3 -599 120],'Q','c');
+roots(p)
+Q=0.005;
+disp("Q=5 (mV)")
+iD=(Vdd-Q)/R;
+printf('\ndrain current =%.2f microA\n',iD)
+P=iD*Vdd;
+printf('\npower dissipation in the circuit =%.2f microW\n',P)
diff --git a/1223/CH16/EX16.3/Ex16_3.sce b/1223/CH16/EX16.3/Ex16_3.sce new file mode 100755 index 000000000..50b71dcdb --- /dev/null +++ b/1223/CH16/EX16.3/Ex16_3.sce @@ -0,0 +1,21 @@ +clear;
+clc;
+//Example 16.3
+Vdd=5;
+Vtnd=0.8;
+Vtnl=0.8;
+Kn=35;
+Vo=0.1;
+Vi=4.2;
+//W/L=Y
+yl=0.5;
+//Kd/Kl=x
+x=(Vdd-Vo-Vtnl)^2/(2*Vo*(Vi-Vtnd)-Vo^2);
+printf('\nKd/Kl=%.2f\n',x)
+//Kd/Kl=yd/yl
+yd=12.6
+yl=0.5
+iD=Kn*yl*(Vdd-Vo-Vtnl)^2/2;
+printf('\ndrain current =%.2f microA\n',iD)
+P=iD*Vdd;
+printf('\npower dissipation=%.2f microW\n',P)
diff --git a/1223/CH16/EX16.4/Ex16_4.sce b/1223/CH16/EX16.4/Ex16_4.sce new file mode 100755 index 000000000..56536105b --- /dev/null +++ b/1223/CH16/EX16.4/Ex16_4.sce @@ -0,0 +1,21 @@ +clear;
+clc;
+//Example 16.4
+Vdd=5;
+Vtnd=0.8;
+Vtnl=-2;
+Kn=35;
+Vo=0.1;
+Vi=5;
+//W/L=Y
+yl=0.5;
+//Kd/Kl=x
+x=(-Vtnl)^2/(2*Vo*(Vi-Vtnd)-Vo^2);
+printf('\nKd/Kl=%.2f\n',x)
+//Kd/Kl=yd/yl
+yd=2.41
+yl=0.5
+iD=Kn*yl*(-Vtnl)^2/2;
+printf('\ndrain current=%.2f microA\n',iD)
+P=iD*Vdd;
+printf('\npower dissipation =%.2f microW\n',P)
diff --git a/1223/CH16/EX16.5/Ex16_5.sce b/1223/CH16/EX16.5/Ex16_5.sce new file mode 100755 index 000000000..d7983b006 --- /dev/null +++ b/1223/CH16/EX16.5/Ex16_5.sce @@ -0,0 +1,20 @@ +clear;
+clc;
+//Example 16.5
+Voh=4.2;
+Vol=0.1;
+//x=Kd/Kl
+x=25.1;
+Vdd=5;
+Vtnl=0.8;
+Vohu=4.2;
+Vil=0.8;
+Vtnd=0.8;
+Vih=Vtnd+(Vdd-Vtnl)/x*((1+2*x)/sqrt(1+3*x)-1);
+printf('\nVih=%.2f V\n',Vih)
+Volu=(Vdd-Vtnl+x*(Vih-Vtnd))/(1+2*x);
+printf('\noutput voltage corresponding to Vih=%.3f V\n',Volu)
+NMl=Vil-Volu;
+printf('\nnoise margin=%0.3f V\n',NMl)
+NMh=Vohu-Vih;
+printf('\nnoise margin=%.3f V\n',NMh)
diff --git a/1223/CH16/EX16.9/Ex16_9.sce b/1223/CH16/EX16.9/Ex16_9.sce new file mode 100755 index 000000000..ae3ae84d1 --- /dev/null +++ b/1223/CH16/EX16.9/Ex16_9.sce @@ -0,0 +1,25 @@ +clear;
+clc;
+//Example 16.9
+Vdd=5;
+Vtn=1;
+Vtp=-1;
+//Kn=Kp hence Kn/Kp=x=1;
+x=1;
+Vit=(Vdd+Vtp+sqrt(x)*Vtn)/(1+sqrt(x));
+printf('\ninput voltage=%.2f V\n',Vit)
+Vipt=Vit;
+Vopt=Vipt-Vtp;
+printf('\noutput voltage at the transition point for PMOS =%.2fV\n',Vopt)
+Vint=Vit;
+Vont=Vint-Vtn;
+printf('\noutput voltage at the transition point for NMOS=%.2f V\n',Vont)
+Vdd=10;
+Vit=(Vdd+Vtp+sqrt(x)*Vtn)/(1+sqrt(x));
+printf('\ninput voltage =%.2fV\n',Vit)
+Vipt=Vit;
+Vint=Vit;
+Vopt=Vipt-Vtp;
+printf('\noutput voltage at the transition point for PMOS =%.2fV\n',Vopt)
+Vont=Vint-Vtn;
+printf('\noutput voltage at the transition point for NMOS =%.2fV\n',Vont)
diff --git a/1223/CH17/EX17.1/Ex17_1.sce b/1223/CH17/EX17.1/Ex17_1.sce new file mode 100755 index 000000000..3e70629d4 --- /dev/null +++ b/1223/CH17/EX17.1/Ex17_1.sce @@ -0,0 +1,34 @@ +clear;
+clc;
+//Example 17.1
+V1=5;
+V2=-5;
+Rc1=1;
+Rc2=Rc1;
+Rc=Rc1;
+Re=2.150;
+v2=0;
+//for v1=0
+vE=-0.7;
+iE=(vE-V2)/Re;
+printf('\nemitter current=%.3f mA\n',iE)
+iC=1;
+Vcc=5;
+vo1=Vcc-iC*Rc;
+printf('\nvo1=vo2=%.f V\n',vo1)
+//for v2=-1
+vE=-0.7;
+iE=2;
+iC2=2;
+vo1=5;
+vo2=Vcc-iC2*Rc;
+printf('\nvo2=%.2f V\n',vo2)
+v1=1;
+Vbe=0.7;
+vE=v1-Vbe;
+iE=(vE-V2)/Re;
+printf('\nemitter current =%.3fmA\n',iE)
+iC1=iE;
+vo1=Vcc-iC1*Rc;
+printf('\nvo1=%.2f V\n',vo1)
+vo2=Vcc
diff --git a/1223/CH17/EX17.11/Ex17_11.sce b/1223/CH17/EX17.11/Ex17_11.sce new file mode 100755 index 000000000..118bab3cd --- /dev/null +++ b/1223/CH17/EX17.11/Ex17_11.sce @@ -0,0 +1,19 @@ +clear;
+clc;
+//Example 17.11
+b=25;
+iB=1;
+iC=2;
+ic=(iB+iC)/(1+1/b);
+printf('\ninternal collector current=%.3f mA\n',ic)
+ib=ic/b;
+printf('\ninternal base current =%.3fmA\n',ib)
+iD=iB-ib;
+printf('\nSchottky diode current=%.3f mA\n',iD)
+iC=20;
+ic=(iB+iC)/(1+1/b);
+printf('\ninternal collector current=%.3f mA\n',ic)
+ib=ic/b;
+printf('\ninternal base current =%.3fmA\n',ib)
+iD=iB-ib;
+printf('\nSchottky diode current=%.3f mA\n',iD)
diff --git a/1223/CH17/EX17.12/Ex17_12.sce b/1223/CH17/EX17.12/Ex17_12.sce new file mode 100755 index 000000000..639c54aa0 --- /dev/null +++ b/1223/CH17/EX17.12/Ex17_12.sce @@ -0,0 +1,30 @@ +clear;
+clc;
+//Example 17.12
+Vy=0.3;
+Vbe=0.7;
+vx=0.4;
+R2=8;
+Vce=0.4;
+Vcc=5;
+b=25;
+Vce=0.4;
+Vbe1=0.7;
+Vbe2=0.7;
+Vcc=5;
+R1=20;
+v1=Vce+Vy;
+i1=(Vcc-v1)/R1;
+printf('\ni1=%.3f mA\n',i1)
+Pl=i1*(Vcc-vx);
+printf('\npower dissipation=%.3f mW\n',Pl)
+v1=Vbe1+Vbe2;
+printf('\nv1=%.3f V\n',v1)
+vC2=Vbe1+Vce;
+printf('\nvoltage vC2 =%.2fV\n',vC2)
+i1=(Vcc-v1)/R1;
+printf('\ncurrent i1 =%.3fmA\n',i1)
+i2=(Vcc-vC2)/R2;
+printf('\ncurrent i2 =%.3fmA\n',i2)
+P=(i1+i2)*Vcc;
+printf('\npower dissipation for high input condition=%.3f mW\n',P)
diff --git a/1223/CH17/EX17.2/Ex17_2.sce b/1223/CH17/EX17.2/Ex17_2.sce new file mode 100755 index 000000000..1eff07861 --- /dev/null +++ b/1223/CH17/EX17.2/Ex17_2.sce @@ -0,0 +1,29 @@ +clear;
+clc;
+//Example 17.2
+Vx=-0.7;
+Vy=Vx;
+Vbe=0.7;
+V2=-5.2;
+Re=1.180;
+vE=Vx-Vbe;
+printf('\nemitter voltage =%.2fV\n',vE)
+iE=(vE-V2)/Re;
+printf('\nemitter current=%.2f mA\n',iE)
+Icxy=iE;
+vo1=-0.7;
+Rc1=-vo1/Icxy;
+printf('\nRc1=%.2f KOhm\n',Rc1)
+Vnor=vo1-Vbe;
+printf('\nNOR output logic 0 value=%.2f V\n',Vnor)
+Vr=(vo1+Vnor)/2;
+vE=Vr-Vbe;
+printf('\nvE=%.2f V\n',vE)
+iE=(vE-V2)/Re;
+printf('\niE=%.2f mA\n',iE)
+vo2=-0.7;
+iC2=iE;
+Rc2=-vo2/iC2;
+printf('\nRc2=%.2f KOhm\n',Rc2)
+Vor=vo2-Vbe;
+printf('\nOR logic 0 value is=%.2f V\n',Vor)
diff --git a/1223/CH17/EX17.3/Ex17_3.sce b/1223/CH17/EX17.3/Ex17_3.sce new file mode 100755 index 000000000..ddc4569d6 --- /dev/null +++ b/1223/CH17/EX17.3/Ex17_3.sce @@ -0,0 +1,19 @@ +clear;
+clc;
+//Example 17.3
+Vr=-1.05;
+Vbe=0.7;
+Vb5=Vr+Vbe;
+printf('\nVb5 =%.2fV\n',Vb5)
+R1=0.250;
+i1=-Vb5/R1;
+printf('\ni1=%.3f mA\n',i1)
+Vy=0.7;
+V2=-5.2;
+//let R1+R2=x
+x=(-2*Vy-V2)/i1;
+R2=x-R1;
+printf('\nR2=%.3f KOhm\n',R2)
+iS=i1;
+Rs=(Vr-V2)/iS;
+printf('\nRs=%.3f KOhm\n',Rs)
diff --git a/1223/CH17/EX17.4/Ex17_4.sce b/1223/CH17/EX17.4/Ex17_4.sce new file mode 100755 index 000000000..9d1110fa6 --- /dev/null +++ b/1223/CH17/EX17.4/Ex17_4.sce @@ -0,0 +1,20 @@ +clear;
+clc;
+//Example 17.4
+Vx=-0.7;
+Vy=-0.7;
+iCxy=3.22;//(mA)
+iCR=0;
+i5=1.40;
+i1=1.40;
+Vor=-0.7;
+R4=1.500;
+Vnor=-1.4;
+V2=-5.2;
+R3=1.500;
+i3=(Vor-V2)/R3;
+printf('\ncurrent i3=%.2f mA\n',i3)
+i4=(Vnor-V2)/R4;
+printf('\ncurrent i4 =%.2fmA\',i4)
+P=(iCxy+iCR+i5+i1+i3+i4)*(0-V2);
+printf('\npower dissipation=%.2f mW\n',P)
diff --git a/1223/CH17/EX17.5/Ex17_5.sce b/1223/CH17/EX17.5/Ex17_5.sce new file mode 100755 index 000000000..39249b4bc --- /dev/null +++ b/1223/CH17/EX17.5/Ex17_5.sce @@ -0,0 +1,20 @@ +clear;
+clc;
+//Example 17.5
+b=50;
+V2=-5.2;
+Vbe=0.7;
+Rc2=0.240;
+Vor=-0.75;
+Re=1.180;
+iE=(Vor-Vbe-V2)/Re;
+printf('\nemitter current=%.2f mA\n',iE)
+iB=iE/(1+b);
+iB=iB*1000;//micro A
+printf('\ninput base current=%.2f microA\n',iB)
+R3=1.500;
+i3=(Vor-V2)/R3;
+printf('\ni3=%.2f mA\n',i3)
+iB=iB*0.001;//mA
+N=(-(Vor+Vbe)*(1+b)/(Rc2)-i3)/iB;
+printf('\nN=%.f\n',N)
diff --git a/1223/CH17/EX17.7/Ex17_7.sce b/1223/CH17/EX17.7/Ex17_7.sce new file mode 100755 index 000000000..9bc85a6e9 --- /dev/null +++ b/1223/CH17/EX17.7/Ex17_7.sce @@ -0,0 +1,24 @@ +clear;
+clc;
+//Example 17.7
+Vcc=1.7;
+Re=0.008;//mohm
+Rc=0.008;//mohm
+Vy=0.4;
+Vbe=0.7;
+Vor=Vcc//logic 1
+Vor=Vcc-Vy//logic 0
+Vr=1.5;
+iE=(Vr-Vbe)/Re;
+printf('\nemitter current=%.2f microA\n',iE)
+iR=Vy/Rc;
+printf('\nmaximum current in Rc =%.2fmicroA\n',iR)
+iD=iE-iR;
+printf('\ncurrent through the diode=%.2f microA\n',iD)
+P=iE*Vcc;
+printf('\npower dissipation=%.2f microW\n',P)
+Vv=1.7;
+iE=(Vv-Vbe)/Re;
+printf('\niE =%.2fmicroA\n',iE)
+P=iE*Vcc;
+printf('\npower dissipation =%.2fmicroW\n',P)
diff --git a/1223/CH17/EX17.9/Ex17_9.sce b/1223/CH17/EX17.9/Ex17_9.sce new file mode 100755 index 000000000..0b0efceb3 --- /dev/null +++ b/1223/CH17/EX17.9/Ex17_9.sce @@ -0,0 +1,40 @@ +clear;
+clc;
+//Example 17.9
+bf=25;
+b=bf;
+br=0.1;
+Vcc=5;
+R1=4;
+Vbc=0.7;
+Vy=0.1;
+Vx=0.1;
+R2=1.6;
+Vbe=0.8;
+Rc=4;
+Vce=0.1;
+vB2=Vx+Vce;
+printf('\nvB2=%.2f V\n',vB2)
+vB1=Vx+Vbe;
+printf('\nbase voltage=%.2f V\n',vB1)
+i1=(Vcc-vB1)/R1;
+printf('\ncurrent i1=%.2f mA\n',i1)
+vB1=Vbe+Vbe+Vbc;
+printf('\nvB1=%.2f V\n',vB1)
+vC2=Vbe+Vce;
+printf('\ncollector voltage=%.2f V\n',vC2)
+i1=(Vcc-vB1)/R1;
+printf('\ncurrent i1 =%.2fmA\n',i1)
+iB2=(1+2*br)*i1;
+printf('\niB2=%.2f mA\n',iB2)
+i2=(Vcc-vC2)/R2;
+printf('\ni2 =%.2fmA\n',i2)
+iE2=i2+iB2;
+printf('\niE2=%.2f mA\n',iE2)
+Rb=1;
+i4=Vbe/Rb;
+printf('\ncurrent in the pull down resistor=%.2f mA\n',i4)
+iBo=iE2-i4;
+printf('\nbase drive to the output transistor=%.2f mA\n',iBo)
+i1=(Vcc-Vce)/Rc;
+printf('\ni1=%.2f mA\n',i1)
diff --git a/1223/CH2/EX2.1/Ex2_1.sce b/1223/CH2/EX2.1/Ex2_1.sce new file mode 100755 index 000000000..bd03cad4a --- /dev/null +++ b/1223/CH2/EX2.1/Ex2_1.sce @@ -0,0 +1,29 @@ +clear;
+clc;
+//Example 2.1
+v_I=120;//(V)rms primary input
+v_o=9;//(V)peak output voltage
+V_Y=0.7;//(V)diode cut in voltage
+//for center-tapped transformer circuit in fig.2.6(a)
+v_S=v_o+V_Y//(V)peak value of secondary voltage
+printf('\npeak value of secondary voltage=%.2f V\n',v_S)
+v_S_rms=v_S/sqrt(2)//for a sinusoidal signal rms value of v_S
+printf('\nrms value of v_S=%.2f V\n',v_S_rms)
+//let turns ratio of the primary to secondary winding be x=N1/N2
+x=v_I/v_S_rms;
+printf('\nturns ratio=%f \n',x)
+//for the bridge circuit in fig.2.7(a)
+v_Sb=v_o+2*V_Y;//(V)peak value of secondary voltage
+printf('\npeak value of secondary voltage=%.2f V\n',v_Sb)
+v_S_rms=v_Sb/sqrt(2);//for a sinusoidal signal rms value of v_S
+printf('\nrms value of v_S=%f V\n',v_S_rms)
+//let turns ratio of the primary to secondary winding be x=N1/N2
+x=v_I/v_S_rms;
+printf('\nturns ratio=%f\n',x)
+//for center tapped rectifier
+PIV=2*v_S-V_Y;
+printf('\npeak inverse voltage of a diode=%f V\n',PIV)
+//for the bridge rectifier peak inverse voltage of a diode
+PIV=v_Sb-V_Y;
+printf('\npeak inverse voltage of a diode=%.2f V\n',PIV)
+//advantage of bridge rectifier over center tapped rectifier is it requies only half of the turns
diff --git a/1223/CH2/EX2.10/Ex2_10.sce b/1223/CH2/EX2.10/Ex2_10.sce new file mode 100755 index 000000000..404ea6417 --- /dev/null +++ b/1223/CH2/EX2.10/Ex2_10.sce @@ -0,0 +1,9 @@ +clear;
+clc;
+//Example 2.10
+n=1;//quantum efficiency
+A=10^-2;//cm^2 junction area
+p=5*10^17;//(cm^-2-s^-1) incident photon flux
+e=1.6*10^-16;//charge of an electron
+Iph=n*e*p*A;
+printf('\nphotocurrent=%0.1f mA\n',Iph)
diff --git a/1223/CH2/EX2.11/Ex2_11.sce b/1223/CH2/EX2.11/Ex2_11.sce new file mode 100755 index 000000000..c556e510f --- /dev/null +++ b/1223/CH2/EX2.11/Ex2_11.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 2.11
+I=0.01;//(A) diode current
+V_Y=1.7;//(V) forward bias voltage drop
+Vt=0.2;//(V)
+R=(5-V_Y-Vt)/I;
+printf('\nresistance=%0.1f Ohm',R)
diff --git a/1223/CH2/EX2.2/Ex2_2.sce b/1223/CH2/EX2.2/Ex2_2.sce new file mode 100755 index 000000000..48c645877 --- /dev/null +++ b/1223/CH2/EX2.2/Ex2_2.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 2.2
+//full wave rectifier circuit with 60Hz input signal
+V_M=10;//(V)peak output voltage
+R=0.01;//(MOhm)output load resistance
+f=60;//Hz
+V_r=0.2;//(V)ripple voltage
+C=V_M/(2*f*R*V_r);//capacitance
+printf('\ncapacitance=%f microF\n',C)
diff --git a/1223/CH2/EX2.3/Ex2_3.sce b/1223/CH2/EX2.3/Ex2_3.sce new file mode 100755 index 000000000..342a761b5 --- /dev/null +++ b/1223/CH2/EX2.3/Ex2_3.sce @@ -0,0 +1,29 @@ +clear;
+clc;
+//Example 2.3
+V_O=12;//(V)peak output voltage
+I_L=0.12;//(A)current delivered to the load
+R=V_O/I_L;
+printf('\neffective load resistance=%.2f Ohm\n',R)
+V_Y=0.7;//(V)diode cut in voltage
+v_S=V_O+2*V_Y;
+printf('\npeak value of v_S=%.2f V\n',v_S)
+v_Srms=v_S/sqrt(2);
+printf('\nrms voltage=%.2f V\n',v_Srms)
+//let x=N1/N2
+Vin=120;//(V)input line voltage
+x=Vin/v_Srms;
+printf('\nturns ratio=%.2f \n',x)
+VM=12;//(V)
+Vr=5/100*VM;
+printf('\nripple voltage=%.2f V\n',Vr)
+f=60;//(Hz) input frequency
+C=VM/(2*R*Vr*f);
+printf('\nfilter capacitance=%f F\n',C)
+i_Dmax=(VM/R)*(1+2*%pi*sqrt(VM/(2*Vr)));
+printf('\npeak diode current=%.2f A\n',i_Dmax)
+R=0.1;//Kohm
+i_Davg=(1/(2*%pi))*sqrt(2*Vr/VM)*((VM/R)*(1+%pi*sqrt(VM/(2*Vr))));
+printf('\naverage diode current=%f mA\n',i_Davg)
+PIV=v_S-V_Y;
+printf('\npeak inverse voltage=%.2f V\n',PIV)
diff --git a/1223/CH2/EX2.5/Ex2_5.sce b/1223/CH2/EX2.5/Ex2_5.sce new file mode 100755 index 000000000..de67161f5 --- /dev/null +++ b/1223/CH2/EX2.5/Ex2_5.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 2.5
+rZ=4;//(Ohm) Zener resistance
+V_Lnom=9;//(V) nominal output voltage
+Izmax=0.3;//(A) maximum zener diode current
+Izmin=0.03;//(A) minimum zener diode current
+V_Lmax=V_Lnom+Izmax*rZ
+V_Lmin=V_Lnom+Izmin*rZ
+//percent regulation R
+R=((V_Lmax-V_Lmin)/V_Lnom)*100;
+printf('\npercent regulation=%0.1f \n',R)
diff --git a/1223/CH2/EX2.8/Ex2_8.sce b/1223/CH2/EX2.8/Ex2_8.sce new file mode 100755 index 000000000..2b432da18 --- /dev/null +++ b/1223/CH2/EX2.8/Ex2_8.sce @@ -0,0 +1,29 @@ +clear;
+clc;
+//Example 2.8
+R1=5;R2=10;//(KOhm)
+V_Y=0.7;//(V)diode cut in voltage
+V1=5;V2=-5;//(V)
+vt=0;//(V)
+//asssuming initially diode D1 is off
+//iR1=iD2=iR2=V1-V2-V_Y/(R1+R2)
+iD2=(V1-V2-V_Y)/(R1+R2);
+printf('\ndiode current=%0.2f mA\n',iD2)
+iR1=iD2;
+vo=V1-iR1*R1;
+printf('\noutput voltage=%0.2f V\n',vo)
+v=vo-V_Y;//v=v'
+printf('\nVoltage=%0.1f V\n',v)
+vt=4;//(V)fig.2.33
+//both D1 and D2 are on
+vo==vt;
+vo=4;
+iD2=(V1-vo)/R1;
+printf('\ndiode current=%.2f mA\n',iD2)
+iR1==iD2;
+v=vo-V_Y;
+printf('\nV=%.2f V\n',v)
+iR2=(v-V2)/R2;
+printf('\niR2=%.2f mA\n',iR2)
+iD1=iR2-iD2;
+printf('\ncurrent through D1=%.2f mA\n',iD1)
diff --git a/1223/CH3/EX3.1/Ex3_1.sce b/1223/CH3/EX3.1/Ex3_1.sce new file mode 100755 index 000000000..658b6fdee --- /dev/null +++ b/1223/CH3/EX3.1/Ex3_1.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 3.1
+//let beta be "b"
+b=150;//common emitter current gain
+iB=15*10^-3;//(mA) base current
+//assume transistor biased in forward active mode
+iC=b*iB;
+printf('\ncollector current=%.2f mA\n',iC)
+iE=(1+b)*iB;
+printf('\nemitter current=%.2f mA\n',iE)
+a=b/(1+b);
+printf('\ncommon base current gain=%.3f\n',a)
diff --git a/1223/CH3/EX3.10/Ex3_10.sce b/1223/CH3/EX3.10/Ex3_10.sce new file mode 100755 index 000000000..60fb57b4d --- /dev/null +++ b/1223/CH3/EX3.10/Ex3_10.sce @@ -0,0 +1,23 @@ +clear;
+clc;
+//Example 3.10
+Rb=0.24;
+Vcc=12;
+Vbe=0.7;
+Vce=0.1;
+b=75;
+Rc=5;//Ohm
+//for Vt=0 ,transistor is cut off,Ib=Ic=0,Vo=Vcc=12 V,power dissipation is zero
+Vt=12;//(V)
+Ib=(Vt-Vbe)/Rb;
+printf('\nbase current=%0.3f mA\n',Ib)
+Ic=(Vcc-Vce)/Rc;
+printf('\ncollector current=%0.2f A\n',Ic)
+Ib=0.0471;//A
+x=Ic/Ib
+//since Ic/Ib<b transistor is in saturation
+//Vo==Vcc;
+Vo=0.1;
+printf('\noutput voltage=%0.2f V\n',Vo)
+P=Ic*Vce+Ib*Vbe;
+printf('\npower dissipation=%0.3f W\n',P)
diff --git a/1223/CH3/EX3.13/Ex3_13.sce b/1223/CH3/EX3.13/Ex3_13.sce new file mode 100755 index 000000000..bfabe4bc1 --- /dev/null +++ b/1223/CH3/EX3.13/Ex3_13.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 3.13
+b=100;
+Vcc=12;
+Vbe=0.7;
+Icq=1;//mA
+Vceq=6;
+Rc=(Vcc-Vceq)/Icq;
+printf('\ncollector resistance=%.3f KOhms\n',Rc)
+Ibq=Icq/b;
+printf('\nbase current=%0.3f mA\n',Ibq)
+Rb=(Vcc-Vbe)/Ibq;
+printf('\nbase resistance=%.3f KOhms\n',Rb)
diff --git a/1223/CH3/EX3.14/Ex3_14.sce b/1223/CH3/EX3.14/Ex3_14.sce new file mode 100755 index 000000000..2d681a7bf --- /dev/null +++ b/1223/CH3/EX3.14/Ex3_14.sce @@ -0,0 +1,36 @@ +clear;
+clc;
+//Example 3.14
+R1=56;
+R2=12.2;
+Rc=2;
+Re=.4;
+Vcc=10;
+Vbe=0.7;
+b=100;
+//fig.3.53(b)
+Rth=R2*R1/(R1+R2);
+printf('\nThevenin rquivalent resistance=%0.1f KOhm\n',Rth)
+Vth=(R2/(R1+R2))*Vcc;
+printf('\nThevenin equivalent voltage=%0.2f V\n',Vth)
+Ibq=(Vth-Vbe)/(Rth+(1+b)*Re);
+printf('\nbase current=%f mA\n',Ibq)
+Icq=b*Ibq;
+printf('\ncollector current=%.3f mA\n',Icq)
+Ieq=(1+b)*Ibq;
+printf('\nemitter current=%.2f mA\n',Ieq)
+Vceq=Vcc-Icq*Rc-Ieq*Re;
+printf('\ncollector emitter voltage=%.3f V\n',Vceq)
+b=[50,100,150]
+for x=b
+Ibq=(Vth-Vbe)/(Rth+(1+x)*Re);
+disp("Ibeq,Iceq,Ieq,Vceq")
+disp(Ibq)
+Icq=x*Ibq;
+disp(Icq)
+Ieq=(1+x)*Ibq;
+disp(Ieq)
+Vceq=Vcc-Icq*Rc-Ieq*Re;
+disp(Vceq)
+disp("")
+end
diff --git a/1223/CH3/EX3.15/Ex3_15.sce b/1223/CH3/EX3.15/Ex3_15.sce new file mode 100755 index 000000000..f7c717c85 --- /dev/null +++ b/1223/CH3/EX3.15/Ex3_15.sce @@ -0,0 +1,27 @@ +clear;
+clc;
+//Example 3.15
+Vcc=5;
+Rc=1;//KOhm
+Vbe=0.7;
+b=120;
+Vceq=3;
+Re=.510;
+Icq=(Vcc-Vceq)/(Rc+Re);
+printf('\ncollector current=%.3f mA\n',Icq)
+Ibq=Icq/b;
+printf('\nbase current=%0.3f mA\n',Ibq)
+//for bias stable circuit
+Rth=0.1*(1+b)*Re;
+printf('\nThevenin rquivalent resistance=%.1f KOhm\n',Rth)
+//Ibq=(Vth-Vbe)/(Rth+(1+b)*Re)
+Vth=Ibq*(Rth+(1+b)*Re)+Vbe;
+printf('\nThevenin equivalent voltage=%.2f V\n',Vth)
+//Vth=(R2/(R1+R2))*Vcc
+//let x=(R2/(R1+R2))
+x=Vth/Vcc
+//Rth=6050=R1*x
+R1=6.05/x;
+printf('\nR1=%.1f KOhms\n',R1)
+R2=x*R1/(1-x);
+printf('\nR2=%.1f KOhms\',R2)
diff --git a/1223/CH3/EX3.16/Ex3_16.sce b/1223/CH3/EX3.16/Ex3_16.sce new file mode 100755 index 000000000..f7e48b8b0 --- /dev/null +++ b/1223/CH3/EX3.16/Ex3_16.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 3.16
+R1=10;
+b=50;
+Vbe=0.7;
+V1=-5;
+I1=-(V1+Vbe)/R1;
+printf('\nreference current=%.3f mA\n',I1)
+Iq=I1/(1+2/b);
+printf('\nbias current=%.3f mA\n',Iq)
+//Ib=Ib1=Ib2
+Ib=Iq/b;
+printf('\nbase current=%f mA\n',Ib)
diff --git a/1223/CH3/EX3.17/Ex3_17.sce b/1223/CH3/EX3.17/Ex3_17.sce new file mode 100755 index 000000000..4fc49d656 --- /dev/null +++ b/1223/CH3/EX3.17/Ex3_17.sce @@ -0,0 +1,48 @@ +clear;
+clc;
+//Example 3.17
+Vbe=0.7;
+Vcc=10;
+V2=5;
+b=100;
+R1=100;
+R2=50;
+Re1=2;
+Rth=R2*R1/(R1+R2);
+printf('\nThevenin rquivalent resistance=%.1f KOhm\n',Rth)
+Vth=(R2/(R1+R2))*Vcc-V2;
+printf('\nThevenin equivalent voltage=%.2f V\n',Vth)
+//Vth=Ib1*Rth+Vbe+Ie1*Re1-5 and Ie1=(1+b)*Ib1
+Ib1=(Vth+5-Vbe)/(Rth+(1+b)*Re1);
+printf('\nIb1=%.3f mA\n',Ib1)
+Ic1=b*Ib1;
+printf('\nIc1=%.3f mA\n',Ic1)
+Ie1=(1+b)*Ib1;
+printf('\nIe1=%.3f mA\n',Ie1)
+//summing the currents at the collector of Q1,Ir1+Ib2=Ic1
+//(5-Vc1)/Rc1+Ib2=Ic1
+//also Ib2=Ie2/(1+b)=(5-(Vc1+0.7))/(1+b)*Re2
+Rc1=5;
+Re1=2;
+Re2=2;
+Rc2=1.5;
+Vc1=Rc1*(1+b)*Re2*((5/Rc1)+(4.3/((1+b)*Re2))-Ic1)/(((1+b)*Re2)+Rc1);
+printf('\nVc1=%.2f V\n',Vc1)
+Ir1=(5-Vc1)/Rc1;
+printf('\nIr1=%.3f mA\n',Ir1)
+Ve2=Vc1+Vbe;
+printf('\nVe2=%.2f V\n',Ve2)
+Ie2=(5-Ve2)/Re1;
+printf('\nIe2=%.3f mA\n',Ie2)
+Ic2=Ie2*b/(1+b);
+printf('\nIc2=%.3f mA\n',Ic2)
+Ib2=Ie2/(1+b);
+printf('\nIb2=%f mA\n',Ib2)
+Ve1=Ie1*Re1-5;
+printf('\nVe1=%.2f V\n',Ve1)
+Vc2=Ic2*Rc2-5;
+printf('\nVc2=%.2f V\n',Vc2)
+Vce1=Vc1-Ve1;
+printf('\nVce1=%.2f V\n',Vce1)
+Vec2=Ve2-Vc2;
+printf('\nVec2=%.2f V\n',Vec2)
diff --git a/1223/CH3/EX3.2/Ex3_2.sce b/1223/CH3/EX3.2/Ex3_2.sce new file mode 100755 index 000000000..311a2898f --- /dev/null +++ b/1223/CH3/EX3.2/Ex3_2.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 3.2
+b=100;//common emitter current gain
+BVcbo=120;//(V) break down voltage of the B-C junction
+n=3;//empirical constant
+BVceo=BVcbo/(b)^(1/n);
+printf('\nbreakdown voltage=%.2f V\n',BVceo)
diff --git a/1223/CH3/EX3.3/Ex3_3.sce b/1223/CH3/EX3.3/Ex3_3.sce new file mode 100755 index 000000000..b31d82aac --- /dev/null +++ b/1223/CH3/EX3.3/Ex3_3.sce @@ -0,0 +1,18 @@ +clear;
+clc;
+//Example 3.3
+Vbb=4;//(V)
+Rb=220//(KOhm);
+Rc=2;//(KOhm)
+Vcc=10;//(V)
+Vbe=0.7;//(V)
+b=200;
+//from fig.3.19(b)
+Ib=(Vbb-Vbe)/Rb;
+printf('\nbase current=%.3f mA\n',Ib)
+Ic=b*Ib;
+printf('\ncollector current=%.2f mA\n',Ic)
+Ie=(1+b)*Ib;
+printf('\nemitter current=%.2f mA\n',Ie)
+Vce=Vcc-Ic*Rc;
+printf('\ncollector emitter voltage=%.1f V\n',Vce)
diff --git a/1223/CH3/EX3.4/Ex3_4.sce b/1223/CH3/EX3.4/Ex3_4.sce new file mode 100755 index 000000000..e48433db3 --- /dev/null +++ b/1223/CH3/EX3.4/Ex3_4.sce @@ -0,0 +1,19 @@ +clear;
+clc;
+//Example 3.4
+Vbb=1.5;//(V)
+Rb=580;//(KOhm)
+Veb=0.6;//(V)
+Vcc=5;//(V)
+b=100;
+//writing Kirchhoff voltage law equation around E-B loop
+Ib=(Vcc-Veb-Vbb)/Rb;
+printf('\nbase current=%.3f mA\n',Ib)
+Ic=b*Ib;
+printf('\ncollector current=%.2f mA\n',Ic)
+Ie=(1+b)*Ib;
+printf('\nemitter current=%.3f mA\n',Ie)
+Vec=(1/2)*Vcc;
+printf('\nce voltage=%.2f V\n',Vec)
+Rc=(Vcc-Vec)/Ic;
+printf('\ncollector resistance=%.f KOhm\n',Rc)
diff --git a/1223/CH3/EX3.5/Ex3_5.sce b/1223/CH3/EX3.5/Ex3_5.sce new file mode 100755 index 000000000..ab107732b --- /dev/null +++ b/1223/CH3/EX3.5/Ex3_5.sce @@ -0,0 +1,25 @@ +clear;
+clc;
+//Example 3.5
+b=100;
+Vbe=0.7;//(V)
+Vce=0.2;//(V)
+Vbb=8;//(v)
+Rb=220;//(KOhm)
+Ib=(Vbb-Vbe)/Rb
+printf('\nbase current=%f mA\n',Ib)
+//transistor in active region
+Ic=b*Ib;
+printf('\ncollector current=%.3f mA\n',Ic)
+Vcc=10;//(V)
+Rc=4;//(KOhm)
+Vce=Vcc-Ic*Rc;
+printf('\ncollector emitter voltage=%.2f V\n',Vce)
+//saturation
+Vce=0.2;//(V)
+Ic=(Vcc-Vce)/Rc;
+printf('\nsaturation collector current=%.2f mA\n',Ic)
+x=Ic/Ib
+//which is <b
+Ie=Ic+Ib;
+printf('\nemitter current=%f mA\n',Ie)
diff --git a/1223/CH3/EX3.6/Ex3_6.sce b/1223/CH3/EX3.6/Ex3_6.sce new file mode 100755 index 000000000..548fa58fe --- /dev/null +++ b/1223/CH3/EX3.6/Ex3_6.sce @@ -0,0 +1,32 @@ +clear;
+clc;
+//Example 3.6
+Vbe=0.7;
+b=75;
+//Q point values::
+//using KVL eq around the B-E loop
+//Vbb=Ib*Re+Vbe+Ie*Re
+//assuming transistor is in forward biased mode we can write Ie=(1+b)*Ib
+Vbb=6;
+Rb=25;//KOhm
+Re=0.6;//KOhm
+Ib=(Vbb-Vbe)/(Rb+(1+b)*Re);
+printf('\nbase current=%f mA\n',Ib)
+Ic=b*Ib;
+printf('\ncollector current=%0.2f mA\n',Ic)
+Ie=(1+b)*Ib;
+printf('\nemitter current=%0.2f mA\n',Ie)
+Vcc=12;
+Rc=0.4;
+Vce=Vcc-Ic*Rc-Ie*Re;
+printf('\ncollector emitter voltage=%0.2f V\n',Vce)
+//load line::
+//using KVL law around C-E loop
+//Vce=Vcc-(Ic*(Rc+((1+B)/B)*Re));
+Ic=[0,12,5.63]
+Vce=12-Ic*1;
+xset('window',1)
+plot2d(Vce,Ic,style=3)
+title("load line")
+xlabel("Vce")
+ylabel("Ic")
diff --git a/1223/CH3/EX3.7/Ex3_7.sce b/1223/CH3/EX3.7/Ex3_7.sce new file mode 100755 index 000000000..499af757a --- /dev/null +++ b/1223/CH3/EX3.7/Ex3_7.sce @@ -0,0 +1,27 @@ +clear;
+clc;
+//Example 3.7
+Vbe=0.65;
+Vcc=5;
+Rc=0.5;//KOhm
+b=100;
+V1=-5;
+Re=1;//KOhm
+// Q-point values :: writing KVL eq around B-E loop
+Ie=(-V1-Vbe)/Re;
+printf('\nemitter current=%.2f mA\n',Ie)
+Ib=(Ie/(1+b));
+printf('\nbase current=%f mA\n',Ib)
+Ic=(b/(1+b))*Ie;
+printf('\ncollector current=%0.2f mA\n',Ic)
+Vce=Vcc-Ic*Rc-Ie*Re-V1;
+printf('\ncollector emitter voltage=%f V\n',Vce)
+//load line::
+//Vce=Vcc-V1-(Ic*(Rc+((1+B)/B)*Re));
+Vce=[0,2,,3.5,4,6,8,10]
+Ic=(10-Vce)/1.51;
+xset('window',1)
+plot2d(Vce,Ic,style=3,rect=[0,0,10,8])
+title("load line")
+xlabel("Vce")
+ylabel("Ic")
diff --git a/1223/CH3/EX3.9/Ex3_9.sce b/1223/CH3/EX3.9/Ex3_9.sce new file mode 100755 index 000000000..a2af6de14 --- /dev/null +++ b/1223/CH3/EX3.9/Ex3_9.sce @@ -0,0 +1,37 @@ +clear;
+clc;
+//Example 3.9
+b=100;
+Vbe=0.7;
+V1=-5;
+V2=12;
+Rb=10;
+Re=5;
+Rc=5;
+Rl=5;
+//Q point values:: using KVL eq around B-E loop
+Ib=-(V1+Vbe)/(Rb+(1+b)*Re);
+printf('\nbase current=%f mA\n',Ib)
+Ic=b*Ib;
+printf('\ncollector current=%f mA\n',Ic)
+Ie=(1+b)*Ib;
+printf('\nemitter current=%f mA\n',Ie)
+//at collector node we can write Ic=(V2-Vo)/Rc-Vo/Rl
+Vo=(V2/Rc-Ic)*Rc*Rl/(Rc+Rl);
+printf('\noutput voltage=%0.3f V\n',Vo)
+Vce=Vo-Ie*Re-V1;
+printf('\ncollector emitter voltage=%f V\n',Vce)
+//load line::
+Rth=Rl*Rc/(Rl+Rc);
+printf('\nThevenin rquivalent resistance=%f KOhm\n',Rth)
+Vth=(Rl/(Rl+Rc))*V2;
+printf('\nThevenin equivalent voltage=%f V\n',Vth)
+//fig.3.36(c) KVL law
+//Vce=6-V1-Ic*Rth-Ie*Re;
+Vce=[0,2,4.7,3.5,4,6,8,10]
+Ic=(11-Vce)/7.5;
+xset('window',1)
+plot2d(Vce,Ic,style=3,rect=[0,0,12,2])
+title("load line")
+xlabel("Vce")
+ylabel("Ic")
diff --git a/1223/CH4/EX4.1/Ex4_1.sce b/1223/CH4/EX4.1/Ex4_1.sce new file mode 100755 index 000000000..9f8db767e --- /dev/null +++ b/1223/CH4/EX4.1/Ex4_1.sce @@ -0,0 +1,27 @@ +clear;
+clc;
+//Example 4.1
+b=100;
+Vcc=12;
+Vbe=0.7;
+Rc=6;
+Rb=50;
+Vbb=1.2;
+//dc solution
+Ibq=(Vbb-Vbe)/Rb;
+printf('\nbase current=%.3f mA\n',Ibq)
+Icq=b*Ibq;
+printf('\ncollector current=%.3f mA\n',Icq)
+Vceq=Vcc-Icq*Rc;
+printf('\ncollector emitter voltage=%.2f V\n',Vceq)
+//transistor is forward biased
+//ac solution
+V_T=0.026;//(V)
+//small signal hybrid pi parameters
+r_pi=b*V_T/Icq;
+printf('\nsmall signal resistance=%.1f KOhm\n',r_pi)
+g_m=Icq/V_T;
+printf('\ntransconductance=%.3f mA/V\n',g_m)
+//Av=Vo/Vs=-(g_m*Rc)*r_pi/(r_pi+Rb)
+Av=-(g_m*Rc)*r_pi/(r_pi+Rb);
+printf('\nsmall signal voltage gain=%.3f\n',Av)
diff --git a/1223/CH4/EX4.10/Ex4_10.sce b/1223/CH4/EX4.10/Ex4_10.sce new file mode 100755 index 000000000..34e04d15c --- /dev/null +++ b/1223/CH4/EX4.10/Ex4_10.sce @@ -0,0 +1,29 @@ +clear;
+clc;
+//Example 4.10
+b=100;
+Vbe=0.7;
+V_T=0.026;//(V)
+Re=2;
+R1=50;
+R2=50;
+Rs=0.5;
+Va=80;
+//by dc analysis
+Icq=0.793;
+Vceq=3.4;
+r_pi=b*V_T/Icq;
+printf('\nsmall signal resistance=%.3f KOhm\n',r_pi)
+g_m=Icq/V_T;
+printf('\ntransconductance=%.3f mA/V\n',g_m)
+ro=Va/Icq;
+printf('\nsmall signal output resistance=%.2f KOhm\n',ro)
+Rib=r_pi+(1+b)*Re*ro/(ro+Re);
+printf('\ninput resistance to the base=%.2f KOhm\n',Rib)
+//Ri=R1||R2||Rib
+x=R1*R2/(R1+R2);
+Ri=x*Rib/(x+Rib);
+printf('\nRi=%.2f KOhm\n',Ri)
+y=ro*Re/(ro+Re);
+Av=(1/(r_pi+(1+b)*y))*(1+b)*y*Ri/(Ri+Rs);
+printf('\nsmall signal voltage gain=%.3f \n',Av)
diff --git a/1223/CH4/EX4.2/Ex4_2.sce b/1223/CH4/EX4.2/Ex4_2.sce new file mode 100755 index 000000000..25b806765 --- /dev/null +++ b/1223/CH4/EX4.2/Ex4_2.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 4.2
+V_pi=50;//(V)
+Icq=1;//(mA)
+ro=V_pi/Icq;
+printf('\nsmall signal output resistance=%.1f KOhm\n',ro)
+Rc=6;
+g_m=38.5;
+r_pi=2.6;
+Rb=50;
+Av=-(g_m)*(Rc*ro/(Rc+ro))*r_pi/(r_pi+Rb);
+printf('\nsmall signal voltage gain=%.2f \n',Av)
diff --git a/1223/CH4/EX4.4/Ex4_4.sce b/1223/CH4/EX4.4/Ex4_4.sce new file mode 100755 index 000000000..a64ee746f --- /dev/null +++ b/1223/CH4/EX4.4/Ex4_4.sce @@ -0,0 +1,25 @@ +clear;
+clc;
+//Example 4.4
+b=100;
+Vbe=0.7;
+Va=100;
+V_T=0.026;//(V)
+//from dc analysis
+Icq=0.95;
+Vceq=6.31;
+//ac analysis
+r_pi=b*V_T/Icq;
+printf('\nsmall signal resistance=%.2f KOhm\n',r_pi)
+g_m=Icq/V_T;
+printf('\ntransconductance=%.3f mA/V\n',g_m)
+Rs=0.5;
+Rc=6;
+ro=Va/Icq;
+printf('\nro=%.2f KOhm\n',ro)
+Av=-g_m*(5.9*r_pi/(5.9+r_pi))/((5.9*r_pi/(r_pi+5.9))+Rs)*ro*Rc/(ro+Rc);
+printf('\nsmall signal voltage gain=%.2f \n',Av)
+Ri=5.9*r_pi/(r_pi+5.9);
+printf('\ninput resistance=%.3f KOhm\n',Ri)
+Ro=ro*Rc/(ro+Rc);
+printf('\noutput resistance=%.2f KOhm\n',Ro)
diff --git a/1223/CH4/EX4.5/Ex4_5.sce b/1223/CH4/EX4.5/Ex4_5.sce new file mode 100755 index 000000000..5d8acec4f --- /dev/null +++ b/1223/CH4/EX4.5/Ex4_5.sce @@ -0,0 +1,27 @@ +clear;
+clc;
+//Example 4.5
+b=100;
+Vbe=0.7;
+Rc=2;
+Rs=0.5;
+Icq=2.16;
+V_T=0.026;//(V)
+Vceq=4.8
+//ac solution
+r_pi=b*V_T/Icq;
+printf('\nsmall signal resistance=%.2f KOhm\n',r_pi)
+g_m=Icq/V_T;
+printf('\ntransconductance=%3f mA/V\n',g_m)
+//since Va=infinity,ro=Va/Icq is also infinity
+Re=0.4;
+Rib=r_pi+(1+b)*Re;
+printf('\ninput resistance to the base=%.2f KOhm\n',Rib)
+//Ri=R1||R2||Rib
+Ri=10*Rib/(10+Rib);
+printf('\ninput resistance to the amplifier=%.3f KOhm\n',Ri)
+Av=-(1/(r_pi+(1+b)*Re))*b*Rc*Ri/(Ri+Rs);
+printf('\nsmall signal voltage gain=%.2f \n',Av)
+//by approximate expression
+Av=-Rc/Re;
+printf('\nsmall signal voltage gain=%.3f \n',Av)
diff --git a/1223/CH4/EX4.7/Ex4_7.sce b/1223/CH4/EX4.7/Ex4_7.sce new file mode 100755 index 000000000..e1c340072 --- /dev/null +++ b/1223/CH4/EX4.7/Ex4_7.sce @@ -0,0 +1,16 @@ +clear;
+clc;
+//Example 4.7
+Iq=0.5;
+b=120;
+Va=80;
+V_T=0.026;//(V)
+rc=120;//small signal collector resistance (KOhm)
+//Icq=Iq
+Icq=0.5;
+g_m=Icq/V_T;
+printf('\ntransconductance=%.3f mA/V\n',g_m)
+ro=Va/Icq;
+printf('\nsmall signal output resistance=%.2f KOhm\n',ro)
+Av=-g_m*ro*rc/(ro+rc);
+printf('\nsmall signal voltage gain=%.3f \n',Av)
diff --git a/1223/CH4/EX4.8/Ex4_8.sce b/1223/CH4/EX4.8/Ex4_8.sce new file mode 100755 index 000000000..8fcb24b25 --- /dev/null +++ b/1223/CH4/EX4.8/Ex4_8.sce @@ -0,0 +1,25 @@ +clear;
+clc;
+//Example 4.8
+b=150;Veb=0.7;
+//dc solution
+V2=10;
+V1=-10;
+V_T=0.026;//(V)
+Rc=5;
+Rb=50;
+Re=10;
+Ibq=(V2-Veb)/(Rb+(1+b)*Re);
+printf('\nbase current=%f mA\n',Ibq)
+Icq=b*Ibq;
+printf('\ncollector current=%.3f mA\n',Icq)
+Ieq=(1+b)*Ibq;
+printf('\nemitter current=%.3f mA\n',Ieq)
+Vecq=V2-V1-Icq*Rc-Ieq*Re;
+printf('\nemitter collector voltage=%.2f V\n',Vecq)
+//ac solution
+r_pi=b*V_T/Icq;
+printf('\nsmall signal resistance=%.1f KOhm\n',r_pi)
+g_m=Icq/V_T;
+printf('\ntransconductance =%.3fmA/V\n',g_m)
+//since Va=infinity,ro=Va/Icq is also infinity
diff --git a/1223/CH4/EX4.9/Ex4_9.sce b/1223/CH4/EX4.9/Ex4_9.sce new file mode 100755 index 000000000..27299a658 --- /dev/null +++ b/1223/CH4/EX4.9/Ex4_9.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 4.9
+Ic=0.894;
+i_C=2*Ic;
+printf('\nmaximum possible symmetrical peak to peak ac collector current=%.3f mA\n',i_C)
+Rc=5;
+Rl=2;
+vo=i_C*Rc*Rl/(Rc+Rl);
+printf('\nmaximum possible symmetrical peak to peak output voltage=%.2f V\n',vo)
+iC=Ic+i_C*1/2;
+printf('\nmaximum instantaneous collector current=%.3f mA\n',iC)
diff --git a/1223/CH5/EX5.1/Ex5_1.sce b/1223/CH5/EX5.1/Ex5_1.sce new file mode 100755 index 000000000..1011b99bc --- /dev/null +++ b/1223/CH5/EX5.1/Ex5_1.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 5.1
+Vtn=0.75;//(V)
+W=40*10^-6;//(cm)
+L=4*10^-6;//(cm)
+u=650;//(cm)
+Iox=450*10^-11;
+e=3.9*8.86*10^-14;
+Kn=W*u*e/(2*L*Iox);
+printf('\nconduction parameter=%f mA/V^2\n',Kn)
+Vgs=2*Vtn;
+i_D=Kn*(Vgs-Vtn)^2;
+printf('\ndrain current=%f mA\n',i_D)
diff --git a/1223/CH5/EX5.10/Ex5_10.sce b/1223/CH5/EX5.10/Ex5_10.sce new file mode 100755 index 000000000..850800808 --- /dev/null +++ b/1223/CH5/EX5.10/Ex5_10.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 5.10
+Vtn=-2;
+Kn=0.1;
+Vdd=5;
+Rs=5;
+Vgs=0;
+I_D=Kn*(Vgs-Vtn)^2;
+printf('\ndrain current=%.3f mA\n',I_D)
+Vds=Vdd-I_D*Rs;
+printf('\ndc drain to source voltage=%.2f V\n',Vds)
+Vdssat=Vgs-Vtn
+//since Vds>Vdssat transisyor is biased in saturation region
diff --git a/1223/CH5/EX5.11/Ex5_11.sce b/1223/CH5/EX5.11/Ex5_11.sce new file mode 100755 index 000000000..48dee6867 --- /dev/null +++ b/1223/CH5/EX5.11/Ex5_11.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 5.11
+Vtnd=1;
+Vtnl=-2;
+Knd=50;
+Knl=10;
+Vt=5;
+Vo=poly(0,'Vo')
+p=poly([4 -40 5],'Vo','c')
+printf('\npossible solutions ::%.2f V\n',roots(p))
+//since output voltage cannot be greater than supply voltage 5V
+Vo=0.1;//(V)
+I_D=Knl*(-Vtnl)^2;
+printf('\ndrain current=%.3f microA\n',I_D)
diff --git a/1223/CH5/EX5.13/Ex5_13.sce b/1223/CH5/EX5.13/Ex5_13.sce new file mode 100755 index 000000000..bc8f72087 --- /dev/null +++ b/1223/CH5/EX5.13/Ex5_13.sce @@ -0,0 +1,23 @@ +clear;
+clc;
+//Example 5.13
+Kn1=0.2;
+Kn2=0.1;
+Kn3=0.1;
+Kn4=0.1;
+Vtn1=1;
+Vtn2=1;
+Vtn3=1;
+Vtn4=1;
+V2=-5;
+Vgs3=(sqrt(Kn4/Kn3)*(-V2-Vtn4)+Vtn3)/(1+sqrt(Kn4/Kn3));
+printf('\nVgs3=%.2f V\n',Vgs3)
+Iq=Kn3*(Vgs3-Vtn3)^2;
+printf('\nbias current=%.3f mA\n',Iq)
+Vgs1=sqrt(Iq/Kn1)+Vtn1;
+printf('\ngate to source voltage on M1=%.2f V\n',Vgs1)
+Vds2=-V2-Vgs1;
+printf('\ndrain to source voltage on M2=%.2f V\n',Vds2)
+Vgs2=Vgs3;
+Vdssat=Vgs2-Vtn2
+//since Vds2>Vdssat M2 is biased in saturation region
diff --git a/1223/CH5/EX5.14/Ex5_14.sce b/1223/CH5/EX5.14/Ex5_14.sce new file mode 100755 index 000000000..5543f51f9 --- /dev/null +++ b/1223/CH5/EX5.14/Ex5_14.sce @@ -0,0 +1,14 @@ +clear;
+clc;
+//Example 5.14
+I_D=0.5;
+Vds=6;
+Kn=80*10^-6;
+Vgs=5;
+Vtn=1;
+//x=W/L
+x=I_D*2/(Kn*(Vgs-Vtn)^2);
+disp(x,"W/L ")
+//maximum power dissipation in transistor
+Pmax=Vds*I_D;
+printf('\nmaximum power dissipation in transistor=%.3f W\n',Pmax)
diff --git a/1223/CH5/EX5.16/Ex5_16.sce b/1223/CH5/EX5.16/Ex5_16.sce new file mode 100755 index 000000000..232867b50 --- /dev/null +++ b/1223/CH5/EX5.16/Ex5_16.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 5.16
+Idss=2;//(mA) saturation current
+Vp=-3.5;//(V) pinch off voltage
+Vgs=[0 Vp/4 Vp/2]
+I_D=Idss*(1-Vgs/Vp)^2;
+disp(I_D,"I_D (A)")
+Vds=Vgs-Vp;
+disp(Vds,"Vdssat (V)")
diff --git a/1223/CH5/EX5.17/Ex5_17.sce b/1223/CH5/EX5.17/Ex5_17.sce new file mode 100755 index 000000000..0743c734d --- /dev/null +++ b/1223/CH5/EX5.17/Ex5_17.sce @@ -0,0 +1,17 @@ +clear;
+clc;
+//Example 5.17
+Idss=5;//mA
+Vp=-4;
+Vdd=10;
+I_D=2;
+Vds=6;
+//I_D=Idss*(1-Vgs/Vp)^2
+Vgs=(1-sqrt(I_D/Idss))*Vp;
+printf('\nVgs=%.2f V\n',Vgs)
+Rs=-Vgs/I_D;
+printf('\nRs=%.3f KOhm\n',Rs)
+Rd=(Vdd-Vds-I_D*Rs)/I_D;
+printf('\nRd=%.2f KOhm\n',Rd)
+Vgs-Vp
+//since Vds>Vgs-Vp JFET is biased in saturation
diff --git a/1223/CH5/EX5.19/Ex5_19.sce b/1223/CH5/EX5.19/Ex5_19.sce new file mode 100755 index 000000000..29d28da58 --- /dev/null +++ b/1223/CH5/EX5.19/Ex5_19.sce @@ -0,0 +1,18 @@ +clear;
+clc;
+//Example 5.19
+Idss=2.5;
+Vp=2.5;
+I_D=0.8;
+//I_D=Iq=0.8*10^-3=(Vd-(-9))/Rd
+Vd=0.8*4-9;
+printf('\nVd =%.2fV\n',Vd)
+//I_D=Idss*(1-Vgs/Vp)^2;
+Vgs=(1-sqrt(I_D/Idss))*Vp;
+printf('\nVgs =%.2fV\n',Vgs)
+Vs=1-Vgs;
+printf('\nVs=%.2f V\n',Vs)
+Vsd=Vs-Vd;
+printf('\nVsd=%.2f V\n',Vsd)
+Vp-Vgs
+//since Vsd>Vp-Vgs JFET is biased in saturation
diff --git a/1223/CH5/EX5.2/Ex5_2.sce b/1223/CH5/EX5.2/Ex5_2.sce new file mode 100755 index 000000000..7f5b47810 --- /dev/null +++ b/1223/CH5/EX5.2/Ex5_2.sce @@ -0,0 +1,11 @@ +clear;
+clc;
+//Example 5.2
+Kp=0.2;//(mA/V^2)
+Vtp=0.5;
+iD=0.5;
+Vsg=sqrt(iD/Kp)-Vtp;
+printf('\nVgs=%.2f V\n',Vsg)
+//to bias in p channel MOSFET
+Vsd=Vsg+Vtp;
+printf('\nVsd=%.2f V\n',Vsd)
diff --git a/1223/CH5/EX5.20/Ex5_20.sce b/1223/CH5/EX5.20/Ex5_20.sce new file mode 100755 index 000000000..84553f209 --- /dev/null +++ b/1223/CH5/EX5.20/Ex5_20.sce @@ -0,0 +1,28 @@ +clear;
+clc;
+//Example 5.20
+Vtn=0.24;
+Kn=1.1;
+//x=R1+R2=50000
+x=50;
+Vgs=0.5;
+Vds=2.5;
+Vdd=4;
+Rd=6.7;
+I_D=Kn*(Vgs-Vtn)^2;
+printf('\ndrain current=%.3f mA\n',I_D)
+Vd=Vdd-I_D*Rd;
+printf('\nvoltage at drain=%0.2f V\n',Vd)
+Vs=Vd-Vds;
+printf('\nvoltage at source =%0.2fV\n',Vs)
+Rs=Vs/I_D;
+printf('\nsource resistance =%.2fKOhm\n',Rs)
+Vg=Vgs+Vs;
+printf('\nvoltage at the gate=%.2f V\n',Vg)
+//Vg=R2*Vdd/(R2+R1)
+R2=Vg*x/Vdd;
+printf('\nR2=%0.3f KOhm\n',R2)
+R1=x-R2;
+printf('\nR1=%0.3f KOhm\n',R1)
+Vgs-Vtn
+//since Vds>Vgs-Vtn transistor is biased in saturation
diff --git a/1223/CH5/EX5.3/Ex5_3.sce b/1223/CH5/EX5.3/Ex5_3.sce new file mode 100755 index 000000000..b32dc20cc --- /dev/null +++ b/1223/CH5/EX5.3/Ex5_3.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 5.3
+R1=30;
+R2=20;
+RD=20;
+Vdd=5;
+Vtn=1;
+Kn=0.1;
+Vgs=R2*Vdd/(R1+R2);
+printf('\nVgs=%0.2f V\n',Vgs)
+I_D=Kn*(Vgs-Vtn)^2;
+printf('\nthe drain current=%0.1f mA\n',I_D)
+Vds=Vdd-I_D*RD;
+printf('\ndrain to source voltage=%0.1f V\n',Vds)
diff --git a/1223/CH5/EX5.4/Ex5_4.sce b/1223/CH5/EX5.4/Ex5_4.sce new file mode 100755 index 000000000..c317e239d --- /dev/null +++ b/1223/CH5/EX5.4/Ex5_4.sce @@ -0,0 +1,18 @@ +clear;
+clc;
+//Example 5.4
+R1=50;
+R2=50;
+RD=7.5;
+Vdd=5;
+Vtp=-0.8;
+Vg=2.5;
+Kp=0.2;
+Vo=R2*Vdd/(R1+R2);
+printf('\nVo=%.2f V\n',Vo)
+Vsg=Vdd-Vg;
+printf('\nsource to gate voltage=%.2f V\n',Vsg)
+I_D=Kp*(Vsg+Vtp)^2;
+printf('\nthe drain current=%.3f mA\n',I_D)
+Vsd=Vdd-I_D*RD;
+printf('\nsource to drain voltage=%.3f V\n',Vsd)
diff --git a/1223/CH5/EX5.6/Ex5_6.sce b/1223/CH5/EX5.6/Ex5_6.sce new file mode 100755 index 000000000..c41205e64 --- /dev/null +++ b/1223/CH5/EX5.6/Ex5_6.sce @@ -0,0 +1,20 @@ +clear;
+clc;
+//Example 5.6
+Vtn=2;
+Kn=80*10^-3;
+//x=W/L
+x=4;
+I_D=0.5;
+//I_D=Kn*x*((Vgs-Vtn)^2)/2;
+Vgs=sqrt(I_D*2/(Kn*x))+2;
+printf('\nVgs=%.2f V\n',Vgs)
+//y=R1+R2
+Rs=2;
+y=10/0.05;
+printf('\nR1+R2=%.2f Kohm\n',y)
+//Vgs=Vg-Vs=(R2/(R1+R2)*10-5)-I_D*Rs+5
+R2=(y/10)*(Vgs+I_D*Rs);
+printf('\nR2=%.2f KOhm\n',R2)
+R1=y-R2;
+printf('\nR1=%.2f KOhm\n',R1)
diff --git a/1223/CH5/EX5.7/Ex5_7.sce b/1223/CH5/EX5.7/Ex5_7.sce new file mode 100755 index 000000000..69b795279 --- /dev/null +++ b/1223/CH5/EX5.7/Ex5_7.sce @@ -0,0 +1,20 @@ +clear;
+clc;
+//Example 5.7
+Vtn=0.8;
+Kn=80;
+//x=W/L
+x=3;
+I_D=250;
+Vd=2.5;
+//I_D=Kn/2*x*(Vgs-Vtn)^2
+Vgs=sqrt(I_D*2/(Kn*x))+Vtn;
+printf('\nVgs=%.3f V\n',Vgs)
+Vs=-Vgs
+//I_D=(5-Vd)/Rd
+Rd=(5-Vd)/I_D;
+printf('\nRd=%.2f KOhm\n',Rd)
+Vds=Vd-Vs;
+printf('\nVds=%.2f V\n',Vds)
+Vdssat=Vgs-Vtn
+//since Vds>Vdssat transistor is biased in saturation region
diff --git a/1223/CH5/EX5.8/Ex5_8.sce b/1223/CH5/EX5.8/Ex5_8.sce new file mode 100755 index 000000000..33738a22e --- /dev/null +++ b/1223/CH5/EX5.8/Ex5_8.sce @@ -0,0 +1,15 @@ +clear;
+clc;
+//Example 5.8
+Vtn=0.8;
+Kn=0.05;
+//I_D=Kn*(Vgs-Vtn)^2
+//Vds=Vgs=5-I_D*Rs
+//combining these two equations we obtain 0.5(Vgs)^2+0.2Vgs-4.68
+Vgs=poly(0,'Vgs')
+p=poly([-4.68 0.2 0.5],'Vgs','c')
+printf('\npossible solutions ::%.3f V\n',roots(p))
+//assuming transistor is conducting ,Vgs must be greater than threshold voltage
+Vgs=2.87;
+I_D=Kn*(Vgs-Vtn)^2;
+printf('\ndrain current=%.3f mA\n',I_D)
diff --git a/1223/CH6/EX6.1/Ex6_1.sce b/1223/CH6/EX6.1/Ex6_1.sce new file mode 100755 index 000000000..965444c95 --- /dev/null +++ b/1223/CH6/EX6.1/Ex6_1.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 6.1
+Vtn=1;
+//let x= u_n*Cox*1/2
+x=20*10^-3;
+//let y=W/L
+y=40;
+I_D=1;
+Kn=x*y;
+printf('\nconduction parameter=%.3f mA/V^2\n',Kn)
+g_m=2*sqrt(Kn*I_D);
+printf('\ntransconductance=%.3f mA/V\n',g_m)
diff --git a/1223/CH6/EX6.11/Ex6_11.sce b/1223/CH6/EX6.11/Ex6_11.sce new file mode 100755 index 000000000..f1b57e17f --- /dev/null +++ b/1223/CH6/EX6.11/Ex6_11.sce @@ -0,0 +1,23 @@ +clear;
+clc;
+//Example 6.11
+Vtnd=1;
+Vtnl=1;
+Kn=30;
+//let W/L=x
+xl=1;
+Vdd=5;
+Av=10;
+//Av=sqrt(xd/xl)
+xd=(Av)^2*xl;
+printf('\nwidth to length ratio of driver transistor=%0.2f\n',xd)
+Knd=xd*Kn*0.001/2;
+Knl=xl*Kn*0.001/2;
+printf('\nconduction parameter Knd=%.2f mA/V^2\n',Knd)
+printf('\nconduction parameter Knl=%.3f mA/V^2\n',Knl)
+//Vgsd-Vtnd=(Vdd-Vtnl)-sqrt(Knd/Knl)*(Vgsd-Vtnd)
+y=sqrt(Knd/Knl);
+Vgsd=(y+5)/(1+y);
+printf('\nVgsd=%.2f V\n',Vgsd)
+Vdsd=Vgsd-1;
+printf('\nVdsd=%.2f V\n',Vdsd)
diff --git a/1223/CH6/EX6.12/Ex6_12.sce b/1223/CH6/EX6.12/Ex6_12.sce new file mode 100755 index 000000000..4faf90f5a --- /dev/null +++ b/1223/CH6/EX6.12/Ex6_12.sce @@ -0,0 +1,17 @@ +clear;
+clc;
+//Example 6.12
+Vtnd=0.8;
+Vtnl=-1.5;
+Knd=1;
+Knl=0.2;
+//lambda=y
+yd=0.01;
+yl=0.01;
+Idq=0.2;
+gmd=2*sqrt(Knd*Idq);
+printf('\ntransconductance of the driver=%.3f mA/V\n',gmd)
+roD=1/(yd*Idq);
+printf('\noutput resistances=%.2f Kohm\n',roD)
+Av=-gmd*roD/2;
+printf('\nsmall signal voltage gain=%.2f \n',Av)
diff --git a/1223/CH6/EX6.13/Ex6_13.sce b/1223/CH6/EX6.13/Ex6_13.sce new file mode 100755 index 000000000..0603afe2e --- /dev/null +++ b/1223/CH6/EX6.13/Ex6_13.sce @@ -0,0 +1,20 @@ +clear;
+clc;
+//Example 6.13
+Vtn=0.8;
+Vtp=-0.8;
+Kn=80*10^-3;
+Kp=40*10^-3;
+//x=W/L
+xn=15;
+xp=10;
+//lambda=y
+yn=0.01;
+yp=0.01;
+Ibias=0.2;
+gm=2*sqrt(Kn*xn*Ibias/2);
+printf('\ntransconductance of the NMOS driver=%.3f mA/V^2\n',gm)
+ron=1/(yn*Ibias);
+printf('\noutput resistances=%.2f Kohm\n',ron)
+Av=-gm*ron/2;
+printf('\nsmall signal voltage gain=%.2f \n',Av)
diff --git a/1223/CH6/EX6.14/Ex6_14.sce b/1223/CH6/EX6.14/Ex6_14.sce new file mode 100755 index 000000000..50167e6cf --- /dev/null +++ b/1223/CH6/EX6.14/Ex6_14.sce @@ -0,0 +1,34 @@ +clear;
+clc;
+//Example 6.14
+Kn1=500*10^-3;
+Kn2=200*10^-3;
+Vtn1=1.2;
+Vtn2=Vtn1;
+Idq1=0.2;
+Idq2=0.5;
+Vdsq1=6;
+Vdsq2=6;
+Ri=100;
+Rsi=4;
+Rs2=(10-Vdsq2)/Idq2;
+printf('\nRs2=%.2f KOhm\n',Rs2)
+Vgs2=sqrt(Idq2/Kn2)+Vtn2;
+printf('\ngate to source voltage for M2=%.2f V\n',Vgs2)
+Vs2=-1;
+Vg2=Vs2+Vgs2;
+printf('\ngate voltage of M2=%.2f V\n',Vg2)
+Vg1=Vg2;
+Rd1=(5-Vg1)/Idq1;
+printf('\nresistor Rd1=%.2f KOhm\n',Rd1)
+Vs1=Vg1-Vdsq1;
+printf('\nsource voltage of M1=%.2f KOhm\n',Vs1)
+Rs1=(Vs1+5)/Idq1;
+printf('\nresistor Rs1=%.2f KOhm\n',Rs1)
+Vgs1=sqrt(Idq1/Kn1)+Vtn1;
+printf('\ngate to source voltage for M1=%.2f V\n',Vgs1)
+R1=Ri*10/(Vgs1+Idq1*Rs1);
+printf('\nR1=%.2f KOhm\n',R1)
+//Ri=R1*R2/(R1+R2)
+R2=Ri*R1/(R1-Ri);
+printf('\nR2=%.2f KOhm\n',R2)
diff --git a/1223/CH6/EX6.15/Ex6_15.sce b/1223/CH6/EX6.15/Ex6_15.sce new file mode 100755 index 000000000..a5a46ffe1 --- /dev/null +++ b/1223/CH6/EX6.15/Ex6_15.sce @@ -0,0 +1,33 @@ +clear;
+clc;
+//Example 6.15
+Vtn1=1.2;
+Vtn2=1.2;
+Kn1=0.8;
+Kn2=0.8;
+//x=R1+R2+R3=300
+x=300;
+Rs=10;
+Idq=0.4;
+Vdsq1=2.5;
+Vdsq2=2.5;
+Vs1=Idq*Rs-5;
+printf('\ndc voltage at source of M1=%.2f V\n',Vs1)
+Vgs=sqrt(Idq/Kn1)+Vtn1;
+printf('\ngate to source voltage=%.2f V\n',Vgs)
+R3=(Vgs+Vs1)*x/5;
+printf('\nR3=%.2f KOhm\n',R3)
+Vs2=Vdsq2+Vs1;
+printf('\nvoltage at source of M2=%.2f V\n',Vs2)
+//y=R2+R3
+y=(Vgs+Vs2)*x/5;
+printf('\nR2+R3=%.2f KOhm\n',y)
+R2=150;
+R1=x-y;
+printf('\nR1=%.2f KOhm\n',R1)
+R3=y-R2;
+printf('\nR3=%.2f KOhm\n',R3)
+Vd2=Vdsq2+Vs2;
+printf('\nvoltage at drain of M2 =%.2fV\n',Vd2)
+Rd=(5-Vd2)/Idq;
+printf('\ndrain resistance=%.2f KOhm\n',Rd)
diff --git a/1223/CH6/EX6.17/Ex6_17.sce b/1223/CH6/EX6.17/Ex6_17.sce new file mode 100755 index 000000000..da72d8f62 --- /dev/null +++ b/1223/CH6/EX6.17/Ex6_17.sce @@ -0,0 +1,11 @@ +clear;
+clc;
+//Example 6.17
+Kn=0.8;
+Vtn=1.2;
+Vgs=1.91;
+Rd=2.5;
+gm=2*Kn*(Vgs-Vtn);
+printf('\ntransconductance=%.2f mA/V\n',gm)
+Av=-gm*Rd;
+printf('\nsmall signal voltage gain=%.2f \n',Av)
diff --git a/1223/CH6/EX6.18/Ex6_18.sce b/1223/CH6/EX6.18/Ex6_18.sce new file mode 100755 index 000000000..1089cb1b4 --- /dev/null +++ b/1223/CH6/EX6.18/Ex6_18.sce @@ -0,0 +1,23 @@ +clear;
+clc;
+//Example 6.18
+//Determine the small signal voltage gain of a circuit in fig.6.55
+Idss=12;
+Vp=-4;
+//lambda=y
+y=0.008;
+Vgsq=poly(0,'Vgsq');
+p=poly([26.4 17.2 2.025],'Vgsq','c')
+printf('\nroots=%fV\n',roots(p))
+Vgsq=-2.01
+Idq=Idss*(1-Vgsq/Vp)^2;
+printf('\nquiescent drain current=%f mA\n',Idq)
+gm=(-2*Idss/Vp)*(1-Vgsq/Vp);
+printf('\ntransconductance=%.2f mA/V\n',gm)
+ro=(1/(y*Idq));
+printf('\noutput resistance=%.2f KOhm\n',ro)
+Rd=2.7;
+Rl=4;
+x=Rd*Rl/(Rd+Rl);
+Av=-gm*ro*x/(ro+x);
+printf('\nsmall signal voltage gain=%.2f \n',Av)
diff --git a/1223/CH6/EX6.19/Ex6_19.sce b/1223/CH6/EX6.19/Ex6_19.sce new file mode 100755 index 000000000..b8c55a219 --- /dev/null +++ b/1223/CH6/EX6.19/Ex6_19.sce @@ -0,0 +1,23 @@ +clear;
+clc;
+//Example 6.19
+Idss=12;
+Vp=-4;
+Rl=10;
+//lambda=y
+y=0.01;
+Av=0.9;
+//gm=(-2*Idss/Vp)*(1-Vgs/Vp)
+gm=2;
+Vgs=(1+gm*Vp/(2*Idss))*Vp;
+printf('\ngate to source voltage=%.3f V\n',Vgs)
+Idq=Idss*(1-Vgs/Vp)^2;
+printf('\nquiescent drain current=%.3f mA\n',Idq)
+Rs=(-Vgs+10)/Idq;
+printf('\nRs=%.2f KOhm\n',Rs)
+ro=(1/(y*Idq));
+printf('\noutput resistance=%.3f KOhm\n',ro)
+x=Rl*ro/(Rl+ro);
+t=x*Rs/(x+Rs);
+Av=gm*t/(1+gm*t);
+printf('\nsmall signal voltage gain=%.3f \n',Av)
diff --git a/1223/CH6/EX6.2/Ex6_2.sce b/1223/CH6/EX6.2/Ex6_2.sce new file mode 100755 index 000000000..d60671e6a --- /dev/null +++ b/1223/CH6/EX6.2/Ex6_2.sce @@ -0,0 +1,23 @@ +clear;
+clc;
+//Example 6.2
+Vgsq=2.12;
+Vdd=5;
+Rd=2.5;
+Vtn=1;
+Kn=0.8;
+//let lambda=y
+y=0.02;//V^-1
+Idq=Kn*(Vgsq-Vtn)^2;
+printf('\ndrain current=%.3f mA\n',Idq)
+Vdsq=Vdd-Idq*Rd;
+printf('\ndrain to source voltage=%.3f V\n',Vdsq)
+Vgs=1.82;
+Vgs-Vtn
+//since Vdsq>Vgs-Vtn transistor is biased in saturation
+g_m=2*Kn*(Vgsq-Vtn);
+printf('\ntransconductance=%.3f mA/V\n',g_m)
+ro=(y*Idq)^-1;
+printf('\noutput resistance=%.2f KOhm\n',ro)
+Av=-g_m*ro*Rd/(ro+Rd);
+printf('\nsmall signal voltage gain=%.2f\n',Av)
diff --git a/1223/CH6/EX6.3/Ex6_3.sce b/1223/CH6/EX6.3/Ex6_3.sce new file mode 100755 index 000000000..acf742640 --- /dev/null +++ b/1223/CH6/EX6.3/Ex6_3.sce @@ -0,0 +1,29 @@ +clear;
+clc;
+//Example 6.3
+Vdd=10;
+R1=70.9;//(Kohm)
+R2=29.1;//(Kohm)
+Rd=5;//(Kohm)
+Vtn=1.5;
+Kn=0.5;//(mA/V^2)
+//lambda=y
+y=0.01;//V^-1
+Rsi=4;//(Kohm)
+Vgsq=Vdd*R2/(R1+R2);
+printf('\ngate to source voltage=%.2f V\n',Vgsq)
+Idq=Kn*(Vgsq-Vtn)^2;
+printf('\ndrain current=%.3f mA\n',Idq)
+Vdsq=Vdd-Idq*Rd;
+printf('\ndrain to source voltage=%.2f V\n',Vdsq)
+g_m=2*Kn*(Vgsq-Vtn);
+printf('\ntransconductance=%.3f mA/V\n',g_m)
+ro=(y*Idq)^-1;
+printf('\noutput resistance=%.2f KOhm\n',ro)
+Ri=R1*R2/(R1+R2);
+printf('\namplifier input resistance=%.2f Kohm\n',Ri)
+Av=-g_m*(ro*Rd/(ro+Rd))*Ri/(Ri+Rsi);
+printf('\nsmall signal voltage gain=%.2f\n',Av)
+printf('\namplifier input resistance=%.2f Kohm\n',Ri)
+Ro=Rd*ro/(Rd+ro);
+printf('\namplifier output resistance=%.2f Kohm\n',Ro)
diff --git a/1223/CH6/EX6.4/Ex6_4.sce b/1223/CH6/EX6.4/Ex6_4.sce new file mode 100755 index 000000000..539634abc --- /dev/null +++ b/1223/CH6/EX6.4/Ex6_4.sce @@ -0,0 +1,31 @@ +clear;
+clc;
+//Example 6.4
+Vtn=1;
+Kn=1;//(mA/V^2)
+//lambda=y
+y=0.015;//V^-1
+Ri=100;//(Kohm)
+Idq=2;//(mA)
+Idt=4;//(mA)
+//Idt=4=Kn*(Vgst-Vtn)^2
+Vgst=sqrt(Idt/Kn)+Vtn;
+printf('\nVgst=%.2f V\n',Vgst)
+Vdst=Vgst-Vtn;
+printf('\nVdst=%.2f V\n',Vdst)
+Vdd=12;
+Vdsq=7;
+Rd=(Vdd-Vdsq)/Idq;
+printf('\nRd =%.2fKOhm\n',Rd)
+Vgsq=sqrt(Idq/Kn)+Vtn;
+printf('\nVgsq=%.2f V\n',Vgsq)
+R1=Ri*Vdd/Vgsq;
+printf('\nR1=%.2f Kohm\n',R1)
+R2=Ri*R1/(R1-Ri);
+printf('\nR2=%.2f Kohm\n',R2)
+g_m=2*Kn*(Vgsq-Vtn);
+printf('\ntransconductance=%.3f mA/V\n',g_m)
+ro=(y*Idq)^-1;
+printf('\noutput resistance=%.2f KOhm\n',ro)
+Av=-g_m*(ro*Rd/(ro+Rd));
+printf('\nsmall signal voltage gain=%.2f\n',Av)
diff --git a/1223/CH6/EX6.6/Ex6_6.sce b/1223/CH6/EX6.6/Ex6_6.sce new file mode 100755 index 000000000..fe3a60be0 --- /dev/null +++ b/1223/CH6/EX6.6/Ex6_6.sce @@ -0,0 +1,17 @@ +clear;
+clc;
+//Example 6.6
+Vtn=0.8;
+Kn=1;//(mA/V^2)
+Idq=0.5;
+Vdd=5;
+Rd=7;//(Kohm)
+Vgsq=sqrt(Idq/Kn)+Vtn;
+printf('\nVgsq=%.2f V\n',Vgsq)
+Vs=-Vgsq
+Vdsq=Vdd-Idq*Rd-Vs;
+printf('\nVdsq=%.2f V\n',Vdsq)
+g_m=2*Kn*(Vgsq-Vtn);
+printf('\ntransconductance=%.3f mA/V\n',g_m)
+Av=-g_m*Rd;
+printf('\nsmall signal voltage gain=%.2f\n',Av)
diff --git a/1223/CH6/EX6.7/Ex6_7.sce b/1223/CH6/EX6.7/Ex6_7.sce new file mode 100755 index 000000000..1f0e146c8 --- /dev/null +++ b/1223/CH6/EX6.7/Ex6_7.sce @@ -0,0 +1,23 @@ +clear;
+clc;
+//Example 6.7
+Vdd=12;
+R1=162;
+R2=463;
+Rs=0.75;
+Kn=4;
+Vtn=1.5;
+//lambda=y
+y=0.01;
+Rsi=4;
+Idq=7.97;
+Vgsq=2.91;
+g_m=2*Kn*(Vgsq-Vtn);
+printf('\ntransconductance=%.2f mA/V\n',g_m)
+ro=(y*Idq)^-1;
+printf('\noutput resistance=%.2f KOhm\n',ro)
+Ri=R1*R2/(R1+R2);
+printf('\namplifier input resistance=%.3f Kohm\n',Ri)
+x=Rs*ro/(Rs+ro);
+Av=g_m*x*(Ri/(Ri+Rsi))/(1+g_m*x);
+printf('\nsmall signal voltage gain=%.2f\n',Av)
diff --git a/1223/CH6/EX6.9/Ex6_9.sce b/1223/CH6/EX6.9/Ex6_9.sce new file mode 100755 index 000000000..ddaeb510a --- /dev/null +++ b/1223/CH6/EX6.9/Ex6_9.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 6.9
+Rs=750;//Ohm
+ro=12500;
+g_m=11.3*10^-3;
+x=1/g_m;
+y=x*Rs/(x+Rs);
+Ro=y*ro/(y+ro);
+printf('\noutput resistance=%.3f ohm\n',Ro)
diff --git a/1223/CH7/EX7.1/Ex7_1.sce b/1223/CH7/EX7.1/Ex7_1.sce new file mode 100755 index 000000000..f615ee2fe --- /dev/null +++ b/1223/CH7/EX7.1/Ex7_1.sce @@ -0,0 +1,21 @@ +clear;
+clc;
+//Example 7.1
+Rs=1000;
+Rp=10000;
+Cs=1*10^-6;
+Cp=3*10^-12;
+Ts=(Rs+Rp)*Cs;
+printf('\ntime constant=%.3f s\n',Ts)
+f=1/(2*%pi*Ts);
+printf('\ncorner frequency=%.2f Hz\n',f)
+x=20*log10(Rp/(Rp+Rs));
+printf('\nmaximum magnitude =%.3fdB\n',x)
+Rp=10;//KOhm
+Rs=1;//Kohm
+Cp=3;//pF
+Tp=Cp*Rs*Rp/(Rs+Rp);
+printf('\ntime constant=%.3f ns\n',Tp)
+Tp=2.73*10^-3;//micro sec
+f=1/(2*%pi*Tp);
+printf('\ncorner frequency =%.2fMHz\n',f)
diff --git a/1223/CH7/EX7.10/Ex7_10.sce b/1223/CH7/EX7.10/Ex7_10.sce new file mode 100755 index 000000000..7332b6e35 --- /dev/null +++ b/1223/CH7/EX7.10/Ex7_10.sce @@ -0,0 +1,16 @@ +clear;
+clc;
+//Example 7.10
+fT=500;
+Ic=1;
+b=100;
+Vt=0.026;
+C2=0.3*10^-12;
+fB=fT/b;
+printf('\nbandwidth=%.3f MHz\n',fB)
+gm=Ic/Vt;
+printf('\ntransconductance=%.3f mA/V\n',gm)
+fT=500000000;
+gm=38.5*0.001;
+C1=gm/(fT*2*%pi)-C2;
+printf('\ncapacitance =%3.2eF\n',C1)
diff --git a/1223/CH7/EX7.12/Ex7_12.sce b/1223/CH7/EX7.12/Ex7_12.sce new file mode 100755 index 000000000..62c74bced --- /dev/null +++ b/1223/CH7/EX7.12/Ex7_12.sce @@ -0,0 +1,12 @@ +clear;
+clc;
+//Example 7.12
+Kn=0.25;
+Vtn=1;
+Cgd=0.04*10^-3;
+Cgs=0.2*10^-3;
+Vgs=3;
+gm=2*Kn*(Vgs-Vtn);
+printf('\ntransconductance =%.3fmA/V\n',gm)
+fT=gm/(2*%pi*(Cgd+Cgs));
+printf('\nunity gain bandwidth=%.f MHz\n',fT)
diff --git a/1223/CH7/EX7.13/Ex7_13.sce b/1223/CH7/EX7.13/Ex7_13.sce new file mode 100755 index 000000000..f1d21ea1a --- /dev/null +++ b/1223/CH7/EX7.13/Ex7_13.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 7.13
+gm=1;
+Cgd=0.04;
+Rl=10;
+Cgs=0.2;
+Cm=Cgd*(1+gm*Rl);
+printf('\nMiller capacitance=%.3f pF\n',Cm)
+Cm=0.44*0.001;//nF
+Cgs=0.2*0.001;//nF
+fT=gm/(2*%pi*(Cgs+Cm));
+printf('\ncutoff frequency=%.3f MHz\n',fT)
diff --git a/1223/CH7/EX7.14/Ex7_14.sce b/1223/CH7/EX7.14/Ex7_14.sce new file mode 100755 index 000000000..6874be2d9 --- /dev/null +++ b/1223/CH7/EX7.14/Ex7_14.sce @@ -0,0 +1,32 @@ +clear;
+clc;
+//Example 7.14
+V1=5;
+V=-5;
+Rs=0.1;
+Rb=40;
+R2=5.72;
+Re=0.5;
+Rc=5;
+Rl=10;
+b=150;
+Vbe=0.7;
+C1=35*10^-3;
+C2=4;
+Vt=0.026;
+Icq=1.02;
+r=b*Vt/Icq;
+printf('\nsmall signal parameter=%.2f KOhm\n',r)
+gm=Icq/Vt;
+printf('\ntransconductance=%.3f mA/V\n',gm)
+Cm=C2*(1+gm*Rc*Rl/(Rc+Rl));
+printf('\nMiller capacitance=%.3f pF\n',Cm)
+Cm=527*10^-3;
+x=Rb*Rs/(Rb+Rs);
+y=r*x/(r+x);
+fH=1/(2*%pi*y*(C1+Cm));
+printf('\nupper corner frequency =%.2fMHz\n',fH)
+t=Rb*r/(Rb+r);
+p=Rc*Rl/(Rc+Rl);
+Av=gm*p*t/(t+Rs);
+printf('\nmidband gain=%.2f\n',Av)
diff --git a/1223/CH7/EX7.15/Ex7_15.sce b/1223/CH7/EX7.15/Ex7_15.sce new file mode 100755 index 000000000..5bb712db1 --- /dev/null +++ b/1223/CH7/EX7.15/Ex7_15.sce @@ -0,0 +1,36 @@ +clear;
+clc;
+//Example 7.15
+V1=5;
+V=-5;
+Rs=0.1;
+R1=40;
+R2=5.72;
+Re=0.5;
+Rc=5;
+Rl=10;
+b=150;
+Vbe=0.7;
+C1=35;
+C2=4;
+Vt=0.026;
+Icq=1.02;
+gm=39.2;
+r=3.82;
+x=Re*Rs/(Re+Rs);
+t=r/(1+b);
+y=t*x/(t+x);
+Tp=y*C1;
+printf('\ntime constant=%.3f ns\n',Tp)
+Tp=0.679*10^-3;//micro sec
+f=1/(2*%pi*Tp);
+printf('\nupper frequency =%.3fMHz\n',f)
+T=C2*Rc*Rl/(Rc+Rl);
+printf('\ntime constant=%.3f ns\n',T)
+T=13.3*10^-3;//micro sec
+f=1/(2*%pi*T);
+printf('\nupper frequency=%.2f MHz\n',f)
+x=Rc*Rl/(Rc+Rl);
+y=Re*t/(Re+t);
+Av=gm*x*(y/(y+Rs));
+printf('\nmidband voltage gain=%.2f \n',Av)
diff --git a/1223/CH7/EX7.16/Ex7_16.sce b/1223/CH7/EX7.16/Ex7_16.sce new file mode 100755 index 000000000..d08c62728 --- /dev/null +++ b/1223/CH7/EX7.16/Ex7_16.sce @@ -0,0 +1,37 @@ +clear;
+clc;
+//Example 7.16
+V1=5;
+V=-5;
+Rs=0.1;
+R1=42.5;
+R2=20.5;
+R3=28.3;
+Re=5.4;
+Rc=5;
+Rl=10;
+b=150;
+Vbe=0.7;
+C1=35;
+C2=4;
+Vt=0.026;
+Icq=1.02;
+gm=39.2;
+r=3.820;
+Rb=R2*R3/(R2+R3);
+x=Rb*r/(Rb+r);
+y=Rs*x/(x+Rs);
+Tp=y*(C1+2*C2);
+printf('\ntime constant=%.3f ns\n',Tp)
+Tp=Tp*10^-3;//micro sec
+f=1/(2*%pi*Tp);
+printf('\n3dB frequency =%0.3fMHz\n',f)
+T=C2*Rc*Rl/(Rc+Rl);
+printf('\ntime constant=%.2f ns\n',T)
+T=T*0.001;//micro sec
+f=1/(2*%pi*T);
+printf('\nupper frequency=%.3f MHz\n',f)
+x=Rc*Rl/(Rc+Rl);
+y=Rb*r/(Rb+r);
+Av=gm*x*(y/(y+Rs));
+printf('\nmidband voltage gain=%.f \n',Av)
diff --git a/1223/CH7/EX7.17/Ex7_17.sce b/1223/CH7/EX7.17/Ex7_17.sce new file mode 100755 index 000000000..4ccd85a36 --- /dev/null +++ b/1223/CH7/EX7.17/Ex7_17.sce @@ -0,0 +1,33 @@ +clear;
+clc;
+//Example 7.17
+V1=5;
+V=-5;
+Rs=0.1;
+R1=40;
+R2=5.720;
+Re=0.5;
+Rc=5;
+Rl=10;
+b=150;
+Vbe=0.7;
+C1=35;
+C2=4;
+Vt=0.026;
+Icq=1.02;
+gm=39.2;
+r=3.820;
+t=r/(1+b);
+t=t*0.001;
+f=1/(2*%pi*C1*t);
+printf('\nthe zero occurs at this frequency=%.2f MHz\n',f)
+x=1+gm*Re*Rl/(Re+Rl);
+Rb=R1*R2/(R1+R2)
+d=x*r;
+y=d*Rb/(d+Rb);
+t=y*Rs/(y+Rs);
+Tp=t*(C2+C1/x);
+printf('\ntime constant=%.2f ns\n',Tp)
+Tp=Tp*10^-3;//micro sec
+f=1/(2*%pi*Tp);
+printf('\n3dB frequency=%.f MHz\n',f)
diff --git a/1223/CH7/EX7.2/Ex7_2.sce b/1223/CH7/EX7.2/Ex7_2.sce new file mode 100755 index 000000000..d185319ee --- /dev/null +++ b/1223/CH7/EX7.2/Ex7_2.sce @@ -0,0 +1,22 @@ +clear;
+clc;
+//Example 7.2
+Rs=1000;
+Rp=10000;
+Cs=1*10^-6;
+Cp=3*10^-12;
+Ts=(Rs+Rp)*Cs;
+printf('\nopen circuit time constant=%.3f s\n',Ts)
+Rs=1;//KOhm
+Rp=10;//KOhm
+Cp=3;//pF
+Tp=Cp*Rs*Rp/(Rs+Rp);
+printf('\nshort circuit time constant=%.3f ns\n',Tp)
+fL=1/(2*%pi*Ts);
+printf('\ncorner frequency fL=%.2f Hz\n',fL)
+Tp=2.73*10^-3;//microsec
+fH=1/(2*%pi*Tp);
+printf('\ncorner frequency fH=%.3f MHz\n',fH)
+fL=14.5*10^-6;//MHz
+fbw=fH-fL;
+printf('\nbandwidth =%.3fMHz\n',fbw)
diff --git a/1223/CH7/EX7.3/Ex7_3.sce b/1223/CH7/EX7.3/Ex7_3.sce new file mode 100755 index 000000000..c75ee8a65 --- /dev/null +++ b/1223/CH7/EX7.3/Ex7_3.sce @@ -0,0 +1,32 @@ +clear;
+clc;
+//Example 7.3
+R1=51.2;
+R2=9.6;
+Rc=2;
+Re=.4;
+Rsi=.1;
+Vt=0.026;
+Cc=1;
+Vcc=10;
+Vbe=0.7;
+b=100;
+Rb=8.08;
+Icq=1.81;
+gm=Icq/Vt;
+printf('\ntransconductance=%.3f mA/V\n',gm)
+r=b*Vt/Icq;
+printf('\ndiffusion resistance=%.2f KOhm\n',r)
+x=r+(1+b)*Re;
+y=x*R2/(x+R2);
+Ri=y*R1/(R1+y);
+printf('\ninput resistance=%.3f KOhm\n',Ri)
+Ts=(Rsi+Ri)*Cc;
+printf('\ntime constant=%.3f ms\',Ts)
+Ts=6.87*10^-3;//Sec
+fL=1/(2*%pi*Ts);
+printf('\ncorner frequency fL=%.3f Hz\n',fL)
+Rib=r+(1+b)*Re;
+printf('\nRib=%.3f KOhm\n',Rib)
+Av=(gm*r*Rc/(Rsi+Ri))*Rb/(Rb+Rib);
+printf('\nsmall signal voltage gain=%.2f\n',Av)
diff --git a/1223/CH7/EX7.4/Ex7_4.sce b/1223/CH7/EX7.4/Ex7_4.sce new file mode 100755 index 000000000..f0e336f3e --- /dev/null +++ b/1223/CH7/EX7.4/Ex7_4.sce @@ -0,0 +1,10 @@ +clear;
+clc;
+//Example 7.4
+fL=20*10^-3;//KHz
+Rd=6.7;
+Rl=10;
+Ts=1/(2*%pi*fL);
+printf('\ntime constant=%.3f ms\n',Ts)
+Cc=Ts/(Rd+Rl);
+printf('\ncoupling capacitance=%.3f microF\n',Cc)
diff --git a/1223/CH7/EX7.5/Ex7_5.sce b/1223/CH7/EX7.5/Ex7_5.sce new file mode 100755 index 000000000..98e487db8 --- /dev/null +++ b/1223/CH7/EX7.5/Ex7_5.sce @@ -0,0 +1,23 @@ +clear;
+clc;
+//Example 7.5
+b=100;
+Vbe=0.7;
+Rs=500;
+Rb=100000;
+Re=10000;
+Rl=10000;
+Va=120;
+Ccc2=1*10^-6;
+Icq=0.838*0.001;
+r=3100;//small signal parameter
+gm=32.2*0.001;
+ro=143000;
+x=(r+Rs*Rb/(Rs+Rb))/(1+b);
+y=ro*x/(ro+x);
+Ro=Re*y/(Re+y);
+printf('\noutput resistance of emitter=%.2f Ohm\n',Ro)
+Ts=(Ro+Rl)*Ccc2;
+printf('\ntime constant=%.2f s\n',Ts)
+fL=1/(2*%pi*Ts);
+printf('\n3dB frequency=%.2f Hz\n',fL)
diff --git a/1223/CH7/EX7.6/Ex7_6.sce b/1223/CH7/EX7.6/Ex7_6.sce new file mode 100755 index 000000000..c6ce8aeb8 --- /dev/null +++ b/1223/CH7/EX7.6/Ex7_6.sce @@ -0,0 +1,21 @@ +clear;
+clc;
+//Example 7.6
+Rs=3.2;
+Rd=10;
+Rl=20;
+Cl=10;
+Vtp=-2;
+Kp=0.25;
+Idq=0.5;
+Vsgq=3.41;
+Vsdq=3.41;
+gm=2*Kp*(Vsgq+Vtp);
+printf('\ntransconductance =%.3fmA/V\n',gm)
+Tp=Cl*Rd*Rl/(Rd+Rl);
+printf('\ntime constant=%.3f ns\n',Tp)
+Tp=66.7*10^-3;//micro sec
+fH=1/(2*%pi*Tp);
+printf('\ncorner frequency=%.2f MHz\n',fH)
+Av=(gm*Rd*Rl/(Rd+Rl))/(1+gm*Rs);
+printf('\nmaximum small signal voltage gain=%.2f\n',Av)
diff --git a/1223/CH7/EX7.7/Ex7_7.sce b/1223/CH7/EX7.7/Ex7_7.sce new file mode 100755 index 000000000..4f3a38f1a --- /dev/null +++ b/1223/CH7/EX7.7/Ex7_7.sce @@ -0,0 +1,39 @@ +clear;
+clc;
+//Example 7.7
+Vbe=0.7;
+b=100;
+Re=.5;
+Rc=5;
+Rl=10;
+R1=40;
+Cc=10;
+R2=5.7;
+Rs=.1;
+Vt=0.026;
+Icq=0.99;
+gm=Icq/Vt;
+printf('\ntransconductance=%.3f mA/V\n',gm)
+r=b*Vt/Icq;
+printf('\ndiffusion resistance=%.2f KOhm\n',r)
+Ri=r+(1+b)*Re;
+printf('\ninput resistance=%.2f KOhm\n',Ri)
+x=Rc*Rl/(Rc+Rl);
+y=R1*R2/(R1+R2);
+t=y*Ri/(y+Ri);
+Av=gm*r*x*(y/(y+Ri))*(1/(Rs+t));
+printf('\nmaximum small signal voltage gain=%.2f\n',Av)
+Ts=(Rs+t)*Cc;
+printf('\ntime constant=%.3f ms\n',Ts)
+Ts=46.6*0.001;//sec
+Cl=15;
+Tp=x*Cl;
+printf('\ntime constant=%.3f ns\n',Tp)
+fL=1/(2*%pi*Ts);
+printf('\nlower corner frequency=%.2f Hz\n',fL)
+Tp=50*10^-3;//micro sec
+fH=1/(2*%pi*Tp);
+printf('\nupper corner frequency=%.2f MHz\n',fH)
+fL=3.4*10^-6;//MHz
+fbw=fH-fL;
+printf('\nbandwidth =%.2fMHz\n',fbw)
diff --git a/1223/CH7/EX7.8/Ex7_8.sce b/1223/CH7/EX7.8/Ex7_8.sce new file mode 100755 index 000000000..0b4b40890 --- /dev/null +++ b/1223/CH7/EX7.8/Ex7_8.sce @@ -0,0 +1,30 @@ +clear;
+clc;
+//Example 7.8
+Re=4;
+Rc=2;
+Rs=0.5;
+Vt=0.026;
+Ce=1*10^-3;
+V1=5;
+Icq=1.06;
+V2=-5;
+b=100;
+Vbe=0.7;
+gm=Icq/Vt;
+printf('\ntransconductance =%.2fmA/V\n',gm)
+r=b*Vt/Icq;
+printf('\ndiffusion resistance=%.2f KOhm\n',r)
+Ta=Re*Ce;
+printf('\ntime constant Ta=%ef s\n',Ta)
+Tb=(Re*Ce*(Rs+r))/(Rs+r+(1+b)*Re);
+printf('\ntime constant Tb=%e s\n',Tb)
+fA=1/(2*%pi*Ta);
+printf('\ncorner frequency =%.2fHz\n',fA)
+Tb=2.9*0.01;//msec
+fB=1/(2*%pi*Tb);
+printf('\ncorner frequency =%.2fkHz\n',fB)
+Av=(gm*r*Rc)/(Rs+r+(1+b)*Re);
+printf('\nlimiting low frequency horizontal asymptote=%.2f\n',Av)
+Av=gm*r*Rc/(Rs+r);
+printf('\nnlimiting high frequency horizontal asymptote=%.2f\n',Av)
diff --git a/1223/CH7/EX7.9/Ex7_9.sce b/1223/CH7/EX7.9/Ex7_9.sce new file mode 100755 index 000000000..91759e449 --- /dev/null +++ b/1223/CH7/EX7.9/Ex7_9.sce @@ -0,0 +1,8 @@ +clear;
+clc;
+//Example 7.9
+r=2600;
+C1=2*10^-6;
+C2=0.1*10^-6;
+fB=1/(2*%pi*r*(C1+C2));
+printf('\n3dB frequency=%.2f MHz\n',fB)
diff --git a/1223/CH8/EX8.11/Ex8_11.sce b/1223/CH8/EX8.11/Ex8_11.sce new file mode 100755 index 000000000..6d6b2a2b9 --- /dev/null +++ b/1223/CH8/EX8.11/Ex8_11.sce @@ -0,0 +1,38 @@ +clear;
+clc;
+//Example 8.11
+R1=2;//KOhm
+R2=R1;
+Rl=.1;//KOhm
+b=60;
+Vbe=0.6;
+Veb=0.6;
+V1=15;
+V2=V1;
+iR1=(V1-Vbe)/R1;
+//iR1=iR2=iE1=iE2
+printf('\niR1=%.2f mA\n',iR1)
+vo=10;
+io=vo/Rl;
+printf('\noutput current=%.3f mA\n',io)
+iB3=100/61;
+printf('\niB3=%.3fmA\n',iB3)
+iR1=(V1-(10+Vbe))/R1;
+printf('\ncurrent in R1=%.3f mA\n',iR1)
+iE1=iR1-iB3;
+printf('\niE1=%.3f mA\n',iE1)
+iB1=iE1/(1+b);
+iB1=iB1*1000;//micro A
+printf('\niB1=%.3f microA\n',iB1)
+iE2=(10-0.6+15)/R1;
+printf('\niE2=%.3f mA\n',iE2)
+iB2=iE2/(1+b);
+iB2=iB2*1000;
+printf('\niB2=%.3f microA\n',iB2)
+Ii=iB2-iB1;
+printf('\ninput current=%.3f microA\n',Ii)
+Ii=Ii*0.001;//mA
+Ai=io/Ii;
+printf('\ncurrent gain=%.2f\n',Ai)
+Ai=(1+b)*R1/(2*Rl);
+printf('\npredicted current gain=%.2f\n',Ai)
diff --git a/1223/CH8/EX8.2/Ex8_2.sce b/1223/CH8/EX8.2/Ex8_2.sce new file mode 100755 index 000000000..ceca6c52f --- /dev/null +++ b/1223/CH8/EX8.2/Ex8_2.sce @@ -0,0 +1,17 @@ +clear;
+clc;
+//Example 8.1
+//let thermal resistance parameters be R
+Rdcase=1.75;//degree celsius per watt
+Rcsnk=1;//degree celsius per watt
+Rsamb=5;//degree celsius per watt
+Rcamb=50;//degree celsius per watt
+Tamb=30;//ambient temperature
+Tjmax=150;//maximum junction temperature
+Tdev=150;//device temperature
+//when no heat sink is used
+P=(Tjmax-Tamb)/(Rdcase+Rcamb);
+printf('\nmaximum power dissipation=%.2f W\n',P)
+//when heat sink is used
+P=(Tjmax-Tamb)/(Rdcase+Rcsnk+Rsamb);
+printf('\nmaximum power dissipation=%.2f W\n',P)
diff --git a/1223/CH8/EX8.3/Ex8_3.sce b/1223/CH8/EX8.3/Ex8_3.sce new file mode 100755 index 000000000..c0eecce6a --- /dev/null +++ b/1223/CH8/EX8.3/Ex8_3.sce @@ -0,0 +1,13 @@ +clear;
+clc;
+//Example 8.3
+Rcsnk=1;//degree celsius per watt
+Rsamb=5;//degree celsius per watt
+Tjmax=175;//maximum junction temperature
+Toc=25;
+Tamb=25;
+Pr=20;//rated power W
+Rdcase=(Tjmax-Toc)/Pr;
+printf('\ndevice to case thermal resistance=%.2f °C/W\n',Rdcase)
+P=(Tjmax-Tamb)/(Rdcase+Rcsnk+Rsamb);
+printf('\nmaximum power dissipation=%.2f W\n',P)
diff --git a/1223/CH8/EX8.7/Ex8_7.sce b/1223/CH8/EX8.7/Ex8_7.sce new file mode 100755 index 000000000..1a1b986e0 --- /dev/null +++ b/1223/CH8/EX8.7/Ex8_7.sce @@ -0,0 +1,21 @@ +clear;
+clc;
+//Example 8.7
+Vdd=10;
+Rl=20;
+K=0.2;
+Vt=1;
+vo=5;
+iL=vo/20;
+printf('\niL=%.2f A\n',iL)
+Idq=0.05;
+//Idq=K*(Vbb/2-Vt)
+Vbb=(sqrt(Idq/K)+1)*2;
+printf('\nVbb=%.2f V\n',Vbb)
+iD=iL;
+Vgsn=sqrt(iD/K)+Vt;
+printf('\nVgsn=%.2f V\n',Vgsn)
+Vsgp=Vbb-Vgsn;
+printf('\nVsgp=%.2f V\n',Vsgp)
+vi=vo+Vgsn-Vbb/2;
+printf('\ninput voltage=%.2f V\n',vi)
diff --git a/1223/CH8/EX8.8/Ex8_8.sce b/1223/CH8/EX8.8/Ex8_8.sce new file mode 100755 index 000000000..b87412fea --- /dev/null +++ b/1223/CH8/EX8.8/Ex8_8.sce @@ -0,0 +1,27 @@ +clear;
+clc;
+//Example 8.8
+Vcc=24;
+Rl=8;
+P=5;
+Vbe=0.7;
+b=100;
+Vp=sqrt(2*Rl*P);
+printf('\npeak output voltage=%.2f V\n',Vp)
+Ip=Vp/Rl;
+printf('\npeak output current =%.2fA\n',Ip)
+a=0.9*Vcc/Vp;
+printf('\na=%.2f\n',a)
+Icq=Ip/(0.9*a);
+printf('\nIcq=%.3f A\n',Icq)
+Pq=Vcc*Icq;
+printf('\nmaximum power dissipated in the transistor=%.2f W\n',Pq)
+Ibq=Icq/b;
+Ibq=Ibq*1000;//mA
+printf('\nbase current Ibq=%.2f mA\n',Ibq)
+Rth=2.500;
+//Vth=Vcc*Rth/R1 and Vth=Ibq*Rth+Vbe
+R1=Vcc*Rth/(Ibq*Rth+Vbe);
+printf('\nR1=%.2f KOhm\n',R1)
+R2=Rth*R1/(R1-Rth);
+printf('\nR2=%.2f KOhm\n',R2)
diff --git a/1223/CH8/EX8.9/Ex8_9.sce b/1223/CH8/EX8.9/Ex8_9.sce new file mode 100755 index 000000000..f202b7fa0 --- /dev/null +++ b/1223/CH8/EX8.9/Ex8_9.sce @@ -0,0 +1,38 @@ +clear;
+clc;
+//Example 8.9
+Iso=3*10^-14;
+Isq=10^-13;
+b=75;
+Vt=0.026;
+Rl=8;
+P=5;
+Vp=sqrt(2*Rl*P);
+printf('\npeak voltage Vp=%.2f V\n',Vp)
+Vcc=Vp/0.8;
+printf('\nsupply voltage=%.2f V\n',Vcc)
+Ien=Vp/Rl;
+printf('\nemitter current=%.3f A\n',Ien)
+Ibn=Ien/(1+b);
+Ibn=Ibn*1000;//mA
+printf('\nbase current=%.2f mA\n',Ibn)
+iD=0.020;
+Vbb=2*Vt*log(iD/Iso);
+printf('\nVbb=%.2f V\n',Vbb)
+Icq=Isq*exp((Vbb/2)/Vt);
+Icq=Icq*1000;//mA
+printf('\nquiescent collector current=%.3f mA\n',Icq)
+Ibias=20;//mA
+iD=Ibias-Ibn;
+printf('\ndrain current=%.3f mA\n',iD)
+iD=iD*0.001;//A
+Vbb=2*Vt*log(iD/Iso);
+printf('\nVbb=%.2f V\n',Vbb)
+Icn=1.12;
+Vben=Vt*log(Icn/Isq);
+printf('\nB-E voltage of Qn=%.2f V\n',Vben)
+Vebp=Vbb-Vben;
+printf('\nemitter base voltage of Qp=%.2f V\n',Vebp)
+Icp=Isq*exp(Vebp/Vt);
+Icp=Icp*1000;//mA
+printf('\nIcp=%f mA\n',Icp)
diff --git a/1223/CH9/EX9.5/Ex9_5.sce b/1223/CH9/EX9.5/Ex9_5.sce new file mode 100755 index 000000000..d45e41ddf --- /dev/null +++ b/1223/CH9/EX9.5/Ex9_5.sce @@ -0,0 +1,23 @@ +clear;
+clc;
+//Example 9.5
+Zl=0.1;
+R1=10;
+R2=1;
+R3=1;
+Rf=10;
+Vt=-5;
+iL=-Vt/R2;
+printf('\nload current=%.3f mA\n',iL)
+vL=iL*Zl;
+printf('\nvoltage across the load=%.2f V\n',vL)
+i4=vL/R2;
+printf('\ni4=%.3f mA\n',i4)
+i3=i4+iL;
+printf('\ni3=%.3f mA\n',i3)
+Vo=i3*R3+vL;
+printf('\noutput voltage=%.2f V\n',Vo)
+i1=Vt/R1;
+i2=i1;
+printf('\ni1=%.3f mA\n',i1)
+printf('\ni2=%.2f mA\n',i2)
diff --git a/1223/CH9/EX9.9/Ex9_9.sce b/1223/CH9/EX9.9/Ex9_9.sce new file mode 100755 index 000000000..892fb256c --- /dev/null +++ b/1223/CH9/EX9.9/Ex9_9.sce @@ -0,0 +1,9 @@ +clear;
+clc;
+//Example 9.9
+//Vo=(-1/R1*C2)*integrate((-1)dt)
+x=integrate('(-1)','t',0,1)
+Vo=10;
+//let y=R1*C2
+y=-x/Vo;
+printf('\nR1C2=%.2f ms\n',y)
|