% ejemplos para clase intro convertidores AD

bits = 4;

vmin=0;
vmax=10;

voltios=linspace(vmin,vmax,2^bits+1);
output=linspace(0,2^bits-1,2^bits);
output=[output output(end)];

fig_ini=1;
figure(fig_ini);
yticks=[];
ylabels={};
for cc_bits=0:bits+1
    if(cc_bits==0)
        ylabels{cc_bits+1}='0';
        yticks=0;
    elseif(cc_bits==bits+1)
        yticks=[yticks 2^bits-1];
        ylabels{cc_bits+1}=strcat('2^',num2str(bits),'-1');
    else
        yticks=[yticks 2^(cc_bits-1)];
        ylabels{cc_bits+1}=strcat('2^',num2str(cc_bits-1));
    end
end
stairs(voltios,output,'LineWidth',2);
set(gca,'YTick',yticks,'YTickLabel',ylabels);
xlabel('(voltios)');
ylabel('(digital)');grid on;
title('A/D');
axis([voltios(1) voltios(end) output(1) output(end)]);

