FFT-yscale混淆Python-scipy

2024-09-30 01:21:34 发布

您现在位置:Python中文网/ 问答频道 /正文

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

下面的代码工作正常,给出的平均振幅约为50。在

我的问题:

  • 在这种情况下,y.y究竟起什么作用?在
  • 在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()

Tags: 数据代码fromimportfftnumpyas二进制

热门问题