Main Content

cwt

連続 1 次元ウェーブレット変換

このバージョンの cwt は非推奨になりました。代わりに更新された cwt を使用してください。

構文

coefs = cwt(x,scales,'wname')
coefs = cwt(x,scales,'wname','plot')
coefs = cwt(x,scales,'wname','coloration')
coefs = cwt(x,scales,'wname','coloration',xlim)
[coefs,sgram] = cwt(x,scales,'wname','scal')
[coefs,sgram] = cwt(x,scales,'wname','scalCNT')
[coefs,frequencies] = cwt(x,scales,wname, samplingperiod)
[coefs,sgram,frequencies] = cwt(x,scales,wname, samplingperiod,'scal')

説明

coefs = cwt(x,scales,'wname') は、実数値の信号 x の連続ウェーブレット変換 (CWT) を返します。指定したスケールについて、解析ウェーブレット wname を使用してウェーブレット変換が計算されます。scales は、正の要素の 1 次元ベクトルです。文字ベクトルまたは string スカラー wname は、wavemngr で認識されるウェーブレットを示します。coefs は、行数が scales の長さと等しく、列数が入力信号と等しい行列です。coefs の k 番目の要素がスケール ベクトルの k 番目の要素の CWT 係数に対応します。

coefs = cwt(x,scales,'wname','plot') は、既定の coloration 'absglb' を使用して連続ウェーブレット変換係数をプロットします。

coefs = cwt(x,scales,'wname','coloration') は、指定されたカラーリングを使用します。カラーリングのオプションについては、詳細を参照してください。

coefs = cwt(x,scales,'wname','coloration',xlim) は、カラーリングと xlim を使用して係数をカラーリングします。xlim[x1 x2] のベクトルで、1 ≤ x1 < x2length(x) です。

[coefs,sgram] = cwt(x,scales,'wname','scal') は、スカログラムを返してプロットします。'scal' は、スカログラムのイメージ プロットを生成します。

[coefs,sgram] = cwt(x,scales,'wname','scalCNT') は、スカログラムの等高線表現を表示します。

[coefs,frequencies] = cwt(x,scales,wname, samplingperiod) は、スケールおよび解析ウェーブレット wname に対応する周波数を単位時間あたりのサイクル数で返します。samplingperiod は、正の実数値のスカラーです。samplingperiod の単位が秒の場合、周波数の単位は Hz です。

[coefs,sgram,frequencies] = cwt(x,scales,wname, samplingperiod,'scal') は、スケールおよび解析ウェーブレットに対応するスカログラムと周波数を返します。scales に少なくとも 2 つの要素があれば、フラグ 'scalCNT' を使用してスカログラムを出力することもできます。samplingperiod は、スケールの周波数への変換でのみ使用されます。samplingperiod を指定しても、cwt で生成されるプロットの外観には影響しません。

フラクタル信号を入力として使用して、1 から 32 までのすべての整数のスケールで sym2 ウェーブレットを使用して連続ウェーブレット変換とスカログラムをプロットします。

load vonkoch
vonkoch=vonkoch(1:510); 
len = length(vonkoch);
cw1 = cwt(vonkoch,1:32,'sym2','plot'); 
title('Continuous Transform, absolute coefficients.') 
ylabel('Scale')
[cw1,sc] = cwt(vonkoch,1:32,'sym2','scal');
title('Scalogram') 
ylabel('Scale')

フラクタル信号を入力として使用して、離散ウェーブレット変換と連続ウェーブレット変換を比較します。

load vonkoch 					
vonkoch=vonkoch(1:510);
len=length(vonkoch);
[c,l]=wavedec(vonkoch,5,'sym2');
% Compute and reshape DWT to compare with CWT.
cfd=zeros(5,len);
for k=1:5
    d=detcoef(c,l,k);
    d=d(ones(1,2^k),:);
    cfd(k,:)=wkeep(d(:)',len);
end
cfd=cfd(:);
I=find(abs(cfd) <sqrt(eps));
cfd(I)=zeros(size(I));
cfd=reshape(cfd,5,len);
% Plot DWT.
subplot(311); plot(vonkoch); title('Analyzed signal.');
set(gca,'xlim',[0 510]);
subplot(312); 
image(flipud(wcodemat(cfd,255,'row')));
colormap(pink(255));
set(gca,'yticklabel',[]);
title('Discrete Transform,absolute coefficients');
ylabel('Level');
% Compute CWT and compare with DWT
subplot(313);
ccfs=cwt(vonkoch,1:32,'sym2','plot');
title('Continuous Transform, absolute coefficients');
set(gca,'yticklabel',[]);
ylabel('Scale');

詳細

すべて折りたたむ

スケール値

"スケール値" は、ウェーブレットを圧縮または伸長する度合いを決定します。スケール値が小さい場合、ウェーブレットが圧縮され、高周波数との相関性が高くなります。低スケールの CWT 係数は、入力信号ベクトルの細かいスケールの特徴を表します。スケール値が大きい場合、ウェーブレットが引き伸ばされ、信号の低周波数成分との相関性が高くなります。高スケールの CWT 係数は、入力信号ベクトルの粗いスケールの特徴を表します。

カラーリング

"カラーリング" は、プロットする係数値のスケーリングに使用する方法です。結果として得られるカラーリング値で各係数が除算されます。

  • 'lvl' — 各スケールの最大値を使用

  • 'glb' — すべてのスケールの最大値を使用

  • 'abslvl' または 'lvlabs' — 各スケールの最大絶対値を使用

  • 'absglb' または 'glbabs' — すべてのスケールの最大絶対値を使用

  • 'scal' — スカログラムのスケーリングされたイメージを生成

  • 'scalCNT' — スカログラムの等高線表現を生成

3 次元プロット (表面) の場合は、coefs = cwt(...,'3Dplot')coefs = cwt(...,'3Dlvl') ... のように、coloration パラメーターの前に '3D' を付けて使用します。

スカログラム

"スカログラム" は、各係数のエネルギーの割合を表すプロットです。

参考文献

Daubechies, I. Ten Lectures on Wavelets, Philadelphia, PA:Society for Industrial and Applied Mathematics (SIAM), 1992.

Mallat, S. A Wavelet Tour of Signal Processing, San Diego, CA:Academic Press, 1998.

バージョン履歴

R2006a より前に導入