2017-02-23 31 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)),因此您可以实际看到其他频率分量。