Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

LMS Filter

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

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

    DSP System Toolbox HDL Support / Filtering

説明

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

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

端子

入力

すべて展開する

フィルター処理する信号を接続します。スカラーまたは列ベクトルとして指定します。

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

データ型: single | double | fixed point

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

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

データ型: single | double | fixed point

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

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

依存関係

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

データ型: single | double | fixed point

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

依存関係

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

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

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

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

依存関係

この端子は、[Reset port] パラメーターを [Rising edge][Falling edge][Either edge] または [Non-zero sample] に設定する場合にのみ表示されます。

データ型: 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 フィルターの重みのベクトルの長さを入力します。

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

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

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

調整可能: Yes

依存関係

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

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

調整可能: Yes

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

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

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

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

  • Rising edge[Reset] の入力が次のいずれかを行うときにリセット操作をトリガーします。

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

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

  • Falling edge[Reset] の入力が次のいずれかを行うときにリセット操作をトリガーします。

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

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

  • Either edge[Reset] の入力が [Rising edge] または [Falling edge] の場合、リセット操作をトリガーします。

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

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

[データ型] タブ

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

  • Floor

  • Ceiling

  • Convergent

  • Nearest

  • Round

  • Simplest

  • Zero

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

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

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

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

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

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

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

依存関係

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

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

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

  • Binary point scaling –– フィルターの重みの語長と小数部の長さをビット数で入力できます。

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

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

  • Binary point scaling –– これらの量の語長と小数部の長さをビット数で入力できます。これらの量の語長は同じでなければなりませんが、小数部の長さは異なっても構いません。

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

メモ:

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

  • Same as first input –– これらの特性はブロックへの入力の特性と一致します。

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

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

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

ブロックの特性

データ型

double | fixed point | integer | single

直接フィードスルー

いいえ

多次元信号

いいえ

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

詳細

すべて展開する

参照

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

拡張機能

R2006a より前に導入