簡體   English   中英

來自 EEG 數據的頻率電壓圖 - Python 中的 FFT

[英]Frequency Voltage Graph from EEG Data - FFT in Python

我有點不確定如何處理這個問題,因為這是一個對我來說很陌生的話題,所以對我的代碼的任何指導都將不勝感激。 我有一組腦電圖記錄(18949 條 EEG 記錄,采樣率為 500Hz,其中記錄的單位為 nV)。 我正在嘗試根據數據創建頻率與電壓圖,但到目前為止我沒有運氣。

我的代碼如下:

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")

我的結果圖如下所示:

圖形

任何人都可以就我可能出錯的地方提供一些指導嗎?

您的信號在時域中具有相當大的直流偏移(至少相對於其他信號變化而言)。 在頻域中,這將被繪制為 0Hz 處的強線(被繪圖軸隱藏),然后其他頻率分量的幅度相對來說接近於 0。

為了更好地可視化,您應該使用公式20*log10(abs(Y))分貝 (dB)單位繪制頻譜,以便您可以實際看到其他頻率分量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM