Main Content

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

Biquad Filter

双二次 IIR (SOS) フィルターのモデル化

  • Biquad Filter block

ライブラリ:
DSP System Toolbox / Filtering / Filter Implementations
DSP System Toolbox HDL Support / Filtering

説明

Biquad Filter ブロックは、指定の双二次無限インパルス応答 (IIR) フィルターを使って入力信号の各チャネルを個別にフィルター処理します。ダイアログ ボックスにフィルター係数を指定すると、ブロックは固定係数を使用して静的フィルターを実装します。入力端子を通してフィルター係数を指定すると、シミュレーション時に係数を調整できます。

Biquad Filter ブロックは Simulink® の状態ログ機能をサポートしています。詳細については、ステート (Simulink)を参照してください。

端子

入力

すべて展開する

ブロックへのデータ入力。ベクトルまたは行列として指定します。このブロックは、シミュレーション中の入力フレームのサイズ (行数) 変更を有効にする可変サイズの入力信号をサポートします。ただし、チャネル数 (列数) は一定でなければなりません。

入力が固定小数点の場合、2 進小数点スケーリングを使用する符号付き固定小数点でなければなりません。

この端子は [係数のソース][入力端子] に設定しない限り、名前は付きません。

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

双二次フィルターの分子係数。3 行 N 列の行列として指定します。ここで、N は双二次フィルター セクションの数です。

[Num] が固定小数点の場合、2 進小数点スケーリングを使用する符号付き固定小数点でなければなりません。

依存関係

この端子は [係数のソース][入力端子] に設定する場合にのみ表示されます。

データ型: single | double | int8 | int16 | int32 | int64 | fixed point

双二次フィルターの分母係数。2 行 N 列の行列として指定します。ここで、N は双二次フィルター セクションの数です。

[Den] が固定小数点の場合、2 進小数点スケーリングを使用する符号付き固定小数点でなければなりません。

依存関係

この端子は [係数のソース][入力端子] に設定する場合にのみ表示されます。

データ型: single | double | int8 | int16 | int32 | int64 | fixed point

双二次フィルターのスケール値。1 行 (N+1) 列のベクトルとして指定します。ここで、N は双二次フィルター セクションの数です。

[g] が固定小数点の場合、2 進小数点スケーリングを使用する符号付き固定小数点でなければなりません。

依存関係

この端子は [係数のソース][入力端子] に設定する場合にのみ表示されます。

データ型: single | double | int8 | int16 | int32 | int64 | fixed point

出力

すべて展開する

フィルター処理された出力。ベクトルまたは行列として返されます。

出力次元は、常に入力信号の次元と同じです。このブロックの出力は dsp.BiquadFilter System object™ の出力と数値的に一致します。

[Out] が固定小数点の場合、2 進小数点スケーリングを使用する符号付き固定小数点でなければなりません。

この端子は [係数のソース][入力端子] に設定しない限り、名前は付きません。

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

パラメーター

すべて展開する

[メイン] タブ

Biquad Filter ブロックは 3 つの異なるモードで操作できます。

  • ダイアログ パラメーター — 構造や係数などのフィルターに関する情報をブロック マスクに入力します。

  • 入力端子[フィルター構造] パラメーターを使用して、フィルター構造に関する情報をブロック マスクに入力します。フィルター係数は、ブロック アイコンに表示される追加の入力端子を通してブロックに適用されます。

    • Num — 分子係数を指定します。

    • Den — 分母係数を指定します。

    • g — スケール値を指定します。

    ブロックは、各セクションの最初の分母係数を 1 と仮定します。このコンフィギュレーションは、[係数のソース][入力端子][スケール値モード][Specify via input port (g)] の場合に適用されます。

  • フィルター オブジェクトdsp.BiquadFilter System object を使用してフィルターを指定します。

ブロックで実装する離散時間フィルターの名前を指定します。フィルターは dsp.BiquadFilter System object として指定しなければなりません。

