2017-02-23 9 views
2

これは私には初めての話題なので、これをどのように処理するのかは少し不明です。私はeegレコーディング(レコードがnVの500Hzのサンプリングレートを持つ18949 EEGレコード)を持っています。私はデータからFrequencyグラフに対してFrequencyを作成しようとしていますが、これまでのところ運がないです。脳波データからの周波数電圧グラフ - PythonでのFFT

data = pd.read_csv('data.csv') 
data = data['O1'] 
Fs = 500.0 
Ts = 1.0/Fs 
t = np.arange(len(data))/Fs 

n = len(data) # length of the signal 
k = np.arange(n) 
T = n/Fs 
frq = k/T # two sides frequency range 
frq = frq[range(int(n/2))] 

Y = np.fft.fft(data)/n 
Y = Y[range(int(n/2))] 

fig, ax = plt.subplots(2, 1) 
ax[0].plot(t,data) 
ax[0].set_xlabel('Time') 
ax[0].set_ylabel('Voltage') 
ax[1].plot(frq,abs(Y),'r') 
ax[1].set_xlabel('Freq (Hz)') 

plt.draw() 
plt.show() 

fig.savefig("graph.png") 

そして、私の結果のグラフは次のようになります:次のように

私のコードがある

Graph

誰もが、私はこれで間違って行くこともどこへといくつかのガイダンスを提供してもらえますか?

答えて

1

あなたの信号は、時間領域ではかなり大きな(他の信号変動に対して)DCオフセットがあります。周波数領域では、これは0Hzで強い線としてプロットされ(プロットの軸によって隠されています)、他の周波数成分の振幅は相対的に0に近くなります。

視覚効果を良くするには、 Decibels (dB)の周波数スペクトルは、式20*log10(abs(Y))を使用しているので、実際にこれらの他の周波数成分を見ることができます。

関連する問題