問題タブ [wavelet-transform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4140 参照

wavelet - 最大重複離散ウェーブレット変換 (MODWT) の Python パッケージ

MODWT が使用されている論文の結果を再現するには、python を使用する必要があります。現在pywtを使用していますが、定常ウェーブレット変換(SWT)しかありません。少し調べてみたところ、現在 MODWT 用のパッケージはないようで、多くの人が SWT と MODWT は同じものだと言っていることもわかりました。しかし、MATLAB を使用した MODWT と python の SWT の結果は異なります。MODWT を直接実行するために使用できる Python のパッケージはありますか? または、SWT を使用して MODWT で結果を達成できますか?

0 投票する
0 に答える
332 参照

matlab - 2 レベル Wavelet LeGall 5/3 2D 変換の係数の範囲

タイトルにあるように、入力行列の値が範囲内にある場合、Wavelet LeGall 5/3 (正確にこのフィルターである必要があります) 2D 変換 (8*8 ブロックの場合のみ) の係数の範囲について混乱しています。 0 から 255 まで。

数式については、リンクは次のとおりです: Wavelet LeGall 5/3

これが私が今やったことです:

  1. すべての値に対してマイナス 128 (低頻度の値を計算する方が簡単です。後で参照してください)。

  2. 水平方向に変換します。これにより、すべての行のすべての係数が生成されます。最初の 4 つは低周波で、最後の 4 つは高周波です。高周波の範囲は、-255 ~ +255 (入力範囲の 2 倍) であることが簡単にわかります。また、低周波の範囲は実際には -192 ~ +192 (入力範囲の 1.5 倍) です。

  3. 垂直方向に変換します。これは、垂直方向にも同じことを行います。生成されるブロックは、LL (lowlow)、LH (low high)、HL、HH の 4 つです。HH の範囲を計算するのは簡単です: -511 から +511 まで、LL の範囲は入力範囲の 1.5*1.5 = 2.25 倍 (-128 から +127) です。

それでは、ここで質問です。LL ブロックに対してこのウェーブレットをもう一度実行するとどうなりますか? 理論的には、LL ブロックの HH (第 2 レベル係数) の範囲は、入力範囲 (-128 ~ +127) である -1280 ~ +1270 の 10 倍になる LL 範囲の 4 倍になるはずです。

ただし、ランダムな計算を何度も試みましたが、最大値は -511 から +511 を超えることはありません (最後のコードを参照)。前回の計算に基づいて計算しているため、理論値に到達できないためだと思います。しかし、この一見簡単そうな問題を理論的に証明するのは私には困難です。誰か私が脱出するのを手伝ってくれませんか?

私が使用したコード (1 つのディレクトリに 2 つのファイルを配置し、必要なときにいつでもテスト ファイルを実行しますが、最大値だけが 512 を超えることはありません...):

  1. waveletlegall53 の機能:

    /li>
  2. テスト .m ファイル:

    /li>
0 投票する
0 に答える
207 参照

matlab - 既存の信号からウェーブレット変換を作成するにはどうすればよいですか?

4500 を超えるサンプルを持つ時間領域の信号があります。この信号から、次の署名を抽出しました。

ここに画像の説明を入力

(matlab で) の下にあるコードを使用して、このシグネチャからウェーブレット変換を作成することができました。

ウェーブレットを作成したら、それをプロットしようとしましたが、成功し、次のようになりました。

ここに画像の説明を入力

とりあえずここまでは順調です。

matlab で wavemenu ツールを使用してウェーブレットを表示しようとすると、次のエラーが表示されます。

私の質問は、プロセスで何か間違ったことをしているのですか? 信号を取り、それをmatlabのウェーブレットに変換することさえ可能ですか?

よろしくお願いいたします。:)

0 投票する
1 に答える
85 参照

image - ウェーブレット変換の水平係数だけで画像を再構築する方法は?

定常ウェーブレット変換の水平係数だけで入力画像を再構築しようとしています。

Error in iswt2/reconsLOC(line 153)
ca(sR,sC), ch(sR,sC,k), cv(sR,sC,k), cd(sR,sC,k)
Error in iswt2(line 122)a = reconsLOC(a,h,v,d);

どうすればこれを解決できますか?