【发布时间】: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