def SavGol(t,y,s,k): c1 = SG.derivatives(s,k,0) c2 = SG.derivatives(s,k,1) ys = [] ydiff = [] xs =[] m = (s-1)/2 for j in range(m,len(t)-m): sum1 = 0.0 dev1 =0.0 for l in range(0,s): sum1 = sum1 + c1[l]*y[j-m+l] dev1 = dev1 + c2[l]*y[j-m+l]/(t[1]-t[0]) ys.append(sum1) ydiff.append(dev1) xs.append(t[j]) return (xs,ys,ydiff)
def Savitzky(x,y,s,k): m = (s-1)/2 coeffs = SG.derivatives(s,k,0) coeffs_1st = SG.derivatives(s,k,1) xt = [] yt = [] y_diff =[] for i in range(m,len(x)-m): sum1 = 0.0 dev1 = 0.0 for j in range(0,s): sum1 = sum1 + coeffs[j]*y[i-m+j] dev1 = dev1 + coeffs_1st[j]*y[i-m+j] yt.append(sum1) y_diff.append(dev1) xt.append(x[i]) return (yt,y_diff,xt)
y = np.zeros(len(x)) for i in range(len(x)): y[i] = np.sin(x[i]*10.0*pi/x[-1])+random.random()/10.0 Q=0.1 R = 0.7 #xks,ydiffs = deriv(x,y) ks = kalman.kalman(x,y,Q,R) ys = [] ydiff = [] xs =[] s =11 k = 5 c1 = SG.derivatives(s,k,0) c2 = SG.derivatives(s,k,1) m = (s-1)/2 for j in range(m,len(y)-m): sum1 = 0.0 dev1 =0.0 for l in range(0,s): sum1 = sum1 + c1[l]*y[j-m+l] dev1 = dev1 + c2[l]*y[j-m+l]/(x[1]-x[0]) ys.append(sum1) ydiff.append(dev1) xs.append(x[j]) plt.subplot(211) plt.plot(x,y,label='real')