I would like to extract the most important frequency modes from a data set which exhibits strong annual periodicity, as well as some (less) important shorter-term frequency components. The following approximates the data series fairly well:
n = 3*365;
data = If[# < 0.3, 0, #] & /@ MovingAverage[1.6 #^2 & /@ (Table[Sin[ \[Pi] x/365], {x, n}] +
RandomReal[{0.5, -0.5}, {n}]), 20];
ListLinePlot[data]
Generating:
I have tried taking the discrete Fourier transform of the data, and then looking at its absolute value to identify the most important frequency components using:
ListPlot[Abs[Fourier[data]]]
However, I am having trouble 'seeing', then extracting, the most important components, which I hope should correspond to the annual periodicity, as well as some shorter-term components, of perhaps a few months in period.
Does anyone know how I can do this? I know this probably as much to do with my lack of knowledge about Fourier series, as it is about my Mathematica inexperience!
Update: to be clear, I would like to extract the most important modes, then reconstruct the data series using only these few.
Best,
Ben
Periodogram
. $\endgroup$