Main Content

wavemngr

ウェーブレット マネージャー

説明

wavemngr を使用して、ウェーブレットを追加、削除、復元、または読み取ります。

wavemngr('add',FN,FSN,WT,NUMS,FILE) は、ウェーブレット ファミリをツールボックスに追加します。これらのパラメーターは、以下のようにウェーブレット ファミリを定義します。

  • FN — ファミリ名

  • FSN — ファミリの略称

  • WT — ウェーブレット ファミリ タイプ

  • NUMS — ウェーブレット パラメーター

  • FILE — ウェーブレット定義ファイル

メモ

wavemngr を使用してウェーブレット ファミリを追加すると、現在のフォルダーに 3 つのウェーブレット拡張ファイル (2 つの ASCII ファイル wavelets.ascwavelets.prv、および MAT ファイル wavelets.inf) が作成されます。新しいウェーブレット ファミリを追加する場合、このフォルダーでのみ使用できます。

wavemngr('add',FN,FSN,WT,{NUMS,TYPNUMS},FILE) は、入力形式のタイプが TYPNUMS のパラメーター NUMS をもつウェーブレット ファミリを追加します。

wavemngr(___,B) はウェーブレット ファミリを追加します。ここで、B はウェーブレットの有効なサポートを指定します。入力引数 B は、タイプ WT = 3、4、および 5 のウェーブレットに対してのみ有効です。前の構文のいずれでもこの構文を使用できます。

wavemngr('del',N) は、N で指定されたウェーブレットまたはウェーブレット ファミリを削除します。

wavemngr('restore') は、直前の wavelets.asc ASCII ファイルを復元します。

wavemngr('restore',IN2) は、初期の wavelets.asc ASCII ファイルを復元します。ここで、IN2 はダミーの引数です。

out = wavemngr('read') は、すべてのウェーブレット ファミリ名を文字配列で返します。

out = wavemngr('read',IN2) は、すべてのウェーブレット名を文字配列で返します。ここで、IN2 はダミーの引数です。

out = wavemngr('read_asc') は、wavelets.asc ASCII ファイルを読み取り、すべてのウェーブレット情報を返します。

wavetype = wavemngr('type',wname) は、ウェーブレット wname のファミリ タイプを返します。

すべて折りたたむ

既定で使用可能なウェーブレット ファミリを一覧表示します。

wavemngr('read')
ans = 23x35 char array
    '==================================='
    'Haar                     ->->haar    '
    'Daubechies               ->->db      '
    'Symlets                  ->->sym     '
    'Coiflets                 ->->coif    '
    'BiorSplines              ->->bior    '
    'ReverseBior              ->->rbio    '
    'Meyer                    ->->meyr    '
    'DMeyer                   ->->dmey    '
    'Gaussian                 ->->gaus    '
    'Mexican_hat              ->->mexh    '
    'Morlet                   ->->morl    '
    'Complex Gaussian         ->->cgau    '
    'Shannon                  ->->shan    '
    'Frequency B-Spline       ->->fbsp    '
    'Complex Morlet           ->->cmor    '
    'Fejer-Korovkin           ->->fk      '
    'Best-localized Daubechies->->bl      '
    'Morris minimum-bandwidth ->->mb      '
    'Beylkin                  ->->beyl    '
    'Vaidyanathan             ->->vaid    '
    'Han linear-phase moments ->->han     '
    '==================================='

すべてのウェーブレットを一覧表示します。

wavemngr('read',1)
ans = 89x44 char array
    '===================================         '
    'Haar                     ->->haar             '
    '===================================         '
    'Daubechies               ->->db               '
    '------------------------------              '
    'db1->db2->db3->db4->                            '
    'db5->db6->db7->db8->                            '
    'db9->db10->db**->                              '
    '===================================         '
    'Symlets                  ->->sym              '
    '------------------------------              '
    'sym2->sym3->sym4->sym5->                        '
    'sym6->sym7->sym8->sym**->                       '
    '===================================         '
    'Coiflets                 ->->coif             '
    '------------------------------              '
    'coif1->coif2->coif3->coif4->                    '
    'coif5->                                      '
    '===================================         '
    'BiorSplines              ->->bior             '
    '------------------------------              '
    'bior1.1->bior1.3->bior1.5->bior2.2->            '
    'bior2.4->bior2.6->bior2.8->bior3.1->            '
    'bior3.3->bior3.5->bior3.7->bior3.9->            '
    'bior4.4->bior5.5->bior6.8->                    '
    '===================================         '
    'ReverseBior              ->->rbio             '
    '------------------------------              '
    'rbio1.1->rbio1.3->rbio1.5->rbio2.2->            '
    'rbio2.4->rbio2.6->rbio2.8->rbio3.1->            '
    'rbio3.3->rbio3.5->rbio3.7->rbio3.9->            '
    'rbio4.4->rbio5.5->rbio6.8->                    '
    '===================================         '
    'Meyer                    ->->meyr             '
    '===================================         '
    'DMeyer                   ->->dmey             '
    '===================================         '
    'Gaussian                 ->->gaus             '
    '------------------------------              '
    'gaus1->gaus2->gaus3->gaus4->                    '
    'gaus5->gaus6->gaus7->gaus8->                    '
    '===================================         '
    'Mexican_hat              ->->mexh             '
    '===================================         '
    'Morlet                   ->->morl             '
    '===================================         '
    'Complex Gaussian         ->->cgau             '
    '------------------------------              '
    'cgau1->cgau2->cgau3->cgau4->                    '
    'cgau5->cgau6->cgau7->cgau8->                    '
    '===================================         '
    'Shannon                  ->->shan             '
    '------------------------------              '
    'shan1-1.5->shan1-1->shan1-0.5->shan1-0.1->      '
    'shan2-3->shan**->                             '
    '===================================         '
    'Frequency B-Spline       ->->fbsp             '
    '------------------------------              '
    'fbsp1-1-1.5->fbsp1-1-1->fbsp1-1-0.5->fbsp2-1-1->'
    'fbsp2-1-0.5->fbsp2-1-0.1->fbsp**->             '
    '===================================         '
    'Complex Morlet           ->->cmor             '
    '------------------------------              '
    'cmor1-1.5->cmor1-1->cmor1-0.5->cmor1-1->        '
    'cmor1-0.5->cmor1-0.1->cmor**->                 '
    '===================================         '
    'Fejer-Korovkin           ->->fk               '
    '------------------------------              '
    'fk4->fk6->fk8->fk14->                           '
    'fk18->fk22->                                  '
    '===================================         '
    'Best-localized Daubechies->->bl               '
    '------------------------------              '
    'bl7->bl9->bl10->                               '
    '===================================         '
    'Morris minimum-bandwidth ->->mb               '
    '------------------------------              '
    'mb4.2->mb8.2->mb8.3->mb8.4->                    '
    'mb10.3->mb12.3->mb14.3->mb16.3->                '
    'mb18.3->mb24.3->mb32.3->                       '
    '===================================         '
    'Beylkin                  ->->beyl             '
    '===================================         '
    'Vaidyanathan             ->->vaid             '
    '===================================         '
    'Han linear-phase moments ->->han              '
    '------------------------------              '
    'han2.3->han3.3->han4.5->han5.5->                '
    '===================================         '

この例では、コンパクトにサポートされる新しい直交ウェーブレットをツールボックスに追加する方法を示します。これらのウェーブレットは、Daubechies ウェーブレットを少し一般化したもので、バーンスタイン多項式の使用に基づいており、Kateb と Lemarié によるものです。

直交ウェーブレットの新しいファミリを追加します。以下を定義しなければなりません。

  • ファミリ名: Lemarie

  • ファミリの略称: lem

  • ウェーブレットのタイプ: 1 (orth)

  • ウェーブレットの番号: 1 2 3 4 5

  • ファイル ドライバー: lemwavf

lemwavf.m のソース コードは、この例の最後に記載しています。lemwavf の入力引数は、形式 lemN の文字ベクトルです。ここで、N = 1、2、3、4、または 5 です。

wavemngr('add','Lemarie','lem',1,'1 2 3 4 5','lemwavf')

ASCII ファイル wavelets.ascwavelets.prv として保存された後、新しいファミリを定義する情報が wavelets.asc に追加され、MAT ファイル wavelets.inf が生成されます。

