mirror of
https://github.com/eddyem/tsys01.git
synced 2025-12-06 10:35:14 +03:00
30 lines
798 B
Matlab
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
|