Delay estimation by FFT
Given x=sig(t) and y=ref(t), returns [c, ref(t+delta), delta)] = fitSignal(y, x);:Estimates and corrects delay and scaling factor between two signals Code snippet This article relates to the Matlab / Octave code snippet: Delay estimation with...
Summary
This 2007 blog describes an FFT-based technique to estimate and correct time delay and scaling between two signals, with a practical Matlab/Octave implementation (fitSignal). It explains phase- and correlation-based approaches, demonstrates how to get sub-sample accuracy, and shows how simple preprocessing (windowing, zero-padding) and interpolation improve robustness.
Key Takeaways
- Use FFT-based cross-spectral phase to estimate relative delay between two signals efficiently.
- Apply phase unwrapping and interpolation to achieve sub-sample (fractional) delay estimates.
- Implement the provided fitSignal Matlab/Octave routine to compute delay and scaling and to realign signals.
- Mitigate noise and bias by using windowing, zero-padding, and optionally GCC-PHAT weighting for robustness.
Who Should Read This
Intermediate DSP engineers, researchers, or graduate students working on audio, radar or communications who need a concise, practical FFT-based method and Matlab code for time-delay estimation and signal alignment.
TimelessIntermediate
Related Documents
- A Quadrature Signals Tutorial: Complex, But Not Complicated TimelessIntermediate
- Lecture Notes on Elliptic Filter Design TimelessAdvanced
- Computing FFT Twiddle Factors TimelessAdvanced
- Digital Envelope Detection: The Good, the Bad, and the Ugly TimelessIntermediate
- The World's Most Interesting FIR Filter Equation: Why FIR Filters Can Be Line... TimelessAdvanced







