ランダムなバイナリ データに対して FFT を実行しています。y 軸の倍率が何であるかについて混乱しています。私のランダム データの繰り返し率は 400Hz、つまり測定間隔は 0.0025 秒です。データ点数は 12489 です。
以下のコードは機能し、平均振幅は約 50 になります。
私の質問:
- このコンテキストで y.size は正確に何をしますか?
- 12489 個のランダムな 2 進小数点で実行される 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()