Main Content

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

LMS Filter

LMS 適応アルゴリズムを使用した出力、誤差および重みの計算

  • LMS Filter block

ライブラリ:
DSP System Toolbox / Filtering / Adaptive Filters
DSP System Toolbox HDL Support / Filtering

説明

LMS Filter ブロックは、5 つの異なるアルゴリズムを使用して適応 FIR フィルターを実装することができます。ブロックは、出力信号 y(n) と目的の信号 d(n) の間で誤差 e(n) を最小化するために必要なフィルターの重みまたは係数を推定します。出力はフィルター処理された入力信号です。これが目的の信号の推定になります。[Error] 端子は目的の信号から出力信号を差し引いた結果を出力します。

このブロックは、特定の状況下で SIMD コード生成もサポートします。詳細は、コード生成を参照してください。

端子

入力

すべて展開する

入力信号。スカラーまたは列ベクトルとして指定します。

入力が固定小数点の場合、符号付きでなければなりません。

[アルゴリズム] パラメーターを [符号-誤差 LMS][符号-データ LMS] または [符号-符号 LMS] に設定した場合、[Input] 端子経由のデータ入力は実数でなければなりません。

データ型: single | double | fixed point

目的の信号。スカラーまたは列ベクトルとして指定します。目的の信号は Input 信号と同じデータ型、実数/複素数および次元をもたなければなりません。

[Input] が固定小数点の場合、目的の信号は符号付き固定小数点でなければなりません。

[アルゴリズム] パラメーターを [符号-誤差 LMS][符号-データ LMS] または [符号-符号 LMS] に設定した場合、[Desired] 端子経由のデータ入力は実数でなければなりません。

データ型: single | double | fixed point

ステップ サイズ μ を入力します。正規化 LMS 方程式の収束では、0<µ<2 となります。入力の型は Input 端子の型と一致しなければなりません。

[Input] が固定小数点の場合、ステップサイズは符号付き固定小数点でなければなりません。

依存関係

この端子は Specify step size via パラメーターを [入力端子] に設定する場合にのみ表示されます。

データ型: single | double | fixed point

この端子への入力がゼロより大きい場合、ブロックはフィルターの重みを継続的に更新します。この端子への入力がゼロ以下の場合、フィルターの重みは現在の値を維持します。

依存関係

この端子は Adapt port パラメーターを [on] に設定する場合にのみ表示されます。

データ型: single | double | int8 | int16 | int32 | Boolean

フィルターの重み値を初期値にリセットする信号。スカラーとして指定します。リセット端子でリセット イベントが検出されるたびに、ブロックはフィルターの重みをリセットします。リセット信号のレートはデータ信号入力と同じレートでなければなりません。

リセット イベントのタイプについては、Reset パラメーターを参照してください。

依存関係

この端子は、[リセット端子] パラメーターを [立ち上がりエッジ][立ち下がりエッジ][両エッジ] または [非ゼロのサンプル] に設定する場合にのみ表示されます。

データ型: single | double | int8 | int16 | int32 | Boolean

出力

すべて展開する

目的の信号の推定。スカラーまたは列ベクトルとして返されます。入力信号と同じサイズ、同じ実数/複素数となります。

出力信号のデータ型は、目的の信号のデータ型と同じです。

データ型: single | double | fixed point

出力信号と目的の信号の誤差。スカラーまたは列ベクトルとして返されます。この誤差は、目的の信号から出力信号を差し引いた結果です。

誤差信号のデータ型は、目的の信号のデータ型と同じです。

データ型: single | double | fixed point

フィルターの重み。スカラーまたは列ベクトルとして返されます。各反復で、ブロックはこの端子から現在の更新されたフィルターの重みを出力します。

重みのデータ型は、浮動小数点信号の Input 端子の型と一致しなければなりません。固定小数点信号の Weights パラメーターに従います。

依存関係

この端子は Output filter weights パラメーターを [On] に設定する場合にのみ表示されます。

データ型: single | double | fixed point

パラメーター

すべて展開する

[メイン] タブ

フィルターの重みの計算に使用するアルゴリズムを選択します。

FIR フィルターの重みのベクトルの長さを入力します。

  • ダイアログ –– [ステップ サイズ (mu)] パラメーターを使用してステップ サイズを指定します。

  • 入力端子 –– Step-size 端子を使用してステップ サイズを指定します。

ステップ サイズ μ を入力します。正規化 LMS 方程式の収束では、0<µ<2 となります。

調整可能: Yes

依存関係

このパラメーターは、Specify step size via パラメーターを [ダイアログ] に設定した場合にのみ表示されます。

漏れ係数 0 < 1 – μα ≤ 1 を入力します。

調整可能: Yes

フィルターの重みの初期値 w(0) をベクトルまたはスカラーとして入力します。スカラーを入力すると、ブロックはこのスカラー値を使ってフィルターの重みのベクトルを作成します。このベクトルの長さはフィルター長に等しく、値はすべてこのスカラー値と等しくなります。

このチェック ボックスをオンにすると Adapt 入力端子が有効になります。

フィルターの重み値を初期値にリセットするには、[リセット端子] パラメーターを使用します。リセット信号はデータ信号入力と同じレートでなければなりません。

