見出し画像

NIRSの信号処理について考えてみる〜⑥PCAを用いた広範囲のノイズ除去〜

ウェーブレット変換による信号処理もそうなんだけど,機器によってはPCA(Principal Component Analysis; 主成分分析)を使用したノイズ除去の機能も付いているものもあるとかないとか…

でもこの記事は「どんな処理をどんな理由で行うのかを知るために,自分でやってみようぜ」という考えのもとで書いているので,実際にMATLABでやってみた結果を紹介する。

今回はいつもよりさらっとしてるよー(分量が少ない)

本題

NIRS計測では皮膚血流が最も厄介なノイズになる。このシリーズの①にも書いたはずだけど,NIRSで得られるデータには大脳皮質の賦活による血流変動以外にも,それに関連しない皮膚血流の変動も含まれている。

これを考慮する最も簡単な方法は,近赤外線光を照射するプローブとそれを受け取るプローブを取り付ける際に装着するヘッドギアを可能な限りきつく固定して,なおかつ計測中は可能な限り身体を動かさないようにするというもの。

ほかにも皮膚血流だけを計測してその差分をとるという方法もあるんだけど,なかなか手間がかかるし,少なくとも僕が使ったことがある機器では物理的にこの方法を採用することが難しいものだった。

ということで,いわゆる普通に計測したデータにおいても皮膚血流のような広範囲にわたるノイズを取り除く方法の1つとしてPCAが使えるのではないかという話。

理屈としては,生理活動や体動などに由来する皮膚血流は複数のチャンネル(計測部位)に同時に発生し,また脳活動による反応よりも大きな変化を引き起こす(可能性がある)ので,チャンネル間の相関を利用して第1主成分(または第1 & 第2主成分)に相当するデータを取り除くことでこのノイズを削減できる[1, 2],というもの(図1)。

図1 PCAを利用したノイズ削減のイメージ


じゃあやってみよう

40のチャンネルから得られたデータ全てに0.05 Hzの正弦波ノイズを追加する(応答成分は約0.025 Hz)。ここではその内2つのチャンネルのデータを図示する(図2)。

図2 サンプルデータとその周波数成分(上段: Ch. A,下段: Ch. B)

ノイズを追加した全チャンネルのデータに対してPCAを適用し,第1主成分を取り除く。そうすると上の2つのデータはこんな感じになった(図3)。

図3 PCA処理後のサンプルデータとその周波数成分(上段: Ch. A,下段: Ch. B)

周波数解析の結果の縦軸が異なることに注意すると,追加した0.05 Hzのノイズが(完璧ではないが)大幅に取り除かれていることがわかる。

これまでのようなフィルタの適用やMRAを実施したわけではないことも踏まえると,PCAによる処理によって多数のチャンネルに共通したノイズをある程度まで削減できると言える。

ただ,この方法は対象のチャンネル全てに共通する変動を削減するという点には注意が必要。

どういうことかというと,前頭領域・側頭領域・後頭領域と頭部全体にチャンネルを設定した上で各領域で特有の変動に注目する場合は特に問題はないが,例えば視覚刺激に対する視覚野の反応に注目する際,後頭領域のみにチャンネルを設定すると,おそらく注目した変動が全てのチャンネルで生じるため,本来観測したかったデータまで取り除かれてしまう危険性がある。

自分の実験の目的や手法に応じて,信号処理方法も適切なものを選択する必要がある。

ちなみにPCAのコードは文献[2]に記載されたものをそのまま使っているので,今回ここには記載しないでおく。

今回はこんな感じかな。

あとは一般化線形モデルを用いた波形の近似という方法もあるけど,それについては書くかもしれないし書かないかもしれない(信号処理とはまたちょっと違うから)。


引用文献

[1] Zhang, Y., Brooks, D. H., Franceschini, M. A., & Boas, D. A. (2005). Eigenvector-based spatial filtering for reduction of physiological interference in diffuse optical imaging. Journal of Biomedical Optics, 10(1), 011014–1- 011014–11. https://doi.org/10.1117/1.1852552

[2] 市原茂ら (2017) 4.2.B NIRSデータの処理 阿久津洋巳 (編) 視覚実験研究ガイドブック 朝倉書店 pp167-176

この記事が気に入ったらサポートをしてみませんか?