У меня есть временной ряд с почасовыми (скользящими средними) данными с 2014 по 2019 год.
Я использовал функцию fft()
, чтобы найти гармоники, и quantmod::findPeaks()
, чтобы найти позиции с наибольшим значением те, которые дали мне в результате следующие позиции: 8 56 2193 4384 6575 8766 306737 308928 311119 313310 315447 315495
(315499 элементов во временном ряду).
Теперь мне нужно преобразовать это обратно во временную область, но заменив ноль на значение данные в тех позициях. Как я могу это сделать?
Кроме того, я заметил, что когда я построил функцию fft()
(абсолютные значения БПФ), по оси x все еще были показаны периоды с 2014 по 2019 год. он превращается в ось Гц (частота)?
z - это мой временной ряд
FFT <- fft(z)
FFT <- abs(FFT/FFT[1])
plot(FFT)
PK <- findPeaks(FFT, thresh = T)
PK
Результаты PK
- это 12 пиков, которые я упомянул, представляющие высшие гармонии c искажения . Мне нужно их удалить. Я считаю, что могу просто сделать FFT[8]=0
до 12 пиков, но я не уверен. (Я пробовал это, но это не позволяет мне вернуться во временную область)
Мне также нужно доказать, что полученный график БПФ действительно является спектром Фурье, но ось x не является частотой. Есть идеи, как сделать это исправление?