【问题标题】:FFT Determining ultra low frequency processes using Python Numpy/ScipyFFT 使用 Python Numpy/Scipy 确定超低频过程
【发布时间】:2019-12-16 01:20:07
【问题描述】:

我正在开始分析从 csv 文件中获得的低频数据(能量监测)。
我检索数据(大约 12000 个点,但可能更多),我知道每分钟都有一个数据。
此采样率始终相同。

当我绘制数据时,它似乎是一个重复的过程(每天、每周和每月)。所以我想在绘制 FFT 时应该看到超低频。

这是我的代码。我不会向您展示我检索数据的部分,因为它不相关。
我还添加了一个低通滤波器来获得类似窦的功能。

## DATAS x-axis is x
## DATAS y-axis is y
# Number of Points ie 12000 points
N = len(y)
# 1 Sample per minute
T = 1 / 60.0
# Lowpass cutoff frequency 
cutoff = 0.0001 

x = np.linspace(0, T * N , N) 
B, A = butter(4, cutoff / (T / 2), btype='low') 
filterdY = lfilter(B, A, y, axis=0)

# Generating FFT
Fourier = abs(scipy.fft(filterdY));
freqs = scipy.fftpack.fftfreq(filterdY.size, x[1]-x[0])

pylab.subplot(311)
pylab.plot(x, y)
pylab.subplot(312)
pylab.plot(x, filterdY)
pylab.subplot(313)
pylab.plot(freqs,20*scipy.log10(Fourier),'x')
pylab.show()

这是我绘制的图表的屏幕截图。
它显示了一周的能源消耗,如您所见,5 天是明确定义的(较大的值)

我无法正确分析图表,但如果我将第二个纯正弦波信号添加到 y 值并且我不过滤总和,我可以从 FFT 中检索正弦频率。
由于日常过程的频率应为 1.0E-5 Hz,因此 FFT 很难读取。

我怎样才能得到这个频率?我是否应该考虑将原始数据加速 1.0E5,然后以 1Hz 获取图片?

这是一个 pythonfiddle ,其中数据数组存储在 y 变量中:http://pythonfiddle.com/fft-test

【问题讨论】:

标签: python numpy scipy fft frequency-analysis


【解决方案1】:

好吧,我会玩采样频率。如果您想得出一些结论,假设以天为单位,为什么不设置这样的采样频率,使得结果 FFT 中的 1 Hz 对应于每天 1 次振荡而不是每秒 1 次振荡?以下步骤取决于您的数据。

附:我不确定,因为我看不到整个脚本,但是当您调用 butter 并使用 cutoff / (T / 2) 作为参数时,它不应该以 Hz 为单位吗?因为现在它似乎只是一个数字:

T = [1/s];截止 = [Hz] = [1/s]; => 截止/(T/2) = [1/s]/[1/s] = 1

【讨论】:

  • 这就是我的想法。具体我该如何进行?按照您的示例,我应该将采样率乘以 1440 以获得 1Hz 振荡吗?问题是我的 x 轴是直接从这个采样率创建的。然后它会影响这条线上的样本间距:freqs = scipy.fftpack.fftfreq(Fourier.size, x[1]-x[0]) 然后 FFT 图的 x 轴似乎不对。关于黄油参数,它是一个归一化频率(在 0 和 1 之间),所以应该没问题
  • @Marech 是的,我会尝试将采样率乘以 1440,这就是我所说的。说到样本间距,好吧,我又不确定了,但如果改变采样率还不够,你可以尝试重新采样你的数据集,也就是说,每个只留下 n 个点天所以 n 在每个 1440 中(在 numpy 中就像:a.shape = (1440,) 然后 a[::1440/ n] 将只留下 n 点出最初的 1440)。然后你说采样率为 1/ n 然后 FFT 频谱中的 1 Hz 将对应于每天 1 次振荡。但在这种情况下,你会丢失一些数据,但这可能不是必需的
猜你喜欢
  • 1970-01-01
  • 2019-01-24
  • 2015-08-06
  • 2016-09-10
  • 2022-01-18
  • 2021-03-09
  • 2020-10-23
  • 2012-04-30
  • 2014-06-16
相关资源
最近更新 更多