Main Content

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

dsp.BiquadFilter

(削除予定) 双二次構造を使用した IIR フィルター

dsp.BiquadFilter オブジェクトは将来のリリースで削除される予定です。代わりに dsp.SOSFilter オブジェクトを使用してください。コードの更新の詳細については、互換性の考慮事項を参照してください。

説明

dsp.BiquadFilter オブジェクトは、双二次セクションのカスケードを実装します。ここで、各セクションの係数は、N 行 6 列の 2 次セクション (SOS) 行列の個別の行で提供されます。SOS 行列の各行には、フィルターのセクションに対応する分子係数と分母係数が含まれています。結果として得られるフィルターは、ベクトル入力または行列入力に適用可能です。ここで、各列は、個別に処理されるデータのチャネルを表します。

双二次または SOS を使用して IIR フィルター構造を実装するには、次のようにします。

  1. dsp.BiquadFilter オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とはを参照してください。

作成

説明

biquad = dsp.BiquadFilter は双二次 IIR (SOS) フィルター System object™ biquad を返します。これは、SOS セクション [1 0.3 0.4 1 0.1 0.2] を直接型 II 転置構造で使用して、時間の経過と共に入力の各チャネル (列) を個別にフィルター処理します。

biquad = dsp.BiquadFilter(sosmatrix,scalevalues) は、SOSMatrix プロパティが sosmatrix に設定され、ScaleValues プロパティが scalevalues に設定された双二次フィルター オブジェクトを返します。

biquad = dsp.BiquadFilter(Name,Value) は、各プロパティが指定の値に設定された双二次フィルター オブジェクト biquad を返します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

フィルター構造を 'Direct form I''Direct form I transposed''Direct form II''Direct form II transposed' として指定します。

SOS 行列のソースに 'Property' または 'Input port' を指定します。

2 次セクション (SOS) 行列を N 行 6 列の行列として指定します。N はフィルターのセクション数です。SOS 行列の各行には、フィルターのセクションに対応する分子係数と分母係数が含まれています。双二次フィルターのシステム関数 H(z) は次のようになります。

H(z)=k=02bkzk1l=12alzl

係数は、SOS 行列の行で (b0, b1,b2,1, –a1, –a2) のように順序付けられます。係数には実数値または複素数値を使用できます。このプロパティは、SOSMatrixSource プロパティを Property に設定した場合にのみ適用されます。双二次フィルターの最初の分母係数 a0は、指定値にかかわらず、各フィルター セクションで 1 と等しくなります。

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

双二次フィルターの各セクションの前後に適用するスケール値を指定します。ScaleValues はスカラーまたは長さが N+1 のベクトルでなければなりません。ここで N はセクション数です。このプロパティをスカラーに設定すると、スカラー値はフィルターの最初のセクションの前でのみゲイン値として使用されます。残りのゲイン値は 1 に設定されます。このプロパティを N+1 値のベクトルに設定すると、各値がフィルターの個別のセクションで使用されます。

依存関係

このプロパティは、SOSMatrixSource プロパティを Property に設定した場合にのみ適用されます。

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

Structure プロパティが Direct form II または Direct form II transposed のいずれかの場合に、フィルター状態の初期条件を指定します。直接型 II 双二次フィルターの状態要素または遅延要素の数 (零点と極) はフィルター セクション数の 2 倍に等しくなります。初期条件はスカラー、ベクトルまたは行列として指定できます。

スカラー値を指定すると、双二次フィルターはフィルターのすべての遅延要素をその値に初期化します。フィルターの遅延要素数に等しい長さのベクトルを指定すると、各ベクトル要素は対応する遅延要素に一意の初期条件を指定します。

双二次フィルターは初期条件の同じベクトルを入力信号の各チャネルに適用します。フィルターの入力チャネル数と遅延要素数の積に等しい長さのベクトルを指定すると、各要素は対応するチャネルの対応する遅延要素に一意の初期条件を指定します。フィルターの遅延要素数と同数の行と入力信号の各チャネルに対応する列をもつ行列を指定すると、各要素は対応するチャネルの対応する遅延要素に一意の初期条件を指定します。

