After considering a couple of advices and suggestions for upsampling techniques here, I finally converged to use the cubic interpolation technique to estimate the voltage values corresponding to intermediate samples present between the original or previous samples. I know that spline interpolation is basically used for getting smoother curves, but what makes it different from the normal cubic interpolation technique as both of them use a 3rd degree polynomial to estimate intermediate values?.
Another implementation issue is that, for example, If I have some voltages corresponding to some samples say
V = 3.674, 6.791, 8.888, 9.667..... Sample = 2, 3, 4, 5.....
Now, If we have to find the voltage information corresponding to the intermediate sample 3.5, then using cubic polynomial method, we arrive at 4 equations and 4 unknowns obtained by using the information provided by the neighboring samples closest to sample 3.5.
V(2) = a + 2b + 4c + 8d V(3) = a + 3b + 9c + 16d V(4) = a + 4b + 16c + 64d V(5) = a + 5b + 125c + 125d
So, solving these equations I arrived at
a = -4.428 b = 4.3756 c = -0.06299 d = -0.04966
Using these values , we can calculate the voltage value at the sample 3.5 as
V(3.5) = a + 3.5b + 12.25c + 42.875d V(3.5) = 7.186 Volts
Now my question - Is this method of interpolation suitable for large sampling rates?. How can I use this technique for upsampling a signal say from 10 sps to 100 sps for N = 1024 sample points?. I know that I have to develop a function that performs this cubic interpolation task between original samples (in C++), but I am just wondering how to implement it for upsampling for a continuous series of samples . Any suggestions, ideas or advices regarding the topic and its implementation would be appreciated. Thanks!
I understand that cubic interpolation can operate on 4 data points and the more sophisticated technique I can think of is cubic spline. In case I am using the normal cubic interpolation, how about I loop through the "N" sample points i.e. 1024, for a condition below the "input sampling rate" i.e. 10 sps considering 4 data points each and then performing the interpolation function based on the up sampling factor between each of those 4 consecutive data points (Meaning - Interpolating/Estimating 10 values between each of those 4 data points) and then the function considers the next 4 data points to perform the same operation and it goes on until a 100 samples has bee acquired i.e. the output sampling rate!