シンプル加速度ロガー・アクセロガ

English Version

シンプル加速度ロガー・アクセロガについて紹介します。

更新履歴

Version日付新しい点
2.62010-09-10ログファイルの区切り文字が選べるようになりました。
2.5いつだったかな?Xperiaでも起動できるようになりました。また起動が高速になりました。
2.4おぼえてないなスリープにさせないモードを用意しました。
2.1随分前のことのような気がする横表示と g単位が切り替えられるようになりました。
2.0そんなこともあったっけFFTによりスペクトル、ウォーターフォールディスプレ、振動パワーを計算できるようになりました。

アクセロガとは?

アクセロガとは、加速度を観察し、また保存するためのツールです。起動すると刻々と変化する加速度を見ることが出来ます。

加速度を保存したい場合はMENUの記録ボタン(日の丸ボタン)を押してください。SDカードの以下に示すフォルダへ自動的に数値ファイルにログを出力します。

/accelogger/

どうやって遊ぶの?

エレベータの最大加速度ってどれくらいか知っていますか?

歩いているとき指先に掛かる加速度ってどれくらいか知っていますか?

歩いているとき、自転車をこいでいるとき、踊っているとき、そのモーションはどれくらいの周波数か知っていますか?

これらの疑問を解決します!

何が画面に表示できるの?

次の要素を表示させることが出来ます。これらは設定画面で追加/削除できます。

何がSDカードに保存できるの?

次の要素をSDカードに保存することが出来ます。これらは設定画面で追加/削除できます。

波形

加速度変化です。赤がx、緑がy、青がzに対応します。黄色のmagは(x,y,z)ベクトルの大きさです。サンプリングレートは機種によりますが、だいたい50[Hz]だとおもいます。つまり20[ミリ秒]ごとにサンプリングできます。しかし、それらは正しく等間隔ではありません。たとえば急な動きを検出するとセンサーはデータを高頻度で報告しますが、静かに安定しているときはほとんどデータを報告してくれません。最頻のサンプリング周波数がどれくらいかは補助情報で Major Sampling Rate でみることができます。

このアプリケーションはデータを強度時間平面に描画します。もし、データがセンサーから報告されていない場合は、データが変化していないものとして、最後に報告されたデータを外挿値として適用します。

ログは WV-yyyyMMdd-HHmmss.txt という名前で CSVファイルで出力されます。最初のフィールドは日付と時間、二番目のフィールドが相対時間[ナノ秒]です。3、4、5番目がそれぞれx、y、z軸の加速度[m/s^2]に相当します。これらの値は生データであり、補正されていません。

波形の軸

強度時間平面の軸です。画面をスライドすることで各軸のスケールを変えることが出来ます。強度は最大値で40.0まで表示できます。時間軸は秒刻みです。これらの軸は波形を表示しているときだけ表示されます。時間軸の表示範囲は補助情報で Sweap Speed でみることができます。

スペクトル

波長ごとのベクトルの長さの分布です。

FFT(高速フーリエ変換)で計算されます。周波数の範囲は0~3125[Hz]です。縦軸のスケールは波形の縦軸のスケールと連動しています。主ピークの周波数は補助情報で Major Peak Freq でみることができます。データ点数は128、サンプリングの時間範囲は2.56[秒]です。つまり、サンプリングレートは実は50[Hz](20[ミリ秒]ごと)となっています。しかし、さまざまな理由により、データの欠落が発生するので、このアプリケーションは時間軸に等間隔に値を予測しています。注意:アルゴリズムの制約から、値の予測は最後に得られたデータを基点として過去方向に2.56[秒]の時間区間で行っています。それゆえ直近の数秒にセンサーからデータが報告されていない場合、スペクトルは現在の瞬間のものではないことになります。

ログは SP-yyyyMMdd-HHmmss.txt という名前でCSVファイルで出力されます。最初のフィールドは日付と時間、二番目のフィールドが相対時間[ナノ秒]です。3番目から最後までが、0~31[Hz]の各振幅の複素数のノルムになっています。

