How to find an optimum linear interpolator replacement for the ideal sinc function? The reason is for the hardware implementation ease.

For example when I use sinc interpolation:

Temp = sinc( (-7:7)+0.1697 ) * ADC( (0:14)+2 )';

I get 0.9509; however with linear interpolation:

yi = interp1((0:14)+2 , ADC((0:14)+2) , (0:14)+2-0.1697 , 'linear');
Temp = yi(8);

I get Temp = 0.8410. Is there any better interpolation possible with linear?


  • 2
    $\begingroup$ how is a linear interpolator "optimized" beyond linear interpolation? $\endgroup$ – robert bristow-johnson Apr 9 '15 at 21:29
  • $\begingroup$ what is the question? $\endgroup$ – Andreas H. Apr 9 '15 at 22:29
  • $\begingroup$ I have edited my question according to the above comments. $\endgroup$ – Elnaz Apr 9 '15 at 22:42
  • $\begingroup$ @ robert bristow-johnson, I mean in regards with the frequency response. $\endgroup$ – Elnaz Apr 9 '15 at 22:46
  • 2
    $\begingroup$ @Elnaz, I don't think you understand how many degrees of freedom there are to be optimised for a linear interpolator. The exact number is 0. $\endgroup$ – Jazzmaniac Apr 9 '15 at 22:59

If you use a high enough resolution table for your Sinc function, filter kernel or reconstruction formula, you might be able linearly interpolate between the table elements and still meet your quality requirements.

The trade-off is memory lookups versus function computation cycles. But caches misses or lookup memories can be more expensive than FPU or MAC latencies on many contemporary systems.

  • $\begingroup$ I have included an example of what I want to achieve. $\endgroup$ – Elnaz Apr 10 '15 at 0:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.