[なし] を選択して Reset 端子を無効にします。[Reset] 端子を有効にするには、リストから次のいずれかを選択します。

  • 立ち上がりエッジ[Reset] の入力が次のいずれかを行うときにリセット操作をトリガーします。

    • 負の値から正の値またはゼロに立ち上がる

    • ゼロから正の値に立ち上がる。この場合、立ち上がりは負の値からゼロへの立ち上がりと連続していません (次の図を参照)。

  • 立ち下がりエッジ[Reset] の入力が次のいずれかを行うときにリセット操作をトリガーします。

    • 正の値から負の値またはゼロに立ち下がる

    • ゼロから負の値に立ち下がる。この場合、立ち下がりは正の値からゼロへの立ち下がりと連続していません (次の図を参照)。

  • 両エッジ[Reset] の入力が [立ち上がりエッジ] または [立ち下がりエッジ] の場合、リセット操作をトリガーします。

  • 非ゼロのサンプル — Reset の入力が非ゼロの各サンプル時間でリセット操作をトリガーします。

[Output filter weights] パラメーターを選択して Wts 端子からフィルターの重みをエクスポートします。各反復で、ブロックはこの端子から現在の更新されたフィルターの重みを出力します。

[データ型] タブ

固定小数点演算の丸めモードを次のいずれかに指定します。

  • 負方向

  • 正方向

  • 最も近い偶数方向

  • 最も近い正の整数方向

  • 最も近い整数方向

  • 最も簡潔

  • ゼロ方向

詳細については、丸めモードを参照してください。

このパラメーターをオンにすると、ブロックは固定小数点演算の結果を飽和させます。このパラメーターをオフにすると、ブロックは固定小数点演算の結果をラップします。saturate および wrap の詳細については、固定小数点演算のオーバーフロー モードを参照してください。

漏れ係数とステップ サイズの語長と小数部の長さの指定方法を選択します。

  • 1 番目の入力と同じ語長 –– 漏れ係数とステップ サイズの語長がブロックへの最初の入力の語長と一致します。このモードでは、漏れ係数とステップ サイズの小数部の長さは 2 進小数点のみのスケーリングに自動的に設定されます。このスケーリングは、与えられた係数の値と語長で可能な限り最高の精度を提供します。

  • 語長の指定 –– 漏れ係数とステップ サイズの語長をビット数で入力できます。このモードでは、漏れ係数とステップ サイズの小数部の長さは 2 進小数点のみのスケーリングに自動的に設定されます。このスケーリングは、与えられた係数の値と語長で可能な限り最高の精度を提供します。

  • 2 進小数点スケーリング –– 漏れ係数とステップ サイズの語長と小数部の長さをビット数で入力できます。漏れ係数とステップ サイズの語長は同じでなければなりませんが、小数部の長さは異なっても構いません。

Specify step size via パラメーターで [入力端子] を選択する場合、漏れ係数の語長は Step-size 端子でのステップ サイズ入力の語長と同じになります。漏れ係数の小数部の長さは、漏れ係数の語長に基づいて可能な限り最高の精度に自動的に設定されます。

依存関係

このパラメーターは、[ステップ サイズの指定方法] パラメーターを [ダイアログ] に設定した場合にのみ表示されます。

ブロックのフィルターの重みの語長と小数部の長さを指定する方法を選択します。

  • 1 番目の入力と同じ –– フィルターの重みの語長と小数部の長さがブロックへの 1 番目の入力のそれらと一致します。

  • 2 進小数点スケーリング –– フィルターの重みの語長と小数部の長さをビット数で入力できます。

u'uW'uμeQu および商 Q の語長と小数部の長さを指定する方法を選択します。ここで、u は入力ベクトル、W はフィルターの重みのベクトル、μ はステップ サイズ、e は誤差、Q は商で、次のように定義できます。Q=μeu'u

  • 1 番目の入力と同じ –– これらの量の語長と小数部の長さがブロックへの 1 番目の入力のそれらと一致します。

  • 2 進小数点スケーリング –– これらの量の語長と小数部の長さをビット数で入力できます。これらの量の語長は同じでなければなりませんが、小数部の長さは異なっても構いません。

このパラメーターを使用して、u'u および W'u 演算のアキュムレータの語長と小数部の長さの指定方法を指定します。

メモ

このパラメーターは、Qu 演算のアキュムレータの語長と小数部の長さを指定するためには使用しません。この量のアキュムレータのデータ型は積のデータ型と同じになるように自動的に設定されます。このアキュムレータの最小、最大およびオーバーフロー情報は積の情報の一部としてログ記録されます。オートスケーリングは、この積とアキュムレータを 1 つのデータ型として扱います。

  • 1 番目の入力と同じ –– これらの特性はブロックへの入力の特性と一致します。

  • 2 進小数点スケーリング –– アキュムレータの語長と小数部の長さをビット数で入力できます。両方のアキュムレータの語長は同じでなければなりませんが、小数部の長さは異なっても構いません。

このブロックのアキュムレータ データ型の使い方を示す図は、固定小数点および乗算のデータ型を参照してください。

ブロック ダイアログ ボックスで指定するデータ型が固定小数点ツールによってオーバーライドされないようにするには、このパラメーターを選択します。

ブロックの特性

データ型

double | fixed point | integer | single

直達

いいえ

多次元信号

いいえ

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

詳細

すべて展開する

参照

[1] Hayes, M.H. Statistical Digital Signal Processing and Modeling. New York: John Wiley & Sons, 1996.

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する