System object はブロック マスクまたは MATLAB® ワークスペース変数で定義できます。

System object の作成の詳細については、基本的な System object の定義を参照してください。

依存関係

このパラメーターは、[係数のソース][フィルター オブジェクト] に設定されている場合にのみ表示されます。

フィルター構造を指定します。

依存関係

このパラメーターは、[係数のソース][ダイアログ パラメーター] または [入力端子] に設定されている場合にのみ表示されます。

M 行 6 列の行列を指定します。ここで、M は 2 次セクション フィルターのセクション数です。SOS 行列の各行には、フィルターで対応するセクションの分子係数と分母係数 (bik と aik) が含まれています。

[b01b11b21a01a11a21b02b12b22a02a12a22b0Mb1Mb2Ma0Ma1Ma2M]

最初の分母係数 [a01 a02 ... a0N] は実際の値にかかわらず 1 として扱われます。[a0] が 1 でない場合に SOS 行列に適用されるスケーリングはありません。

関数 ss2sos と関数 tf2sos は、フィルターの状態空間または伝達関数の説明をこのブロックで使用される 2 次セクションの説明に変換します。

依存関係

このパラメーターは、[係数のソース][ダイアログ パラメーター] に設定されている場合にのみ表示されます。

SOS セクション間で使用されるスケール値を指定します。実数値のスカラーまたは M+1 の長さのベクトルを指定できます。

  • スカラーを入力すると、その値は 2 次フィルターの最初のセクション前にゲイン値を指定します。ゲイン値の残りは既定で 1 に設定されます。

  • M+1 値のベクトルを入力すると、各値がフィルターの個別のセクションを指定します。たとえば、最初の要素は最初のゲイン値で、2 番目の要素は 2 番目のゲイン値、のように続きます。

[1 のスケール値の最適化] チェック ボックスをオンにし、1 つ以上のスケール値が 1 と等しい場合にシミュレーションを最適化します。このオプションを選択すると 1 のゲインが削除されるため、値は Simulink のラインまたはワイヤのように扱われます。一部の固定小数点では、1 のスケール値がある場合にこのパラメーターを選択しても特定のキャストが省略されます。詳細については、固定小数点のセクションを参照してください。

依存関係

このパラメーターは、[係数のソース][ダイアログ パラメーター] に設定されている場合にのみ表示されます。

[フィルター構造][直接型 II] または [直接型 II 転置構成] に設定されている場合にフィルターの状態の初期条件を指定します。

直接型 II

直接型 II 転置構成

Biquad Filter ブロックは、既定の設定で内部フィルターの状態をゼロに初期化します。フィルター遅延に対して非ゼロの初期状態を指定するには、[初期条件] パラメーターを使用します。

指定すべき初期条件の数と指定方法を決定するには、有効な初期条件について以下の表を参照してください。

有効な初期条件

初期条件説明

スカラー

このブロックはフィルター内のすべての遅延要素をスカラー値に初期化します。

ベクトルまたは行列
(異なる遅延要素を各チャネルに適用するため)

ベクトルまたは行列の各要素は対応するチャネルの対応する遅延要素に一意の初期条件を指定します。M はセクションの数で、N は入力チャネルの数です。

  • ベクトル長はフィルターの遅延要素の数である 2M と等しくなければなりません。

  • 行列の行数はフィルターの遅延要素の数 2MN と同じでなければなりません。また、行列は入力信号のチャネルごとに 1 つの列をもたなければなりません。

依存関係

このパラメーターは [係数のソース][ダイアログ パラメーター] または [入力端子][フィルター構造][直接型 II] または [直接型 II 転置構成] に設定されている場合にのみ表示されます。

フィルター構造の零点側 (b0, b1,b2, ...) でフィルター状態の初期条件を指定します。このパラメーターは、[フィルター構造][直接型 I] または [直接型 I 転置構成] に設定されている場合にのみ適用されます。

