• Register
PhysicsOverflow is a next-generation academic platform for physicists and astronomers, including a community peer review system and a postgraduate-level discussion forum analogous to MathOverflow.

Welcome to PhysicsOverflow! PhysicsOverflow is an open platform for community peer review and graduate-level Physics discussion.

Please help promote PhysicsOverflow ads elsewhere if you like it.


PO is now at the Physics Department of Bielefeld University!

New printer friendly PO pages!

Migration to Bielefeld University was successful!

Please vote for this year's PhysicsOverflow ads!

Please do help out in categorising submissions. Submit a paper to PhysicsOverflow!

... see more

Tools for paper authors

Submit paper
Claim Paper Authorship

Tools for SE users

Search User
Reclaim SE Account
Request Account Merger
Nativise imported posts
Claim post (deleted users)
Import SE post

Users whose questions have been imported from Physics Stack Exchange, Theoretical Physics Stack Exchange, or any other Stack Exchange site are kindly requested to reclaim their account and not to register as a new user.

Public \(\beta\) tools

Report a bug with a feature
Request a new functionality
404 page design
Send feedback


(propose a free ad)

Site Statistics

205 submissions , 163 unreviewed
5,054 questions , 2,207 unanswered
5,345 answers , 22,720 comments
1,470 users with positive rep
818 active unimported users
More ...

  Calculating time-dependent frequency of oscillations

+ 3 like - 0 dislike

I have a curve (example shown below) which oscillates with a slowly-decreasing amplitude and offset and a slowly-changing frequency. What's a good way to estimate these values as functions of time? Any two of these values can be calculated reliably given the other, but I'm not sure where to start.

Here are some methods I've considered, but I'm not sure how effective they will be:

- estimating the maxima and calculating periods

- doing Fourier decomposition over a sliding window

- fitting a function like \(C(t) + \sum A(t) \sin(\omega t) + B(t)\cos(\omega t) \)


asked Mar 30, 2015 in Computational Physics by lightlike (15 points) [ no revision ]
reopened Mar 31, 2015 by dimension10

I have heared (without fully grasping the method) that wavelet theory can be of use to analyse situations where the amplitudes and frequencies (or wavenumbers) of a signal depend on time (or position). 

@dilaton: Wavelets give a multiresolution analysis appropriate, e.g., for the analysis of sound, music say. My first thought was wavelets, too. But it is not quite the right tool for what this particular question asks - an estimate of how a single (or two) amplitude and frequency change with time. 

1 Answer

+ 3 like - 0 dislike

I would use nonlinear least squares to fit an expression $C(t)+A(t) \cos \omega(t)$ with low degree polynomials $C,A,\omega$, trying different degrees for the different pieces and using BIC to decide on the best degree combination. 

You may need to choose good starting values: Begin with $\omega(t)= a+bt$ with $a,b$ estimated from a Fourier transform. With $\omega(t)$ fixed you have a linear least squares problem for the coefficients of $C$ and $A$. Use the result with $\omega(t)= a+bt+0t^2+\ldots$ as a starting point for the nonlinear fit.

There seems to be a second high-frequency component in your data - inspect the residual to see whether this is noise or something significant. If the latter, add an additional term $+A_2(t) \cos \omega_2(t)$ and repeat. Here the starting point is chosen by working on the residual similarly as before.

answered Mar 31, 2015 by Arnold Neumaier (15,787 points) [ no revision ]

Your answer

Please use answers only to (at least partly) answer questions. To comment, discuss, or ask for clarification, leave a comment instead.
To mask links under text, please type your text, highlight it, and click the "link" button. You can then enter your link URL.
Please consult the FAQ for as to how to format your post.
This is the answer box; if you want to write a comment instead, please use the 'add comment' button.
Live preview (may slow down editor)   Preview
Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
If you are a human please identify the position of the character covered by the symbol $\varnothing$ in the following word:
Then drag the red bullet below over the corresponding character of our banner. When you drop it there, the bullet changes to green (on slow internet connections after a few seconds).
Please complete the anti-spam verification

user contributions licensed under cc by-sa 3.0 with attribution required

Your rights