hirax.net::Keywords::「基底」のブログ



1998-11-12[n年前へ]

無限音階を作ろう  share on Tumblr 

上昇し続けるって何ですか?

- 上昇し続けるって何ですか? -
(1998/11/12)

無限音階を作りたい

 無限音階というものがある。ド・レ・ミ・・・と音がどんどん高くなっていくように聞こえるのだが、いつまでたっても終わらず、ふと気づくとずっと前と同じような音の高さだというものである。Escherの無限階段の版画は有名だが、あれの音階版である。
 とにかく、無限音階を作ってみようというのが今回の目的である。参考までに、Eshcerのことに関しては藤原康司氏のWEBhttp://www.pluto.dti.ne.jp/~fwhd5468/に詳しい情報がある。 ちなみに、このような版画である。
Esherの無限上昇(下降)シリーズ
「上昇と下降」(左図、1960年作)

「滝」(右図、1961年作)

 本題をますます離れるが、飯沼 敏夫氏のWEBhttp://www2.gol.com/users/atoz/index.html は一見の価値がある。上の2枚の版画をQuickTimeVRで実感できる。素晴らしい。

無限音階の仕組み

 人間の聴力にはもちろん周波数特性がある。
ニコンの補聴器のWEBhttp://www.nikon.co.jp/main/jpn/society/hocyouki.htm
によれば20Hz-20kHzが通常聞こえる周波数の範囲であるという。例えば、CDのサンプリング周波数はが約40kHzであるのは、この20kHzの倍だからである。つまり、ナイキスト周波数による。
 もし、ある高さの「ド」の1オクターブ下、そのまた下、...それだけでなく、1オクターブ上、そのまた上...が一度になったら、人間の耳にはどう聞こえるだろうか。それは、やはり「ド」である。その時のスペクトルはこんな感じである。なお、横軸は2をベースにした変形の対数軸である。また、実際には「ド」ではない。
音の画像スペクトル(水色が人間の耳に聞こえる範囲)

それでは、そのような「レ」が鳴ったとしたら?もちろん、それも「レ」である。そのようにして、「ドレミファソラシド」とやるとどうだろう?最初の「ド」と最後の「ド」は全く同じになっている。しかし、人間の感覚としてはどんどん音の高さが上昇していくように感じる。これが無限音階の仕組みである。
 図で示すとこのようになる。なお、下の図中で水色は人間の耳に聞こえる周波数領域である。また、振幅はたんなる相対値である。

上昇していく音
最初の音
少し高くなった音
もっと高くなった音
もっと、もっと高くなった音
もっと、高くなると、元に戻っている
上昇し続けるように見えて、結局同じ所を回っているだけである。

作成した無限音階

 今回は12音の平均率音階を用いている。音階そのものについては「音階について考える」という別の話である。また、基本波形としては正弦波を用いている。20Hz以下の正弦波を基本波形として、その倍音を20kHz超まで均等に足しあわせたものをただ作っただけである。正弦波を用いたのは話を単純化するためである。
 ここに今回作成したMathematicaのNoteBookを置いておく。また、下が作成する途中のデータである。どこか間違っているような気もする。少し不安だ。
左図は基底となる周波数を示す。X軸が周波数、Y軸が何倍音かを示す。右図は平均率の音階。440HzのAから1オクターブ上のAまで。
作成した音声データの波形 (左が全波形、右はデータの最初の1000個)
 聞く際の注意だが、音声再生ソフトの設定を「自動繰り返し」にして欲しい。

 さて、これが作成した無限音階である。それっぽく聞こえるだろうか。

1999-02-27[n年前へ]

画像ノイズ解析について考える  share on Tumblr 

