Найти периодичность во временных рядах (быстрое преобразование Фурье) - PullRequest
0 голосов
/ 26 марта 2020

Мне нужна помощь, чтобы понять преобразование Фурье, особенно быстрое преобразование Фурье. Я пытаюсь найти периодичность в двоичном временном ряду в следующем формате [не-событие, не-событие, ... событие, не-событие, не-событие], я не уверен, что то, что я делаю, уместно, но я вычислило быстрое преобразование Фурье, чтобы попытаться найти доминирующую периодичность.

Я запустил следующий код:

# -*- coding: utf-8 -*-

# Make plots appear inline, set custom plotting style
import matplotlib.pyplot as plt

import numpy as np
from scipy import fftpack
import datetime
import scipy as sp
import pandas as pd

f = 10  # Frequency, in cycles per second, or Hertz
f_s = 100  # Sampling rate, or number of measurements per second

# t = np.linspace(0, 2, 2 * f_s, endpoint=False)
t = [x for x in range(500)]
x = np.array([1 - min(1, x % 10) for x in t])
# np.random.shuffle(x)
# x = x - np.mean(x)

# x = np.sin(f * 2 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, x)
ax.set_xlabel('Time [s]')
ax.set_ylabel('Signal amplitude');
ax.set_title("Real")
X = fftpack.fft(x)

temp_psd = np.abs(X) ** 2

fftfreq = fftpack.fftfreq(len(x)) # * f_s

fig, ax = plt.subplots()

ax.stem(fftfreq, temp_psd)
ax.set_xlabel('Frequency in Hertz [Hz]')
ax.set_ylabel('Frequency Domain (Spectrum) Magnitude')

И получил следующие результаты:

enter image description here

enter image description here

Почему у меня на периодограмме разные частоты? Я думал, что периодограмма должна выделять доминирующую периодичность, но здесь у меня есть множественная периодичность?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...