There are at least two ways of achieving sub-sample delay. One is to simply over-sample the signal and then delay it by the wanted sub-sample amount. The over-sampling is equivalent to creating new samples in-between the existing samples utilizing the prior sample values and then using a low-pass filter on the resulting signal. Low-pass filters generate artifacts, resulting at minimum in pre/post-echo for linear phase filters.

The second alternative is to perform a FFT, multiplying the phase response with a linear phase response corresponding to the delay amount. My question is: what are the artifacts involved in this procedure? I would think that they would be the same, but can't find a low-pass filter anywhere.

  • $\begingroup$ The second technique won't work as you expect because you will get time aliasing: the FFT approach to convolution does circular convolution. And your linear phase response will have (effectively) an infinite duration impulse response. $\endgroup$ – Peter K. May 29 '16 at 13:27
  • $\begingroup$ @PeterK. Good point, but doesn't zero padding the FFT reduce the aliasing to arbitrarily small amounts? I would have to check what the function looks like... $\endgroup$ – Dole May 29 '16 at 13:43
  • 2
    $\begingroup$ Other than the fact that the ideal impulse response $h_d[n]$ which produces fractional delay signal $y_d[n]$ from input $x[n]$ , is infinite duration and noncausal, after taking necessary windowing and truncation, you will get the same results whether processing is performed in the time domain or in the frequency domain, keeping in mind, as @PeterK has reminded, of the proper length of FFT to alleviate any time aliasing due to circular overlapping of the periodic sequence implied by the inverse DFT which represents the fractionally delayed signal. $\endgroup$ – Fat32 May 29 '16 at 14:43

Your Answer

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

Browse other questions tagged or ask your own question.