このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
design
フィルター仕様オブジェクトに設計法を適用
構文
説明
は、フィルター仕様オブジェクト filt
= design(designSpecs
,'Systemobject',true)designSpecs
を使用してフィルター System object™ filt
を生成します。設計法を入力引数として指定しなかった場合、design
は既定の設計法を使用します。フィルター設計仕様オブジェクトの既定の設計法を表示するには、designmethods(designSpecs,'default')
を使用します。フィルター設計仕様の詳細については、Fdesign でのフィルターの設計 — プロセスの概要を参照してください。
は、filt
= design(designSpecs
,method
,'Systemobject',true)method
が指定する設計法を使用します。method
は designmethods
が返すオプションのいずれかでなければなりません。
は、設計法オプションを指定します。選択可能な設計法オプションの一覧を表示するには、filt
= design(designSpecs
,method
,PARAM,VALUE,...,'Systemobject',true)designoptions(designSpecs,method)
を使用します。これらの各オプションの詳細ヘルプを表示するには MATLAB® コマンド プロンプトで help(designSpecs,method)
と入力します。
は、構造体 filt
= design(designSpecs
,method
,opts
,'Systemobject',true)opts
を使用して設計法オプションを指定します。通常、opts
は関数 designopts
から取得され、関数 design
への入力として指定されます。オプションの入力の詳細を確認するには、help(designSpecs,method)
を使用します。
例
FIR 等リップル ローパス フィルターの設計
FIR 等リップル ローパス フィルターを設計します。通過帯域エッジ周波数を 0.2n ラジアン/サンプル、阻止帯域エッジ周波数を 0.25n ラジアン/サンプルに指定します。通過帯域リップルを 0.5 dB、阻止帯域の減衰量を 40 dB に設定します。
designSpecs = fdesign.lowpass('Fp,Fst,Ap,Ast',0.2,0.25,0.5,40)
designSpecs = lowpass with properties: Response: 'Lowpass' Specification: 'Fp,Fst,Ap,Ast' Description: {4x1 cell} NormalizedFrequency: 1 Fpass: 0.2000 Fstop: 0.2500 Apass: 0.5000 Astop: 40
既定の等リップル法を使用してフィルターを設計します。
filt = design(designSpecs,'SystemObject',true)
filt = dsp.FIRFilter with properties: Structure: 'Direct form' NumeratorSource: 'Property' Numerator: [-0.0057 -0.0010 0.0010 0.0040 0.0065 0.0073 0.0055 0.0014 -0.0033 -0.0066 -0.0067 -0.0029 0.0033 0.0091 0.0114 0.0083 4.2874e-04 -0.0091 -0.0158 -0.0154 -0.0070 0.0069 0.0202 0.0259 0.0193 5.1049e-04 -0.0239 ... ] (1x69 double) InitialConditions: 0 Use get to show all properties
フィルター設計仕様オブジェクト designSpecs
で関数 designmethods
を実行して、使用可能な設計法を調べます。
designmethods(designSpecs,'SystemObject',true)
Design Methods that support System objects for class fdesign.lowpass (Fp,Fst,Ap,Ast): butter cheby1 cheby2 ellip equiripple ifir kaiserwin multistage
フィルターの設計で使用する設計オプションを指定することもできます。使用可能なオプションの一覧を表示するには、designSpecs
に対して関数 designoptions
を実行します。
designoptions(designSpecs,'equiripple')
ans = struct with fields:
FilterStructure: {'dffir' 'dffirt' 'dfsymfir' 'fftfir'}
DensityFactor: 'double'
MinPhase: 'bool'
MaxPhase: 'bool'
MinOrder: {'any' 'even' 'odd'}
StopbandShape: {'flat' 'linear' '1/f'}
StopbandDecay: 'double'
UniformGrid: 'bool'
SystemObject: 'bool'
DefaultFilterStructure: 'dffir'
DefaultDensityFactor: 16
DefaultMaxPhase: 0
DefaultMinOrder: 'any'
DefaultMinPhase: 0
DefaultStopbandDecay: 0
DefaultStopbandShape: 'flat'
DefaultSystemObject: 0
DefaultUniformGrid: 1
'MinPhase'
を true
に設定して、最小位相 FIR 等リップル フィルターを設計します。
filtMin = design(designSpecs,'equiripple','MinPhase',true,'SystemObject',true)
filtMin = dsp.FIRFilter with properties: Structure: 'Direct form' NumeratorSource: 'Property' Numerator: [0.0163 0.0381 0.0724 0.1143 0.1562 0.1875 0.1981 0.1815 0.1378 0.0750 0.0071 -0.0499 -0.0824 -0.0846 -0.0593 -0.0181 0.0236 0.0514 0.0571 0.0412 0.0117 -0.0188 -0.0385 -0.0410 -0.0272 -0.0040 0.0182 0.0308 ... ] (1x59 double) InitialConditions: 0 Use get to show all properties
既定および最小位相の設計の極-零点プロットを表示します。
filterAnalyzer(filt,filtMin,Analysis='polezero',... FilterNames=["DefaultDesign","MinimumPhaseDesign"]);
楕円法を使用してフィルターを再設計します。楕円法で使用可能な設計オプションを調べます。
designoptions(designSpecs,'ellip')
ans = struct with fields:
FilterStructure: {'df1sos' 'df2sos' 'df1tsos' 'df2tsos' 'cascadeallpass' 'cascadewdfallpass'}
SOSScaleNorm: 'ustring'
SOSScaleOpts: 'fdopts.sosscaling'
MatchExactly: {'passband' 'stopband' 'both'}
SystemObject: 'bool'
DefaultFilterStructure: 'df2sos'
DefaultMatchExactly: 'both'
DefaultSOSScaleNorm: ''
DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]
DefaultSystemObject: 0
通過帯域が完全に同じになるように、'MatchExactly'
を 'passband'
に設定します。
filt = design(designSpecs,'ellip','MatchExactly','passband','SystemObject',true)
filt = dsp.SOSFilter with properties: Structure: 'Direct form II' CoefficientSource: 'Property' Numerator: [3x3 double] Denominator: [3x3 double] HasScaleValues: true ScaleValues: [0.2868 0.1982 0.2819 1] Use get to show all properties
P ノルムによるスケーリングは、2 次セクションで指定できます。時間領域で L-無限大ノルムによるスケーリングを使用します。
filtL = design(designSpecs,'ellip','MatchExactly','passband','SOSScaleNorm','linf', ... 'SystemObject',true)
filtL = dsp.SOSFilter with properties: Structure: 'Direct form II' CoefficientSource: 'Property' Numerator: [3x3 double] Denominator: [3x3 double] HasScaleValues: false Use get to show all properties
フィルターの周波数応答を表示します。
filterAnalyzer(filt,filtL,Analysis="magnitude",... FilterNames=["DefaultScaling","LInfinityNormScaling"]);
入力引数
designSpecs
— フィルター設計仕様オブジェクト
fdesign.response
オブジェクト
response
fdesign
は、フィルター設計仕様オブジェクトを返します。すべてのフィルター設計仕様オブジェクトに、以下のプロパティがあります。
プロパティ名 | 既定値 | 説明 |
---|---|---|
| 選択したタイプにより異なる | 内挿器やバンドパス フィルターなどの、設計するフィルターのタイプを定義。この値は読み取り専用です。 |
| 選択したタイプにより異なる | カットオフ周波数 |
| 選択したフィルター タイプにより異なる | オブジェクトの定義に使用するフィルター仕様の記述と、オブジェクトからフィルターを作成する際に使用するフィルター仕様を含む。この値は読み取り専用です。 |
| logical | フィルターの計算で、0 ~ 1 の正規化周波数と 0 ~ Fs/2 の周波数帯域のどちらをサンプリング周波数として使用するかを決定します。 |
フィルター仕様設計オブジェクトには、シングルレート フィルターとマルチレート フィルターのどちらを設計するかによって、これらのプロパティ以外のプロパティも含まれる場合があります。
マルチレート フィルターの場合に追加されるプロパティ | 説明 |
---|---|
| サンプリング レートを下げるための量を指定します。常に正の整数です。 |
| サンプリング レートを上げるための量を指定します。常に正の整数です。 |
| ポリフェーズの長さは、間引きフィルター、内挿フィルターまたはレート変換率フィルターを構成する各ポリフェーズ サブフィルターの長さです。フィルター全体の長さは |
method
— 設計法
文字ベクトル
設計法。文字ベクトルとして指定します。入力引数として指定する設計法は、次により返される方法のいずれかでなければなりません。
designmethods(designSpecs,'Systemobject',true)
次の表に、すべての設計法の一覧を示します。使用可能な設計法のサブセットは、フィルター設計仕様オブジェクト designSpecs
によって決まります。
設計法 | 説明 |
---|---|
| バタワース フィルター |
| チェビシェフ I 型フィルター |
| チェビシェフ II 型フィルター |
| 楕円フィルター |
| 等リップル FIR フィルター |
| 最小二乗線形位相 FIR フィルター |
| 周波数サンプリング FIR フィルター |
| 内挿 FIR フィルター |
| 準線形位相 IIR フィルター |
| 最小 P ノルム最適 IIR フィルター |
| 最小二乗 IIR フィルター |
| FIR 制約付き最小二乗フィルター |
| カイザー ウィンドウ フィルター |
| Maxflat FIR フィルター |
| 多段フィルター |
| ウィンドウを適用したインパルス応答を使用した FIR フィルター |
フィルターをより迅速に設計できるように、入力引数 method
は、design
に異なる動作をさせるさまざまな特別なキーワードを受け入れます。次の表に、method
で使用できるキーワードと、各キーワードに対する design
の応答を示します。
設計法キーワード | 設計応答の説明 |
---|---|
|
|
|
|
|
|
|
|
| オブジェクト |
キーワードでは、大文字と小文字は区別されません。
design
により、出力オブジェクト内に複数のフィルターが返された場合は、インデックスを使用して個々のフィルターを表示します。たとえば、filt
内の 3 番目のフィルターを表示する場合、次のように入力します。
filt(3)
例: filt = design(designSpecs,'butter','SystemObject',true)
例: filt = design(designSpecs,'ALLFIR','SystemObject',true)
opts
— 設計オプションの指定
構造体
関数 design
への入力として構造体 opts
を渡すことにより、設計オプションを指定します。構造体 opts
は、designopts(designSpecs,method)
の実行によって得られます。
designSpecs = fdesign.notch opts = designopts(designSpecs,'butter') opts.FilterStructure = 'df1sos' filt = design(designSpecs,'butter',opts,'SystemObject',true)
バージョン履歴
R2009a で導入
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)