Main Content

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

lloyds

ロイド アルゴリズムを使用した量子化パラメーターの最適化

説明

[partition,codebook] = lloyds(training_set,initcodebook) は、スカラー量子化パラメーター partition および codebook をベクトル training_set 内の学習データ用に最適化します。initcodebook は、コードブック値の初期推定です。

[partition,codebook] = lloyds(training_set,len) は、スカラー引数 len がベクトル codebook のサイズを示すこと以外は、最初の構文と同じです。この構文は初期コードブック推定を含みません。

[partition,codebook] = lloyds(___,tol) は、前述の構文における入力引数の任意の組み合わせに加え、歪みの相対許容誤差 tol を指定します。

[partition,codebook,distor] = lloyds(___) は、さらに、最終的な平均二乗歪み distor を返します。

[partition,codebook,distor,reldistor] = lloyds(___) は、さらに、アルゴリズムの終了方法によって異なる値 reldistor を返します。

すべて折りたたむ

学習データとして使用する正弦波信号を作成します。

t = 0:1000;
training_set = sin(t*pi/500);

コードワード長を 8 に設定します。この長さは、3 ビットのチャネルでの送信に対応します。

len = 8;

量子化パラメーターを最適化します。最適化されたパラメーターを使用して、別の正弦波信号を量子化します。信号および量子化後の信号をプロットします。

[partition,codebook] = lloyds(training_set,len);
signal = cos(t*pi/250);
[index,quants] = quantiz(signal,partition,codebook);
plot(t,signal,t,quants,'.')

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

入力引数

すべて折りたたむ

学習データ。ベクトルとして指定します。

メモ

この関数は、training_set 内のデータに基づいて最適化を行います。最適な結果を得るには、training_set は量子化するデータと類似したものにしてください。

データ型: double | single

コードブックの初期推定。ベクトルとして指定します。ベクトルの長さは 2 以上でなければなりません。アルゴリズムで説明されている反復処理の初期値を与える場合は、この入力を指定します。

データ型: double | single

初期コードブック長。正の整数として指定します。アルゴリズムで説明されている反復処理の初期値を関数に生成させる場合は、この入力を指定します。

データ型: double | single

歪みの相対許容誤差。スカラーとして指定します。ロイド アルゴリズムは、反復間の歪みの相対変化量がこの値より小さくなると終了します。

データ型: double | single

出力引数

すべて折りたたむ

異なる範囲の明確な端点。行ベクトルとして返されます。この出力は、実数値の集合において、オーバーラップしないで隣接する値の範囲を定義します。このベクトルの長さは、codebook の長さよりも 1 小さくなります。データ型は training_set と同じです。

各分割の量子化値。行ベクトルとして返されます。この出力は、スカラー量子化における各分割の値を規定します。このベクトルの長さは、どの入力を指定するかに応じて、initcodebook の長さまたは len の値と等しくなります。データ型は training_set と同じです。

最終的な平均二乗歪み。正のスカラーとして返されます。この関数は、ロイド・アルゴリズムの各ステップにおける平均二乗歪みを計算します。

平均二乗歪みの最終的な相対変化量。正のスカラーとして返されます。このアルゴリズムがアルゴリズムの最初の条件によって終了した場合、reldistor は最後の 2 つの反復の間における歪みの相対変化量になります。2 番目の条件の場合、reldistordistor に等しくなります。

アルゴリズム

関数 lloyds は、平均二乗歪みを最小化するための反復処理を使用します。最適化処理は以下のいずれかの場合に終了します。

  • 反復間の相対変化量が tol の値未満である。

  • 歪みが eps*max(training_set) 未満である。ここで、eps は MATLAB® の浮動小数点数の相対精度です。

参照

[1] Lloyd, S.P., “Least Squares Quantization in PCM,” IEEE Transactions on Information Theory, Vol. IT-28, March, 1982, pp. 129–137.

[2] Max, J., “Quantizing for Minimum Distortion,” IRE Transactions on Information Theory, Vol. IT-6, March, 1960, pp. 7–12.

バージョン履歴

R2006a より前に導入

参考

|

トピック