Плоские линии в быстром преобразовании Фурье с использованием numpy - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть данные за 500 лет с точкой данных за каждый год. Данные в массиве numpy: здесь

Если посмотреть на данные, есть четкий сигнал 100 лет, однако, когда я выполняю преобразование Фурье, я получаю две плоские линии в сюжет, который я не могу понять, почему они там.

Сюжет выглядит так:

enter image description here

Код I ' м:

import numpy as np
from scipy.fftpack import fft, rfft, fftfreq
import pylab as plt

sig = np.load('fft.npy')
sig = sig.squeeze()/(80*60) # Grid scaling
x = np.arange(1,501,1)

W = fftfreq(sig.size, d=(x[1]-x[0]))

plt.figure(figsize=(7,3.5))
plt.subplot(2,1,1)
plt.plot(x,sig)
plt.xlabel('Time (years)')

f_sig = fft(sig)
plt.subplot(2,1,2)
plt.plot(W, abs(f_sig)**2)
plt.xlabel('Frequency (1/year)')

plt.xscale('log')
plt.yscale('log')
plt.xlim(10**(-3), 1)
plt.show()

Почему на частотном графике есть две плоские линии? Почему я не вижу четко 100-летнюю частоту?

...