0

I have some time series data I'm looking at in Python that I know should follow a sine2 function, but for various reasons doesn't quite fit it. I'm taking an FFT of it and it has a fairly broad frequency spread, when it should be a very narrow single frequency. However, the errors causing this are quite consistent--if I take data again it matches very closely to the previous data set and gives a very similar FFT.

So I've been trying to come up with a way I can rescale the time axis of the data so that it is at a single frequency, and then apply this same rescaling to future data I collect. I've tried various filtering techniques to smooth the data or to cut frequencies from the FFT without much luck. I've also tried fitting a frequency varying sine2 to the data, but haven't been able to get a good fit (if I was able to, I would use the frequency vs time function to rescale the time axis of the original data so that it has a constant frequency and then apply the same rescaling to any new data I collect).

Here's a small sample of the data I'm looking at (the full data goes for a few hundred cycles). And the resulting FFT of the full data

Any suggestions would be greatly appreciated. Thanks!

  • 1
    To get to a single frequency, it looks like you would need a non-linear transformation of the time access. At that point I would (encourage you to) ask how the time access is recorded, and why you might expect non-linearities? But also: the small but rather clear beating in the signal indicates that there really are more than 1 frequency that even a non-linear change in the time access would not be able to erase. Are you sure this signal should have a very narrow frequency range? It sure doesn't look that way. – M Newville Mar 28 '17 at 23:08
  • This signal is made from a laser in an interferometer--the laser is split into two beams and recombined where they will interfere with each other. For simplicity of the problem, I said they this signal varies in time, but more it may be more accurate to say it varies in space. The nonliearities come from the fact that I can't translate the beam at a perfectly constant velocity--if I could though, the signal would certainly be a near perfect sine wave--this is fundamental to the laser. The beat frequency is due to misalignment and is unimportant--it should just show up as low frequency noise – user2297541 Mar 29 '17 at 02:05
  • I see that the amplitude of the signal varies smoothly. Is it possible to use the amplitude information to derive the time axis rescaling? – James Phillips Mar 29 '17 at 10:21
  • 1
    Classically, and assuming you're well below the Nyquist frequency (your data looks like it is) a beat is due to two dominant frequencies that are close to one another (as with a whistle or two slightly-out-of-tune pitches). – M Newville Mar 29 '17 at 12:09
  • @MNewville is right. Looking at the time data already I immediately thought there is a beating and that is what your fft shows. This is not low frequency noise. – mikuszefski Apr 10 '17 at 12:26
  • Is there more than one laser frequency resulting in two ore more interference patterns on top of each other? – mikuszefski Apr 10 '17 at 12:28

0 Answers0