blob: 746e2c1b0bbcf1caeffdab1c6ce94f0a2de3e2b9 (
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
|
// Exa 4.5
clc;
clear;
close;
// Given data
R_D= 5;// in kΩ
R_D= R_D*10^3;// in Ω
R_SS= 25;// in kΩ
R_SS= R_SS*10^3;// in Ω
I= 0.8;// in mA
I=I*10^-3;// in A
i_D= I/2;// in A
unCox= 0.2;// mA/V^2
unCox= unCox*10^-3;// in A/V^2
WbyL= 100;
// Formula i_D= 1/2*unCox*WbyL*V_OV^2
V_OV= sqrt(2*i_D/(unCox*WbyL));// in V
gm= i_D/V_OV;// in A/V;
// Part (a)
Ad= 1/2*gm*R_D;// in V/V
disp(Ad,"Differential gain in V/V is : ")
Acm= -R_D/(2*R_SS);// in V/V
disp(Acm,"Common mode gain in V/V is ")
CMRR= abs(Ad)/abs(Acm);
CMRRindB= round(20*log10(CMRR));// in dB
disp(CMRRindB,"Common mode rejection ratio in dB is : ")
// Part (b)
disp("Part (b) when output is taken differentially")
Ad= gm*R_D;// in V/V
disp(Ad,"Differential gain in V/V is : ")
Acm= 0;
disp(Acm,"Common mode gain in V/V is ")
// CMRRindB= 20*log10(Ad/Acm) = infinite ;// in dB
disp("Common mode rejection ratio in dB is : ")
disp("infinite");
// Part (c)
disp("Part (c) when output is taken differentially but the drain resistance have a 1% mismatch.")
Ad= gm*R_D;// in V/V
disp(Ad,"Differential gain in V/V is : ")
// delta_R_D= 1% of R_D
delta_R_D= R_D*1/100;// in Ω
Acm= R_D/(2*R_SS)*delta_R_D/R_D;// in V/V
disp(Acm,"Common mode gain in V/V is ")
CMRRindB= 20*log10(abs(Ad)/abs(Acm));// in dB
disp(CMRRindB,"Common mode rejection ratio in dB is : ")
// Note: In the book, there is putting wrong value of Ad (20 at place of 10) to evaluate the value of CMRR in dB in part(c) , So the answer of CMRR in dB of Part (c) is wrong
|