このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
sos
2 次セクションへの変換
説明
例
IIR 離散時間フィルターの SOS 型への変換
IIR 離散時間フィルター オブジェクトを、対応する SOS セクションをもつ SOS フィルター オブジェクトに変換します。
関数 butter
を使用して、10 次のローパス バタワース フィルターを設計します。
N = 10; Fc = 0.4; [b,a] = butter(N,Fc);
dsp.IIRFilter
オブジェクトを作成し、設計した係数をオブジェクトの Numerator
および Denominator
プロパティに割り当てます。
iir = dsp.IIRFilter(Numerator=b,Denominator=a)
iir = dsp.IIRFilter with properties: Structure: 'Direct form II transposed' Numerator: [4.9945e-04 0.0050 0.0225 0.0599 0.1049 0.1259 0.1049 0.0599 0.0225 0.0050 4.9945e-04] Denominator: [1 -1.9924 3.0195 -2.8185 2.0387 -1.0545 0.4144 -0.1157 0.0225 -0.0027 1.4876e-04] InitialConditions: 0 Use get to show all properties
関数 sos
を使用して、IIR フィルター オブジェクトを、対応する SOS セクションをもつ SOS フィルターに変換します。
sosFilt = sos(iir)
sosFilt = dsp.SOSFilter with properties: Structure: 'Direct form II transposed' CoefficientSource: 'Property' Numerator: [5x3 double] Denominator: [5x3 double] HasScaleValues: true ScaleValues: [4.9945e-04 1 1 1 1 1] Use get to show all properties
SOS フィルター オブジェクトから SOS 行列とスケール値を取得できます。
sMatrix = [sosFilt.Numerator,sosFilt.Denominator]
sMatrix = 5×6
1.0000 2.0958 1.0984 1.0000 -0.3187 0.0313
1.0000 2.0576 1.0602 1.0000 -0.3345 0.0826
1.0000 1.9981 1.0005 1.0000 -0.3695 0.1958
1.0000 1.9412 0.9436 1.0000 -0.4317 0.3969
1.0000 1.9073 0.9097 1.0000 -0.5380 0.7410
sValues = sosFilt.ScaleValues
sValues = 1×6
0.0005 1.0000 1.0000 1.0000 1.0000 1.0000
これらの値を、関数tf2sos
を使用して取得した値と比較し、値が同じであることを確認します。
[sMatrixfn,g] = tf2sos(b,a)
sMatrixfn = 5×6
1.0000 2.0958 1.0984 1.0000 -0.3187 0.0313
1.0000 2.0576 1.0602 1.0000 -0.3345 0.0826
1.0000 1.9981 1.0005 1.0000 -0.3695 0.1958
1.0000 1.9412 0.9436 1.0000 -0.4317 0.3969
1.0000 1.9073 0.9097 1.0000 -0.5380 0.7410
g = 4.9945e-04
isequal(sMatrix,sMatrixfn)
ans = logical
1
isequal(sValues(1),g)
ans = logical
1
入力引数
sysobj
— IIR 離散時間フィルター オブジェクト
dsp.IIRFilter
オブジェクト
dsp.IIRFilter
IIR 離散時間フィルター オブジェクト。dsp.IIRFilter
System object として指定します。
dir_flag
— 極の方向フラグ
'up'
| 'down'
極の方向フラグ。以下のいずれかとして指定します。
'up'
–– 第 1 行には原点に最も近い極が含まれ、最後の行には単位円に最も近い極が含まれます。'down'
–– セクションの順序は逆になります。零点は常に最も近い極との組み合わせになります。
出力引数
sosFilt
— 2 次セクション フィルター オブジェクト
dsp.SOSFilter
オブジェクト
dsp.SOSFilter
2 次セクション フィルター オブジェクト。dsp.SOSFilter
System object として返されます。関数 sos
は、入力の IIR フィルターの分子と分母の係数を SOS 行列およびスケール値に変換し、その値を dsp.SOSFilter
オブジェクトに割り当てます。
バージョン履歴
R2011a で導入R2023b: dsp.BiquadFilter
オブジェクトは削除予定
dsp.BiquadFilter
オブジェクトと UseLegacyBiquadFilter
フラグは、将来のリリースで削除される予定です。
R2022b: dsp.BiquadFilter
オブジェクトの代わりに dsp.SOSFilter
オブジェクトを設計
関数 sos
は、dsp.BiquadFilter
オブジェクトの代わりに dsp.SOSFilter
オブジェクトを生成するようになりました。
dsp.IIRFilter
オブジェクトを初期化します。関数 sos
を使用して、IIR フィルター オブジェクトを、対応する SOS セクションをもつ双二次フィルターに変換します。出力は dsp.SOSFilter
フィルター オブジェクトです。
iirFilt = dsp.IIRFilter convFilt = sos(iirFilt)
convFilt = dsp.SOSFilter with properties: Structure: 'Direct form II transposed' CoefficientSource: 'Property' Numerator: [1 1 0] Denominator: [1 0.1000 0] HasScaleValues: false Show all properties
dsp.SOSFilter
オブジェクトの代わりに dsp.BiquadFilter
オブジェクトを設計するには、UseLegacyBiquadFilter
フラグを使用してそれを true
に設定できます。
convFilt = sos(iirFilt,UseLegacyBiquadFilter=true)
convFilt = dsp.BiquadFilter with properties: Structure: 'Direct form II transposed' SOSMatrixSource: 'Property' SOSMatrix: [1 1 0 1 0.1000 0] ScaleValues: [2×1 double] InitialConditions: 0 OptimizeUnityScaleValues: true Show all properties
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)