wavemngr は現在のフォルダーで機能することに注意してください。新しいウェーブレット ファミリを追加する場合、このフォルダーでのみ使用できます。

使用可能なウェーブレット ファミリを一覧表示します。新しいウェーブレット ファミリが追加されていることを確認します。

wavemngr('read')
ans = 24x35 char array
    '==================================='
    'Haar                     ->->haar    '
    'Daubechies               ->->db      '
    'Symlets                  ->->sym     '
    'Coiflets                 ->->coif    '
    'BiorSplines              ->->bior    '
    'ReverseBior              ->->rbio    '
    'Meyer                    ->->meyr    '
    'DMeyer                   ->->dmey    '
    'Gaussian                 ->->gaus    '
    'Mexican_hat              ->->mexh    '
    'Morlet                   ->->morl    '
    'Complex Gaussian         ->->cgau    '
    'Shannon                  ->->shan    '
    'Frequency B-Spline       ->->fbsp    '
    'Complex Morlet           ->->cmor    '
    'Fejer-Korovkin           ->->fk      '
    'Best-localized Daubechies->->bl      '
    'Morris minimum-bandwidth ->->mb      '
    'Beylkin                  ->->beyl    '
    'Vaidyanathan             ->->vaid    '
    'Han linear-phase moments ->->han     '
    'Lemarie                  ->->lem     '
    '==================================='

追加したファミリを削除します。ウェーブレット ファミリのリストを再生成します。

wavemngr('del','Lemarie')
wavemngr('read')
ans = 23x35 char array
    '==================================='
    'Haar                     ->->haar    '
    'Daubechies               ->->db      '
    'Symlets                  ->->sym     '
    'Coiflets                 ->->coif    '
    'BiorSplines              ->->bior    '
    'ReverseBior              ->->rbio    '
    'Meyer                    ->->meyr    '
    'DMeyer                   ->->dmey    '
    'Gaussian                 ->->gaus    '
    'Mexican_hat              ->->mexh    '
    'Morlet                   ->->morl    '
    'Complex Gaussian         ->->cgau    '
    'Shannon                  ->->shan    '
    'Frequency B-Spline       ->->fbsp    '
    'Complex Morlet           ->->cmor    '
    'Fejer-Korovkin           ->->fk      '
    'Best-localized Daubechies->->bl      '
    'Morris minimum-bandwidth ->->mb      '
    'Beylkin                  ->->beyl    '
    'Vaidyanathan             ->->vaid    '
    'Han linear-phase moments ->->han     '
    '==================================='

この前の ASCII ファイル wavelets.prv を復元してから、MAT ファイル wavelets.inf を作成します。復元されたウェーブレットを一覧表示します。wavemngr は現在の作業ディレクトリにある ASCII ファイルを読み取るため、新しいファミリがリストに表示されます。

