• 締切済み

単位行列のウェーブレット変換 MATLAB

ある加速度データをウェーブレット変換したいのですが、手法上直接ウェーブレット変換するのではなく、単位行列をウェーブレット変換し、これと加速度をかけることで実現しようとしています。 これをMATLABで実行しようとしたところ、フーリエ変換では正しくできたのですが、ウェーブレット変換ではウェーブレット変換の行列が単位行列となってしまいました。これはウェーブレット変換の性質上しょうがないのでしょうか。それとも単にMATLABのバグなのでしょうか。 宜しくお願い致します。

みんなの回答

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.2

あ、もしかして、単位行列を二次元ウェーブレット変換しなかった? 行列の各列を一次元で変換して、結果の列を並べて行列にしないとね。

hkawa18200
質問者

お礼

遅くなってしまい申し訳ありません。 よく確認したら結果は単位行列ではなかったです。 ただ、300×300の単位行列をwavelet変換したら1列目しか変換されませんでした。変換対象が単位行列ではなくても同じ 現象が起こりました。 マザーウェーブレットは lshaar = liftwave('cdf4.4'); els = {'p',[200 200],125}; lsnew = addlift(lshaar,els); といった式で作成しています。 宜しくお願い致します。

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.1

何をどう間違えたのか、ノーヒントでは判らないな。 一口にウェーブレット変換と言っても、具体的な変換結果は、 選んだマザーウェーブレットによって異なるけれど、 なんぼなんでも、無変換になってしまうことは無い。 フーリエにしろ、ウェーブレットにしろ、基底変換は線型だから、 単位行列を変換して被変換ベクトルに掛けるという操作は、正解。 単位行列を変換したものが、線型変換の表現行列になる訳だ。 バグじゃなく、使い方の間違いだろうけれど、 何をどうやったら、結果が単位行列になったの?

関連するQ&A