« Multi taper | メイン | Multi taper (3) »
2006年02月16日
Multi taper (2)
Analysis of Dynamic Brain Imaging Data
PP Mitra and B Pesaran
Biophys J , 1999,76:691-708.
昨日の続き。
ではどうやって Multi-taper を作るのか、ということだが、それは Mitra 論文の 「Analysis technique」の「Multitaper spectral analysis」という章に書いてある。しかし、この文章、省略されすぎてて何を書いてんのか理解できない。。かろうじで理解できたとこまでまとめてみます。(間違ってるかもしれません。)
--
あるデータ点数の Multi-taper の作成の仕方。
データの点数 : N
興味のある周波数領域 : [-W,W]
とする。NW=5 ぐらいになるように W を選ぶ。
ここで、(i,j) 成分が sin[2πW(i - j)] / π(i - j) である N×N 行列を Aij とするとき、
A v = λ v (論文中、式(9))
の固有方程式を解いて、その固有ベクトル v が Multi-taper らしい。
---
では、なぜ上述のような行列 Aij を選ぶのか。
(以下では、関数 v(t) をフーリエ変換したものを V(f)、関数 g(t) をフーリエ変換したものを G(f) と表記する)
Multi-taper は、スペクトルの周波数領域 [-W,W] を最適化するために設計された窓関数らしい。ここで、周波数領域で [-W,W] の矩形波関数 G(f) を考える。つまり、
G(f) = 1 (-W ≦ f ≦ W)
0 (elsewhere)
それで、
G(f) ・ V(f) = λ V(f) (λは正の整数)
を満たすような関数 V(f) があれば、この関数を窓関数として使うとき周波数領域 [-W,W] での power を最適化すると考えられる。
それで、一般的に、G(f) V(f) = g(t) * v(t) (ここで「*」は convolutionとする)という関係があるから、上の式は
∫ g(t-t')v(t')dt' = λ v(t)
と書き換えられる。ここで、g(t)、v(t) を離散値関数とすると、
Σt' g(t-t') v(t') = λ v(t)
となり、Aij = g(i-j) とすると、上述の固有方程式になる。
それで、ここがポイントなのだが、矩形波 G(f) のフーリエ逆変換は、
g(t) = sin (2πW t) / πt
となるらしいので、 Aij = sin[2πW(i - j)] / π(i - j) となる。
これででいいのかな?あんまり自信ない。
--
まあでも、上の固有方程式は Matlab なら eig 関数とかを使って簡単に解けるから、自分で multi-taper を作るのもそんなにめんどくさくはないかもね。
投稿者 sfujisawa : 2006年02月16日 19:58
コメント
PP MitraってひとはこのあいだのFriesのNature論文にも共著者で入ってますね。この論文自体はreferされていなかったのでこの手法を使っているわけではないようですが。
投稿者 pooneil : 2006年02月17日 01:11
彼、Cold Spring Harbor の PI みたいですね。論文を見る感じ、解析が中心の人かな? Multi taper 自体はどうも Mitra の発明ではなく、もともとは Thomson っていう人が海洋のデータを解析するために開発したものらしいです (DJ Thomson, Proc IEEE, 1982)。
投稿者 しげ : 2006年02月17日 20:31
ありがとうございます。素人質問ですが、直行する複数のカーネルを使うとか、端っこが0になっているとか、Multi taperというのは、なんかフーリエ変換をウェーブレットみたいに使えるようにしたもの、ということなのですか?
投稿者 pooneil : 2006年02月17日 23:24
ウェーブレットについては僕は未勉強でよく分からないです。。すみません。。
端点が 0 なのは、あるデータ区間を離散値フーリエ変換するとき、その区間の波形が無限に繰返されるという仮定をおいているので、端点が 0 になっていないと低周波成分で変な値が出る可能性があるので、それを防ぐためです。あと、複数の直交カーネルを使うのは、足しあわせてノイズ成分を減らすためです。
つまり、Mulitaper 法は、データ点数が少ないデータをフーリエ変換したときにどうしても生じてしまう歪みを、少しでも減少させるための苦し紛れ(?)の手法なのです。(だから、データ点数が十分長い場合は、Multitaper はやってもやらなくても変わりません。。ただ、うちのラボでは、LFPのデータを1~2秒ごとの短い時間に区切って、時間毎にLFPがどう変化していくか、という解析をよくやるので、Multitaper があるとデータの信頼性が少し高くなって良いらしいです。)
投稿者 しげ : 2006年02月18日 01:36
コメントしてください
サイン・インを確認しました、 . さん。コメントしてください。 (サイン・アウト)
(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)