依存関係

このプロパティは、Structure プロパティを Direct form II または Direct form II transposed のどちらかに設定した場合にのみ適用されます。

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

フィルター構造の零点側でフィルター状態の初期条件を指定します。直接型 I 双二次フィルターの分子にある状態要素または遅延要素の数はフィルター セクション数の 2 倍に等しくなります。初期条件はスカラー、ベクトルまたは行列として指定できます。スカラーを指定すると、双二次フィルターはフィルターの零点側のすべての遅延要素をその値に初期化します。フィルターの零点側の遅延要素数に等しい長さのベクトルを指定すると、各ベクトル要素は対応する零点側の遅延要素に一意の初期条件を指定します。

双二次フィルターは初期条件の同じベクトルを入力信号の各チャネルに適用します。フィルターの零点側の入力チャネル数と遅延要素数の積に等しい長さのベクトルを指定すると、各要素は対応するチャネルの零点側の対応する遅延要素に一意の初期条件を指定します。フィルターの零点側の遅延要素数と同数の行と入力信号の各チャネルに対応する列をもつ行列を指定すると、各要素は対応するチャネルの零点側の対応する遅延要素に一意の初期条件を指定します。

依存関係

このプロパティは、Structure プロパティを Direct form I または Direct form I transposed のどちらかに設定した場合にのみ適用されます。

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

フィルター構造の極側でフィルター状態の初期条件を指定します。直接型 I (非標準) 双二次フィルターの分母の状態または遅延要素の数はフィルター セクション数の 2 倍に等しくなります。初期条件はスカラー、ベクトルまたは行列として指定できます。スカラーを指定すると、双二次フィルターはフィルターの極側のすべての遅延要素をその値に初期化します。フィルターの極側の遅延要素数に等しい長さのベクトルを指定すると、各ベクトル要素は対応する極側の遅延要素に一意の初期条件を指定します。

オブジェクトは初期条件の同じベクトルを入力信号の各チャネルに適用します。フィルターの極側の入力チャネル数と遅延要素数の積に等しい長さのベクトルを指定すると、各要素は対応するチャネルの極側の対応する遅延要素に一意の初期条件を指定します。フィルターの極側の遅延要素数と同数の行と入力信号の各チャネルに対応する列をもつ行列を指定すると、各要素は対応するチャネルの極側の対応する遅延要素に一意の初期条件を指定します。

依存関係

このプロパティは、Structure プロパティを Direct form I または Direct form I transposed のいずれかに設定した場合にのみ適用されます。

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

この boolean プロパティが true に設定されている場合、双二次フィルターは 1 のスケール値のゲイン計算をすべて削除します。これにより計算数が減少して、固定小数点の精度が上がります。

依存関係

このプロパティは、SOSMatrixSource プロパティを Property に設定した場合にのみ適用されます。

スカラー値の指定方法を選択します。既定の設定では、このプロパティは true で、スケール値は入力端子経由で指定されます。このプロパティが false の場合、すべてのスカラー値は 1 になります。

依存関係

このプロパティは、SOSMatrixSource プロパティが Input port の場合にのみ適用されます。

固定小数点プロパティ

丸め方法を指定します。

オーバーフロー アクションを Wrap または Saturate のいずれかとして指定します。

被乗数の固定小数点データ型を Same as output または Custom のいずれかとして指定します。

依存関係

このプロパティは、Structure プロパティを Direct form I transposed に設定した場合にのみ適用されます。

被乗数の固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。

依存関係

このプロパティは、MultiplicandDataType プロパティを Custom に設定した場合にのみ適用されます。

セクションの入力の固定小数点データ型を Same as input または Custom のいずれかとして指定します。

セクション入力の固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。

依存関係

このプロパティは、SectionInputDataType プロパティを Custom に設定した場合にのみ適用されます。

セクションの出力の固定小数点データ型を Same as section input または Custom のいずれかとして指定します。

セクションの出力の固定小数点型を SignednessAuto に設定された、符号付きでスケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。

