MATLABでwdencmp関数を使いこなすには?
MATLABでは、wdencmp関数が信号に対するウェーブレット雑音除去と圧縮を実行します。構文は次のとおりです。
[cxd,lxd,perf0,perfl2] = wdencmp(‘mode’,x,wname,level,thr,sorh,keepapp)
パラメータの説明
- 「mode」:処理するモードを指定します。オプション値は’d'(ノイズ除去)「c」(圧縮)です。
- x: 入力信号
- ウェーブレットの種類(例:’db1’、’sym4’など)
- レベル:ウェーブレット変換の階数。
- thr:しきい値。ノイズ除去や圧縮に使用されます。
- sorh:ソフトしきい値もしくはハードしきい値のタイプで、’s’(ソフトしきい値)または’h’(ハードしきい値)が選択できます。
- keepapp: 近似値を保持するかどうか。値は’gbl’ (保持する) または ‘lvl’ (保持しない) のいずれか。
関数の返り値:
- CXD:ノイズ除去または圧縮された信号。
- lxd:信号の長さ。
- perf0:ノイズ除去または圧縮後の信号との原始信号のユークリッド距離。
- Perf12:元信号とノイズ除去、あるいは圧縮後の信号との2-ノルム差
wdencmp関数の例を以下に示します:
load noisdopp;
[cxd,lxd,perf0,perfl2] = wdencmp('gbl',noisdopp,'sym4',5,'s',3,'h');
subplot(2,1,1); plot(noisdopp); title('原始信号');
subplot(2,1,2); plot(cxd); title('去噪或压缩后的信号');
この例では、gblは近似成分を維持することを意味し、sym4はSymlet-4ウェーブレット変換を使用することを意味し、5はウェーブレット変換のレベル数を表し、sはソフト閾値を使用することを意味し、3は閾値を意味し、hはハード閾値を意味します。最後に、subplot関数は元の信号とノイズ除去または圧縮後の信号を描画します。