Time for action – interpolating in one dimension
We will create data points using a sinc
function and add some random noise to them. After that, we will do a linear and cubic interpolation, and plot the results. Perform the following steps to do so:
Create the data points and add noise to them.
x = np.linspace(-18, 18, 36) noise = 0.1 * np.random.random(len(x)) signal = np.sinc(x) + noise
Create a linear interpolation function and apply it to an input array with five times as many data points.
interpreted = interpolate.interp1d(x, signal) x2 = np.linspace(-18, 18, 180) y = interpreted(x2)
Do the same as in the previous step, but with cubic interpolation.
cubic = interpolate.interp1d(x, signal, kind=”cubic”) y2 = cubic(x2)
Plot the results with Matplotlib.
plt.plot(x, signal, ‘o’, label=”data”) plt.plot(x2, y, ‘-’, label=”linear”) plt.plot(x2, y2, ‘-’, lw=2, label=”cubic”) plt.legend() plt.show()
The following screenshot is a plot of the data, linear, and cubic interpolation: