2
$\begingroup$

enter image description here

In the above image I have created a time series (in cyan) that is a simple addition of a major cycle (in green), a minor cycle (in cyan) and a linear trend (not shown separately). What I would like to do is filter this time series to remove the minor cycle so what is left would be the trend plus major cycle (in red). In practice no information would be available about the minor cycle, although the period of the major cycle would be known from applying code for the Hilbert transform.

One way in which I might do this is:

  1. apply a bandpass filter set to the major cycle period, on the original data
  2. subtract this bandpass from the original series
  3. apply the Hilbert transform to the remainder to get period of minor cycle
  4. apply another bandpass filter set to this minor cycle period, on the original data
  5. subtract this second, minor cycle bandpass from the original data
  6. and hopefully end up with the desired red output

First off, would this be a valid approach, and secondly is there another way in which I could filter out the minor trend?

$\endgroup$

2 Answers 2

2
$\begingroup$

Your approach seems awfully complicated. It looks like the frequencies of the "minor cycle" are much higher than the "major cycle" and the ramp so a simple lowpass filter should do the trick. If you don't know the frequencies, a simple FFT analysis can be done.

Subtracting filtered versions of signal is tricky since you need to carefully watch time alignment and phase distortion in the filter.

$\endgroup$
0
$\begingroup$

This seems to me like a perfect application of the empirical mode decomposition (a.k.a Hilbert-Huang transform). Here you can find some short but good introduction. Here you can find a dissertation on it.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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