自己在做实验过程中的一些经验总结,关于博瑞康的脑电设备和Tobii眼动仪的时间同步,目前有硬同步和软同步两种方式,硬同步采用的是硬件串口连接,通过串口在脑电实验范式下发送标签至眼动仪信号采集软件Tobii Pro Lab,软同步采用的是软件编程上的时间戳对齐,不依赖硬件。在实验过程中自己采用的是软同步,具体实现方法如下:
方法一:
博瑞康脑电设备,有两种可以查看信号采集时间的方式,一种是在信号原始数据文件夹下:
另一种是在信号采集软件Neuracle.EEGRecorder下:
但在实践过程中发现,特定情况下这两个时间会有所差异,建议采用软件中的时间
眼动仪设备中在数据导出时可以导出时间戳信息:
同时获取了脑电和眼动数据的时间戳信息之后,便可以编程实现两种模态数据的时间戳对齐
方法二:
在方法一的实现过程中,我们发现眼动仪时间戳提供的精度是毫秒级的,而脑电软件中的时间信息是秒级的,这就导致了前后一秒的对齐误差,使得在任务态实验这种对时间精度要求极高的实验中无法应用,因此探索了第二种时间戳对齐方式:
上述问题存在的原因是脑电数据的时间戳精度不高,考虑到脑电设备可以给数据打标签(采用triggerbox),因此可以在给脑电数据打标签的同时编写代码记录其当前毫秒级的时间信息,便可获取更高精度的脑电时间戳,从而与眼动实现对齐,MATLAB示例代码如下:
clear;
clc;
currentPath = pwd; % 获取当前路径
addpath(currentPath); % 将当前路径添加到MATLAB搜索路径中
triggerBoxCOM = TriggerBox();
triggerBoxCOM.OutputEventData(255);
time_temp_255 = datetime('now', 'Format', 'yyyy-MM-dd HH:mm:ss.SSS')
time_temp_255 = posixtime(time_temp_255) * 1000-28800000
pause(10);
triggerBoxCOM.OutputEventData(178);
time_temp_178 = datetime('now', 'Format', 'yyyy-MM-dd HH:mm:ss.SSS')
time_temp_178 = posixtime(time_temp_178) * 1000-28800000
pause(10);
triggerBoxCOM.OutputEventData(196);
time_temp_196 = datetime('now', 'Format', 'yyyy-MM-dd HH:mm:ss.SSS')
time_temp_196 = posixtime(time_temp_196) * 1000-28800000