考える理由

 画像ノイズ解析を目的として、2次元フーリエ変換を用いて周波数解析をすることが多い。かねがね、このやり方について疑問を感じていたので少し考えてみたい。

 その疑問とは次のようなことである。

  • 通常の2D-FTでは、入力データ全領域での周波数解析を行う。従って、単発のパルスのようなノイズはバックグラウンドに埋もれてしまい、結果にはなかなか出てこない。
  • 同じ理由で、2D-FTでは位置と周波数解析を同時に行うことができない。(もちろん、短時間フーリエ関数を使えば、そのような測定は行うことができる。)
  • また、ホワイトノイズのようなフラットな周波数特性を持つノイズもバックグラウンドを押し上げるだけの効果しか持たないため、解析をしづらい。
 そこで、今回は単純な画像に対して、2D-FTと2D-離散Waveletの比較を行うことで、2D-FTを用いた「画像ノイズ解析」の問題について考える。

2D-FTと2D-Waveletの例

 はじめに、2D-FTと2DWaveletの例を挙げる。まずは2D-FTである。
2D-FTの例(左から原画像、2D-FT結果、2D-FT結果の鳥瞰図)
 左の原画像は45度のスクリーン角のラインである。2DFTの結果にはその角度方向にピークがいくつか並んでいる。それぞれのピークの中央からの距離が周波数を示している。それはX,Y方向いずれについても言える。今回の場合はX,Y方向のスクリーンの周期が等しいため、2DFTの結果でも45度方向になっているのである。
このように、2D-FTの結果というのは周波数(X,Y両方向)と振幅がわかる。ここでのスクリーン角のような周期性を持つものの解析にはフーリエ解析というのは極めて有効である。店で見かけるインクジェットプリンターもヘッドの移動による周期ムラが激しいが、このようなムラに対してフーリエ変換を用いた周波数解析を行うのは正当であり、有効だろう。

 それでは、同じ画像に2D-Waveletをかけてみる。2D-Waveletの結果は位置と周波数強度分布情報(ホントは違うのだが)が両方出てくる。位置情報が2次元で周波数強度分布情報が1次元であるから、合わせて3次元である。そのため、表示に一工夫いる。
 第一段階として高周波成分から調べてみる。すぐにこの結果の意味がわかるだろうか?

2D-Wavelet例(左が原画像、右が一段階Waveletをかけた結果)
かなり判りづらい。この右の結果は4つの領域にわかれているが、以下の表のような意味を表している。また、いずれも灰色の部分は強度が弱く、白と黒が強度が強いことを示している。
高周波のX成分高周波成分
低周波成分高周波のY成分
 低周波成分が原画像と同じようであるのがわかると思う。これは2DFTと違い、Waveletでは位置情報もそのまま保持されているからである。次に、この低周波成分に対して、もう一段Waveletをかけるとこうなる。
 右上から左下への対角線上のが周波数成分を示し、これで周波数成分にして3分解できたことになる。右上が一番高周波成分。その左下が次の高周波成分。右下が低周波成分である。
 もう何分割かしてみる
 このようにして、画像内での位置と周波数成分が両方ともわかる。

 なお、フーリエ変換では基底関数としてSinが用いられるが、Wavelet変換では基底関数としていろいろな関数を使うことができる。今回はDaubechiesの4次のものを用いている。下がその形である。

Daubechiesの4次のフィルター

ドットのノイズを解析してみる

 それでは、今回の本題に入る。以下が原画像である。左が「2つの大きなドットからなる」画像であり、右がそれにノイズの加わった「ノイズ」画像である。ここでノイズはホワイトノイズを加えているつもりである。ドットは周期性を持つデータだが、ノイズ自体は周期性を持たない所がミソである。また、ここで言う「ノイズ」とは現実の現象とは何ら関係がない。単なる例えである。
ドット画像(左が原画像、右がノイズを加えた画像)
 まず、この2つの画像に対して、それぞれ2D-FTをかける。
2次元離散フーリエ変換を行った結果
 このグラフではXY軸とも-πからπまでの領域で示している。中央からの距離が周波数を示しており、明るいほどその周波数帯の振幅が大きいことを示している。つまり、任意の周波数帯の強度がわかる。
 右のノイズの加わった画像の2DFTの結果では、広い周波数領域で強度が上がっている。しかし、下の鳥瞰図で示した(私は立体が好きなのだ)方でもわかると思うが、バックグラウンドが持ち上がっているだけである。いずれにせよ、あまり左右の間で違いはない。今回のような64x64の画像ではなく、もっと大きい画像ではその違いははより識別不能になる。
