NIRS hyperscanning data analysis (3) quality check

1 min read

NIRS hyperscanning data analysis (1)
NIRS hyperscanning data analysis (2)
NIRS hyperscanning data analysis (3)
NIRS hyperscanning data analysis (4)

Data quality check

1. Behavior data

To identify behavior abnormalities, we need to plot the behavior data for each individual subject. In this case, we plotted the reaction time vs trial. An example is shown below. It apparent that subject 2 (red) did something strange in trial 20.

behavior data (reaction time)
behavior data (reaction time)

We can also plot the difference of reaction time and the threshold to win. Obviously they only win 1 trial and this is unusual.

Reaction time different and threshold
Reaction time different and threshold

We can also find the mean, min and max of the reaction times. Below is the script:

hold on;plot([1:40],subjectData.reaction2,'s-r')

hold on;plot([1:40],subjectData.winthreshold,'s-m')
legend({'reaction time difference','threshold'})

winNum = sum((subjectData.winthreshold - abs(subjectData.reaction1-subjectData.reaction2))>0);
disp('winning trials = ')




2. NIRS data

The 1st way to identify abnormalities in NIRS data is to plot all channel’s time series in one figure, like the figure below. In the following figure, the time series for each channel is plotted and aligned vertically. It’s easy to identify that the green channel (channel #44) has much more noise than others.

NIRS time series

Another way is to use wavelet transform. If the NIRS signal was acquired well, then the heart beating signal should be captured, leaving a bright brand in the frequency ~1Hz in the wavelet transform plot, just like the left plot in the figure below (the band close to period 8). If there is no such band, it does not necessarily mean the signal is trash, but you need to be cautious.

NIRS wavelet
NIRS wavelet


The third way is to check the correlation between hbo and hbr. They are supposed to have negative correlation. If not, or if they have perfect negative correlation (-1), then they might contain too much noise. We have a separate article on this method. Please check out




for ii=1:52; wt(hbo(:,ii)); pause; end

[badchannels] = checkDataQuality(hbo,hbr);

3. Digitizer data

You want to make sure the measure digitizer data is reasonable by looking at the probe positions in a 3D space.

Digitizer data
Digitizer data
figure;plot3(pos_data(:,1),pos_data(:,2),pos_data(:,3),'o');axis equal;


Want to receive new post notification? 有新文章通知我

第四十九期fNIRS Journal Club通知2024/02/24, 10am 高倩博士

Wanling Zhu
9 sec read

第四十八期fNIRS Journal Club视频 赵楠博士

Youtube:优酷: 随着人们逐渐依
Wanling Zhu
13 sec read

第四十八期fNIRS Journal Club通知2024/01/06, 10am 赵楠博士

Wanling Zhu
9 sec read

Leave a Reply

Your email address will not be published. Required fields are marked *