忍者ブログ
おかげさまでspamコメントが増えてきましたので、一応コメントを承認制にしました。基本的には承認します。
[11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2月中旬っていつまでをさすんですかね(2月20日までとして,じゃあ下旬は1週間しかないじゃんっていう)っていうか2月ももう後半ですねっていうか今年度も間もなく終了ですね。大変です。

表題の件,VLE, vowel length effect,略してVLEというのは,英語において直前に来る母音の長さで,最後の子音が有声音(gとかbとか)か無声音(kとかpとか)かがわかりますよ,という効果のことを指すようですね。で,長母音+有声音,および短母音+無声音という組み合わせの語が英語には多いようですが,これの逆パタンを作ってみて,8ヶ月児と14ヶ月児に,Headturn Preference Procedureをさせたら,14ヶ月児でのみ,短母音のペア(+無声音(match)と,+有声音(mismatch))でのみ差があって,mismatchの方をよく見たといえるような結果が出た,というのがDevelopment of perceptual sensitivity to extrinsic vowel duration in infants learning American English. Ko ES, Soderstrom M, Morgan J.という論文です。

Headturn Preference Procedureというのは,実際にはやったことないんですがどういうのかというと,部屋の中に左真ん中右とライトがあって,まず真ん中のライトが光って赤ちゃんの注意を惹き,しかるのちに右か左のどっちかのライトが光り,赤ちゃんがそっちを見ると声(単語)が聞こえます。それで,音が聞こえたあとに見ている”時間”を測定して,その時間を分析につかう,というものです。

まああと細かいところがちょっと気になるんですがそれは今後の為に取っておくとして,1歳になればそれは言葉も話しだすので,このへん既にわかっててもおかしくないですが,いわゆる6ヶ月で大体母語のカテゴライズが終わる説,において,長さのようななんていうのかなあ,とりあえず適切な言葉が浮かばないのですが微妙な違いはもしかしたら8ヶ月以降までカテゴライズされないよ,というのはちょっと面白いかもしれませんね。

拍手[0回]

PR

用意するもの

  • シリコン(かたとってを使いました. 東急ハンズにあります)
  • 焼石膏 これとか
  • 紙粘土(100均に売ってるので大丈夫だと思います);もしかしたら油粘土の方が良いかもしれませんね
  • 計量カップ
  • ボウルと泡立て器(調理には使えなくなると思うので,別個買った方が良いと思われます)
  • 紙コップ,段ボール等,かたどりに使うもの
  • 針金とセロテープなど.紙コップに紙粘土を固定するのに使うもの.
  • 接着剤(なくても良い),つまようじ(わりと必須)
だいたい,5000円くらいで全部そろうと思います.湿気のないところで保存すれば,相当量作れます.

まず,像の元になる模型を作ります.
オカメインコ
オカメインコをイメージしました.美術の成績は2でした.めんどくさくなければ,パーツとパーツは接着剤等でくっつけておいた方が望ましいと思いますが,ま,ゆるいところをつまようじで繋ぐくらいでも大丈夫でしょう.平たい足場(最終的に石膏注ぎ口になる)を作っておくと良いと思われます.

作った模型を,紙コップや段ボール(シリコンが溢れないように箱形にしたもの)等にいれます.今回は小さめだったので紙コップにしました.
オカメインコ in 紙コップ
この写真では,頭(平面で無い方)を上向きにいれていますが,これは最終的に失敗しています.多分,台座を平面にして,それを上向きにいれたほうが石膏をいれるときに成功します.また,紙粘土は軽いので,浮いて来てしまいます.そこで,紙コップの底に固定した針金に紙粘土を刺すとか,

爪楊枝を刺しておいて,しばらくそれで抑えつけるとか,そういう工夫が必要です.油粘土とかを使う場合は,普通に沈むと思いますので,いらないかもしれません.あと,紙粘土に鉛玉でもつめておくとか?

いずれにせよ,粉シリコン(かたとって)に,水を入れて良く混ぜます.

泡立て器で5分くらいでしょうか.多少ダマがあっても大丈夫です.表面がなめらかな感じになればokでしょう.このシリコンを先ほどの紙コップ(など)に流し込み,5〜10分ほど模型を動かさないようにして待ちます.さわって弾力がある感じになっていればokです.

紙コップから抜き取ります.紙コップをきっちゃっても良いですが,うまく固まっていればつるっと抜けるのではないかと思います.この段階で,紙粘土を作ってすぐならまだ粘土自体はやわらかいと思いますので,むりやり抜き取ります.
または,シリコンをカッターで切ってしまって,はずしても良いでしょう.同じ大きさの容器が用意できれば(たとえば紙コップね),再度その容器にいれると石膏がはみ出ることはありません.

次に石膏をまぜます.焼石膏500gに対して水320mlとかそんな感じだったと思いますが,わりにアバウトでも多分大丈夫です.混ぜた石膏を,シリコンに流し込みます.しばらく待つと,水が出てきます.

上の写真では,コップのふちギリギリまで石膏をいれていましたが,上部はほとんど水になりますので,これは捨てて石膏を足します.(そういう意味では,足場になる部分をかなり厚めにつくっておいた方が良く,この部分に繊細な加工をしてもあまりうまくいきません)

一時間ほど放置して,シリコンから取り出せばできあがり!

あたまが扁平になりましたが,まあ奇麗にできています.わりとしわとかもちゃんと再現されるので,もともとの粘土状態で指紋とかがないようにした方が良いと思います.爪楊枝できちんと固定していれば,

節分の鬼も奇麗にできます.理想的には,

こんな感じ.ちなみに手のかたどり(今回は量の都合で,指二本だけです.事件の匂いがしますね.)はかなり簡単にできそうです.

一番難しいのは,シリコンでのかたどりのときにちゃんとかたが取れるようにするということです.紙コップに接さないようにうまく固定できれば,奇麗につくれると思います.あるいは,平らな足場を厚めにつくっておいて,それを上向きにする,とか.それなりに短時間で,まあちゃんとした像ができますので,春休みの宿題とかにどうでしょう.

拍手[19回]

先ほど,1時間程を費やして2010年中に来たメール (1月1日-14日) をほぼ全て処理しました(いくつかpendingもありますが,これは今すぐできないので仕方ない).というだけなんですが,twitterだと備忘録にはならないので,ここに書いておきます.はー.

拍手[0回]

あけましておめでとうございます.新年早々フィルタについて調べていて,自分で書いてなかったかなと思って過去の記事を検索していたら恥ずかしい記事を発見したので,ちょっと修正してアップしなおします.それでもまだ恥ずかしいですね.

ここからは、非公式広島大学病院脳磁図室ホームページの内容を読みながら進めていきますので、意味がわかりにくい部分もあるかと思いますが、なるべく順次「渡辺が今見てるページ」にリンクを貼りつつすすめたいと思います。

Scilabの使い方を見ます。インストールとかのあたりは飛ばすとして、グラフ表示については、ちょっと補足があります。

まず

time=ave_0001(:,$); // $はMatlabのendと同じです。
meg=ave_0001(:,1:306);
meg(:,3:3:306)=[]; // magnetometerを除去
plot2d(time,meg); // グラフ表示
xset("use color",0); //白黒表示
という説明があるけれども、こないだ書いた説明は嘘なので忘れてください。

で、最初から見直すと、

time = ave_0001(:,$);
というのは、ave_0001という変数は112列(チャンネル+時間)783行のデータであった、というのはさっきエクセルで確認したと思うんですが、変数(n,m)というのは、n行m列を指しています。で、「:」←このコロンは、何を指しているかというと、1行目から最後まで、という意味になります.ave_0001(1:$,$)でも、(1:783,$)でも同じことになります。もともとは、初期値:増分:最終値という書き方ができて、たとえば、1:0.1:2と書くと、[1 1.1 1.2 1.3 1.4 … 2]という行列が帰ってきます。このとき、初期値および増分が1であるときは、表記を省くことができます。つまり,1:3とかけば、[1 2 3]という行列ができるということですね.更に、「最後まで」というときは、最終値も省いて、コロンだけ書けばOK,とそういう理解です。理解が合ってるかどうかはわからないけど、まあ現象はそれなりに正しく記述していると思います。

つまり、最初に戻ると、

ave_0001(:,$);
というのは、最終列の、全ての行を指しています。excelファイルで、時間になっている部分ですね。お分かりでしょうか。なお、単独の数字を書くと、その部分だけが指定されます。たとえば、
a = [1 2 3; 4 5 6; 7 8 9]
a =
[1 2 3
4 5 6
7 8 9]

で、a(2,3)とすると、2行目の、3列目の値ですので、a(2,3) = 6となります。a(:,3)とすると、
a(:,3)=
[3
6
9]
ということになります。大丈夫かな。
(なので、ave_0001(:,112);としても良い)次の、
meg=ave_0001(:,1:306);
については、
ave_0001の(:[全ての行],1:306[1列目から306列目まで])をmegという変数であらわすよ
という意味です。とにかく、一回excelファイルを開いて、それをイメージしながら考えるとわかりやすいはず。広島大のNeuromagにはどうやら306チャンネルもあるようですが、渡辺が使わせてもらっているのは101チャンネル+10トリガチャンネル+1時間ですので,
meg=ave_0001(:,1:101);
とするのが良いでしょう。次の
meg(:,3:3:306)=[]; // magnetometerを除去

というのは、イマイチ良くわからないのです。式の意味自体は、さっき作ったmegという変数のうち、3列目から:3つおきに:306列目までの全ての行を[]←からっぽにする(消す)という意味です。でもこのmagnetometerってのがなんなのかが…ごめん、わからないんだ…ただですね、この式を見る限り、102チャンネル(?)分消去してるので、そんなに消すとなにもなくなってしまう渡辺のデータではやる必要がないんでしょう。きっと。そういうことにする。ちょっといいMEGだと,magnetmeterとgradiometerという計測器があって,大雑把にいうとmagnetometerの方がノイズが混入しやすい(というか,gradiometerはノイズを補正した形で波形を出力するらしい;ちなみに,gradiometer 訳で検索された方がおりましたが,まあ,グラジオメータ,で良いのではないかと思われます)ので,magnetometerのデータは使わないよ,ということですね.ただ,渡辺が使っているMEGはmagnetometerしかないので,どうしようもないという.なお,もうちょっとだけ細かい話は,JSMBAの竹内先生の論文(多分フリー)をご覧ください.お世話になっています….

plot2dについては、前も書いたとおり、plot2d(x,y)で、2次元のグラフが書けます。xset("use color",0);とやったら、前面真っ黒になってしまったので、あれー,という.グラフのいじり方は、また別途勉強するとして.

ここまでわかったとして、前のグラフを書き直すといくつかのチャンネルが妙に大きい振幅をとっているほかは、中心付近に集まっているのが、まあわかりますね。(←「妙に大きい振幅」とやらは,トリガチャンネルでしょうね.当時はほんと,右もひだりもわからなかったんですね.とかいって違ってたりして)下部は、中心付近の振幅を0-300ms区間でズームインしたものですが、それでもまあ、わからないものはわからないですね。えない.



ちなみに、同じページに、

clf(); //figureをclearする
plot2d(time,meg,rect=(-50,-180,200,180)); //表示範囲を -50~200 -180~180にする。
xset('use color',0); //白黒表示
xgrid(); //グリッド表示
とすると、表示範囲がいじれますよ、とあるんですが、2行目の
plot2d(time,meg,rect=(-50,-180,200,180));
は、
plot2d(time,meg,rect=[-50,-180,200,180]);
にしないとエラーが出ます。
あと、xset('use color',0);にすると、全面真っ黒になるのは、さっきと同じ。xgrid();はちゃんと機能します。raw dataのことは、今は忘れることにします…。グラフの表示方法については、まあ今は考えないものとして、飛ばします。

SSPのかけ方
SCEファイルの作成1
固有値分解
特異値分解
独立成分分析 JADE
プロッターの作成
あたりは気になるんですけど、まあちょっと手に負えないので飛ばすとして(いいのかな… 独立成分分析あたりは、必要な気もします。あと、プロッタは、ほんとは出したいけど、面倒そうなのであとでやる)とりあえず周波数フィルターの作成,周波数フィルターの実行を明日やります。今日はこれから修士論文検討会なんだ。フィルターかけられなかったなー むー

というわけで,新年に見直すとちょっとわかることもありました.Scilabは何しろフリーなので,こっちでできたらそれに越したことはない,ということで,年内にはまた記事を書いてみたいと思います.とりあえずちょっとだけ修正しました.あと,plotの色については,多分ちょう簡単なことだと思う(クオーテーションがダブルだとか?)ので,近々調べます.

拍手[0回]

PREPROCESSINGは,MEGおよび/あるいはEEGデータを,ユーザが特定したtrialによって読み込み,いくつかのユーザが特定したpreprocessingステップをシグナルに応用する.これは,

[data] = preprocessing(cfg)
あるいは,
[data] = preprocessing(cfg, data)
という形でおこなう.cfgは構造体であり,データセットのファイルネーム,trialsとpreprocessing オプションの全ての詳細を含む.Preprocessingは,ファイルから読み出すためのデータの断片を定義した後にだけできる.データ中にトリガの発生を基盤にして行うことを例にしている.

もしPREPROCESSINGを最初の入力変数としての構造体だけを呼び,かつデータがファイルから読まれなければならないときは,

cfg.dataset = ファイルネームの文字列; %cfg.dataset = 'filename'のように,シングルクオーテーションで囲みます.
cfg.trl = N×3のマトリクス.%トライアルの定義による.definetrialをすれば出力されます.また,このファイルをみたところ,(トリガベースによる切り出しの場合は,そのトリガが立った時点)|(次のトリガが立った時点)|不明.durationかな?*イベント分の行,という形で構成されていましたので,トリガを建ててない場合は,適当なN×3のマトリクス行列を作ってあげればそれを元に読み出してくれると思われます.
cfg.padding = 個々のトライアルの長さがフィルタリングのために引き延ばされる(padded). ?
cfg.continuous = 'yes'か'no' %ファイルが連続データかどうか.デフォルトでは自動的に決まる.
を設定するようです.

データセットを特定する代わりに,ヘッダ情報を含むファイルの名前と,データを含むファイルの名前を特定することもできる.

cfg.datafile = 'filename'
cfg.headerfile = 'filename'
で良いらしい.これだと楽ですね.

もしPREPROCESSINGを,"data"変数の二度目の入力をして呼び出したとすれば,前のPREPROCESSINGの呼び出しにおけるファイルから既に呼び出されたファイルを含むことになる.この場合にのみ,構造体のオプションは次のようになる.

読まれるであろう,そして/あるいはpreprocessをされるであろうチャンネルを,
cfg.channel = チャンネルのselectionとしてのN×1セル配列 (デフォルトでは'all').; %CHANNELSELECTIONを見れば詳細がある.
他のオプションとしては,フィルタ関係で,

cfg.lpfilter = 'no' or 'yes' lowpass filter
cfg.hpfilter = 'no' or 'yes' highpass filter
cfg.bpfilter = 'no' or 'yes' bandpass filter
cfg.bsfilter = 'no' or 'yes' bandstop filter
cfg.dftfilter = 'no' or 'yes' %フーリエ変形の分離を用いた線形のノイズ除去
cfg.medianfilter = 'no' or 'yes' %medianフィルタの保護をジャンプする
cfg.lpfreq = lowpass frequency in Hz
cfg.hpfreq = highpass frequency in Hz
cfg.bpfreq = bandpass frequency range, specified as [low high] in Hz
cfg.bsfreq = bandstop frequency range, specified as [low high] in Hz
cfg.dftfreq = line noise frequencies for DFT filter, default [50 100 150] Hz
cfg.lpfiltord = lowpass filter order
cfg.hpfiltord = highpass filter order
cfg.bpfiltord = bandpass filter order
cfg.bsfiltord = bandstop filter order
cfg.lpfilttype = digital filter type, 'but' (default) or 'fir'
cfg.hpfilttype = digital filter type, 'but' (default) or 'fir'
cfg.bpfilttype = digital filter type, 'but' (default) or 'fir'
cfg.bsfilttype = digital filter type, 'but' (default) or 'fir'
cfg.lpfiltdir = filter direction, 'twopass' (default), 'onepass' or 'onepass-reverse'
cfg.hpfiltdir = filter direction, 'twopass' (default), 'onepass' or 'onepass-reverse'
cfg.bpfiltdir = filter direction, 'twopass' (default), 'onepass' or 'onepass-reverse'
cfg.bsfiltdir = filter direction, 'twopass' (default), 'onepass' or 'onepass-reverse'
cfg.medianfiltord = length of median filter
cfg.blc = 'no' or 'yes'
cfg.blcwindow = [begin end] in seconds, the default is the complete trial
cfg.detrend = 'no' or 'yes', this is done on the complete trial
cfg.polyremoval = 'no' or 'yes', this is done on the complete trial
cfg.polyorder = polynome order (default = 2)
cfg.derivative = 'no' (default) or 'yes', computes the first order derivative of the data
cfg.hilbert = 'no', 'abs', 'complex', 'real', 'imag', 'absreal', 'absimag' or 'angle' (default = 'no')
cfg.rectify = 'no' or 'yes'
cfg.precision = 'single' or 'double' (default = 'double')
使うところだけ参考にします….解説は良くわからないところもあるのでいずれ!かならずや!

EEGデータのみに使えるPREPROCESSINGのオプションは,
cfg.reref = 'no' or 'yes' (default = 'no') %リファレンスを変えるときに使うっぽい
cfg.refchannel = cell-array with new EEG reference channel(s)%どこを新しいリファレンスにするか
cfg.implicitref = 'label' or empty, add the implicit EEG reference as zeros (default = [])
implicitなEEG referenceをゼロにする?
cfg.montage = 'no' or a montage structure (default = 'no') 二階目の"data"変数入力のときにだけ使えるPREPROCESSINGオプションは,

cfg.trials = 'all' or a selection given as a 1xN vector (default = 'all')
である.

まとめると,Preprocessingをする前にどういうフィルタをかけるかを決めて,cfg.xxfilter, cfg.xxfreq,とかでその種類と範囲を指定する.+EEGの場合,リファレンスチャンネルを変更するならその設定をする,というあたりのようですね.


拍手[0回]



忍者ブログ [PR]
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
メールはこちらから
プロフィール
HN:
渡辺隼人
性別:
男性
ブログ内検索
カウンター
コガネモチ