Remove crappy data from the beginning of log-locked
Add script to make a histogram. Looks pretty good: 93% of points are within ±5mA (14 bits) 99.9% of points are within ±10mA (13 bits) git-svn-id: https://bucket.mit.edu/svn/nilm/zoom@8115 ddd99763-3ecb-0310-9145-efcb8ce7c51f
This commit is contained in:
parent
72e409c107
commit
2e991709ee
pc/data/20091104
Binary file not shown.
14
pc/data/20091104/makehist.m
Normal file
14
pc/data/20091104/makehist.m
Normal file
|
@ -0,0 +1,14 @@
|
|||
a=load("log-locked");
|
||||
len=size(a,1)
|
||||
keith=a(:,3);
|
||||
calib=a(1,4)
|
||||
dac=a(:,5);
|
||||
adc=a(:,6);
|
||||
lookup=load("../../../firmware/lookup.inc");
|
||||
meas=-(lookup(dac + 1)/64 - calib * adc);
|
||||
keith_amps = keith * 50; # 50 turns
|
||||
p = polyfit(meas, keith_amps, 1)
|
||||
meas_amps = meas * p(1) + p(2); # calibration fit
|
||||
err_amps = keith_amps - meas_amps;
|
||||
|
||||
[n, x] = hist(err_amps*1000, [-15:0.5:15], 1);
|
|
@ -1,6 +1,6 @@
|
|||
Some processing thoughts:
|
||||
|
||||
grep ^1 log | tail -n +125 > log-locked
|
||||
zcat log.gz | grep ^1 | tail -n +200000 > log-locked
|
||||
|
||||
octave:
|
||||
|
||||
|
@ -9,20 +9,20 @@ octave:
|
|||
t=1:10000;
|
||||
keith=a(:,3);
|
||||
calib=a(1,4)
|
||||
|
||||
dac=a(:,5);
|
||||
adc=a(:,6);
|
||||
meas=-(dac - calib * adc);
|
||||
plot(keith(t),meas(t))
|
||||
p = polyfit(keith, meas, 1)
|
||||
plot(keith(t),meas(t)) # should be linear
|
||||
|
||||
p = polyfit(keith, meas, 1)
|
||||
plot(t,keith(t) * p(1) + p(2),t,meas(t)) # should match
|
||||
|
||||
plot(t,keith(t) * p(1) + p(2),t,meas(t))
|
||||
t=1:len;
|
||||
plot(t,keith(t) * p(1) + p(2) - meas(t))
|
||||
plot(t,keith(t) * p(1) + p(2) - meas(t)) # absolute error (units=dac)
|
||||
axis([0 len -1 1])
|
||||
|
||||
Range is something like +- 0.5 over the entire range (of "DAC values")
|
||||
This gives log(1024 / 0.5) / log(2) = 11 bits
|
||||
This gives log(1024 / 1.0) / log(2) = 10 bits
|
||||
No good!
|
||||
Now let's convert the DAC values to their more-accurate value using the lookup table
|
||||
|
||||
|
@ -31,10 +31,11 @@ Now let's convert the DAC values to their more-accurate value using the lookup t
|
|||
meas=-(lookup(dac + 1)/64 - calib * adc);
|
||||
p = polyfit(keith, meas, 1)
|
||||
t=1:len;
|
||||
plot(t,keith(t) * p(1) + p(2) - meas(t))
|
||||
|
||||
plot(t,keith(t) * p(1) + p(2) - meas(t)) # absolute error (units=dac)
|
||||
axis([0 len -0.3 0.3])
|
||||
|
||||
Now closer to +- 0.1
|
||||
Now closer to +- 0.05
|
||||
This gives log(1024 / 0.1) / log(2) = 13.3 bits
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user