スペクトルは可能であれば100[ミリ秒]ごとに更新されます。この更新周期は設定画面で変更することが出来ます。

ウォーターフォールディスプレ(滝表示)

時間分解スペクトルです。これもFFTにより計算されています。横軸はスペクトル軸と同じです。縦軸は時間軸(上が未来方向)で、1画素が1回のFFT更新周期に相当します。ですから、もし更新周期を変更すれば、縦軸のスケールも連動して変わります。降りてくる緑の幅は各周波数のピークの高さに相当します。

ログは WF-yyyyMMdd-HHmmss.png という名前でPNGファイルで出力されます。ファイル名の示すタイムスタンプは画像が保存された時間です。

振動のエネルギー

実機の振動のエネルギーに比例する値PVEです。これもFFTにより、以下の式で計算されています。

PVE := Σ ( 周波数2 * 振幅2 / サンプリングの時間範囲 ).

PVE := Σ ( 周波数2 * 振幅2 ) * サンプリングの時間範囲.

このバージョンでは、この値を表示する方法はログファイルに出力する以外にありません。ログファイルは EN-yyyyMMdd-HHmmss.txt という名前の CSVファイルです。最初のフィールドは日付と時間、二番目のフィールドが相対時間[ナノ秒]です。3番目にこの値が出力されます。私は振動のエネルギーと人間の活動がどのように関係するかの理論を知りませんので、何ともいえませんが、しかし、この二つには関係があると思います。知的好奇心が御ありでしたら是非とも探求してみてください!

※すみません。上の式、書き間違えていました。プログラムの方はあっています。それはそうとして、実際のサンプリング感覚は常に一定とは限らないので、時間をかけずに、仕事率のまま表示させたほうがいいかもしれませんよね。あとでプログラムを修正します。

数値表示

各軸の現在の値、最近1024データ点における最大値、最小値、平均値です。通常のサンプリング周波数は50[Hz]だと思いますので、この時間区間は20秒ほどとなります。

補助情報

科学的な目的において重要な情報です。以下の値を見ることが出来ます。

レコーディング情報

レコーディングの状態です。略称のWVは波形を、SPはスペクトルを、WFはウォーターフォール(滝表示)を、ENは振動のエネルギーを表します。どの要素が保存されているかを知ることが出来ます。また、この文字列をクリックすることで記録開始/記録停止を切り替えることが出来ます。

FAQ

FFTの一番左に見える大きなピークは何ですか?
重力加速度のバイアス成分に大きく起因します。自由落下しながら測定するとキャンセルされると思います。
水平に振ると2倍の振動数成分が見えますが、これは第二高調波ですか?
違うと思います。このアプリは加速度ベクトルの大きさの変化をFFTにかけているので、正負の交番する信号はその自乗において見かけの振動数が2倍になります。これはFFTが正しく振動のスペクトルを表していないというを意味します。ご注意ください。ちなみに、重力加速度に平行な加速度成分は1Gを超えない限り信号は正領域または負領域にあるため、自乗しても基本的な振動数は不変です。
相対時間ってなんですか?
実を言うと私はアンドロイドのタイムスタンプを正確に理解していません。ですので確証は無いのですが、多分、実機起動からの積算時間を[ナノ秒]で表しているのだと思います。たとえば 94963[秒]というばあい、その行は実機を起動してから94963秒(すなわち1日と2時間)経過後に記録されたものなんじゃないかな、と思います。
センサーは校正する必要はないのですか?私の立っているところの引力がいつも 10.0[m/sec2]以上なんですけど。加速度センサーは温度による補正が必要だって聞いたこともありますし。
アンドロイドの加速度センサーにも温度補正回路が入っていると見たような気がします。しかしどうあれ、キャリブレーションは必要かもしれませんね。
なんでこのアプリは無料なんですか?
なぜなら、このアプリは私やあなたの最終的な目的ではないからです。これはあくまでもツールなのです。このアプリを使って素晴らしい世界をあなたが切り開くことを私は願います。
©2009 by Sora Takayama, Ph.D.