wavemngr('restore')
wavemngr('read',1)
ans = 94x44 char array
    '===================================         '
    'Haar                     ->->haar             '
    '===================================         '
    'Daubechies               ->->db               '
    '------------------------------              '
    'db1->db2->db3->db4->                            '
    'db5->db6->db7->db8->                            '
    'db9->db10->db**->                              '
    '===================================         '
    'Symlets                  ->->sym              '
    '------------------------------              '
    'sym2->sym3->sym4->sym5->                        '
    'sym6->sym7->sym8->sym**->                       '
    '===================================         '
    'Coiflets                 ->->coif             '
    '------------------------------              '
    'coif1->coif2->coif3->coif4->                    '
    'coif5->                                      '
    '===================================         '
    'BiorSplines              ->->bior             '
    '------------------------------              '
    'bior1.1->bior1.3->bior1.5->bior2.2->            '
    'bior2.4->bior2.6->bior2.8->bior3.1->            '
    'bior3.3->bior3.5->bior3.7->bior3.9->            '
    'bior4.4->bior5.5->bior6.8->                    '
    '===================================         '
    'ReverseBior              ->->rbio             '
    '------------------------------              '
    'rbio1.1->rbio1.3->rbio1.5->rbio2.2->            '
    'rbio2.4->rbio2.6->rbio2.8->rbio3.1->            '
    'rbio3.3->rbio3.5->rbio3.7->rbio3.9->            '
    'rbio4.4->rbio5.5->rbio6.8->                    '
    '===================================         '
    'Meyer                    ->->meyr             '
    '===================================         '
    'DMeyer                   ->->dmey             '
    '===================================         '
    'Gaussian                 ->->gaus             '
    '------------------------------              '
    'gaus1->gaus2->gaus3->gaus4->                    '
    'gaus5->gaus6->gaus7->gaus8->                    '
    '===================================         '
    'Mexican_hat              ->->mexh             '
    '===================================         '
    'Morlet                   ->->morl             '
    '===================================         '
    'Complex Gaussian         ->->cgau             '
    '------------------------------              '
    'cgau1->cgau2->cgau3->cgau4->                    '
    'cgau5->cgau6->cgau7->cgau8->                    '
    '===================================         '
    'Shannon                  ->->shan             '
    '------------------------------              '
    'shan1-1.5->shan1-1->shan1-0.5->shan1-0.1->      '
    'shan2-3->shan**->                             '
    '===================================         '
    'Frequency B-Spline       ->->fbsp             '
    '------------------------------              '
    'fbsp1-1-1.5->fbsp1-1-1->fbsp1-1-0.5->fbsp2-1-1->'
    'fbsp2-1-0.5->fbsp2-1-0.1->fbsp**->             '
    '===================================         '
    'Complex Morlet           ->->cmor             '
    '------------------------------              '
    'cmor1-1.5->cmor1-1->cmor1-0.5->cmor1-1->        '
    'cmor1-0.5->cmor1-0.1->cmor**->                 '
    '===================================         '
    'Fejer-Korovkin           ->->fk               '
    '------------------------------              '
    'fk4->fk6->fk8->fk14->                           '
    'fk18->fk22->                                  '
    '===================================         '
    'Best-localized Daubechies->->bl               '
    '------------------------------              '
    'bl7->bl9->bl10->                               '
    '===================================         '
    'Morris minimum-bandwidth ->->mb               '
    '------------------------------              '
    'mb4.2->mb8.2->mb8.3->mb8.4->                    '
    'mb10.3->mb12.3->mb14.3->mb16.3->                '
    'mb18.3->mb24.3->mb32.3->                       '
    '===================================         '
    'Beylkin                  ->->beyl             '
    '===================================         '
    'Vaidyanathan             ->->vaid             '
    '===================================         '
    'Han linear-phase moments ->->han              '
    '------------------------------              '
    'han2.3->han3.3->han4.5->han5.5->                '
    '===================================         '
    'Lemarie                  ->->lem              '
    '------------------------------              '
    'lem1->lem2->lem3->lem4->                        '
    'lem5->                                       '
    '===================================         '

初期ウェーブレットを復元します。初期の ASCII ファイル wavelets.ini と初期の MAT ファイル wavelets.bin を復元します。ウェーブレット ファミリのリストを再生成します。このリストに新しいファミリは含まれていません。

wavemngr('restore',0)
wavemngr('read')
ans = 23x35 char array
    '==================================='
    'Haar                     ->->haar    '
    'Daubechies               ->->db      '
    'Symlets                  ->->sym     '
    'Coiflets                 ->->coif    '
    'BiorSplines              ->->bior    '
    'ReverseBior              ->->rbio    '
    'Meyer                    ->->meyr    '
    'DMeyer                   ->->dmey    '
    'Gaussian                 ->->gaus    '
    'Mexican_hat              ->->mexh    '
    'Morlet                   ->->morl    '
    'Complex Gaussian         ->->cgau    '
    'Shannon                  ->->shan    '
    'Frequency B-Spline       ->->fbsp    '
    'Complex Morlet           ->->cmor    '
    'Fejer-Korovkin           ->->fk      '
    'Best-localized Daubechies->->bl      '
    'Morris minimum-bandwidth ->->mb      '
    'Beylkin                  ->->beyl    '
    'Vaidyanathan             ->->vaid    '
    'Han linear-phase moments ->->han     '
    '==================================='

すべてのコマンド ライン機能は、ウェーブレットの新しいファミリで使用できます。新しいファミリを作成します。関連する 4 つのフィルターおよびスケール関数とウェーブレット関数を計算します。

