MATLAB: How to perform a proper interpolation with only few data points

interpolationregression

I want to interpolate the following data:
I was trying:
interpolation = interp1(frequency,linear scaling,'spline')
But this doesn't work well at all! Is there a better way?

Best Answer

You need a vector of independent values to interpolate. Note that the variable name ‘linear scaling’ (with the included space) is not a valid MATLAB variable name, and with the space would throw an error because there is no required comma (,) to separate the arguments. I added the underscore to rename it ‘linear_scaling’.
See if this improves your results:
freq_intrp = linspace(min(frequency), max(frequency), 50);
interpolation = interp1(frequency, linear_scaling, freq_intrp, 'spline');
I chose 50 points (third argument to linspace) between the frequency limits. Use as many points as you like.