function [y, c] = const_encoder(value, c0, nsamples) % [y, c] = encoder(value, c0, nsamples) % % encoder(pi, 0, 100) c(1) = c0; y(1) = 0; for i=1:nsamples y(i) = round(value-c(i)); c(i+1) = c(i)-(value-round(value-c(i))); end for i=1:nsamples m(i) = mean(y(1:i)); end m(nsamples) for i=1:nsamples sumc(i) = sum(c(1:i)); end sumc(nsamples) figure; nfig=4; subplot(nfig,1,1); p=plot(0:(nsamples-1),y,'.'); setstyle(p); a=axis; axis([-1 nsamples a(3)-0.1 a(4)+0.1]) title('y(k)'); subplot(nfig,1,2); title('c(k)'); p=plot(0:(nsamples-1),c(1:nsamples),'.'); setstyle(p); a=axis; axis([-1 nsamples a(3)-0.1 a(4)+0.1]) title('c(k)'); subplot(nfig,1,3); p=plot(0:(nsamples-1),m,'.'); setstyle(p); a=axis; axis([-1 nsamples a(3)-0.1 a(4)+0.1]) title('average of y(0), ..., y(k)'); if true subplot(nfig,1,4); p=plot(0:(nsamples-1),sumc,'.'); setstyle(p); % a=axis; axis([-1 nsamples a(3)-0.1 a(4)+0.1]) end fprintf('sum(c(i)) in %f %f\n', max(sumc), min(sumc)) function setstyle(p) set(p, 'MarkerSize', 15);