-1

我正在对随机二进制数据执行 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()
4

1 回答 1

0

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

于 2013-03-25T01:11:30.817 回答