I am trying to implement a quadratic chirp on a gaussian pulse which has a 4 ps fwhm. enter image description here

I convert the pulse to the frequency domain using an fft and then encode a chirp with the following function:

def quadChirp(ffreqs, signal, chirp_rate):
    Introduces quadratic chirp to a given signal (input must be in the frequency domain)
     ffreqs: [torch tensor] - Frequencies 
     signal: [torch tensor] - The input signal
     chirp_rate: The size of the chirp the user wants
     chirp_signal: [torch tensor] - The signal with desired quadratic chirp implemented
    phase_shift = chirp_rate * ffreqs ** 2
    chirp_signal = signal * torch.exp(-1j * phase_shift)
    return chirp_signal

I am not too sure what an appropriate value for chirping a ps pulse is but I've tried 10000e-24 and values several different orders of magnitude with no success. Here is a plot for a chirp of 10000e-24

enter image description here

The maximum difference between the chirped and unchirped pulse is on the order of 10^-19. In the time domain, there is equivalently little to no difference between the two: enter image description here

If anyone is familiar with the process of quadratic chirping and has any ideas where I may be going wrong please let me know

  • $\begingroup$ I derive general forms of linear, exponential, and hyperbolic chirps here (bottom), code here. The derivation logic extends to the quadratic case. $\endgroup$ Jun 28, 2023 at 15:55
  • $\begingroup$ @OverLordGoldDragon what are the parameters a, and b you use and how do you arrive at the equation for phi? I can't quite follow the calculations in the chirp functions $\endgroup$
    – user68185
    Jun 28, 2023 at 16:07

1 Answer 1


In order to visibly see the effect of the chirp, the chirp needs to sweep over the frequency range in the duration of the fft block that is used. The OP's spectrum is approximately 100 MHz wide near it's peak, so a chirp that is swept over 10 MHz or greater in the duration of the FFT that is used should be visible. Anything significantly less than this would be hard to see at this scale. Also keep in mind that the frequency resolution for an an FFT (or any signal capture) is the inverse of the total time duration of the capture. (and if windowing is used the achieved resolution is further increased in frequency, meaning more difficult to resolve small changes). So a longer capture or longer chirp range or both would help with visibly seeing the effect of the chirp.

The result will be the convolution of the two spectrums (given the time domain product), so we can demonstrate this most easy by showing the FFT of a single tone multiplied with a chirp, which is the FFT of the chirp itself:

For example, consider $2^{16}$ samples of a frequency chirp given as:

$$x(nT) = e^{j2\pi f nT}$$

Where $T = 1/f_s$ with $f_s= 10$ KHz.

And $f$ is a ramp that starts at 10 KHz and stops at 20 KHz as given in this plot:

Frequency Parameter vs Time

The FFT of this chirp is given in the plot below, where we see the width is twice the span of the frequency ramp provided. Why twice? See this nice answer to my prior "DSP Puzzle" related to this by MattL here.

FFT of chirp


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.