Smoothing data by using Kalman filter
Using the same state transition information as this answer to another question, but using:

y(t) = round(H*x_truth(:,t) + rand(1,1,"normal")*sqrt(R));


as the signal model's output equation, we can apply the same Kalman filter.

This is not really accurate, because the round function is a nonlinearity sort of like quantization. However, quantization can also be modeled as an additive noise, so we'll proceed.

The results are shown in the plot below.

Here, 


the black line is the true position, 
the red + signs are the quantized, noisy position measurements, and
the green line is the Kalman filter's estimate of the position.


Is this the sort of "smoothing" you're interested in?



And the error between the true position and the Kalman filter's estimate is:





Including full scilab script for reference.

// Signal Model
DeltaT = 0.1;
F = [1 DeltaT; 0 1];
G = [DeltaT^2/2; DeltaT];
H = [1 0];

x0 = [0;0];
sigma_a = 0.1;

Q = sigma_a^2;
R = 0.1;

N = 1000;

a = rand(1,N,"normal")*sigma_a;

x_truth(:,1) = x0;
for t=1:N,
    x_truth(:,t+1) = F*x_truth(:,t) + G*a(t);
    y(t) = round(H*x_truth(:,t) + rand(1,1,"normal")*sqrt(R));  // &lt;== Changed line!!
end

// Kalman Filter
p0 = 100*eye(2,2);

xx(:,1) = x0;
pp = p0;
pp_norm(1) = norm(pp);
for t=1:N,
    [x1,p1,x,p] = kalm(y(t),xx(:,t),pp,F,G,H,Q,R);
    xx(:,t+1) = x1;
    pp = p1;
    pp_norm(t+1) = norm(pp);
end

// Plots
figure(1);
clf;
plot(x_truth(1,:),'ko');
plot(y,'r+');  
plot(xx(1,:),'g.');

figure(2);
clf;
plot(x_truth(1,:) - xx(1,:));