2次元離散フーリエ変換の結果を鳥瞰図で示したもの
 さて、次に2D-Waveletで同じように計算をしてみる。下が計算結果である。どうだろうか、ノイズ(位置も周波数も)が一目で判るようには思えないだろうか?
2D-Waveletによる解析結果(左がノイズ無し、右がノイズ有り)
 今回は、自分の頭を整理するために、ただ2D-wavelet変換をかけてみた。まだまだ話しは続くのである。

1999-02-28[n年前へ]

分数階微分の謎  share on Tumblr 

線形代数、分数階微分、シュレディンガー方程式の三題話

分数階微分?

InterLabの1999No.5を読んでいると面白い記事があった。いわき明星大学理工学部の榊原教授の「Waveletと数式処理ツール」という記事である。といっても、興味を持ったのはWaveletのことではない。もちろん、Waveletに興味がないわけではない。この榊原教授が講師を務めたWavelet講習にも参加したこともある。しかし、今回興味を惹かれたのはその記事中にあった「分数階微分の解析」である。

InterLabの榊原教授の記事を引用すると、-通常微分・積分は整数回実行できるが、分数階微分はこれを分数に一般化したものである。さまざまな物理や工学の現象の記述に使われるようになった-とある。一階微分とか二階微分というものはよく使うが、0.5階微分などというものは使ったことがない。どのようなモノなのかさえよくわからない。

参考:

一体、どんな物理や工学の現象の記述に使われているのか知りたくなったので、infoseekで調べてみる。すると、

いわき明星大学の清水・榊原研究室の「粘弾性動モデル」が引っ掛かる。

参考:

衝撃吸収・シリコーンの弾性率などに興味を持っている人には面白いかもしれない。

もう少し調べてみると「バナッハ空間バナッハスケールにおける分数階積分作用素」というようなキーワードも引っ掛かる。

そこで、まずは勝手に分数階微分について考えてみた。

分数階微分・積分の勝手な想像図


まずは、イメージを考えるためにグラフを作成してみる。x^2の関数、および、それを微分・積分した関数である。微分は3階まで、積分は2階まで行っている。

図.1:x^2を微分(3階まで)したものと、2階まで積分したもの

このグラフ形式の表示をちょっとだけ変えてみる。

図.2:x^2を微分(3階まで)したものと、2階まで積分したもの

ここまでくると、平面グラフにしてみたくなる。つまり、微分・積分の階数を離散的な整数値でなく、連続的な値としてのイメージに変えたくなる。

図.3:x^2を微分(3階まで)したものと、2階まで積分したもの

これで、微分・積分が整数階でない場合のイメージ(勝手な)ができた。微分・積分が離散的なものではなくスムーズにつながっているものであるというイメージである。図.2から図.3への変化をよく覚えていてほしい。

といっても、これは数学的なイメージのみで物理的なイメージはまだここでは持っていない。位置、速度、加速度などの微分・積分で選られるものに対して同じようなイメージを適用すると、位置なんだけれどちょっと加速度っぽいもの、とか、速度と加速度の「合いの子」みたいなものというような感じだろうか?

さらに、これから先は、f(x)という関数が示す無限個の値を位置ベクトルと考えて、f(x)というのは無限次元空間の一つの点だというイメージを持つことにする。線形代数を考えるならそれが一番わかりやすいだろう。任意の階で微分された関数群が集まって、さらに高次元の空間をなしているというイメージである。

分数階微分を調べる

勝手なイメージはここまでにして、手元にある数学の参考書の中から手がかりを探してみた。すると、
大学院入試問題解説 - 理学・工学への数学の応用 - 梶原壌二 現代数学社ISBN4-7687-0190-6
の中に手がかりがあった。あれ、ということは以前にやったはずなのか...そう言えばおぼろげな記憶がちょっと...

その中の言葉を少し引くと、
フーリエ変換は等距離作用素である、関数空間L^2(R)における回転といえる。結局、