直接型 I

直接型 I 転置構成

Biquad Filter ブロックは、既定の設定で内部フィルターの状態をゼロに初期化します。フィルター遅延に対して非ゼロの初期状態を指定するには、[零点側の初期条件] パラメーターを使用します。

指定すべき初期条件の数と指定方法を決定するには、有効な初期条件について以下の表を参照してください。

有効な初期条件

初期条件説明

スカラー

このブロックはフィルター内のすべての遅延要素をスカラー値に初期化します。

ベクトルまたは行列
(異なる遅延要素を各チャネルに適用するため)

ベクトルまたは行列の各要素は対応するチャネルの対応する遅延要素に一意の初期条件を指定します。ここで、M はセクションの数、N は入力チャネルの数です。

  • ベクトル長はフィルターの遅延要素の数である 2M と等しくなければなりません。

  • 行列の行数はフィルターの遅延要素の数 2MN と同じでなければなりません。また、行列は入力信号のチャネルごとに 1 つの列をもたなければなりません。

依存関係

このパラメーターは [係数のソース][ダイアログ パラメーター] または [入力端子][フィルター構造][直接型 I] または [直接型 I 転置構成] に設定されている場合にのみ表示されます。

フィルター構造の極側 (a1, a2, ...) でフィルター状態の初期条件を指定します。このパラメーターは、[フィルター構造][直接型 I] または [直接型 I 転置構成] に設定されている場合にのみ適用されます。

直接型 I

直接型 I 転置構成

Biquad Filter ブロックは、既定の設定で内部フィルターの状態をゼロに初期化します。フィルター遅延に対して非ゼロの初期状態を指定するには、[極側の初期条件] パラメーターを使用します。

指定すべき初期条件の数と指定方法を決定するには、有効な初期条件について以下の表を参照してください。

有効な初期条件

初期条件説明

スカラー

このブロックはフィルター内のすべての遅延要素をスカラー値に初期化します。

ベクトルまたは行列
(異なる遅延要素を各チャネルに適用するため)

ベクトルまたは行列の各要素は対応するチャネルの対応する遅延要素に一意の初期条件を指定します。ここで、M はセクションの数、N は入力チャネルの数です。

  • ベクトル長はフィルターの遅延要素の数である 2M と等しくなければなりません。

  • 行列の行数はフィルターの遅延要素の数 2MN と同じでなければなりません。また、行列は入力信号のチャネルごとに 1 つの列をもたなければなりません。

依存関係

このパラメーターは [係数のソース][ダイアログ パラメーター] または [入力端子][フィルター構造][直接型 I] または [直接型 I 転置構成] に設定されている場合にのみ表示されます。

スケール値を指定してフィルター セクション間で使用する方法を選択します。[Specify via input port (g)] を選択する場合、スケール値を端子 [g] での 2 次元ベクトルとして入力します。[Assume all are unity and optimize] を選択する場合、すべてのスケール値が削除され、Simulink のラインまたはワイヤのように扱われます。

依存関係

このパラメーターは、[係数のソース][入力端子] に設定されている場合にのみ表示されます。

SOS 行列 a0j 値が 1 と等しくない場合にブロックが実行しなければならないアクションを指定します。このアクションは [警告][エラー]、または [なし] に指定できます。

[なし] を選択すると、最初の係数 a0j は実際の値にかかわらず 1 として扱われます。[a0] が 1 でない場合に SOS 行列に適用されるスケーリングはありません。

依存関係

このパラメーターは、[係数のソース][ダイアログ パラメーター] に設定されている場合にのみ表示されます。

このチェック ボックスをオンにして、1 つ以上のスケール値が 1 と等しい場合にシミュレーションを最適化します。このオプションを選択すると 1 のゲインが削除されるため、値は Simulink のラインまたはワイヤのように扱われます。一部の固定小数点では、1 のスケール値がある場合にこのパラメーターを選択しても特定のキャストが省略されます。詳細については、固定小数点のセクションを参照してください。

