function y = adc(x, thresholds)
% ADC    quantize input to integers
%
% Y = ADC(X, THRESHOLDS)
%        maps X to values 0:length(THRESHOLDS) such that
%        Y = 0          for X < THRESHOLDS(1)
%        Y = 1          for TH(1) <= X < TH(2)
%        ...
%        Y = length(X)  for X >= TH(end)
%

N = length(x);
y = zeros(N, 1);
for i=1:N
    y(i) = sum(x(i) >= thresholds);
end

return

N = length(thresholds);

% make sure thresholds is a column vector
thresholds = reshape(thresholds, N, 1);

% sort by level ... in case ADC is non-monotonic
xy = sortrows([thresholds (1:N)'], 1);
th = xy(:, 1);
cc = xy(:, 2);

y  = zeros(length(x), 1);
for i = 1:N
   y(x >= th(i)) = cc(i);
end
