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

Biquad Filter

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

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

説明

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

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

端子

入力

すべて展開する

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

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

この端子は [Coefficient source][Input port(s)] に設定しない限り、名前は付きません。

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

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

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

依存関係

この端子は [Coefficient source][Input port(s)] に設定する場合にのみ表示されます。

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

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

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

依存関係

この端子は [Coefficient source][Input port(s)] に設定する場合にのみ表示されます。

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

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

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

依存関係

この端子は [Coefficient source][Input port(s)] に設定する場合にのみ表示されます。

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

出力

すべて展開する

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

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

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

この端子は [Coefficient source][Input port(s)] に設定しない限り、名前は付きません。

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

パラメーター

すべて展開する

[メイン] タブ

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

  • Dialog parameters — 構造や係数などのフィルターに関する情報をブロック マスクに入力します。

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

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

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

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

    ブロックは、各セクションの最初の分母係数を 1 と仮定します。この構成は SOSMatrixSource プロパティが 'Input port' で、ScaleValuesInputPort プロパティが true の場合に適用可能です。SOSMatrix ではなく [Num] と [Den] を指定しなければならないのは、固定小数点演算で分子と分母の小数部の長さが異なる可能性があるためです。このため、分母とは異なる固定小数点型をもつ分子のデータを渡すことができなければなりません。

  • Filter objectdsp.BiquadFilter System object を使用してフィルターを指定します。

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

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

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

依存関係

このパラメーターは、[Coefficient source][Filter object] に設定されている場合にのみ表示されます。

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

依存関係

このパラメーターは、[Coefficient source][Dialog parameters] または [Input port(s)] に設定されている場合にのみ表示されます。

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

[b01b11b21a01a11a21b02b12b22a02a12a22b0Mb1Mb2Ma0Ma1Ma2M]

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

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

依存関係

このパラメーターは、[Coefficient source][Dialog parameters] に設定されている場合にのみ表示されます。

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

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

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

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

依存関係

このパラメーターは、[Coefficient source][Dialog parameters] に設定されている場合にのみ表示されます。

フィルターの状態の初期条件を指定します。

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

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

有効な初期条件

初期条件説明

スカラー

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

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

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

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

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

依存関係

このパラメーターは [Coefficient source][Dialog parameters] または [Input port(s)][Filter structure][Direct form II] または [Direct form II transposed] に設定されている場合にのみ表示されます。

フィルター構造の零点側 (b0, b1,b2, ...) でフィルター状態の初期条件を指定します。

Biquad Filter ブロックは、既定の設定で内部フィルターの状態をゼロに初期化します。オプションとして、[Initial conditions on zeros side] パラメーターを使用してフィルター遅延に対して非ゼロの初期状態を指定します。例として、ex_biquad_filter_ref を参照してください。

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

有効な初期条件

初期条件説明

スカラー

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

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

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

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

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

依存関係

このパラメーターは [Coefficient source][Dialog parameters] または [Input port(s)][Filter structure][Direct form I] または [Direct form I transposed] に設定されている場合にのみ表示されます。

フィルター構造の極側 (a0, a1, a2, ...) でフィルター状態の初期条件を指定します。

Biquad Filter ブロックは、既定の設定で内部フィルターの状態をゼロに初期化します。オプションとして、[Initial conditions on poles side] パラメーターを使用してフィルター遅延に対して非ゼロの初期状態を指定します。例として、ex_biquad_filter_ref を参照してください。

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

有効な初期条件

初期条件説明

スカラー

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

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

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

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

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

依存関係

このパラメーターは [Coefficient source][Dialog parameters] または [Input port(s)][Filter structure][Direct form I] または [Direct form I transposed] に設定されている場合にのみ表示されます。

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

依存関係

このパラメーターは、[Coefficient source][Input port(s)] に設定されている場合にのみ表示されます。

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

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

依存関係

このパラメーターは、[Coefficient source][Dialog parameters] に設定されている場合にのみ表示されます。

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

依存関係