依存関係

このパラメーターは、[係数のソース][ダイアログ パラメーター] に設定されている場合にのみ表示されます。

ブロックで入力を処理する方法を指定します。入力が M 行 N 列の行列の場合、このパラメーターを次のように設定できます。

  • チャネルとしての列 (フレーム ベース) (既定の設定) — ブロックは各列を別々のチャネルとして扱います。このモードでは、ブロックは同じフィルターの M インスタンスを生成し、それそれが独自の独立した状態バッファーをもちます。それぞれの M フィルターが N 入力サンプルを Simulink タイム ステップごとに処理します。

  • チャネルとしての要素 (サンプル ベース) — ブロックは各要素を別々のチャネルとして扱います。このモードでは、ブロックは同じフィルターの MN インスタンスを生成し、それそれが独自の独立した状態バッファーをもちます。各フィルターが 1 つの入力サンプルを Simulink タイム ステップごとに処理します。

このボタンでフィルターの可視化ツール (FVTool) を開き、ダイアログで指定したフィルターのフィルター応答を表示します。

メモ

ブロック ダイアログでフィルター パラメーターを変更する場合、[フィルター応答の表示] ボタンを使用する前に [適用] ボタンをクリックしなければなりません。

[データ型] タブ

メモ

このタブは、[係数のソース][ダイアログ パラメーター] または [入力端子] のいずれかに設定する場合にのみ表示されます。[係数のソース][フィルター オブジェクト] に設定すると、フィルター オブジェクトのプロパティで指定したデータ型がブロックで使用されます。

固定小数点演算の丸めモードを指定します。

詳細については、丸めモードを参照してください。フィルター係数はこのパラメーターに従いません。代わりに、これらは常に [最も近い正の整数方向] に丸められます。

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

フィルター係数は常に飽和し、このパラメーターには従いません。

双二次フィルターの各セクションに入力される固定小数点データ型の語長と小数部の長さを指定する方法を選択します。このブロックでセクションの入力データ型の用法を示す図については、固定小数点のセクションを参照してください。次を選択する場合:

  • 入力と同じ[セクションの入力] データ型の語長と小数部の長さの特性がブロックへの入力の特性と一致します。

  • 2 進小数点スケーリング — セクションの入力の語長と小数部の長さをビット数で入力します。

双二次フィルターの各セクションから出力される固定小数点データ型の語長と小数部の長さを指定する方法を選択します。このブロックのセクションの出力データ型の使い方を示す図については、固定小数点のセクションを参照してください。次を選択する場合:

  • セクションの入力と同じ[セクションの出力] データ型の語長と小数部の長さの特性がブロックへの入力の特性と一致します。

  • 2 進小数点スケーリング — セクションの出力の語長と小数部の長さをビット数で入力します。

[直接型 I 転置構成] フィルター構造の被乗数データ型の語長と小数部の長さを指定する方法を選択します。このブロックの被乗数データ型の使い方を示す図については、固定小数点のセクションを参照してください。

次を選択する場合:

  • 出力と同じ[被乗数] データ型の語長と小数部の長さの特性がブロックへの出力の特性と一致します。

  • 2 進小数点スケーリング — 被乗数データ型の語長と小数部の長さをビット数で入力します。

依存関係

このパラメーターは、[フィルター構造] パラメーターが [直接型 I 転置構成] に設定されている場合にのみ表示されます。

