summaryrefslogtreecommitdiff
path: root/135/CH10/EX10.21/EX21.sce
blob: 5a093b5a5052dd2b519b4ddab7fe757858bb72ff (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
// Example 10.21: (a) AVo, Approximate value of fH
//                (b) Frequency of the nearest non-dominant pole
clc, clear
gm=1e-3; // in mho
Rd=40e3; // in ohms
Cgs=5e-12; // in farads
Cgd=1e-12; // in farads
Cds=1e-12; // in farads

function[c]=parallel(a,b)
    c=a*b/(a+b);
endfunction

disp("Part (a)");
RS=5e3; // in ohms
RD1=40e3; // in ohms
RD2=10e3; // in ohms
// From AC model of cascade amplifier in Fig. 10.80
Rds1=40e3; // in ohms
Rds2=40e3; // in ohms
R11_0=RS; // in ohms
RL1=parallel(Rds1,RD1); // in ohms
R22_0=RS+RL1+gm*RS*RL1; // in ohms
R33_0=RL1; // in ohms
RL2=parallel(Rds2,RD2); // in ohms
R44_0=RL1+RL2+gm*RL1*RL2; // in ohms
R55_0=RL2; // in ohms
C1=Cgs; // in farads
C2=Cgd; // in farads
C3=Cds+Cgs; // in farads
C4=Cds; // in farads
C5=Cds; // in farads
a1=C1*R11_0+C2*R22_0+C3*R33_0+C4*R44_0+C5*R55_0; // in seconds
fH=1/(2*%pi*a1); // in hertz
fH=fH*1e-6; // in Mega-hertz
AVo=gm*RL1*gm*RL2;
disp(AVo,"AVo =");
disp(fH,"Approximate value of fH (MHz) =");

disp("Part (b)");
R22_1=RL1; // in ohms
R33_1=RL1; // in ohms
R44_1=R44_0; // in ohms
R55_1=RL2; // in ohms
R33_2=parallel(RL1,parallel(1/gm,RS)); // in ohms
R44_2=R33_2+RL2+gm*R33_2*RL2; // in ohms
R55_2=R55_0; // in ohms
R44_3=RL2; // in ohms
R55_3=RL2; // in ohms
R55_4=parallel(RL1,parallel(1/gm,RL2)); // in ohms
a2=R11_0*C1*(R22_1*C2+R33_1*C3+R44_1*C4+R55_1*C5)+R22_0*C2*(R33_2*C3+R44_2*C4+R55_2*C5)+R33_0*C3*(R44_3*C4+R55_3*C5)+R44_0*C4*R55_4*C5; // in seconds
p2=a1/a2;
f=p2/(2*%pi); // in hertz
f=f*1e-6; // in Mega-hertz
disp(f,"Frequency of the nearest non-dominant pole (MHz) =");