repo2/atari_chips/pokeyv2/SID/investigation/findapproxshift.m
1186 | markw | ||
sigmoid = @(x) 1./(1.+e.^-x);
|
|||
vals = load('valsorig.mat','vals');
|
|||
vals = vals.vals;
|
|||
test = csvread('/home/markw/fpga/svn/repo/trunk/atari_800xl/atari_chips/pokeyv2/SID/investigation/output_6.csv');
|
|||
s1 = test(test(:,1)==1,:);
|
|||
%offset = -3546.8
|
|||
%scale = 13.590
|
|||
%bestx = -3547.2;
|
|||
%besty = 13.590;
|
|||
offset = -9.74126000000000
|
|||
scale = 0.00664125000000000
|
|||
%besterr = 2.79586225092504e-08
|
|||
loc = offset+(s1(:,5)*scale);
|
|||
besterr = inf;
|
|||
besterrplot = 0.1;
|
|||
bestps = 0;
|
|||
vals2 = nan(256,1024);
|
|||
%bestps = 117
|
|||
%besterr = 0.88494
|
|||
for ps = 0.0651:0.0000001:0.0654
|
|||
for i=1:256
|
|||
idx = loc+(ps*(i-1));
|
|||
vals2(i,:) = sigmoid(idx);
|
|||
end
|
|||
minf = 0.0018910;
|
|||
maxf = 0.13305;
|
|||
v2min = min(vals2(1,:));
|
|||
v2max = max(vals2(1,:));
|
|||
vals2 = vals2.-v2min;
|
|||
vals2 = vals2./(v2max-v2min);
|
|||
vals2 = vals2.*(maxf-minf);
|
|||
vals2 = vals2.+minf;
|
|||
err = sum(sum(abs((vals2(1:255,50:950).-vals(1:255,50:950))./maxf).^2));
|
|||
if err<besterr
|
|||
bestps = ps;
|
|||
besterr = err;
|
|||
bestps
|
|||
besterr
|
|||
if err<besterrplot
|
|||
figure;
|
|||
hold all
|
|||
plot(vals(1,:));
|
|||
plot(vals2(1,:));
|
|||
plot(vals(20,:));
|
|||
plot(vals2(20,:));
|
|||
plot(vals2(20,400:500).-vals(20,400:500));
|
|||
besterrplot = besterr*0.9;
|
|||
end
|
|||
end
|
|||
end
|
|||