[係数のソース][ダイアログ パラメーター] に設定する場合のフィルター係数 (分子、分母、およびスケール値) の語長と小数部の長さを指定する方法を選択します。このブロックの係数データ型の使い方を示す図については、固定小数点のセクションを参照してください。次を選択する場合:

  • 入力と同じ語長 — フィルター係数の語長はブロックへの入力の語長と一致します。このモードでは、ブロックによって係数の小数部の長さが 2 進小数点のみのスケーリングに自動的に設定されます。このスケーリングは、与えられた係数の値と語長で最高の精度になります。

  • 語長の指定 — 係数の語長をビット数で入力します。このモードでは、ブロックによって係数の小数部の長さが 2 進小数点のみのスケーリングに自動的に設定されます。このスケーリングは、与えられた係数の値と語長で最高の精度になります。

  • 2 進小数点スケーリング — 係数の語長と小数部の長さをビット数で入力します。必要に応じて、分子と分母の係数に個別の小数部の長さを入力できます。

フィルター係数は [丸めモード] パラメーターと [オーバーフロー モード] パラメーターには従いません。代わりに、これらは常に飽和して [最も近い正の整数方向] に丸められます。

依存関係

このパラメーターは、[係数のソース][ダイアログ パラメーター] に設定されている場合にのみ表示されます。

乗算出力の語長と小数部の長さの指定方法を指定します。このブロックの積出力データ型の使い方を示す図については、乗算のデータ型および固定小数点のセクションを参照してください。次を選択する場合:

  • 入力と同じ — 乗算出力の語長と小数部の長さの特性がブロックへの入力の特性と一致します。

  • 内部ルールによる継承 — 乗算出力の語長と小数部の長さが完全精度の規則に基づいて計算されます。この規則はオブジェクト内で量子化が発生しないようにします。必要に応じてビットが追加されて、丸めやオーバーフローが発生しないようにします。詳細については、内部ルールによる継承を参照してください。

  • 2 進小数点スケーリング — 乗算出力の語長と小数部の長さをビット数で入力します。必要に応じて、分子と分母の乗算出力のデータ型に個別の小数部の長さを入力します。

アキュムレータの語長と小数部の長さの指定方法を指定します。このブロックのアキュムレータ データ型の使い方を示す図については、乗算のデータ型および固定小数点のセクションを参照してください。次を選択する場合:

  • 入力と同じ — アキュムレータの語長と小数部の長さの特性がブロックへの入力の特性と一致します。

  • 乗算出力と同じ — アキュムレータの語長と小数部の長さの特性が乗算出力の特性と一致します。

  • 2 進小数点スケーリング — アキュムレータの語長と小数部の長さをビット数で入力します。必要に応じて、分子と分母アキュムレータのデータ型に個別の小数部の長さを入力します。

[係数のソース][ダイアログ パラメーター] に設定されている場合の状態の語長と小数部の長さの指定方法を指定します。このブロックの状態データ型の使い方を示す図については、固定小数点のセクションを参照してください。

次を選択する場合:

  • 入力と同じ — 状態の語長と小数部の長さの特性がブロックへの入力の特性と一致します。

  • アキュムレータと同じ — 状態の語長と小数部の長さの特性がアキュムレータの特性と一致します。

  • 2 進小数点スケーリング — 状態の語長と小数部の長さをビット数で入力します。必要に応じて、分子と分母の状態のデータ型に個別の小数部の長さを入力します。

依存関係

このパラメーターは、[フィルター構造][直接型 II] または [直接型 II 転置構成] に設定されている場合にのみ表示されます。

出力の語長と小数部の長さを指定する方法を選択します。このブロックの出力データ型の使い方を示す図については、固定小数点のセクションを参照してください。次を選択する場合:

  • 入力と同じ — 出力の語長と小数部の長さの特性がブロックへの入力の特性と一致します。

  • アキュムレータと同じ — 出力の語長と小数部の長さの特性がアキュムレータの特性と一致します。

  • 2 進小数点スケーリング — 出力の語長と小数部の長さをビット数で入力します。

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

ブロックの特性

データ型

double | fixed point | integer | single

直達

いいえ

多次元信号

いいえ

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

詳細

すべて展開する

拡張機能

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

バージョン履歴

R2008b で導入