I need to interpolate a complex valued bandlimited periodic function using local interpolation.
I can have the signal sampled at any frequency I want over at equispace intervals.
I am aware that for bandlimited periodic functions the best interpolation method is global interpolation (FFT).
However, for this project I need to use local interpolation. I managed to perform the interpolation using Lagrange polynomials of order 10 but I require an oversampling of 2 to achieve the desired results. My goal is to reduce oversampling to any extend even if I need a longer interpolator.
I recently read as much as I could about FIR filters but somethings are not clear to me.
Since the interpolation factor is of the order of 2, I am planning to use a halfband pass interpolator (many books say this is the best since one gets a cheap interpolator due to the zeros in the impulse response).
My questions are:
How do I design a halfband pass filter? In Matlab there are nice functions in the dsp package that allow directly to construct such filters, unfortunately I have to do this implementation in C. I searched and I found that the
remez()
function from Octave to compute the coefficients is available in C and is the one I am planning to use.
Designing a low pass filter with the Parks-Mclellan algorithm is it by default a halfband pass filter (provided I set up correctly the frequency bands) or do I have to enforce the time domain constraints?Regarding the linear phase of the FIR filter, what I understand is that my signal will be shifted by some samples, how do I compensate to remove the shifting? What comes to my mind is to apply the corresponding shifting on the opposite direction, is this necessary?
- If you could provide an working example of an interpolation of a periodic function (e.g. sum of sines) using a FIR I would be very grateful.
remez
half-band filters that has almost half of the coefficients zero-valued, see my answer to FIR Filter design: Window vs Parks-McClellan and Least-Squares. $\endgroup$