import matplotlib.pyplot as plt from pylab import subplot, plot, title, figure from numpy import random, arange, sin from sg_filter import SavitzkyGolay, smoothn # calc_coeff, smooth def example_reconstruct_noisy_chirp(): figure(figsize=(7, 12)) # generate chirp signal tvec = arange(0, 6.28, .02) true_signal = sin(tvec * (2.0 + tvec)) # add noise to signal noise = random.normal(size=true_signal.shape) signal = true_signal + .15 * noise # plot signal subplot(311) plot(signal) title('signal') # smooth and plot signal subplot(312) savgol = SavitzkyGolay(n=8, degree=4) s_signal = savgol.smooth(signal) s2 = smoothn(signal, robust=True) plot(s_signal) plot(s2) plot(true_signal, 'r--') title('smoothed signal') # smooth derivative of signal and plot it subplot(313) savgol1 = SavitzkyGolay(n=8, degree=1, diff_order=1) d_signal = savgol1.smooth(signal) plot(d_signal) title('smoothed derivative of signal') plt.show('hold') # show plot if __name__ == '__main__': example_reconstruct_noisy_chirp()