sccn / eeglab

EEGLAB is an open source signal processing environment for electrophysiological signals running on Matlab and developed at the SCCN/UCSD
https://eeglab.ucsd.edu/
Other
564 stars 239 forks source link

a presicion issue of pop_writeeeg function when saving data to bdf format #781

Open hao199509 opened 1 week ago

hao199509 commented 1 week ago

Description

[when i use command "pop_writeeeg(EEG1, save_path_bdf, 'TYPE','BDF');" to save data to BDF format, i find overbit occur .]


Steps to Reproduce

  1. [First Step:read an edf format eeg data ]
  2. [Second Step:save to BDF format]


Expected behavior:

[save the bdf data same with the edf data without any loss]


Actual behavior:

[i read the bdf data saved before,it have some different with the edf data,when i observe the new bdf data,i find same continous point have the same value,i guesse that overbit happened in saving process ; i watch the writeeeg function,find that there is a fix about bdf precision inline 211-215,but the code ,in 246-250 line,cover its function. so when i save the bdf format,actually,saved as 16bit int liking edf format. at last,i add the follow code after 250-line,it works as my expection. "if strcmp(HDR.TYPE, 'BDF') HDR.DigMin = repmat(-2^23, size(HDR.PhysMin)); HDR.DigMax = repmat(2^23-1, size(HDR.PhysMax)); end" ]


Versions

| | | Snipaste_2024-07-01_15-21-22

|----| ---- | | OS version | [windows 11] | | Matlab version | [2022a] | | EEGLAB version | [eeglab2022.0] |

arnodelorme commented 1 week ago

@schloegl this is a potential problem with BIOSIG. Would you mind to answer?

schloegl commented 3 hours ago

Please send a patch against upstream and I'll consider adding it https://git.code.sf.net/p/biosig/code