依存関係

このプロパティは、SectionOutputDataType プロパティを Custom に設定した場合にのみ適用されます。

分子係数の固定小数点データ型を Same word length as input または Custom として指定します。このプロパティを設定すると、DenominatorCoefficientsDataType プロパティと ScaleValuesDataType プロパティも同じ値に設定されます。

依存関係

このプロパティは、SOSMatrixSource プロパティを Property に設定した場合にのみ適用されます。

分子係数の固定小数点型を SignednessAuto に設定された numerictype (Fixed-Point Designer) オブジェクトとして指定します。CustomNumeratorCoefficientsDataTypeCustomDenominatorCoefficientsDataType および CustomScaleValuesDataType の各プロパティの語長は同じでなければなりません。

依存関係

このプロパティは、SOSMatrixSource プロパティを Property に、NumeratorCoefficientsDataType プロパティを Custom に設定した場合にのみ適用されます。

分母係数の固定小数点データ型を Same word length as input または Custom として指定します。このプロパティを設定すると、NumeratorCoefficientsDataType プロパティと ScaleValuesDataType プロパティも同じ値に設定されます。

依存関係

このプロパティは、SOSMatrixSource プロパティを Property に設定した場合にのみ適用されます。

分母係数の固定小数点型を SignednessAuto に設定された numerictype (Fixed-Point Designer) オブジェクトとして指定します。CustomNumeratorCoefficientsDataTypeCustomDenominatorCoefficientsDataType および CustomScaleValuesDataType の各プロパティの語長は同じでなければなりません。

依存関係

このプロパティは、SOSMatrixSource プロパティを Property に、DenominatorCoefficientsDataType プロパティを Custom に設定した場合にのみ適用されます。

スケール値の固定小数点データ型を Same word length as input または Custom として指定します。このプロパティを設定すると、NumeratorCoefficientsDataType プロパティと DenominatorCoefficientsDataType プロパティも同じ値に設定されます。

依存関係

このプロパティは、SOSMatrixSource プロパティを Property に設定した場合にのみ適用されます。

スケール値の固定小数点型を SignednessAuto に設定された numerictype (Fixed-Point Designer) オブジェクトとして指定します。CustomNumeratorCoefficientsDataTypeCustomDenominatorCoefficientsDataType および CustomScaleValuesDataType の各プロパティの語長は同じでなければなりません。

依存関係

このプロパティは、SOSMatrixSource プロパティを Property に、ScaleValuesDataType プロパティを Custom に設定した場合にのみ適用されます。

分子の乗算の固定小数点データ型を決めるモードを次のように指定します。

  • Same as input (既定) — 分子の乗算の語長と小数部の長さは入力と同じになります。

  • CustomCustomNumeratorProductDataType プロパティを有効にし、それを使ってカスタムの分子の乗算のデータ型を指定できます。データ型は numerictype オブジェクトとして指定します。

  • Full precision — 完全精度ルールを使ってデータ型を指定します。これらの規則は、最も正確な固定長数値を提供します。この規則はオブジェクト内で量子化が発生しないようにします。必要に応じてビットが追加されて、丸めやオーバーフローが発生しないようにします。詳細は、Full Precision for Fixed-Point System Objectsを参照してください。

このプロパティを設定すると、DenominatorProductDataType プロパティも同じ値に設定されます。

乗算の固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。CustomNumeratorProductDataType プロパティおよび CustomDenominatorProductDataType プロパティの語長は同じでなければなりません。

依存関係

このプロパティは、NumeratorProductDataType プロパティを Custom に設定した場合にのみ適用されます。

分母の乗算の固定小数点データ型を決めるモードを次のように指定します。

  • Same as input (既定) — 分母の乗算の語長と小数部の長さは入力と同じになります。

  • CustomCustomDenominatorProductDataType プロパティを有効にし、それを使ってカスタムの分母の乗算のデータ型を指定できます。データ型は numerictype オブジェクトとして指定します。

  • Full precision — 完全精度ルールを使ってデータ型を指定します。これらの規則は、最も正確な固定長数値を提供します。この規則はオブジェクト内で量子化が発生しないようにします。必要に応じてビットが追加されて、丸めやオーバーフローが発生しないようにします。詳細は、Full Precision for Fixed-Point System Objectsを参照してください。