ここで、fは元の関数であり、Fはフーリエ変換
となる。そして、古典力学におけるハミルトン関数において、運動量を微分演算子で置き換えれば、量子力学や量子化学のハミルトン演算子が得られ、シュレディンガー方程式などにつながるのである、とある。他の資料を眺めてみると、どうやら量子力学などの分野からの要請に応じてここらへんの微分演算子の分野が発展しているようだ。理論物理などをやった方ならよくご存知のことだろう。例えば、水素原子の基底状態の波動関数へ運動エネルギーの演算子を作用させるというような、基本的な所でも、このフーリエ変換を用いた微分演算が用いられてる。

さて、この式自体は非常に簡単である。それにイメージも湧きやすい。
i を掛ける演算、私のイメージでは複素数空間の中で90度回転をする(言い換えれば、位相が90度ずれる)演算、が微分・積分であるというイメージはスムーズに受け入れやすい(それが正しいかどうかは知らないが)。なぜなら、微分が空間の中での回転であるとすると、三角関数の微分・積分に関する性質(例えば、Sinを微分するとCosに、Sinを2階微分すると-Sinになる、すなわち、一回の微分につき位相が90°ずつ回転する(位相がずれる)というような性質)が納得でき、それがフーリエ変換という形で登場してくることがスムーズに受け入れられるのである。また、微分といえばとりあえず三角関数の登場というイメージもある。

 もう少しわかりやすく書くと、

  • 三角関数では一階微分の結果は90度位相がずれる(回転する)。
  • ならば、(例えば)0.5階微分は45度位相をずらせば良い。
  • 任意の関数もフーリエ変換により、三角関数に分解される。
  • ならば、任意の関数に任意の実数値の微分が成立する。
ということである。

 任意の関数をフーリエ変換し三角関数に分解した時の位相、言い換えれば、周波数領域での位相ずらし、で分数階微分が定義されるということは、物理的実用的に大きな意味を持つ。例えば、電磁波、弾塑性運動などの物理現象の中での位相変化を分数階微分で解けることになる。例えば、複素貯蔵弾性率などについて分数階微分との関係は深そうである。あるいは、媒体中の電磁波の位相などについて適用するのも面白そうである。

分数階微分を使ってみる


よく分からないところも多いが、とりあえず、

という式を使ってみる。まずは、使ってみないとわからない。とりあえず、1次元の関数を作成して、この式を適用してみる。まずは、よく出てくるガウス分布で適用してみる。まずはガウス分布とそれの通常の一階微分の解析解を求める。
ガウス分布(左)とその一階微分の解析解(右)

それでは、今回の方法による一階微分の結果と、それと解析解との比較を示す。なお、本来無限領域のフーリエ変換を有限の領域で行っているため、端部近くで変なことが生じるのはしかたがないだろう。また、色々な事情により係数の違いは無視して欲しい。

フーリエ変換を用いた方法(左)と解析解(右)の比較

ちょっとずれが生じているが、こんなものだろう。しかし、これだけでは今回のフーリエ変換を用いた微分の面白さはでてこないので、0から2の範囲で連続的に分数階微分をしてみる。

ガウス分布の0から2の範囲における連続的な分数階微分

1/10 (=0.1)階微分

1/2 (=0.5)階微分

7/10 (=0.7)階微分

1階微分

13/10 (=1.3)階微分

15/10 (=1.5)階微分

17/10 (=1.7)階微分

2階微分

モーフィングのようで面白い。

さて、今回は分数階微分を勉強してみる所までで、これの応用は別に行ってみたい。もちろん、言うまでもないと思うが、間違いは多々あると思う。いや、田舎に住んでいるもので資料がないんですよ。

2004-03-31[n年前へ]

英単語を生み出す26の基底  share on Tumblr 

base26 n文字の英単語は「26*nの基底の空間」に位置する点だ。もしも、四文字単語の最初の文字をインデックスとして別扱いしてしまえば、残りの三文字を三次元空間の位置と考えれば、4文字英単語、すなわち、「26*4の基底空間」の点を「三次元空間」の点に変換し眺めてみることができる。それが"base26".
 四文字の英単語を空間に並べて眺めてみよう。そして、単語間の「距離」で遊んでみよう。 from dotimpact::journalprinter.



■Powered by yagm.net