Using the anti-correlation between oxy and deoxy hemoglobin for NIRS data quality

46 sec read

Back in 2009 we published a paper titled “Functional near infrared spectroscopy (NIRS) signal improvement based on negative correlation between oxygenated and deoxygenated hemoglobin dynamics“. In a nutshell, we found the oxy- and deoxy-Hb are negatively correlated when noise level is low. When noise level increases, their correlation becomes more and more positive.

Correlation between oxy and deoxy-Hb
Correlation between oxy and deoxy-Hb

Based on this phenomenon we can check the noise level of a channel using the correlation. Below is the script. You simply input the hbo and hbr data (both matrix), and the output is the bad channels.

function badChannels = checkDataQuality(hbo,hbr)

% function badChannels = checkDataQuality(hbo,hbr)
% Check data quality using correlation between hbo and hbr as indicator
% if the correlation is strictly -1, then bad channel
% if the correlation is > 0.5, then bad channel
% Input: hbo and hbr are NxM matrix, N is number of scan, and M number of
% channels
% output: array of bad channels
% Xu Cui
% 2009/11/25

n = size(hbo,2);
for ii=1:n
    tmp = corrcoef(hbo(:,ii), hbr(:,ii));
    c(ii) = tmp(2);

pos = find(c==-1);
if ~isempty(pos)
    disp(['Channels with -1 correlation: ' num2str(pos)])

pos2 = find(c>0.5);
if ~isempty(pos2)
    disp(['Channels with >0.5 correlation: ' num2str(pos2)])

badChannels = [pos pos2];

第三十四期 fNIRS Journal Club 视频 高飞

澳门大学的高飞博士分享了他们利用fNIRS和EEG来揭示人类大脑对中文构词规则的神经编码机制的研究工作。 Youtube: htt
Xu Cui
14 sec read

第三十四期 fNIRS Journal Club 通知 2022/09/24,10am 高飞

中文词语是如何被人脑编码的?构词-语义加工的神经认知机制是什么?来自澳门大学的高飞博士将分享他们利用fNIRS和EEG来揭示人类大脑对中文构词规则的神经编码机制的研究工作。 欢迎大家踊跃参与和讨论。
Xu Cui
11 sec read

第三十三期 fNIRS Journal Club 视频 翟雪彤

Brain AnalyzIR toolbox是一款基于MATLAB开发的高效的fNIRS处理工具箱,由匹兹堡大学Theodore Huppert团队开发(Homer的主要开发者)。来自Theodore
Xu Cui
10 sec read

7 Replies to “Using the anti-correlation between oxy and deoxy hemoglobin for…”

  1. @Gu Yue
    Good question! I however do not know the answer. You can try it and see if it increase your data quality. I’d love to know the result.

  2. Dear Cui,

    I’m wondering how to deal with these bad channels. Can I use the interpolation method which has been frequently employed in processing EEG data? I mean used the average value of whole channels to replace the bad channels Or just delete data on the bad channels?

    I’m looking forward to hearing from you!

    Yafeng Pan

  3. Dear Pan,
    Have you used the average value of whole channels to replace the bad channels of fNIRS? could you tell me your article name? thank you

    wenfeng Wu

  4. Dear Xu Cui,

    How/why did you choose the threshold of 0.5 (if if the correlation is > 0.5, then bad channel)? I read your paper but I could not figure out why 0.5 should be the right value, but I am very curious to know! Thank you.

    Kind regards,

    1. Carly,

      The threshold 0.5 is arbitrarily chosen based on our observation. There is no theoretical basis. Please feel free to use your own threshold.


Leave a Reply to Gu Yue Cancel reply

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