このプロパティを設定すると、NumeratorProductDataType プロパティも同じ値に設定されます。

乗算の固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。CustomNumeratorProductDataType プロパティおよび CustomDenominatorProductDataType プロパティの語長は同じでなければなりません。

依存関係

このプロパティは、DenominatorProductDataTypeCustom に設定した場合にのみ適用されます。

分子アキュムレータの固定小数点データ型を Same as inputSame as product、または Custom として指定します。このプロパティを設定すると、DenominatorAccumulatorDataType プロパティも同じ値に設定されます。

分子アキュムレータの固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。CustomNumeratorAccumulatorDataType プロパティおよび CustomDenominatorAccumulatorDataType プロパティの語長は同じでなければなりません。

依存関係

このプロパティは、NumeratorAccumulatorDataType プロパティを Custom に設定した場合にのみ適用されます。

分母アキュムレータの固定小数点データ型を Same as inputSame as product、または Custom として指定します。このプロパティを設定すると、NumeratorAccumulatorDataType プロパティも同じ値に設定されます。

分母アキュムレータの固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。CustomNumeratorAccumulatorDataType プロパティおよび CustomDenominatorAccumulatorDataType プロパティの語長は同じでなければなりません。

依存関係

このプロパティは、DenominatorAccumulatorDataType プロパティを Custom に設定した場合にのみ適用されます。

状態の固定小数点データ型を Same as inputSame as accumulator、または Custom として指定します。

依存関係

このプロパティは、Structureプロパティを Direct form II または Direct form II transposed に設定した場合に適用されます。

状態の固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。

依存関係

このプロパティは、StateDataType プロパティを Custom に設定した場合にのみ適用されます。

分子の状態の固定小数点データ型を Same as inputSame as accumulator、または Custom として指定します。このプロパティを設定すると、DenominatorStateDataType プロパティも同じ値に設定されます。

依存関係

このプロパティは、Structureプロパティを Direct form I transposed に設定した場合にのみ適用されます。

分子の状態の固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。CustomNumeratorProductDataType プロパティおよび CustomDenominatorProductDataType プロパティの語長は同じでなければなりません。

依存関係

このプロパティは、StateDataType プロパティを Custom に設定した場合にのみ適用されます。

分母の状態の固定小数点データ型を Same as inputSame as accumulator、または Custom として指定します。このプロパティを設定すると、NumeratorStateDataType プロパティも同じ値に設定されます。

依存関係

このプロパティは、Structureプロパティを Direct form I transposed に設定した場合にのみ適用されます。

分母の状態の固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。CustomNumeratorStateDataType プロパティおよび CustomDenominatorStateDataType プロパティの語長は同じでなければなりません。

依存関係

このプロパティは、StateDataType プロパティを Custom に設定した場合にのみ適用されます。

出力の固定小数点データ型を Same as inputSame as accumulator、または Custom として指定します。

出力の固定小数点型を SignednessAuto に設定された、スケーリングされた numerictype (Fixed-Point Designer) オブジェクトとして指定します。

依存関係

このプロパティは、OutputDataTypeプロパティを Custom に設定した場合にのみ適用されます。

使用法

説明

y = biquad(x) は入力信号 x をフィルター処理し、フィルター済みの値 y を出力します。双二次フィルター オブジェクトは、アルゴリズムへの連続する呼び出しで入力信号の各チャネルをフィルター処理します。

y = biquad(x,num,den) は、num を双二次フィルターの分子係数として、den を双二次フィルターの分母係数として使用して、入力をフィルター処理します。この構成は、SOSMatrixSource プロパティが Input portScaleValuesInputPort プロパティが false である場合に適用されます。

y = biquad(x,num,den,g) は、双二次フィルターのスケール値 g を指定します。この構成は、SOSMatrixSource プロパティが Input PortScaleValuesInputPort プロパティが true である場合に適用されます。

