プロフィール

kazutabakun

Author:kazutabakun
好奇心旺盛でいろいろなことに興味を持つタイプ。

最新記事
Amazon
時計
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
FC2ブログランキング
気に入ったら下記をクリックしてください。

FC2Blog Ranking

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

新規鉄道模型レイアウト制作状況その2:星のゆらぎ表現

夜空に輝く星をレイアウトに組み込むことにしました。ターゲットは下記のようなレイアウト夜景をそのまま再現すること。これができればさぞ綺麗なレイアウトになることでしょう。このトランクレイアウトは箱根模型工房クラフトの作品です。プロの作品です。私が再現できるかどうか。。
トランクレイアウト夜景
星から宇宙空間を長旅してくる光は直進して地球に届きますが(一般性相対論の重力影響という風な難しい事は別にして)大気の温度差などの屈折率の変化で不規則に瞬くように見えます。これの現象は1/fのゆらぎで変化しているそうです。1/fというゆらぎは自然界ではいろいろな所で見ることができるようで脳波のα波やホタルの光り方、ロウソクの灯火などもその一種だそうです。レイアウトの星空にこのような細工が出来るかどうか?照明源として実現可能かどうか?
を試作品(プロトタイプ)制作を通して試みてみました。

さてレイアウト作成の本題から脱線しますが、この1/fゆらぎとは何か?を少し調べてみました。1/fというのはfが周波数(frequencyの頭文字のf)の意味で周波数が大きくなる程その強さの成分が反比例して小さくなるような特性を持った信号の事をいいます。グラフであらわすと次のようになります。
1-f spectrum

1/fのゆらぎを持った信号を作り出すのはいろいろな方法があるのですが、間欠カオス法という漸化式 (recurrence relation)を使ったも方法があります。これは下記のように大変簡単な記述で表すことができるようです。
Fn.png

n番目のxの値を上記のxの範囲の条件で計算したものが次のx(n+1)の値になるという式ですね。Web検索を行うとこの式がよくでてくるのですが、数学理論的な出典は不明です。したがってなぜこのような式なのかを数学的に理解することは今のところ困難です。今回この式の出典は別途考察するとして、とりあえずこれを鵜呑みにして使用することにします。数値計算によってこの式で表す値が1/f信号になっているかどうかを確認します。この計算手順を図で示したものを下記に掲載します。
Intermittency_chaos_graph.jpg
x軸とy軸を0、1の間で見ると左側の式がで右側の式がになります。真ん中はです。
さてxの初期値をX0を0.4とした場合x1は左側の曲線の値になり、約0.72ぐらいになります。これを真ん中の直線との交点まで線をのばしそれに該当する右側の曲線の値を見ると約0.56位になります。これがx2です。この手順を延々と続けるとxnの値が求まっていくことになりますね。

さてこの方法は時間がかかりますので、あらかじめEXCELで計算しました。その結果が下記のグラフです。
1-f_signal in time domain
何となくランダムに変化しているようですが、実はこの信号の周波数成分は1/fになっているのです。それを確かめましょう。この時間軸にそった信号を高速フーリエ変換をして周波数領域に変換します。やり方はEXCELのデータ分析で行います。その結果と一番始めに述べた1/fのグラフを重ねあわせたものを下記に示します。
Signal_Spectrum_Frequency_Domain.jpg

他の漸化式でもいろいろなカオス信号は作れるようですが、上記の場合のように1/fのプロファイルを得る事は出来ません。下記のケースは1/fというより殆どホワイトノイズと呼ばれているものに近い感じです。
Fn1.png

漸化式1 漸化式1FFT

次の漸化式は間欠的な信号を発生させるようになっています。これも1/fから外れてホワイトノイズに近いプロファイルを持っていますね。
Fn2.png

漸化式2 漸化式 2FFT

さあここから電子工作の話に戻ります。長々と説明しましたが1/fゆらぎとして上記の漸化式
Fn.png
が使えるようなのでこれをプログラムしてLEDを点灯させるプロトタイプを作りました。前の記事で使いましたArduinoのMPUを今回も使用します。これ、結構使い勝手のいいマイクロコンピュータです。
まずは接続図。ハードウエアはとっても簡単です。
Arduino_Connection.png Arduino_Circuit.png
次に肝心なプログラム。
Arduino_program_LED_1:f
これは2個のLEDを別々のタイミングでゆらぎを与えるようになっています。さて下記の動画にその様子を示します。


要素技術としては1/fのゆらぎを実現することができたようです。後はこれをいかにレイアウトに組み込むかということですが。。それはまた後日報告します。



スポンサーサイト

Comment

非公開コメント