メインコンテンツ

Discrete FIR Filter

R2026b

FIR フィルター モデル

  • Discrete FIR Filter block

ライブラリ:
Simulink / Discrete
DSP System Toolbox / Filtering / Filter Implementations
HDL Coder / Discrete
HDL Coder / HDL Floating Point Operations

説明

Discrete FIR Filter ブロックは、指定したデジタル FIR フィルターで入力信号の各チャネルを個別にフィルター処理します。固定係数の静的フィルターや、時間的に変化する係数をもつ時変フィルターを実装でき、また静的フィルターの係数はシミュレーション中に調整することができます。

このブロックは、時間とともに入力信号の各チャネルに個々にフィルターをかけます。[入力処理] パラメーターでは、ブロックが、入力の各要素を独立したチャネル (サンプルベースの処理) として、または入力の各列を独立したチャネル (フレームベースの処理) として扱うかどうかを指定できます。フレームベースの処理を実行するには、DSP System Toolbox™ のライセンスがなければなりません。

[係数] パラメーターのフィルター タップの行列を指定した場合を除き、出力の次元は入力の次元と等しくなります。指定した場合は、その出力の次元は指定する別のフィルター タップのセット数に従います。

このブロックは、コードのカスタマイズおよび生成をより効率的に行うためにカスタム状態属性をサポートします。例については、Discrete FIR Filter ブロックのカスタム状態属性を参照してください。特定の条件下では、ブロックは SIMD コード生成もサポートします。詳細については、コード生成を参照してください。

出力は、DSP System Toolbox Digital Filter Design (DSP System Toolbox) ブロックの出力と数値的に一致します。

このブロックは Simulink® の状態のログ作成をサポートします。詳細については、ステートを参照してください。

フィルター構造サポート

[フィルター構造] パラメーターから以下のいずれかを選択することにより、Discrete FIR Filter ブロックによって実装されたフィルター構造を変更できます。

  • 直接型

  • 直接型対称

  • 直接型反対称

  • 直接型転置

  • ラティス MA

[直接型] を除き、これらのいずれかのフィルター構造でモデルを実行するためには、有効な DSP System Toolbox ライセンスをもっていなければなりません。

フィルター構造体の詳細については、アルゴリズムを参照してください。

初期状態の指定

Discrete FIR Filter ブロックの既定の設定では、内部フィルターの状態はゼロに初期化されます。これは過去の入出力をゼロにすることに相当します。オプションの 初期状態 パラメーターを選択すると、フィルター遅延の初期状態にゼロ以外を指定できます。

初期状態の数値や指定方法に関しては、「入力可能な初期状態」の表を参照してください。初期状態 パラメーターは次の表のいずれかになります。

入力可能な初期状態

初期条件説明

スカラー

フィルターのすべての遅延要素がスカラー値に初期化されます。

ベクトルまたは行列
(個々の遅延要素を各チャネルに適用)

ベクトルや行列の各要素は、対応するチャネルの対応する遅延要素に固有な初期状態を指定します。

  • ベクトルの長さは、フィルターの入力チャネル数と遅延要素数、すなわち #_of_filter_coeffs-1 ([ラティス MA] の場合は #_of_reflection_coeffs) の積に等しくします。

  • フィルターの遅延要素数、すなわちフィルター係数の数 #_of_filter_coeffs-1 ([ラティス MA] の場合は #_of_reflection_coeffs) と同じ行数をもち、各列が入力信号の各チャネルに対応するように指定します。

例

端子

入力

すべて展開する

フィルター処理する入力信号。スカラー、ベクトルまたは行列として指定します。

Discrete FIR Filter ブロックは、Simulink がサポートする任意の数値データ型の実信号と複素信号を受け入れます。

依存関係

[係数のソース] を [ダイアログ パラメーター] に設定した場合、入力信号の端子にラベルは付けられません。[係数のソース] を [入力信号] に設定した場合は、入力信号の端子に In というラベルが付けられます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
複素数のサポート: あり

フィルター係数をスカラーまたはベクトルとして指定します。フィルター タップの行ベクトルを指定するときに、ブロックは単一のフィルターを入力に適用します。複数のフィルターを入力に適用するには、[係数] パラメーターを使用して行列形式で係数を指定します。

依存関係

この端子を有効にするには、[係数のソース] を [入力端子] に設定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

外部リセット信号。スカラーとして指定します。指定したトリガー イベントが発生すると、状態が初期条件にリセットされます。

ヒント

この端子のアイコンは [外部リセット] パラメーターの値に基づいて変化します。

依存関係

この端子を有効にするには、[外部リセット] を [立ち上がり]、[立ち下がり]、[両方]、[レベル]、[レベル保持] のいずれかに設定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

