2010年2月6日土曜日

BMIもどき


趣味で、「筋電図で動くラジコンカー」なるものを作ってみました。
腕の屈筋と伸筋の筋電図を測定して、その活動のバランスで右にいったり左にいったりします。

内容的には全く珍しくないし、研究とも直接関係ないんですけど、
アンプを自作したり、NIのボードとか高価なものは使わず自前のノートPCのUSBポートだけで手軽にDA/AD制御してみたり、変なところにこだわってみました。
おかげで今まで知識として知っていた生体信号処理をより直感的につかめた気がします。
ハードウェアの理解も深まったし。
なんだか戦闘値がアップしたって感じです。

自分の研究には直接的なプラスはないんですけど。。。


あくまで趣味なんで、全部自腹ですし、研究費は一切使っていませんのでご心配なく。

2010年2月1日月曜日

MATLABの動きを快適にする方法

(注 下に挙げている方法を試される場合は、自己責任でお願いします。)


「Boot.iniの3Gスイッチを使う」
昔の記事(「メモリー」2007年12月14日)にも書いたのですが、
MATLABでLFPやEMGなど長めのアナログデータを解析していると、メモリ不足のエラーが生じることがあります。
??? エラー ==> xxx
メモリが足りません.HELP MEMORYとタイプしてオプションを確認してください
言われた通りHELP MEMORYとタイプしてみると、仮想メモリを増やすように言われるのですが、仮想メモリを増やしてみても大抵の場合何も改善しない。なんでかというと、Windows X
Pではアプリケーションで使えるメモリは2Gに制限されていて、いくら仮想メモリを増やしたとしてもOSがアプリケーション用にそれらを使ってくれないってところに原因があるようです。

Windowsは、この2G制限をはずす方法を用意してくれています。
(参考URL)「Windows XP および Windows Server 2003 の Boot.ini ファイルで使用可能なスイッチ オプション」(
http://support.microsoft.com/kb/833721/ja

1. [マイ コンピュータ] アイコンを右クリックし、[プロパティ] をクリック
2. [詳細設定] ->[起動と回復] -> [設定] をクリック
3. [起動システム] の [編集] をクリック
4. [operating systems]セクションの最後に「 /3GB」を追加する
5. 上書き保存して、再起動をかける。

これでMATLABを含めたアプリケーションが使えるメモリが大幅に増加して、メモリのエラーが起こりづらくなります。
私の場合、このスイッチを入れて以降、メモリのエラーにほとんど遭遇しなくなりました。




「マルチコア対応に設定する」(R2007a以降、マルチコアPCのみ)
MATLABのデフォルト設定ではマルチスレッド計算は無効になっているため、CPUをマルチコアに変えるだけだとシングルスレッドとして扱われて演算は早くならない。
マルチコアの利点(処理の高速化)を生かすには以下の設定が必要。
(参考URl)「1090 MATLABは、マルチプロセッサ/マルチコア対応のマシン上で動作しますか?」(
http://www.cybernet.co.jp/matlab/support/techkwdb/search_view.php?id=1090)


1. [ファイル] -> [設定]-> [一般] -> [マルチスレッディング] を選択。
2. [マルチスレッド計算を有効にする]をチェック。
3. [計算スレッドの最大数] を指定(「自動」のほうでOK)。

これで、マルチスレッド計算が有効になっているため、演算処理が速くなる、はず。
(実は、速くなった実感があまりないんですけど、速くなっているんでしょう。。。)