DSPRelated.com
Goertzel Algorithm for a Non-integer Frequency Index

Goertzel Algorithm for a Non-integer Frequency Index

Rick Lyons
TimelessIntermediate

If you've read about the Goertzel algorithm, you know it's typically presented as an efficient way to compute an individual kth bin result of an N-point discrete Fourier transform (DFT). The integer-valued frequency index k is in the range of...


Summary

This blog post shows how the Goertzel algorithm can be adapted to compute DFT results when the target frequency index is non-integer. It explains the required filter coefficient adjustments, practical implementation options, and the tradeoffs versus FFT-based and interpolation approaches for fractional-bin spectral analysis.

Key Takeaways

  • Compute the modified Goertzel coefficients using the fractional index (k fractional) via cos(2π·k/N) and the corresponding complex rotation to target non-integer frequencies.
  • Apply windowing or bin-interpolation techniques (e.g., quadratic/parabolic interpolation) to reduce spectral leakage and improve amplitude/phase estimates for fractional bins.
  • Implement the fractional-Goertzel using complex mixing (heterodyning) or an equivalent second-order filter to maintain numerical stability and real-time performance.
  • Compare computational cost and accuracy versus zero-padding/FFT methods and choose Goertzel when you need sparse, single-tone detection with low overhead.
  • Validate amplitude and phase by compensating for the offset from the nearest integer bin and account for finite-sample bias in estimation.

Who Should Read This

DSP engineers and developers working on audio, speech, radar, or communications systems who need efficient single-tone or sparse-frequency detection and want to handle fractional-frequency targets.

TimelessIntermediate

Topics

FFT/Spectral AnalysisAudio ProcessingCommunicationsRadar

Related Documents