Delta = 1;
Off = Delta/2;
G = 3;
T = 5;
N = 100;
[t,x,yy] = sim('L17_folding_sim', 0:T/N:T);
vin = yy(:, 1) / Delta;
a1  = yy(:, 6);
a2  = yy(:, 5);
a3  = yy(:, 4);
a4  = yy(:, 3);
y   = yy(:, 2);
a1_ = yy(:, 11);
a2_ = yy(:, 10);
a3_ = yy(:, 9);
a4_ = yy(:, 8);
y_  = yy(:, 7);
y__ = yy(:, 12);


figure(1);
plot(vin, -y); 
hold on;
% plot(vin, vin, 'r:');
xx = [ 1 1 ];  yy = [ -0.1 1.1 ];
plot(0*xx, yy, 'k:');
plot(1*xx, yy, 'k:');
plot(2*xx, yy, 'k:');
plot(3*xx, yy, 'k:');
plot(4*xx, yy, 'k:');
xlabel('Vin / \Delta');
ylabel('Folder Output');
hold off;
fixfig;

figure(2);
subplot(3, 1, 1);
plot(vin, a1);
ylabel('A1');
axis([min(vin) max(vin) -0.6 0.6 ]);
fixfig;
subplot(3, 1, 2);
plot(vin, a2);
ylabel('A2');
axis([min(vin) max(vin) -0.6 0.6 ]);
fixfig;
subplot(3, 1, 3);
plot(vin, a1-a2);
ylabel('A1-A2');
xlabel('Vin / \Delta');
axis([min(vin) max(vin) -0.1 1.1 ]);
fixfig;

figure(3);
subplot(3, 1, 1);
plot(vin, a1-a2);
ylabel('A1-A2');
axis([min(vin) max(vin) -0.1 1.1 ]);
fixfig;
subplot(3, 1, 2);
plot(vin, a3);
ylabel('A3');
axis([min(vin) max(vin) -0.6 0.6 ]);
fixfig;
subplot(3, 1, 3);
plot(vin, a1-a2+a3);
ylabel('A1-A2+A3');
xlabel('Vin / \Delta');
axis([min(vin) max(vin) -0.6 0.6 ]);
fixfig;

figure(4);
subplot(2, 1, 1);
plot(vin, -y-0.5, vin, -y_-0.5);
ylabel('Folder Output');
legend('Ideal Folder', 'CMOS Folder', 0);
fixfig;
subplot(2, 1, 2);
plot(vin, -y+y_);
ylabel('Error');
xlabel('Vin / \Delta');
fixfig;

figure(5);
plot(vin, -y_-0.5, vin+Delta/4, -y_-0.5, vin+Delta/2, -y_-0.5, vin+Delta*3/4, -y_-0.5, [0 5], [0 0], 'k:');
xlabel('Vin / \Delta');
ylabel('Folder Output');
legend('F1', 'F2', 'F3', 'F4');
fixfig;

figure(6);
f1 = -y_-0.5;
f2 = -y__-0.5;
plot(vin, f1, vin, f2, vin, 0.25*f1+0.75*f2, vin, 0.5*f1+0.5*f2, vin, 0.75*f1+0.25*f2, [0 5], [0 0], 'k:');
xlabel('Vin / \Delta');
ylabel('Folder / Interpolator Output');
legend('F1', 'F2', 'I1', 'I2', 'I3');
fixfig;