加算平均
一般的な加算平均について述べます。
まず、下図のようにwidgetを配置します。
Mjk LISPを理解するためcommandを書きます。
(require-widget 'ringbuffer 'buf);;ringbuffer widgetを呼び出し、bufという名前をつける
(set-resource (G-widget "buf") :size 2000000);;bufのsizeを200万とする
(require-widget 'pick 'meg);;pick widgetを呼び出し、megという名前にする
(set-resource (G-widget "meg") :names '("MEG*"));;megのnamesをMEG*にする
(require 'ssp);;sspを呼び出す
(set-resource (G-widget "ssp") :buffer-length 2000000);;sspのbuffer-lengthを200万にする
;;sspのbuffer-lengthはdefaultでは2000と小さいので大きくしておいてください
(require-widget 'fft-filter 'fil);;fft-filter widgetを呼び出し、filという名前にする
(set-resource (G-widget "fil") :pass-band '(band-pass 0.5 330))
;;filのpass-bandをband-pass 0.5〜330Hzにする
(require 'average);;average widgetを呼び出す。
(require 'std-reject);;rejectを呼び出す。
(require-widget 'pick 'stim);;pick widgetを呼び出しstimという名前にする
(set-resource (G-widget "stim") :names '("STI*"));;stimのnamesをSTI*にする
widgetを呼び出せたら、上のようにつないで下さい。
御覧のようにwidgetの呼び出しは
(require-widget ' 'its name)
という構文になります。またwidgetのresourceの設定は
(set-resource (G-widget "its name") :resource-name parameter)
という構文になります。
;; コメント文
はコメント文です。実行されません。
widget同士をつなぐには
(link (G-widget "name1")(G-widget "name2"))
とします。
LISPで定義された関数や変数の説明は
(describe 'abc.lsp)
で表示されることがあります
目的とするFIFF fileを読みます。
control panelのaverage widgetをdouble clickします。
ここではstartを-0.05秒、endを0.9秒としました。
do-averageをクリックしないと加算したデータがaverage widgetに保持されません。
GraphのメニューバーのParametersをクリックし、averagerを選択します
加算用のparameterが表示されます。
ここではpick widget、stimの1番目をtriggerとしています。
またrejectionを行うため、呼び出したstd-reject.lspをaverage.lspに認識させています。
GraphのメニューバーのParameterからrejectionを呼び出します。
なぜかstd-reject.lspのparameterはチャンネルが0からでなく、1からとなっています。
zero-channelsはよくわかりませんが、最初のringbufferの名前とし、チャンネルを1とするのだそうです。
ここではpick widget、megの1〜306チャンネルで、トリガーから-0.05秒から1秒の間に
3.0×10-10 T/m = 3000 fT/cm以上の信号があればrejectionがかかる設計にしています。
rejectionのサンプル数はdefaultは2000に制限されています。増やすときには
(setq max-rejection-size 40000)
などとします。
(average 0 999)
とすれば0秒から999秒の間で加算平均を行います。
average widgetにplotterやxplotterをつないでおくと、加算処理が遅くなります。
処理が終わるとaverge widgetをdisplayにつないで、
(make-evoked-file :filename "arbitrary filename.fif" :source (G-widget "display"))
とすればaverage widgetの内容がfiff fileに保存されます。
evoked dataのサイズは50万に制限されています。増やすときは
(setq max-evoked-data-size 1000000)
などとします。