I am a beginner in signal processing. I am learning about the Fourier transform. I was working on the zero-phase Ricker wavelet. As I understand If I extract the phase spectrum I should get something similar to that image. This is the reference

However, my result is totally different. This is what I get

Does anyone know the reason? Thank you in advance,

  • $\begingroup$ It looks like you are seeing the effect of a very large delay (each sample delay will linearly go from 0 to -2 pi as you sweep from DC to the sampling rate) $\endgroup$ Commented Apr 22, 2022 at 19:37
  • $\begingroup$ Thank you very much for your comment. How can I solve that problem? $\endgroup$ Commented Apr 22, 2022 at 22:59
  • $\begingroup$ If you want to make it zero phase, multiply the result by the opposite phase versus frequency (using e^{j omega T}) where omega is your frequency axis and adjust T to match the opposite of your phase slope. $\endgroup$ Commented Apr 22, 2022 at 23:47

1 Answer 1


I was working on the zero-phase Ricker wavelet.

Chances you were working on the "linear-phase" wavelet. Assuming a real input, zero-phase requires time symmetry, i.e. $x[-n] = x[n]$. If you just take the wavelet (which is centered around $N/2$) and apply an FFT you get a linear phase behavior.

How can I solve that problem? Two suggestions:

  1. Circularly shift the time domain wavelet before the DFT. Recall that the DFT is periodic, i.e. $x[-n] = x[n]$ is equivalent to $x[N-n] = x[n]$
  2. Apply the the circular shift in the frequency domain after the DFT by multiplying with $e^{j2\pi \frac{N}{2} \frac{k}{N_{FFT}}}$

Exact details depend a bit on whether the length of the wavelet is odd or even.


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.