Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

haart

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

説明

[a,d] = haart(x) は、偶数長のベクトル x の 1 次元 Haar 離散ウェーブレット変換を実行します。入力 x は一変数または多変数のデータです。x が行列の場合、haartx の各列を処理します。x の長さが 2 のべき乗である場合、レベル log2(length(x)) まで下げて Haar 変換が求められます。そうでない場合、レベル floor(log2(length(x)/2)) まで下げて Haar 変換が求められます。

[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')

Figure contains an axes object. The axes object with title ECG Data, xlabel Hours, ylabel Heart Rate contains an object of type line.

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')

Figure contains an axes object. The axes object with title Haar Approximation of Heart Rate, xlabel Hours, ylabel Heart Rate contains an object of type line.

入力引数

すべて折りたたむ

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

データ型: single | double
複素数のサポート: あり

Haar 変換を実行する最大レベル。正の整数として指定します。

  • x の長さが 2 のべき乗である場合、level は、log2(length(x)) 以下の正の整数になります。

  • x の長さが偶数であるが 2 のべき乗ではない場合、level は、floor(log2(length(x)/2)) 以下の正の整数になります。

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

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

出力引数

すべて折りたたむ

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

データ型: single | double

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

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

データ型: single | double

拡張機能

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

GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。

バージョン履歴

R2016b で導入