I have a dataset giving the evolution of a wave (which has a single wavenumber $k$) over time. I have the data as a function of $y$ at a bunch of evenly spaced timestamps $t$. I want to calculate the angular frequency of this wave.

Originally, I was doing this by measuring how far a particular peak in the dataset moved over time and then using this to calculate the phase velocity. I then got the angular frequency using $\omega = v_{p}k$. However, I think there's probably a better way of doing this using discrete Fourier transforms.

What would be a better way of extracting a frequency from my dataset?


1 Answer 1


Just like you said. A fast (discrete) Fourier transform is probably your best best if you don’t really know anything about your wave. Since you know already that you have a plain wave, you really don’t need to do the FFT (you can, but it would be a lot of work compared to what you did).

In general, the discrete Fourier transform essentially boils down to doing Riemann sums, and the fast Fourier transform takes advantage of the symmetries in these sums since you are dealing with sinusoids.

As mentioned before, an FFT and Fourier transforms in general are most useful when you don’t know much about the thing you are trying to do frequency analysis on, or if the thing you are trying to analyze is composed (responsive if you like) of many different frequencies. In your case, you know you have a wave with a single frequency, so your method works fine and is likely much faster.


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.