Вы находитесь на странице: 1из 2

1 %%Date 05-02-17 Mon

2 %N_bit PIPELINED ADC with input being vin and bit sequence at the output
3 %being ana_out
4 radix = 2;
5 N = 4;
6 vrefp = 1;
7
8 vin = linspace(-1,1,2001);
9
10 for j = 1:2001
11 a(j) = vin(j);
12 ana_out(j) = 0;
13
14 for i = 1:N
15 if(a(j) > 0)
16 d(i,j) = 1;
17 ref(i,j) = 1/((radix)^(i));
18 ref_aos(i,j) = -vrefp;
19
20 else
21 d(i,j) = 0;
22 ref(i,j) = -1/((radix)^(i));
23 ref_aos(i,j) = vrefp;
24 end
25
26 output(j) = (a(j)*(radix)) + (ref_aos(i,j));
27 a(j) = output(j);
28 analog_equi(j) = ana_out(j) + (ref(i,j));
29 ana_out(j) = analog_equi(j);
30 end
31 end
32
33 %Transfer Characteristics
34 plot(vin, ana_out);
35 xlabel('input: analog')
36 ylabel('output: quantized and converted')
37 title('Transfer Characteristics of ADC - DAC')
38
39
40 %robertson_diagram
41 vin_r = linspace(-1 , 1 , 2001);
42 for k = 1:2001
43 if(vin_r(k) <= 0 )
44 vout(k) = ana_out(k)*2 + 1;
45 else
46 vout(k) = ana_out(k)*2 - 1;
47 end
48 end
49 plot (vin_r , vout );
50 xlabel('input: -vin to vin')
51 ylabel('output: MDAC output')
52 title('Robertson Plot: quantized')
53
54 %Ideal Robertson Plot
55 vin_i = linspace(-1 , 1 , 2001);
56 for in_ideal = 1:2001
57
58 if(vin(in_ideal) <= 0 )
59 vout_ideal(in_ideal) = vin_i(in_ideal)*2 + 1;
60 else
61 vout_ideal(in_ideal) = vin_i(in_ideal)*2 - 1;
62 end
63 end
64 plot (vin_i , vout_ideal )
65 xlabel('input: -vin to vin')
66 ylabel('output: MDAC output')
67 title('Robertson Plot: ideal')
68
69 %misc
70 vin_diff = linspace(-1 , 1 , 2001);
71 for x = 1:2001
72 vout_diff(x) = vout_ideal(x) - ana_out(x);
73 end
74 plot (vin_diff, vout_diff )
75
76

Вам также может понравиться