1
我收集了包含EEG信號數據的EDF文件。我使用pyedflib
來訪問這些文件,但是我經常很難從某些文件讀取信號。基本上,當我嘗試讀取信號值時,有許多文件可以獲得所有0的數組。鑑於:Pyedflib錯誤讀取信號
def get_sig(fname):
import pyedflib
f=pyedflib.EdfReader(fname)
file_dur=f.getFileDuration()
fs=int(inFile.getSignalHeader(0)['sample_rate'])
chan_names=f.getSignalLabels()
#note... channel names and file duration are captured correctly
sig=f.readSignal(4)
return sig
這將返回長*「FS」的「file_dur」的數組,但結果是全0的數組,並顯示以下警告:
read -1, less than 8965120 requested!!!
沒有人有任何想法可能會導致這樣的問題?不幸的是,我不能分享任何數據,因爲它是PHI,但是如果有任何其他信息可能會有所幫助,請問。
一對額外的注意事項:
- 我也試圖
sig=f.readSignal(4,start=0,n=100)
,以確保它不與排序的文件或任何的開頭問題,它返回的全0數組長度爲100. - 當我在Matlab中檢查它們時,這些值是正確的(即非零)。
- 這個問題似乎是文件中的特定(部分被正確地處理,而其它的是不),但是我不能找到比實際信號以外的文件之間的任何差異值
- 在
f.readSignal(4)
使用的索引4不硬編碼在我的完整應用程序中,這僅僅用於演示目的(在我的示例文件中,4對應於EEG通道F4)。
謝謝!
P.S.我也將其添加到pyedflib wiki中。