当前位置: 首页 > 知识库问答 >
问题:

用Numpy的傅里叶变换找到时间序列最可能的周期性?

慕俊迈
2023-03-14

假设我有一个有一百个测量值的时间序列t,每个条目代表每天的测量值。我假设信号中有一些周期性——它可能每天、每周或每月重复。

将时间序列翻译成傅立叶域可能有助于找到这样的周期性?

我如何使用Numpy的fft模块找到我的时间序列最有可能的时期?

共有3个答案

邢高爽
2023-03-14

还有一种方法不依赖于傅里叶级数。此方法可帮助您确定信号是否为周期性信号。理想情况下,在这种情况下,时间序列应为二进制:

[0,1,0,0,0,1,1,0,0,0,1,0,0,1]

首先计算连续峰值位置之间的距离分布。然后,你计算因子

-1<B<1:

B = (var - mean)/(var + mean)

均值和var分别计算分布的均值和方差。离-1越近的B信号越周期性。如果B'接近0,则信号中没有周期性,并且峰值在时间序列中随机定位。

有关更多信息,请查找关键字Burstiness。

顾光明
2023-03-14

注意,FFT发现正弦分解,这不同于周期估计器(因为任何基本周期都可能从周期信号的频谱中完全丢失。见缺失基本)

因此,您需要使用倒谱(使用复杂的倒谱分析等)对FFT结果进行后处理。),或者使用谐波乘积频谱估计器。

聂永怡
2023-03-14

我打算回答我自己的问题。你可以在适当的地方纠正我。

Asume我们的时间序列t是t=[2,1,0,1,2,3,2,1,0,1,2,3,2,1,0,1,2,3],有18个测量值。一个相当简单的例子:周期的长度似乎是六个时间单位。

将此时间序列带入频域,我们得到:

    w = numpy.fft.fft(t)
    print numpy.absolute(w)
    array([27.000000, 0.000000, 0.000000, 12.000000, 0.000000, 0.000000,
   0.000000, 0.000000, 0.000000, 3.000000, 0.000000, 0.000000,
   0.000000, 0.000000, 0.000000, 12.000000, 0.000000, 0.000000])

我们忽略频率0,观察到索引3的值最大——这表明在我们的时间序列t内,信号重复3次。因此,信号的长度-周期-将是18/3=6。而且确实:

numpy.fft.fftfreq(18)
array([ 0.      ,  0.055556,  0.111111,  0.166667,  0.222222,  0.277778,
    0.333333,  0.388889,  0.444444, -0.5     , -0.444444, -0.388889,
   -0.333333, -0.277778, -0.222222, -0.166667, -0.111111, -0.055556])

指数3的频率正好是1/6,即一个时间单位的频率是1/6,这意味着信号在一个完整的周期内需要六个时间单位。

请让我知道我的理解是否正确。

 类似资料:
  • 目标 在本节中,我们将学习 使用OpenCV查找图像的傅立叶变换 利用Numpy中可用的FFT函数 傅立叶变换的某些应用程序 我们将看到以下函数:cv.dft(),cv.idft()等 理论 傅立叶变换用于分析各种滤波器的频率特性。对于图像,使用2D离散傅里叶变换(DFT)查找频域。一种称为快速傅立叶变换(FFT)的快速算法用于DFT的计算。关于这些的详细信息可以在任何图像处理或信号处理教科书中找

  • 本文向大家介绍Opencv实现傅里叶变换,包括了Opencv实现傅里叶变换的使用技巧和注意事项,需要的朋友参考一下 傅里叶变换将图像分解成其正弦和余弦分量,它将图像由空域转换为时域。任何函数都可以近似的表示为无数正弦和余弦函数的和,傅里叶变换就是实现这一步的,数学上一个二维图像的傅里叶变换为:   公式中,f是图像在空域的值,F是频域的值。转换的结果是复数,但是不可能通过一个真实图像和一个复杂的图

  • 我不太精通Java,所以请保持简单。不过,我会尽力理解你发布的所有内容。这是我的问题。 我已经编写了代码来记录来自外部麦克风的音频并将其存储在. wave中。存储此文件与存档目的相关。我需要做的是对存储的音频进行FFT。 我的方法是将wav文件作为字节数组加载并对其进行转换,问题是1。我需要摆脱一个标题,但我应该能够做到这一点和2。我得到了一个字节数组,但是我在网上找到的大多数(如果不是全部)FF

  • 目标 在这一节中,我们将学习 使用OpenCV查找图像的傅立叶变换 利用Numpy中的FFT功能 傅立叶变换的一些应用 我们将学到以下函数:cv2.dft(),cv2.idft()等 理论 傅立叶变换用于分析各种滤波器的频率特性。对于图像,可以使用2D离散傅里叶变换(DFT)来查找频域。被称为快速傅立叶变换(FFT)的快速算法被用于DFT的计算。有关这些的细节可以在任何图像处理或信号处理的教科书中

  • 傅里叶 - 莫茨金消元法的英文名:Fourier-Motzkin Elimination,简称 FME 算法,它是一种用于从线性不等式中消除变量的数学方法。 它的命名源自于在 1827 年和 1936 年独立发现该算法的 Joseph Fourier 和 Theodore Motzkin 的姓氏。 1. 展示 从线性不等式中消除一组变量,是指通过将关系式中的若干个元素有限次地变换,消去其中的某些元

  • 从头到尾彻底理解傅里叶变换算法、下 推荐阅读:The Scientist and Engineer’s Guide to Digital Signal Processing,By Steven W. Smith, Ph.D。此书地址:http://www.dspguide.com/pdfbook.htm。 前期回顾,在上一篇里,我们讲了傅立叶变换的由来、和实数形式离散傅立叶变换(Real DFT)