Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

haart

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

説明

[a,d] = haart(x) は、1 次元 Haar 離散ウェーブレット変換の Approximation 係数 a と Detail 係数 d を返します。入力 x は一変数または多変数のデータです。既定の level は、x の長さに応じて異なります。

[a,d] = haart(x,level) は、指定されたレベルまで下げて Haar 変換を求めます。

[a,d] = haart(___,integerflag) では、前の構文のいずれかを使用して、Haar 変換での整数値のデータの処理方法を指定します。

すべて折りたたむ

既定の最大レベルまで下げて Haar 変換を求めます。

load wecg;
[a,d] = haart(wecg);

電力消費データの多変数時系列データセットの Haar 変換をレベル 4 まで下げて求めます。signals データは、各時系列が行ではなく列になるように転置します。

load elec35_nor;
signals = signals';
[a,d] = haart(signals,4);

ECG 心拍数データの Haar 変換と逆 Haar 変換を求めます。データは整数のみで構成されています。

ECG データを読み込み、プロットします。

load BabyECGData;
plot(times,HR)
xlabel('Hours')
ylabel('Heart Rate')
title('ECG Data')

Haar 変換を求めます。次に、レベル 5 で近似した逆 Haar 変換を求めます。このレベルのスケールは 512 秒で、サンプリング間隔 (16 秒) の 25 倍です。

[a,d] = haart(HR,'integer');
HaarHR = ihaart(a,d,5,'integer');

再構成後のデータと元のデータを比較します。

figure;
plot(times,HaarHR)
xlabel('Hours')
ylabel('Heart Rate')
title('Haar Approximation of Heart Rate')

入力引数

すべて折りたたむ

入力信号。実数値のベクトルまたは行列として指定します。x がベクトルの場合、長さは偶数でなければなりません。x が行列の場合、各列は長さが偶数でなければなりません。また、haartx の各列に対して作用します。

データ型: double

Haar 変換を実行する最大レベル。正の整数として指定します。既定値は、入力信号 x の長さに応じて異なります。

  • x の長さが 2 のべき乗である場合、レベル log2(length(x)) まで下げて Haar 変換が求められます。

  • x の長さが偶数で、2 のべき乗ではない場合、レベル floor(log2(length(x)/2)) まで下げて Haar 変換が求められます。

level が 1 の場合、Detail 係数 d は、入力がベクトルか行列かに応じて、それぞれベクトルまたは行列として返されます。

整数値のデータの処理。'noninteger' または 'integer' のいずれかとして指定します。'noninteger' は Haar 変換で整数値のデータを保持せず、'integer' は保持します。'integer' オプションは、入力 x のすべての要素が整数である場合のみ適用されます。整数値の入力について、haart は整数値のウェーブレット係数を返します。ただし、'noninteger''integer' のどちらの場合も、Haar 変換のアルゴリズムでは浮動小数点演算が使用されます。出力 a および d のデータ型は常に double です。

出力引数

すべて折りたたむ

Approximation 係数。変換が計算されるレベルに応じて、係数のスカラー、ベクトル、または行列として返されます。Approximation (スケーリング) 係数は入力のローパス表現です。各レベルにおいて、Approximation 係数は粗い Approximation 係数と Detail 係数に分けられます。

データ型: double

Detail 係数。スカラー、ベクトル、行列、または cell 配列として返されます。Detail 係数は、一般にウェーブレット係数と呼ばれます。Detail 係数の数は、選択したレベルと入力の長さに応じて異なります。d が cell 配列の場合、d の要素は最も細かい解像度から最も粗い解像度の順に並べられます。

メモ: 生成された C および C++ コードは、常にウェーブレット係数 d を cell 配列で返します。

データ型: double

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

R2016b で導入