入力引数

すべて展開する

データ入力。ベクトルまたは行列として指定します。このオブジェクトは可変サイズの入力も受け入れます。オブジェクトがロックされると、各入力チャネルのサイズは変更できますが、チャネルの数は変更できません。

すべての入力のデータ型が同じでなければなりません。入力が固定小数点の場合、勾配が 2 のべき乗でバイアスが 0 の符号付き固定小数点でなければなりません。

xnum、および den の実数/複素数は同じでなければなりません。

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

分子係数。3 行 N 列の数値行列として指定します。ここで N は双二次フィルター セクションの数です。xnum、および den の実数/複素数は同じでなければなりません。

すべての入力のデータ型が同じでなければなりません。num が固定小数点の場合、勾配が 2 のべき乗でバイアスが 0 の符号付き固定小数点でなければなりません。

依存関係

この入力は、SOSMatrixSource プロパティを Input port に設定した場合にのみ適用されます。

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

分母係数。2 行 N 列の数値行列として指定します。ここで N は双二次フィルター セクションの数です。オブジェクトは、各セクションの最初の分母係数が 1 であると想定しています。

すべての入力のデータ型が同じでなければなりません。den が固定小数点の場合、勾配が 2 のべき乗でバイアスが 0 の符号付き固定小数点でなければなりません。

xnum、および den の実数/複素数は同じでなければなりません。

依存関係

この入力は、SOSMatrixSource プロパティを Input port に設定した場合にのみ適用されます。

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

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

すべての入力のデータ型が同じでなければなりません。g が固定小数点の場合、勾配が 2 のべき乗でバイアスが 0 の符号付き固定小数点でなければなりません。

依存関係

この入力は、SOSMatrixSource プロパティが Input PortScaleValuesInputPort プロパティが true である場合に適用されます。

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

出力引数

すべて展開する

フィルター処理された出力。ベクトルまたは行列として返されます。出力信号のサイズ、データ型、実数/複素数は入力信号と一致します。

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

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

freqz離散時間フィルター System object の周波数応答
fvtoolDSP フィルターの周波数応答の可視化
impz離散時間フィルター System object のインパルス応答
infoInformation about filter System object
coeffsフィルター System object 係数を構造に返します。
costEstimate cost of implementing filter System object
scaleScale second-order sections
scaleoptsCreate an options object for second-order section scaling
scalecheckCheck scaling of biquadratic filter
cumsecCumulative second-order section of the biquadratic filter
generatehdlGenerate HDL code for quantized DSP filter (requires Filter Design HDL Coder)
tf離散時間フィルター System object の伝達関数への変換
reorderReorder second-order sections of biquadratic filter System object
outputDelayDetermine output delay of single-rate or multirate filter
stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて折りたたむ

正規化されたカットオフ周波数 0.4 をもつ 4 次のローパス双二次フィルター オブジェクトを使用して、入力信号から高周波数をフィルター処理します。Spectrum Analyzer を使って結果をパワー スペクトルとして表示します。

t = (0:1000)'/8e3;
% Input is 0.3 & 
% 3kHz sinusoids
xin = sin(2*pi*0.3e3*t)+sin(2*pi*3e3*t); 
                                       
src = dsp.SignalSource(xin, 100);
sink = dsp.SignalSink;
% Set up the filter
[z,p,k] = ellip(4,1,60,.4);   
[sosMatrix,scaleValues] = zp2sos(z,p,k);
biquad = dsp.BiquadFilter(sosMatrix,...
scaleValues,Structure="Direct form I"); 
 
sa = spectrumAnalyzer(SampleRate=8e3,...
    Method="welch",...
    PlotAsTwoSidedSpectrum=false,...
    OverlapPercent=80,SpectrumUnits="dBW",...
    YLimits=[-160 -10]);

while ~isDone(src)
     input = src();
     filteredOutput = biquad(input);
     sink(filteredOutput);
     sa(filteredOutput)
end

