Consider a linear chirp signal, i.e. $f(t) = f_0 + kt$, where $f_0$ is the starting frequency, and $k$ is the chirp rate. After applying an FFT, how would I find the starting frequency and chirp rate?

  • 6
    $\begingroup$ You can perhaps get something out of a short time Fourier transform. You will have to play with some of the parameters (overlap, FFT size) to get a pleasing picture --- the frequency axis intercept should then tell you f0 and the slope of the line should give you k. $\endgroup$
    – Atul Ingle
    Aug 28, 2012 at 12:22
  • 1
    $\begingroup$ Like Atul said, I would use a short-time Fourier Transform (STFT), and then I would use image processing techniques to detect the chirp's diagonal line. The STFT produces data that is equivalent to a grey-scale image, with the two axes being time and frequency. In that domain a chirp looks like a diagonal line. I am not an image processing guy, but there are some folks here who are. $\endgroup$
    – Jim Clay
    Aug 28, 2012 at 13:54
  • $\begingroup$ Is using the FFT a requirement for your application? Also, do you know any information like the initial phase and time onset of the chirp? $\endgroup$
    – Jason R
    Aug 29, 2012 at 0:49

2 Answers 2


Why use an FFT for this? I think there are better simpler ways to do this. For example, you can simply measure the distance between zero crossings to get a first order estimate for frequency vs time and then refine with reconstructing the sweep and looking at the difference of the original and the reconstructed signal.


Using FFT on some signal vector, you would intermix signal frequency parameters for that signal vector. e.g. for a sweep frequency signal, after FFT you would know which frequency band signal have been swapped, but you can't easily distinguish between times that each frequency peek have been occurred.

So FFT alone can't help, one solution is to use FFT on shorter windows of input signal , called Spectrogram, so by finding maximum frequency coefficient in each spectrogram frame, you would know the main frequency of signal in the related limited window.

More General you need to use frequency tracking or frequency detection techniques. Based on accuracy and speed you need to measure frequencies, and also your knowledge of input signal, there are various methods out there you can use. such as:

1- As the other answer mentioned, the most simple way should be calculating zero crossing rate.

2- More general methods derived from basis of "FM Demodulation" techniques. there are multiple techniques, but the simplest is to differentiate the FM modulated signal, then the sweep frequency would be modulated to amplitude of signal, so you can detect the frequency changes using an envelope detector.

3- There are some other advanced methods such as Phase Locked Loop, or Pseudo-spectrum techniques, like MUSIC, Stochastic techniques derived from Hidden Markov Model or Extended Kalman Filter.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.