summaryrefslogtreecommitdiff
path: root/3515/CH2/EX2.22/Ex_2_22.sce
blob: 6c0a51a49844b36d14a491d9569ebbb61a1e67a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// Exa 2.22
format('v',4);
clc;
clear; 
close;
// Given data 
Vt= 0.9;// in V
V_A= 50;// in V
V_D= 2;// in V
R_L= 10;// in MΩ
R_L= R_L*10^3;// in Ω
R_G= 10;// in MΩ
R_G= R_G*10^6;// in Ω
I_D= 500;// in µA
I_D= I_D*10^-6;// in A
V_GS= V_D;// in V
ro= V_A/I_D;// in Ω
gm= 2*I_D/(V_GS-Vt);// in A/V
// vo= -gm*vi*(ro || R_L)
vo_by_vi = -gm*(ro*R_L/(ro+R_L));// in V/V
disp(vo_by_vi ,"The voltage gain in V/V is : ")
// For I= 1 mA or twice the current 
I_D1= I_D;// in A
I_D2= 2*I_D1;// in A
gm1= gm;// in A/V
// Effect on V_D
// I_D1/I_D2 = (V_GS1-Vt)^2/(V_GS2-Vt)^2
V_GS1= V_GS;
V_GS2= Vt+sqrt(2)*(V_GS1-Vt);// in V
disp(V_GS2,"The new value of V_GS in volts is : ")
// Effect on gm
// gm1/gm2= sqrt(I_D1/I_D2)
gm2= sqrt(I_D2/I_D1)*gm1;// in A/V
gm2= gm2*10^3;// in mA/V
disp(gm2,"The new value of gm2 in mA/V is : ")
// Effect on ro
// ro1/ro2= I_D2/I_D1
ro1= ro;// in Ω
ro2= I_D1*ro1/I_D2;// in Ω
ro2= ro2*10^-3;// in kΩ
disp(ro2,"The new value of ro in kΩ/V is : ")
ro2= ro2*10^3;// in Ω
// Effect on gain
// Av= -gm*(ro2 || R_L)
Av= -gm*(ro2*R_L/(ro2+R_L));// in V/V
disp(Av,"The new value of voltage gain in V/V is : ")

// Note: There is some difference between  the new value of voltage gain in book and coding. The reason behind this is that , 
// the accurate value of new value of gm is 1.2856487 and in the book 1.3 has  taken at place of 1.2856487. 
// If we take this value of new value of gm 1.3 at place of 1.2856487 then our new voltage gain value will be same as in the book