イネーブル信号。スカラーとして指定します。この端子はブロックの実行を制御できます。ブロックはこの端子への入力が非ゼロのときに有効になり、入力が 0 のときに無効になります。入力の値はブロックの実行と同じタイム ステップでチェックされます。

依存関係

この端子を有効にするには、[イネーブル端子を表示する] チェック ボックスをオンにします。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

出力

すべて展開する

フィルター処理された出力信号。スカラー、ベクトル、または行列として返されます。Discrete FIR Filter ブロックは、Simulink がサポートする任意の数値データ型の実信号と複素信号を出力します。

ブロックへの入力が固定小数点の場合、ブロック出力のデータ型は、[出力] パラメーターに指定した値に基づいて決定されます。入力が浮動小数点の場合、出力データ型は入力データ型に一致します。これは、浮動小数点の継承が固定小数点の設定よりも優先されるからです。

[サンプル時間] を -1 に設定した場合、出力信号のサンプル時間は入力信号 [In] のサンプル時間と同じになります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

パラメーター

すべて展開する

メイン

フィルター係数を調整可能なダイアログ パラメーターまたは入力端子を使用して指定するように選択します。これは時変係数に役立ちます。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: CoefSource
値: 'Dialog parameters' (既定値) | "Input port"
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",CoefSource="Input port")

ブロックで実現するフィルター構造を選択します。詳細については、アルゴリズムを参照してください。

依存関係

[直接型] を除き、いずれかのフィルター構造を実装する Discrete FIR Filter ブロックを含むモデルを実行するには、有効な DSP System Toolbox ライセンスをもっていなければなりません。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: FilterStructure
値: 'Direct form' (既定値) | "Direct form symmetric" | "Direct form antisymmetric" | "Direct form transposed" | "Lattice MA"
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",FilterStructure="Direct form transposed")

フィルター係数をスカラー、ベクトル、または行列として指定します。

フィルター タップの行ベクトルを指定するときに、ブロックは単一のフィルターを入力に適用します。複数のフィルターを同一の入力に適用するには、係数の行列を指定します。このとき、それぞれの行はフィルター タップの別々のセットを表します。複数のフィルターを実装するには、次の条件を満たさなければなりません。

  • [フィルター構造] を [直接型] に設定します。

  • 入力はスカラーでなければなりません。

  • [入力処理] を [チャネルとしての要素 (サンプル ベース)] に設定します。

依存関係

このパラメーターを有効にするには、[係数のソース] を [ダイアログ パラメーター] に設定します。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: Coefficients
値: '[0.5 0.5]' (既定値) | vector
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",Coefficients="[0.25 0.5 0.25]")

ブロックでサンプルベースかフレームベースのどちらの処理を実行するかを指定します。以下のオプションのいずれかを選択します。

  • チャネルとしての要素 (サンプル ベース) — 入力の各要素を独立したチャネルとして扱います (サンプルベースの処理)。

  • チャネルとしての列 (フレーム ベース) — 入力の各列を独立したチャネルとして扱います (フレームベースの処理)。

    メモ

    フレームベースの処理には、DSP System Toolbox のライセンスが必要になります。

    詳細については、サンプルベースおよびフレームベースの概念 (DSP System Toolbox)を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: InputProcessing
値: 'Elements as channels (sample based)' (既定値) | "Columns as channels (frame based)"
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",InputProcessing="Columns as channels (frame based)")

フィルターの状態の初期条件を指定します。初期状態の指定方法については、初期状態の指定を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: InitialStates
値: '0' (既定値) | scalar | vector | matrix
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",InitialStates="0")

イネーブル端子でこのブロックの実行制御を選択します。ブロックはこの端子への入力が非ゼロのときに有効と見なされ、入力が 0 のときに無効になります。入力の値はブロックの実行と同じタイム ステップでチェックされます。

プログラムでの使用

ブロック パラメーター: ShowEnablePort
型: 文字ベクトル
値: 'off' | 'on'
既定: 'off'

状態を初期条件にリセットするために使用するトリガー イベントを指定します。

リセット モード動作
なしリセットなし
立ち上がり立ち上がりエッジでリセットします
立ち下がり立ち下がりエッジでリセットします
両方立ち上がりエッジまたは立ち下がりエッジのいずれかでリセットします
レベル

次のいずれかの場合にリセットします。

  • リセット信号が現在のタイム ステップで非ゼロである場合

  • 以前のタイム ステップでの非ゼロから現在のタイム ステップでの 0 までリセット信号の値が変化する場合

レベル保持リセット信号が現在のタイム ステップで非ゼロであるときにリセットします。

プログラムでの使用

ブロック パラメーター: ExternalReset
型: 文字ベクトル
値: 'None' | 'Rising' | 'Falling' | 'Either' | 'Level' | 'Level hold'
既定の設定: 'None'

サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1 に設定します。詳細については、サンプル時間の指定を参照してください。

依存関係

このパラメーターは、-1 以外の値に設定した場合にのみ表示されます。詳細は、サンプル時間が推奨されないブロックを参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: SampleTime
値: "-1" (既定値) | scalar or vector in quotes

フィルターの可視化ツール (fvtool (DSP System Toolbox)) を開いて、ブロックのダイアログ ボックスで定義されているフィルターのフィルター応答を表示するには、このボタンをクリックします。

依存関係

このパラメーターを有効にするには、[係数のソース] パラメーターを [ダイアログ パラメーター] に設定します。

このパラメーターは、有効な DSP System Toolbox ライセンスがある場合にのみ表示されます。

データ型

直接型の対称フィルターまたは直接型の反対称フィルターのタップの加算のデータ型を指定します。フィルターは、係数による乗算の前に入力を加算するときにこのデータ型を使用します。以下を指定可能です。

  • データ型継承ルール (例: [継承: 内部ルールによる継承])

  • 組み込み整数 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターは、[フィルター構造] を [直接型対称] または [直接型反対称] に設定した場合にのみ表示されます。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: TapSumDataTypeStr
値: 'Inherit: Inherit via internal rule' (既定値) | "Inherit: Same as input" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16,0)" | "<data type expression>"
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",TapSumDataTypeStr="Inherit: Same as input")

係数のデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: [継承: 入力と同じ語長)

  • 組み込み整数 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: CoefDataTypeStr
値: 'Inherit: Same wordlength as input' (既定値) | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16)" | "fixdt(1,16,0)" | "<data type expression>"
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",CoefDataTypeStr="int16")

フィルター係数の最小値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: CoefMin
値: '[]' (既定値) | scalar
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",CoefMin="-1")

フィルター係数の最大値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: CoefMax
値: '[]' (既定値) | scalar
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",CoefMax="1")

乗算器の出力データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: [継承: 内部ルールによる継承])

  • 組み込みデータ型 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: ProductDataTypeStr
値: 'Inherit: Inherit via internal rule' (既定値) | "Inherit: Same as input" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16,0)" | "<data type expression>"
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",ProductDataTypeStr="Inherit: Same as input")

アキュムレータ データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: [継承: 内部ルールによる継承])

  • 組み込みデータ型 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: AccumDataTypeStr
値: 'Inherit: Inherit via internal rule' (既定値) | "Inherit: Same as input" | "Inherit: Same as product output" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16,0)" | "<data type expression>"
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",AccumDataTypeStr="Inherit: Same as input")

状態のデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: [継承: アキュムレータと同じ)

  • 組み込み整数 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

依存関係

このパラメーターを有効にするには、[フィルター構造] を [ラティス MA] に設定します。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、set_param 関数を使用します。

パラメーター: StateDataTypeStr
値: 'Inherit: Same as accumulator' (既定値) | "Inherit: Same as input" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16,0)" | "<data type expression>"
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",StateDataTypeStr="Inherit: Same as input")

出力データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: [継承: 入力と同じ)

  • 組み込みデータ型 (例: int8)

  • データ型オブジェクト (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

ブロックへの入力が浮動小数点の場合、出力データ型は入力データ型に一致します。これは、浮動小数点の継承が固定小数点の設定よりも優先されるからです。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: OutDataTypeStr
値: 'Inherit: Same as accumulator' (既定値) | "Inherit: Same as input" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16)" | "fixdt(1,16,0)" | "<data type expression>"
データ型: char | string

例: set_param("myModel/Discrete FIR Filter",OutDataTypeStr="Inherit: Same as input")

ソフトウェアでチェックする出力範囲の下限値。

最小値を使用して以下が行われます。

ヒント

