Is there an application where it is required to predict turning-points of a signal that is like a sinusoid with constant frequency, variable amplitude and some noise (Gaussian additive noise)? The amplitude of the noise should be less than 10% of the amplitude of the original sinusoid every "oscillation".

Reason I ask is that I think I found an interesting causal filter for this very specific situation, but I have no imagination for the moment on how it could be usefull.

My causal band-pass filter turns earlier than the turning point of the clean sinusoid, so it's like the filter has a negative lag. And the computation time is short, less than my code using FFT (in R: statistics software).

I'm a hobiest in DSP so please excuse my ignorance. My knowledge about filters comes mainly from finance (econometrics).

To the man with a hammer, the entire world looks like a nail..

Thanks for any suggestions.

  • $\begingroup$ It can have interesting application. Can you make this more clear by posting some figures on turn detection. $\endgroup$ – Neeks Dec 27 '13 at 5:11
  • $\begingroup$ @Neeks So in this image the bandpass filter turns the noisy sinusoid (black line) into the yellow line, and if we take the sign of the slope you get the blue line. It is a causal filter, meaning that it works in real time applications. Notice the changes in amplitude of the "sinusoid". I would think there are some applications in a high-throughput context, because of the short computation time. $\endgroup$ – MisterH Dec 27 '13 at 22:08
  • $\begingroup$ Sorry for the delay. The result is impressive, can you make a plot of - avg. turning instant detection error ($\delta T$)Vs snr; $\delta T$ can be obtained using average of (true turning instant - detected turining instant) and snr = $10\log_{10}\frac{signal\ energy}{noise\ energy}$; Also what is your filter bandwidth? $\endgroup$ – Neeks Dec 29 '13 at 18:29
  • $\begingroup$ @Neeks: I'm not sure how to do that. $\endgroup$ – MisterH Jan 15 '14 at 21:00
  • $\begingroup$ Do you know the frequency beforehand? Try 100% noise and see how it goes. At 100% can get pretty good results using the phase of the response to a difference of Gaussian quadrature bandpass filter centred at the frequency of interest and made causal by chopping one half off. $\endgroup$ – geometrikal Jun 26 '14 at 0:36

Assuming your change of amplitude is very slow when compared to the frequency of the sinusoid, this problem can be posed as finding frequency of a noisy sinusoid. You can take small windows of the signal and then take it's fourier transform. Since we know that the amplitude is almost constant and that there is only one sinusoid, we can look for two peaks in the DFT of the signal with some side lobes(Due to windowing). Your goal would be to find those two peaks, which would reduce the error energy in your estimate. Once you have the frequency and the phase information, finding turning points is very easy.

Hope this helps.


You should evaluate the phase of your filter at the frequency of interest. This will tell you how much this frequency is going to be delayed.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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