I am processing the data from serial. I have to filter the data to remove ripples. I have tried with the following code. However, I can't get the expected results. Suggest me which type of filter I have to use in order to get expected results?
def graph_plot(): plt.xlabel("samples") plt.ylabel("data") plt.xlim([0, 2048]) plt.ylim([0, 255]) return plt plt.ion() fig = plt.figure() ax = fig.add_subplot(111) ax.minorticks_on() ax.grid(1, which = 'both', axis = 'y', markevery = 5) actual_rx_data = rx_data[4:2052] #rx_data is input from serial N = len(actual_rx_data) rx_data = [actual_rx_data[i] for i in range (0, N)] rx_data = np.reshape(rx_data, (2048, 1)) smoother = ConvolutionSmoother(window_len = 20, window_type = 'ones') smoother.smooth(rx_data) plt = graph_plot() ax.plot(rx_data, color = 'red') #input ax.plot(smoother.smooth_data, linewidth = 2, color = 'blue') #output ax.clear()
Result obtained by the above code https://i.stack.imgur.com/xS6ct.jpg
Expected results in blue color https://i.stack.imgur.com/RoxlY.jpg
Fourier spectrum https://i.stack.imgur.com/6L3Vc.jpg