I'm trying to compare the results of Christiano Fitzgerald bandpass filter with wavelets. I'm familiar with wavelet decompositions in general, but I'm rather new with Christiano Fitzgerald (CF).

So far, I have understood that CF is able to decompose the series to trend and cycles and it is also able to decompose the signal in specific time frames as wavelets do. However wavelets operate with a pyramid algorithm where the first level decomposes the signal to mother and father and it finds the 2-4 frequency and the trend. Then, it picks these results and it decomposes them again to find 4-8 and so on.

The documentation of mFilter in R states the following for CF:


  1. type: the filter type, "asymmetric", asymmetric Christiano-Fitzgerald filter (default), "symmetric", symmetric Christiano-Fitzgerald filter "fixed", fixed length Christiano Fitzgerald filter, "baxter-king", Baxter-King fixed length symmetric filter, "trigonometric", trigonometric regression filter.
  2. pl: minimum period of oscillation of desired component $(pl<=2)$.
  3. pu: maximum period of oscillation of desired component $(2<=pl<pu<infinity)$.
  4. root: logical, FALSE if no unit root in time series (default), TRUE if unit root in time series. The root option has no effect if type is "baxter-king" or "trigonometric".
  5. drift: logical, FALSE if no drift in time series (default), TRUE if drift in time series.
  6. nfix: sets fixed lead/lag length or order of the filter with "baxter-king" and "fixed". The nfix option sets the order of the filter by $2*nfix+1$. The default is $nfix=1$.
  7. theta: moving average coefficients for time series model: $x(t) = mu + root*x(t-1) + theta(1)*e(t) + theta(2)*e(t-1) + . . .$ , where $e(t)$ is a white noise.

Are the arguments pl and pu responsible for the level of decomposition? For example, if I pick $pl = 2$ and $pu = 4$, it will go for 2-4 days/weeks etc and if I go for $pl = 32$ and $pu = 64$ it will decomposes for 32-64 days/weeks/months etc or am I missing something?

Thank you in advance


If you pick pl=2 and pu = 4 and your data is daily, then indeed you filter out the trend that has frequency up to 4 days. So, your trend line is a sum of trigonometric functions with the aforementioned periodicity. The cycle comprises all the other remaining frequences.

| improve this answer | |

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.