[出力の最小値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: OutMin
値: '[]' (既定値) | scalar in quotes

ソフトウェアでチェックする出力範囲の上限値。

最大値を使用して以下が行われます。

ヒント

[出力の最大値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: OutMax
値: '[]' (既定値) | scalar in quotes

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックのデータ型の設定をロックします。詳細については、出力データ型設定のロック (Fixed-Point Designer)を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: LockScale
値: 'off' (既定値) | "on"

固定小数点演算の丸めモードを指定します。詳細については、丸めモード (Fixed-Point Designer)を参照してください。

プログラムでの使用

ブロック パラメーター: RndMeth
型: 文字ベクトル
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
既定の設定: 'Floor'

オーバーフローで飽和するかラップするかを指定します。

  • on — オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。

  • off — オーバーフローは、データ型によって表現される適切な値にラップされます。

たとえば、符号付き 8 ビット整数 int8 で表現できる最大値は 127 です。この最大値を超えるブロックの演算結果により 8 ビット整数のオーバーフローが発生します。

  • このパラメーターがオンになっていると、ブロック出力は 127 で飽和します。同様に、ブロック出力は最小出力値である -128 で飽和します。

  • このパラメーターをオフにすると、オーバーフローを引き起こした値は int8 として解釈され、意図しない結果が引き起こされる可能性があります。たとえば、int8 として表されるブロック結果 130 (バイナリで 1000 0010) は -126 です。

ヒント

  • モデルでオーバーフローが発生する可能性があり、生成コードに飽和保護を明示的に組み込む必要があるときには、このパラメーターをオンにすることを検討してください。

  • 生成コードの効率を最適化する場合には、このパラメーターをオフにすることを検討してください。このパラメーターをオフにすると、ブロックが範囲外の信号を処理する方法を指定しすぎないようにする点でも役立ちます。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。

  • このパラメーターをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。

  • 通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: SaturateOnIntegerOverflow
値: 'off' (既定値) | 'on'

ブロックの特性

データ型

double | fixed point | integer | single

直達

いいえ

多次元信号

いいえ

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

詳細

すべて展開する

アルゴリズム

Discrete FIR Filter ブロック内で使用される構造のブロック線図を以下に示します。

直接型

Signal flow diagram of the direct form FIR filter structure. The input signal enters from the left and feeds into a chain of unit-delay blocks labeled z to the power of negative 1 connected in series from top to bottom. The input and each delayed version of the input branch rightward into triangular gain blocks labeled b sub 0, b sub 1, through b sub N, representing the filter coefficients. Each gain output feeds into a chain of circular summation nodes that accumulate all weighted signals. The final accumulated sum exits as the output on the right. Ellipsis dots between the middle delay stages indicate the pattern continues for an arbitrary number of filter taps.

直接型対称

フィルター係数は対称であると想定されます。ブロックは、係数の前半のみをフィルター処理に使用します。

Signal flow diagrams of two direct form symmetric FIR filter structures shown side by side. On the left is the even order Type I structure, where the input feeds into a vertical chain of z to the power of negative 1 delay blocks and symmetric tap pairs from the top and bottom of the delay line are added together in circular summation nodes before being multiplied by coefficients b sub 0, b sub 1, through b sub N over 2. The weighted results are accumulated through a summation chain to produce the output. On the right is the odd order Type II structure, which has a similar layout but with an additional delay element to accommodate the odd number of taps. The center tap, which has no symmetric partner, passes through its own coefficient multiplier independently. Both structures exploit the symmetric property of the filter coefficients to reduce the number of multiplications by half.

直接型反対称

フィルター係数は反対称であると想定されます。ブロックは、係数の前半のみをフィルター処理に使用します。

Signal flow diagrams of two direct form antisymmetric FIR filter structures shown side by side. On the left is the even order Type III structure, and on the right is the odd order Type IV structure. Both structures are visually similar to the direct form symmetric structures but use subtraction instead of addition when combining the antisymmetric tap pairs, reflecting the property that filter coefficients satisfy b sub k equals negative b sub N minus k. The input feeds into a chain of z to the power of negative 1 delay blocks, antisymmetric tap pairs are subtracted, and the results are multiplied by coefficients b sub 0, b sub 1, through b sub N over 2 before accumulation to produce the output. The odd order version has an additional delay element and a center tap that passes through its own coefficient multiplier.

直接型転置

入力または係数が複素数である場合は、状態も複素数になります。

Signal flow diagram of the direct form transposed FIR filter structure. The section input enters from the left and fans out simultaneously to all triangular coefficient gain blocks labeled b sub 0, b sub 1, through b sub N. Each coefficient multiplier output feeds into a circular summation node. The partial sums propagate upward through a chain of z to the power of negative 1 delay blocks. At each stage, the delayed partial sum from the stage below is added to the current coefficient product. The topmost stage, corresponding to coefficient b sub 0, produces the section output on the right. Ellipsis between the middle stages indicates the pattern repeats for an arbitrary number of taps.

ラティス MA

Signal flow diagram of one stage of the lattice MA moving average FIR filter structure. The input enters from the left and splits into upper and lower signal paths that are cross-coupled through the reflection coefficients. In the upper path, the input feeds into a circular summation node along with a branch that passes through a triangular gain block labeled k sub i representing the reflection coefficient. In the lower path, the delayed signal from a z to the power of negative 1 delay block passes through a rectangular block labeled CONJ of k sub i, representing the conjugate of the reflection coefficient, and feeds into a lower summation node together with the direct input signal. The lower summation output feeds into another z to the power of negative 1 delay block. The upper path also includes a gain block labeled k sub r. The output exits on the right. This cross-coupled lattice topology allows the forward and backward paths to interact through the reflection coefficients.

拡張機能

すべて展開する

PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2008a で導入

すべて展開する