allanvarパッケージを使ってみる
今回はヘルプにある実行例をそのまま実行しただけですが…
高精度な発振器のジッタ計測などに使われる(らしい)アラン分散ですが、どうもあまり資料がなく。まぁ信号処理とか測定の方はRではあまり情報がないからなぁ… ジャイロ等で使用することが多いそうですが、ジャイロ良く知らないな…
アラン分散で検索すると、たとえばこちら
やこちら
Allan variance(アラン分散) | 株式会社デプロ
などの資料が見つかりますね。
Rのパッケージにないのかなと探してみたところ、allanvar
パッケージなるものがありました。
あまり更新されてないようですが、まぁシンプルなパッケージだし、あまり更新することもないかもしれない。もう一つ、gmwm
パッケージというのもあるようですが、今回はallanvar
パッケージの方を使ってみます。
gyrozデータセット
allanvar
パッケージに含まれているデータですが、ヘルプで説明を読んでみるとこれは実測データではなく、Rで作成したダミーデータとのことです。
とりあえず見てみるです。
data(gyroz) plot(gyroz)
…で、plotして見てみるとこんな感じです。
ノイズが大きく、トレンドらしきものが見えるような…見えないような…という感じのデータですね。
とりあえず実行してみよう。
library(allanvar) # コピペ… #Load data data(gyroz) #Allan variance computation using avar avgyroz <- avar(gyroz@.Data, frequency(gyroz)) plotav(avgyroz) abline(1.0+log(avgyroz$time[1]), -1/2, col="green", lwd=4, lty=10) abline(1.0+log(avgyroz$time[1]), 1/2, col="green", lwd=4, lty=10) legend(0.11, 1e-03, c("Random Walk")) legend(25, 1e-03, c("Rate Random Walk"))
で、結果は
のようになります。なんか字が見切れていますが…。縦軸も工夫して桁が見えるようにしないといけない気がする…。
一応、それっぽくは表示されていますが、もうちょっと工夫が必要だな~…。
表示された値それぞれにエラーバーがついていて、やはりτが大きい方が誤差が大きいようですね。1。
んー、これは自分で計測するかダミーデータ作って使ってみないといけませんな…
allanvar
についての日本語の資料が全然ないのでとりあえずメモから残していきます。
Enjoy!?
-
測定期間が一定なら周期の短い方が多く観測できるので誤差は減っていくだろうという浅い理解です。が、多分そうなんだと思う。元になった論文とか読まないとかな…。↩