wavemngr('add','Lemarie','lem',1,'1 2 3 4 5','lemwavf');
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('lem3');
[phi,psi,xval] = wavefun('lem3');
plot(xval,[phi;psi]);
legend('Scaling Function','Wavelet')
grid on

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Scaling Function, Wavelet.

追加したファミリを削除します。

wavemngr('del','Lemarie')

lemwavf.m

function F = lemwavf(wname) 
%LEMWAVF Lemarie wavelet filters. 
%   F = LEMWAVF(W) returns the scaling filter associated with the Lemarie
%   wavelet specified by the character array, 'lemN'. 
%   Possible values for N are 1, 2, 3, 4 or 5. 
%
%   This function is only for use in the "Add Wavelet Families" example. It
%   may change or be removed in a future release.
%
%   Copyright 2019 The MathWorks, Inc.
 
TFlem = startsWith(wname,'lem');
if ~TFlem
    error('Wavelet short name is lem followed by filter number');
end
fnum = regexp(wname,'(\d+)','match','Once');

if isempty(fnum) 
    error('Specify a filter number as 1,2,3,4,or 5'); 
end 

if ~isempty(fnum) 
    num = str2double(fnum);
end

tffilt = ismember(num,[1 2 3 4 5]);

if ~tffilt
    error('Filter number must be 1, 2, 3, 4, or 5');
end

 
switch num 
    case 1 
F = [... 
   0.46069299844871  0.53391629051346  0.03930700681965  -0.03391629578182 ... 
]; 
 
    case 2 
F = [... 
   0.31555164655258  0.59149765057882  0.20045477817080  -0.10034811856888 ... 
  -0.01528128420694  0.00846362066021  -0.00072514051618  0.00038684732960 ... 
        ]; 
 
    case 3 
F = [... 
   0.23108942231941  0.56838231367966  0.33173980738190  -0.09447000132310 ... 
  -0.06203683305244  0.02661631105889  -0.00209952890579  0.00001769381066 ... 
   0.00128429679795  -0.00053703458679  0.00002283826072 -0.00000928544107 ... 
        ]; 
 
    case 4 
F = [... 
   0.17565337503255  0.52257484913870  0.42429244721660  -0.04601056550580 ... 
  -0.11292720306517  0.03198741803409  0.00813124691980  -0.00743764392677 ... 
   0.00548090619143 -0.00140066128481  -0.00054200083128   0.00025607264164 ... 
  -0.00008795126642  0.00003025515674  -0.00000082014466  0.00000027569334 ... 
        ]; 
 
    case 5 
F = [... 
   0.13807658847623  0.47310642622099  0.48217097800239  0.02112933622031 ... 
  -0.15081998732499  0.01935767268926  0.02716532750995  -0.01588522540421 ... 
   0.00671209165995  0.00120022744496  -0.00321203819186  0.00115266788547 ... 
  -0.00018266213413  -0.00002953360842  0.00008433396295  -0.00002997969339 ... 
   0.00000534552866  -0.00000159098026  0.00000003069431 -0.00000000895816 ... 
        ]; 
 
end

入力引数

すべて折りたたむ

ウェーブレット ファミリ名。文字ベクトルまたは string スカラーとして指定します。

ウェーブレット ファミリの略称。文字ベクトルまたは string スカラーとして指定します。FSN の文字数は 4 以下でなければなりません。

ウェーブレット ファミリ タイプ。次のいずれかとして指定します。

  • 1 — 直交ウェーブレット

  • 2 — 双直交ウェーブレット

  • 3 — スケーリング関数のあるウェーブレット

  • 4 — スケーリング関数のないウェーブレット

  • 5 — スケーリング関数のない複素数ウェーブレット

