I have a signal with a sample time of 0.5 micro seconds and I would like to shift this signal by a fraction of the sample time, say by 3 nano seconds.

I have read a few online resources about fractional delay filtering and about using the FFT and IFFT to perform such delay. Can someone point me to some theory on this or give me an idea on how to implement it.

For the regular shifting of the signal for integer samples, I have implemented this by shifting the signal by the required number of samples and adding zeros at the beginning. Is this approach correct?


There's a good overview article which appeared in 1996 in the IEEE Signal Processing Magazine: Splitting the unit delay: tools for fractional delay filter design. The nice thing about it is that there's also a set of related Matlab files available. These routines will allow you to design such a system.

As for shifting by an integer number of samples, what you did is obviously correct.

  • $\begingroup$ I only skimmed the paper so I'm not sure if this is explicitly in there, but fractional delay is related to fractional derivative, which generalizes the n-th derivative to arbitrary order. $\endgroup$ – soultrane Aug 4 '15 at 16:02

Besides doing fft type solutions you can also use interpolation, the specific kind of interpolation that is appropriate would be based on your needs of course! Linear interpolation has worked well for me in the past with flange effects, but your mileage may vary.

Lagrange interpolation might also be worth looking into btw, if linear interpolation isn't good enough. http://blog.demofox.org/2015/07/08/lagrange-interpolation/

  • $\begingroup$ Hermite might be better than Lagrange, but if you have access to MATLAB (or an FIR filter design program), you can design yourself a "polyphase filter bank" interpolator in which you have coefficient sets for a variety of different, uniformly-spaced, fractional delays. pick the two discrete fractional delays closest to your given fractional delay and linearly interpolate between them. $\endgroup$ – robert bristow-johnson Aug 4 '15 at 19:44

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.