Spectrum of the filtered output in Spectrum Analyzer. xlabel is Frequency (kHz). ylabel is dBW.

filteredResult = sink.Buffer;
fvtool(biquad,Fs=8000)

Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Frequency (kHz), ylabel Magnitude (dB) contains an object of type line.

関数 scale を使用して、双二次 SOS フィルターの Linf ノルム スケーリングを示します。

Fs = 8000; 
Fcutoff = 2000;
[z,p,k] = butter(10,Fcutoff/(Fs/2)); 
[sosMatrix,scaleValues] = zp2sos(z,p,k);
sosFilt = dsp.SOSFilter(Structure='Direct form I', ...
    Numerator=sosMatrix(:,1:3),Denominator=sosMatrix(:,4:6), ...
    HasScaleValues=true,ScaleValues=scaleValues)
sosFilt = 
  dsp.SOSFilter with properties:

            Structure: 'Direct form I'
    CoefficientSource: 'Property'
            Numerator: [5x3 double]
          Denominator: [5x3 double]
       HasScaleValues: true
          ScaleValues: [0.0029 1 1 1 1 1]

  Use get to show all properties

scale(sosFilt,'linf',scalevalueconstraint='none',maxscalevalue=2)

詳細

すべて展開する

アルゴリズム

このオブジェクトは、Biquad Filter ブロックのリファレンス ページで説明されているアルゴリズム、入力、および出力を実装しています。オブジェクト プロパティはブロック パラメーターに対応しますが、以下の場合を除きます。

  • 係数のソース

  • SOS 行列の a0 値が 1 でない場合のアクション – 双二次フィルター オブジェクトは、指定した値にかかわらず、0 次の分母係数を 1 と等しいと仮定します。双二次フィルター オブジェクトは、対応するブロック内で検出された [エラー] オプションまたは [警告] オプションをサポートしません。

このオブジェクトと、それに対応するブロックの両方で、可変サイズの入力がサポートされます。このオブジェクトは、呼び出されたときに、サイズが変化する入力引数を処理できます。

拡張機能

バージョン履歴

R2012a で導入

すべて折りたたむ

R2023b: dsp.BiquadFilter オブジェクトは削除予定

dsp.BiquadFilter オブジェクトは将来のリリースで削除される予定です。代わりに dsp.SOSFilter オブジェクトを使用してください。

コードの更新

この表は、一般的なワークフローで dsp.BiquadFilter オブジェクトを dsp.SOSFilter オブジェクトに置き換える方法を示しています。

非推奨の使用方法推奨される代替案
[z,p,k] = ellip(4,1,60,0.4);
[sosMatrix,scaleValues] = zp2sos(z,p,k);
biquad = dsp.BiquadFilter(...
SOSMatrix = sosMatrix,...
ScaleValues = scaleValues,...
Structure = "Direct form I");
[z,p,k] = ellip(4,1,60,0.4);
[sosMatrix,scaleValues] = zp2sos(z,p,k);

num = sosMatrix(:,1:3);
den = sosMatrix(:,4:6);

sosFilter = dsp.SOSFilter(num,den,...
HasScaleValues=true,...
ScaleValues=scaleValues,...
Structure="Direct form I");
[num,den] = designLowpassIIR(FilterOrder=20);
x = randn(1000,1);
biquad = dsp.BiquadFilter(...
SOSMatrixSource="Input port",...
Structure = "Direct form I",...
ScaleValuesInputPort = false);

関数 designLowpassIIR によって設計された分子係数配列は、転置してから dsp.BiquadFilter オブジェクトに渡します。

num_biquad = num.';

分母係数配列は、配列の最初の列を削除し、残りの要素を転置してから、dsp.BiquadFilter オブジェクトに渡します。

den_biquad = den(:,2:end).';
y = biquad(x,num_biquad,den_biquad);
[num,den] = designLowpassIIR(FilterOrder=20);
x = randn(1000,1);
sosFilter = dsp.SOSFilter(...
CoefficientSource="Input port",...
Structure = "Direct form I");
y = sosFilter(x,num,den);