Constraint on a filter First of all thanks for your patience: it is the first time for me posting a question in this forum. I am not a DSP expert, but I should get by if you give me in depth explanation.

This is an example of my raw data 



and a link to the actual dataset (time=t0, acceleration=acc). 

My problem is the following: I am measuring accelerometer data for an experiment, but I am having a hard time filtering out the raw acceleration data for double integration of velocity and position. The first thing that I do is to remove the dc component of the data via

#python code
func = interp1d(t0,acc)
dt = 10./1000. # [secs]
ta = np.arange(t0[0],t0[-1],dt)
a = func(ta)
n = len(a)
freq = np.fft.fftfreq(n, d=dt)
freq[0]=1e-16
F = np.fft.fft(a) 
F[0]=0
new_acc = np.real(np.fft.ifft(F))


In particular, I have the physical constraint the integrated velocity should be always positive, or equal to zero where the acceleration is equal to zero. 
However, when I integrate the new_acc, 

v = cumtrapz(new_acc)*dt


this is what I get:



Leaving alone for a minute the position (which is ultimately really what I am interested in)
my question is: 

is there any way to design a filter such that the integral of the filtered signal is always >=0 ? 

Alternatively, if you believe that the one above is the wrong question to ask: 

what is the best way to integrate (twice) this dataset?
Beware.  A Gaussian random walk has a non-zero distribution width that increases with time.  Thus the double integral of that random walk will likely very quickly zoom off the edge of your solution space.  A linear filtering of that random walk won't behave any better.  Whether or not mixed with the "real" acceleration signal.