関数 > 変換とフィルタ > 例: ウェーブレット変換
例: ウェーブレット変換
ウェーブレット変換を使用してデータを圧縮します。
1. 次のような単一矩形波信号を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 配列 n を評価して信号 S を次のようにプロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
レンジ変数が 0..255 のとき、n のすべての値 (96..160) で信号 S の振幅は 1 となり、その他の値では振幅が 0 になります。
クリックしてこの式をコピー
3. wave 関数を使用して、信号 S のウェーブレット変換を計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
4. この変換におけるレベル数を計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
5. 関数submatrixおよびfloorを使用して、各レベルのうち省略可能なものを把握します。
クリックしてこの式をコピー
クリックしてこの式をコピー
6. 複数のレベルの係数を同時にプロットします。
クリックしてこの式をコピー
7. 次の 2 つの操作を行って、より少ないデータで信号を表します。
a. 高次係数を 0 で置き換えます。
b. 新しい係数ベクトルの逆ウェーブレット変換を計算します。
係数をゼロにする開始レベルを指定します。ここでは 5 にしますが、4 あるいは 6 にする場合もあり得ます。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
8. 関数iwaveを使用して、元の信号を復元します。
クリックしてこの式をコピー
9. 元の信号と変換した信号をプロットして比較します。
クリックしてこの式をコピー
この方法によって、信号を表すのに必要なデータを圧縮できます。
これは役に立ちましたか?