電子書籍の厳選無料作品が豊富!

ウェーブレット変換のプログラムを自作したいと考えています。

どうしても分からない点があるのですが

http://www.kobe-kosen.ac.jp/~michi/akamatsu/1/2- …

元データがtを変数とする一次元データだったとして
変換を行うとaとbを変数とする二次元データに変わります。

しかしaとb以外にもσという変数が存在します。
このページではσ=8として計算を行っているのですが
なぜこの値を使っているのでしょうか?
これは固定値として用いる必要があると思いますが
どのようにして値を選べば良いのでしょうか?
aとbに加えσも変数として
三次元データを見る意味はないのでしょうか?

A 回答 (2件)

σが大きくなると、周波数に関しての分解能が高くなります。



PCの画面での表示方法は考えていますか?
σを固定するときには、離散的に取ったa,bの組(座標のようなもの)
に対して、それぞれの計算結果が与えられます。
この数値を山の高さや谷の深さと考えると、
固定したσでも、すでに3次元のデータが得られていることになります。

σは適当に変えながら分析の目的に合わせて設定します。
さらに、
e^(it)
ではなくて、
e^(iωt)
を使って、シグマの他にオメガも指定できるようにするの普通だと思います。

したがって、
函数のプログラムを作る。
3次元の表示をするプログラムを作る。
計算のときは、σとωを指定して計算して、
結果を3次元で表示する。

なお、データ数が10000程度になると、
メモリーの確保や計算方法もっ工夫が必要になります。

けっこう大変です。頑張ってください。
    • good
    • 0

σを変えるとは、waveletの形そのものを変えるということ。

それによって結果はもちろん違ってきますし、どんなσが適切なのかはwavelet変換をやる対象と目的による訳です。
 ですから、「三次元データを見る」のではなくて、「目的に照らして最も適切なσを探すために、いろんなσでやってみる」という風にお考えになるべきです。

 e^(it)以外の部分はガウス関数で、σは「標準偏差」つまり山の幅を表すパラメータです。で、e^(it)の因子はこのガウス関数にcos(t)をかけ算して振動させたものを実部とし、このガウス関数にsin(t)をかけ算して振動させたものを虚部とする、ってことです。このとき、cos, sinの波長は2πである。この2πを基準にして、ガウス関数の山の幅を幾らにするか、というのがσの意味です。σがうんと大きければφの山と谷がもっと沢山現れるし、σがうんと小さければ、cos(t)≒1とsin(t)≒tをかけ算するのとほぼ同じになる。
 スケーリングしていろんなサイズのwaveletを作る際に、cos, sinの波長は様々変わるけれども、ガウス関数の山の幅も一緒に変わるから、waveletの形は相似のままです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!