tsys01/m-files/testval.m
2018-05-27 18:48:33 +03:00

30 lines
798 B
Matlab

function v = testval()
K = [34100, 22617, 15996, 7338, 5714];
printf("RAW\t\tdouble\tint\n");
for raw = 8000000:100000:10000000;
ii = getint(K, raw);
s = sign(ii);
ii = abs(ii);
f = floor(ii/100);
printf("%10d\t%.2f\t%d.%02d\n", raw, getdouble(K, raw), f*s, ii-100*f);
endfor
endfunction
function T = getdouble(K, raw)
val = raw/256.;
T = K(1)*(-1.5e-2) + 0.1e-5*val*(K(2) + 1e-5*val*(K(3)*(-2) + 1e-5*val*(4*K(4) + 1e-5*val*(-2)*K(5))));
endfunction
function T = getint(K, raw)
val = int64(raw);
mul = int64([0, 1, -2, 4, -2]);
tmp = int64(0);
for j = 5:-1:2
tmp /= 100000;
tmp += mul(j) * K(j);
tmp *= val;
tmp /= 256;
endfor
T = double(tmp*1e-4 + (-1.5)*K(1));
endfunction