2017-02-23 35 views
2

我稍微不確定如何處理這個問題,因爲它是一個對我而言是新的主題,因此任何有關我的代碼的指導都將不勝感激。我有一組eeg錄音(18949 EEG記錄,採樣率爲500Hz,記錄爲nV)。我試圖從數據中創建一個頻率對電壓圖,但目前我沒有運氣。EEG數據的頻率電壓圖 - 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)),因此您可以實際看到其他頻率分量。