ウェーブレット パラメーター。以下として指定します。

  • ファミリが単一のウェーブレットで構成されている場合、NUMS は空の文字列 '' になります。たとえば、mexh ファミリと morl ファミリはそれぞれ単一のウェーブレットを含みます。

  • ウェーブレットが有限ファミリ ウェーブレットのメンバーである場合、NUMS には、ウェーブレット パラメーターを表す項目からなるスペース区切りのリストが含まれます。たとえば、双直交ウェーブレット ファミリ bior の場合、NUMS = '1.1 1.3 1.5 2.2 2.4 2.6 2.8 3.1 3.3 3.5 3.7 3.9 4.4 5.5 6.8' になります。

  • ウェーブレットが無限ファミリ ウェーブレットのメンバーである場合、NUMS には、ウェーブレット パラメーターを表す項目からなるスペース区切りのリストが含まれ、特殊シーケンス ** で終了します。次の表に 2 つの例を示します。

    ウェーブレット ファミリNUMS
    dbNUMS = '1 2 3 4 5 6 7 8 9 10 **'
    shanNUMS = '1-1.5 1-1 1-0.5 1-0.1 2-3 **'

ウェーブレット パラメーターの入力形式。以下として指定します。

  • 'integer' — パラメーターが整数の場合、このオプションを使用します。たとえば、Daubechies ウェーブレット ファミリ db は整数パラメーターを使用します。

  • 'real' — パラメーターが実数の場合、このオプションを使用します。たとえば、双直交ウェーブレット ファミリ bior は実数パラメーターを使用します。

  • 'charactervector' — パラメーターが文字ベクトルの場合、このオプションを使用します。たとえば、Shannon ウェーブレット ファミリは文字ベクトルを使用します。

ウェーブレット定義ファイル。文字ベクトルまたは string スカラーとして指定します。FILE は、ウェーブレット ファミリを定義する MAT ファイルまたはコード ファイルの名前です。

ウェーブレット ファミリにタイプ 1 (直交) またはタイプ 2 (双直交) のウェーブレットが 1 つのみ含まれる場合、MAT ファイルでウェーブレットを定義できます。MAT ファイルには、スケーリング フィルター係数が含まれます。ファイル名は、ウェーブレット ファミリの略称と一致しなければなりません。

  • MAT ファイルで直交ウェーブレットを定義する場合、スケーリング フィルター係数を格納する変数の名前は、ウェーブレット ファミリの略称と一致しなければなりません。

  • MAT ファイルで双直交ウェーブレットを定義する場合、スケーリング フィルター係数を格納する変数の名前は Df および Rf でなければなりません。

詳細については、Add Quadrature Mirror and Biorthogonal Wavelet Filtersを参照してください。

例: 単一の直交ウェーブレットを含むファミリに略称 wfsn がある場合、変数 wfsn にスケーリング フィルター係数が格納されなければなりません。必要な MAT ファイルを作成するには、コマンド save wfsn wfsn を使用します。

ファミリ タイプ WT が 3、4、または 5 であるウェーブレットの有効なサポート。2 要素の実数値のベクトルとして指定します。B = [lb ub] の場合、lb は下限を指定し、ub は上限を指定します。

データ型: double

削除するウェーブレットまたはウェーブレット ファミリ。文字ベクトルまたは string スカラーとして指定します。N は、ウェーブレット名またはウェーブレット ファミリの略称です。

例: wavemngr('del','Lemarie')

ウェーブレット。文字ベクトルまたは string スカラーとして指定します。ウェーブレット ファミリで使用できるウェーブレットを確認するには、waveinfo とファミリの略称を使用します。

例: ty = wavemngr('type',"coif4")

出力引数

すべて折りたたむ

ウェーブレット マネージャーの出力。文字配列として返されます。

ウェーブレット ファミリ タイプ。整数として返されます。

  • 1 — 直交ウェーブレット

  • 2 — 双直交ウェーブレット

  • 3 — スケーリング関数のあるウェーブレット

  • 4 — スケーリング関数のないウェーブレット

  • 5 — スケーリング関数のない複素数ウェーブレット

制限

  • wavemngr を使用すると、ウェーブレットを追加できます。これが真にウェーブレットであることを検証しなければなりません。追加されたものがウェーブレットであるか確認したり、新しいウェーブレットのタイプを確認したりするためにチェックが実行されることはありません。isorthwfbisbiorthwfb を使用して、ウェーブレットが直交か双直交かを判定できます。

参照

[1] Daubechies, I. Ten Lectures on Wavelets. CBMS-NSF Regional Conference Series in Applied Mathematics. Philadelphia, PA: Society for Industrial and Applied Mathematics, 1992.

バージョン履歴

R2006a より前に導入