当ブログは…
メモ
Stephan M. Bernsee's: http://www.dspdimension.com/index.html
Chaotic LFOのためのメモ
id:Chuck:20050515#p2 にトラックバックを打ちつつ、
- http://astronomy.swin.edu.au/~pbourke/fractals/lorenz/
- http://www.wam.umd.edu/~petersd/lorenz.html (要Java)
- http://www.cmp.caltech.edu/~mcc/chaos_new/Lorenz.html (要Java)
- http://mathworld.wolfram.com/LorenzAttractor.html
AVRのATmega88をターゲットに a = 10, b = 28, c = 8 / 3 で float で演算式を並べてみたら*1、ざっくりと Intel Hex ファイルが 3KBというサイズになった。値の正規化、DACへの出力、値の更新周期を変える機構 を入れて ATmega88 のコード領域にぎりぎり入るかな? 入らなければ、Strawberry-Linuxさんで取り扱いを始めた ATmega168を使えば良いだろう*2。
追記
なにも考えずに float で書いたプログラムを動かして、AVRシミュレータで処理時間計測。8MHz で、Lorenz Attractor の 1tick に 388μsec。
値の正規化とクリッピング処理、offset binary 変換*3をしても 500μsec で1サンプル出力できそう。
float の1ワード には 4byteが割り当てられていた。IEEE の単精度浮動小数点フォーマットなのかな(ちゃんと調べろ→自分)。ビット数をケチる方向でフォーマットを変えると自分で演算ライブラリも作らなければいけないが、容量的・処理時間的に間に合うならそのままでいこうと思う。