2017-02-23 1 views
2

내게 새로운 주제이므로이 문제를 어떻게 처리해야할지 확신이 없으므로 코드에 대한 안내가 크게 도움이 될 것입니다. 나는 eeg 녹음 세트 (레코드가 nV 인 500Hz의 샘플링 레이트를 가진 18949 EEG 레코드)를 가지고 있습니다. 나는 데이터로부터 전압 그래프에 대한 빈도를 만들려고 노력하고 있지만 지금까지 운이 없다.뇌파 데이터 - FFT in Python의 주파수 전압 그래프

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))을 사용하므로 실제로 다른 주파수 구성 요소를 볼 수 있습니다.

관련 문제