首页 > 解决方案 > 解释和理解时间序列数据的 fft 图

问题描述

我有一个时间序列传感器数据。每分钟采样 24 小时(因此每天总共有 1440 个数据点)。我对此进行了 fft 以查看主要频率是什么。但我得到的是一个非常嘈杂的 fft 和一个在零处的强峰值。

  1. 我已经减去了 bin 0 处 DC 分量的平均值。但我仍然在零处得到一个强峰值。我无法弄清楚其他原因可能是什么,或者我接下来应该尝试什么来删除它。

  2. 该图与我在学习 fft 时通常在网上看到的非常不同。从某种意义上说,我无法像通常看到的那样看到主导峰。我的fft错了吗?附加我尝试过的代码和图像:

import numpy as np
from matplotlib import pyplot as plt
from scipy.fftpack import fft,fftfreq
import random

x = np.random.default_rng().uniform(29,32,1440).tolist()
x=np.array(x)
x=x-x.mean()
N = 1440
# sample spacing
T = 1.0 / 60
yf = fft(x)
yf_abs = abs(yf).tolist()
plt.plot(abs(yf))
plt.show()
freqs = fftfreq(len(x), 60)
plt.plot(freqs,yf_abs)
plt.show()

频率与幅度 因为我是新手,所以我无法弄清楚我错在哪里或解释结果。任何帮助将不胜感激。谢谢!:)

标签: pythontime-seriesfft

解决方案


推荐阅读