【问题标题】:Discrete Fourier Transform sample frequencies using numpy使用 numpy 的离散傅里叶变换采样频率
【发布时间】:2021-12-02 13:12:28
【问题描述】:

我正在使用 numpy 来计算采样频率,特别是 fft.fftfreq(n, d=1.0)。

我想计算 d。有没有什么公式或库可以用来计算d?

我如何计算时间序列数据集的采样率,因为 d 是采样率的倒数?

谢谢

【问题讨论】:

  • 你有那个时间序列的总时间(以秒为单位)和点数吗?您的采样率应该是您的系列中每秒的点数。
  • 看起来你需要像infer_freq() 这样的东西,它是pandas 库的一部分。
  • 时间序列数据集是每天的,也就是说索引是这样的yyyy-mm-dd。我得到的频率是 1/len(dataset)。 d 是改变频率的标量。我想要一个公式来正确计算它。我不想用猜测
  • @mosc9575,如果数据是每天,infer_freq 返回 'D',我已经知道它是每天并且频率是 D

标签: python time-series fft


【解决方案1】:

在寻找“神奇功能”之前,您必须阅读一些有关采样率的知识。

根据numpy documentation,参数“d”是“采样间隔(采样率的倒数)。”

寻找Sampling rate,“d”在时间上等同于“T”,它代表周期(每个样本之间的时间以秒为单位)。但是您使用的是 DFT,因此您可以选择时间单位。如果您每天有 1 个样本,则“d”为 1,并且 fftfreq 的结果将以周期/天为单位。如果您每天有 2 个样本,那么您的 'd' 是 1/2,以周期/天为单位进行输出。

因此,您要查找的函数只是 1/(每个时间单位的样本数),其中时间单位可以是天、小时、分钟、秒 ...

如果您有样本的时间戳,则可以计算 de 'd' 作为每个样本之间的时间差。如果不知道有关信号的一些信息,就无法计算它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多