【问题标题】:FFT y-scale confusion - Python scipyFFT y尺度混淆 - Python scipy
【发布时间】:2013-03-14 08:29:30
【问题描述】:

我正在对随机二进制数据执行 FFT。我对 y 轴比例因子是什么感到困惑。我的随机数据有 400Hz 的重复频率,或 0.0025 秒的测量间隔。数据点数为12489。

下面的代码有效,平均振幅约为 50。

我的问题:

  • y.size 在这种情况下究竟做了什么?
  • 在 12489 个随机二进制点上执行的 FFT 的预期幅度是多少? (我知道这个问题是专门针对这里的,但如果能理解,我将不胜感激)。

工作代码:(如果您想将其复制并粘贴到 Python 中查看)

from numpy import *
import pylab as P
import numpy as N
import scipy as S
import array
import scipy.fftpack
from random import *

#Produce random binary data
x = N.linspace(0,12489,12489)
randBinList = lambda n: [randint(0,1) for b in range(1,n+1)]
y = randBinList(12489)
y = asarray(y)

#Perform an FFT
FFT = abs(S.fft(y)) 
freqs = S.fftpack.fftfreq(y.size,0.0025) 

#What does y.size do???

x_range = freqs[(freqs>0)]
y_range = FFT[(freqs>0)]

P.plot(x_range,y_range,'.r')
P.show()

【问题讨论】:

  • 你解决了吗?

标签: python scipy fft binary-data


【解决方案1】:

fftfreq 生成 FFT 结果的每个 bin 的频率,该频率是根据您传入的样本数和采样率 (doc) 计算得出的。

【讨论】:

    猜你喜欢
    • 2011-06-28
    • 1970-01-01
    • 2015-04-06
    • 2014-06-16
    • 1970-01-01
    • 2014-04-15
    • 2012-07-22
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多