Python - как генерировать энергетический спектр, используя scipy.signal.welch и годовые данные - PullRequest
0 голосов
/ 18 ноября 2018

Я бы хотел сгенерировать график спектральной плотности мощности, используя scipy.signal.welch. Тем не менее, мои данные - это спектральное сияние в зависимости от дней / лет, и я не уверен, как выбрать частоту дискретизации, если моя ось x указана в днях.

Мой график спектрального сияния выглядит следующим образом: я попытался показать тренды, выполнив быстрое преобразование Фурье (синий график) (не очень удачный):

FFT

Идея кода ниже была взята из этого вопроса здесь

Какой будет частота дискретизации в моем случае? Так как точки данных были получены через регулярный интервал времени в 16 дней, может ли это быть моей частотой выборки? Более того, если выбрано окно, все равно необходимо определить nperseg как 256, даже если в документации указано следующее:

nperseg: int, необязательная длина каждого сегмента. По умолчанию Нет, но если window является str или tuple, установлено значение 256, а если window - array_like, устанавливается на длину окна.

from scipy.signal import welch

sig = data_plot_multi_year1["y"]

f, psd = welch(sig,
fs= ????  ,           # sample rate
window='hanning',     # apply a Hanning window before taking the DFT
nperseg= 256,         # compute periodograms
detrend='constant')   # detrend x by subtracting the mean
...