このパラメーターは、[Coefficient source][Dialog parameters] に設定されている場合にのみ表示されます。

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

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

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

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

メモ

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

[データ型] タブ

メモ

このタブは、[Coefficient source][Dialog parameters] または [Input port(s)] のいずれかに設定する場合にのみ表示されます。[Coefficient source][Filter object] に設定すると、フィルター オブジェクトのプロパティで指定したデータ型がブロックで使用されます。

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

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

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

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

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

  • Same as input[Section input] データ型の語長と小数部の長さの特性がブロックへの入力の特性と一致します。

  • Binary point scaling — セクションの入力の語長と小数部の長さをビット数で入力します。

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

  • Same as section input[Section output] データ型の語長と小数部の長さの特性がブロックへの入力の特性と一致します。

  • Binary point scaling — セクションの出力の語長と小数部の長さをビット数で入力します。

[Direct form I transposed] フィルター構造の被乗数データ型の語長と小数部の長さを指定する方法を選択します。このブロックで被乗数データ型の用法を示す図については、「拡張機能」「固定小数点の変換」のセクションを参照してください。

次を選択する場合:

  • Same as output[Multiplicand] データ型の語長と小数部の長さの特性がブロックへの出力の特性と一致します。

  • Binary point scaling — 被乗数データ型の語長と小数部の長さをビット数で入力します。

依存関係

このパラメーターは、[Filter structure] パラメーターが [Direct form I transposed] に設定されている場合にのみ表示されます。

[Coefficient source][Dialog parameters] に設定する場合のフィルター係数 (分子、分母、およびスケール値) の語長と小数部の長さを指定する方法を選択します。このブロックで係数のデータ型の用法を示す図については、「拡張機能」「固定小数点の変換」のセクションを参照してください。次を選択する場合:

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

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

  • Binary point scaling — 係数の語長と小数部の長さをビット数で入力します。必要に応じて、分子と分母の係数に個別の小数部の長さを入力できます。

フィルター係数は [Rounding mode] パラメーターと [Overflow mode] パラメーターには従いません。代わりに、これらは常に飽和して [Nearest] に丸められます。

依存関係

このパラメーターは、[Coefficient source][Dialog parameters] に設定されている場合にのみ表示されます。

乗算出力の語長と小数部の長さの指定方法を指定します。このブロックで乗算出力のデータ型の用法を示す図については、Multiplication Data Typesおよび「拡張機能」「固定小数点の変換」のセクションを参照してください。次を選択する場合:

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

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

  • Binary point scaling — 乗算出力の語長と小数部の長さをビット数で入力します。必要に応じて、分子と分母の乗算出力のデータ型に個別の小数部の長さを入力します。

アキュムレータの語長と小数部の長さの指定方法を指定します。このブロックでアキュムレータのデータ型の用法を示す図については、Multiplication Data Typesおよび「拡張機能」「固定小数点の変換」のセクションを参照してください。次を選択する場合:

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

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

  • Binary point scaling — アキュムレータの語長と小数部の長さをビット数で入力します。必要に応じて、分子と分母アキュムレータのデータ型に個別の小数部の長さを入力します。

[Coefficient source][Dialog parameters] に設定されている場合の状態の語長と小数部の長さの指定方法を指定します。このブロックで状態のデータ型の用法を示す図については、「拡張機能」「固定小数点の変換」のセクションを参照してください。

次を選択する場合:

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

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

  • Binary point scaling — 状態の語長と小数部の長さをビット数で入力します。必要に応じて、分子と分母の状態のデータ型に個別の小数部の長さを入力します。

依存関係

このパラメーターは、[Filter structure][Direct form II] または [Direct form II transposed] に設定されている場合にのみ表示されます。

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

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

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

  • Binary point scaling — 出力の語長と小数部の長さをビット数で入力します。

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

ブロックの特性

データ型

double | single | base integer | fixed point

多次元信号

なし

可変サイズの信号

あり

拡張機能

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

R2008b で導入