## Copyright (C) 2017 Jens Ahrensfeld ## ## This program is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program. If not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {@var{retval} =} adc_eval (@var{input1}, @var{input2}) ## ## @seealso{} ## @end deftypefn ## Author: Jens Ahrensfeld ## Created: 2017-03-07 function [output] = adc_eval (nbits, input) Vref = 1.0; %output = adc_pipelined(Vref, nbits, input) output = adc_SAR(Vref, nbits, input) function output = adc_pipelined(VRref, nbits, input) output = zeros(1, nbits); for n=1:nbits, if input >= Vref/2 output(n) = 1; input = input - Vref/2 end input = input * 2 end function output = adc_SAR(VRref, nbits, input) Vsar = 0; VStep = VRref/2 output = zeros(1, nbits); for n=1:nbits, if input >= (Vsar + VStep) output(n) = 1 Vsar = Vsar + VStep; end VStep = VStep / 2; end