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