見出し画像

NIRSの信号処理について考えてみる〜⑤多重解像度解析〜

多重解像度解析

前回の記事では,ウェーブレット変換を使えば手元にある波の時間情報と周波数情報をいい感じに得ることができるよーということを書いた。

スカログラムを出力すると「どんな波がいつ」発生したのかが一目でわかるけど,個々の波の全体的な動きまではわからない。

つまり,それぞれの波(特定の周波数帯域の波)の動きを個別に見たいという場合には前回紹介したものだけでは不十分だということ。

それをする方法の1つが「多重解像度解析(MRA: Multi-resolution Analysis)」というもの。

具体的には,ある波が様々な種類の波で構成されているとしたら,その波を個々の波に分解して,なおかつ分解した波を足し合わせればまた元の波に戻るようにする。

最終的な形だけ見れば,元の波に対して1回1回遮断周波数を変えながらフィルタをかけていって様々な周波数帯域の波を得るというイメージに近い。あくまでイメージね?

厳密にはウェーブレット関数やらスケーリング関数やら色々と考えることがあるんだけど,例の如く「ざっくりと」やりたいのでその辺は扱わないことにする。


実際にやってみた方がわかりやすいよね

ということで,お馴染みのサンプルデータ(応答成分: 約0.025 Hz)(図1)を使ってMRAをやってみよう。ちなみにこのサンプルデータは実際にNIRSを使って得られたものでなんの処理もしていない(いわゆるraw data)。

図1 サンプルデータ

じゃあこのデータにMRAをしてみよう。ウェーブレット変換を使うので,マザーウェーブレットの設定とどこまで分解していくかというレベルの設定が必要。今回は4次のsymlet(←これについては後述)でレベル12まで分解してみる。はいどーん(図2)。

図2 サンプルデータのMRA結果

サンプルデータ(図1,図2; Data)はこんな波たちで構成されていたんだって。各詳細成分(図2; D1–12)の周波数帯域も計算できるけど,今回は波の数を数えてみてもD11あたりが応答成分を示す波だとわかる。実は前回の記事でスカログラムを作成したときに使ったデータがこのD11なんだよね。

ちなみにD7–8がおそらく呼吸関連,D9–10あたりがMayer関連成分(血圧とか)の波なのかなと思われる。

あともちろんD1–12とS12を全部合わせると元の波(Data)になる。

ちゃんと図2の作り方から抽出の方法までコードを載せておくからやってみて。

x = data;
wv = 'sym4';
level = 12;

mra = modwtmra(modwt(x, wv, level), wv);
helperMRAPlot(x, mra, time, 'wavelet', 'Wavelet MRA')

%D11の抽出
ext = mra(11, :)';

WaveletToolBoxの中に"helperMRAPlot.m"というファイルがあって,結果の出力にはこれを使う。デフォルトだと波の色もデフォルトの第1カラーで,階層数が多いと1ページに入り切らない(スクロールが必要になって図の保存が面倒)。

helperMRAPlot.mのコードを見ればわかると思うけど,"plot(ax(kk),time,mra(kk,:));"の部分(おそらく31と41行目にある)に色のオプションを追加すれば波の色を変えられるし,"% Resize each subplot to almost touch the one above."以下の"Height = 0.07"(おそらく92行目)を小さくすれば1ページで表示できるようになる。


おまけ

マザーウェーブレットの選択についてだけど,これは前にも言ったけど明確な選択基準はない(色々特徴はあるみたいだけどね)。あとマザーウェーブレットの違いで結果が大きく変わることは当然ない(図3)。

図3 マザーウェーブレットの違いによる結果の比較(D11のみ表示)

そうそう。各成分の周波数帯域だけど,MATLABのページによると以下の式で算出できるとのこと(図4)[1]。

図4 MRAにおける各成分の周波数帯域

とまあこんな感じかな。分解した波の中に応答成分以外の高周波・低周波ノイズも含まれているから,応答成分がどれか分かればそれを抽出するだけで以前紹介したフィルタリングと同等の処理ができたことになる。

特にNIRSデータの場合は体動とか皮膚血流とかに由来するノイズを考えると,単純にHPFとLPFを使うよりもMRAをして応答成分を抽出した方がいい気がする今日この頃。

次回はこの皮膚血流問題について書いてみようかな。


まとめ

NIRSの信号処理ならフィルタリングよりMRAを使った方が色々と都合がいいのでは?


引用文献

[1] MathWorks ヘルプセンター Practical Introduction to Multiresolution Analysis  https://jp.mathworks.com/help/wavelet/ug/practical-introduction-to-multiresolution-analysis.html (2023年3月22日)


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