dfilt
離散時間フィルター
構文
Hd = dfilt.structure(input1,...)
説明
Hd = dfilt. では、structure(input1,...)structure タイプの離散時間フィルター Hd が返されます。各構造は、1 つ以上の入力を受け入れます。入力なしで dfilt.structure を指定すると、既定のフィルターが作成されます。
メモ
dfilt には structure を使用しなければなりません。
Hd = [dfilt. では、structure(input1,...),dfilt.structure(input1,...),...]dfilt フィルターを含むベクトルが返されます。
構造
dfilt オブジェクトで使用可能な構造を以下に示します。block メソッドのターゲット ブロックはフィルター構造によって異なります。ターゲット ブロックによっては、DSP System Toolbox™ ソフトウェアが必要になることがあります。
| 説明 |
|
|
|---|---|---|---|
| 遅延 | サポートなし | DelayDSP System Toolbox が必要 |
| 直接型 I | サポートあり | Discrete Filter |
| 直接型 I、2 次セクション | サポートあり | Discrete FilterDSP System Toolbox が必要 |
| 直接型 I 転置 | サポートあり | Discrete Filter |
| 直接型 I 転置構成、2 次セクション | サポートあり | Biquad Filter DSP System Toolbox が必要 |
| 直接型 II | サポートあり | Discrete Filter |
| 直接型 II、2 次セクション | サポートあり | Discrete Filter |
| 直接型 II 転置 | サポートあり | Discrete Filter |
| 直接型 II 転置構成、2 次セクション | サポートあり | Biquad Filter DSP System Toolbox が必要 |
| 直接型 FIR | サポートあり | Discrete FIR Filter |
| 直接型 FIR 転置 | サポートあり | Discrete FIR Filter |
| 直接型対称 FIR | サポートあり | Discrete FIR Filter |
| 直接型反対称 FIR | サポートあり | Discrete FIR Filter |
| オーバーラップ加算 FIR | サポートなし | Overlap-Add FFT FilterDSP System Toolbox が必要 |
| ラティス オールパス | サポートあり | サポートなし |
| ラティス自己回帰 (AR) | サポートあり | Allpole FilterDSP System Toolbox が必要 |
| ラティス自己回帰移動平均 (ARMA) | サポートあり | サポートなし |
| 最大位相ラティス移動平均 (MA) | サポートあり | サポートなし |
| 最小位相ラティス移動平均 (MA) | サポートあり | Discrete FIR Filter |
| 状態空間 | サポートあり | サポートなし |
| スカラー ゲイン オブジェクト | サポートあり | GainDSP System Toolbox が必要 |
| 直列配列フィルター | サポートあり | ターゲット ブロックは直列されているフィルター構造によって異なる |
| 並列配列フィルター | サポートあり | ターゲット ブロックは並列システム内のフィルター構造によって異なる |
各構造の詳細については、MATLAB® プロンプトで構文 help dfilt.structure を使用するか、各構造のリファレンス ページを参照してください。
メソッド
メソッドでは、フィルター パラメーターを再度指定せずに、dfilt オブジェクトに対して関数を直接実行する方法が提供されます。これらのメソッドは、dfilt オブジェクトに割り当てた変数に直接適用できます。
たとえば、Hd という dfilt オブジェクトを作成した場合、islinphase(Hd) を使用してこのオブジェクトが線形位相であるかどうかをチェックしたり、h=freqz(Hd) を使用して周波数応答値を求めたりできます。以下に示すメソッドはすべて、このように使用することができます。
メモ
変数が dfilt フィルター オブジェクトの 1 次元配列である場合、メソッドは配列内の各オブジェクトに適用されます。配列に適用できるのは、freqz、grpdelay、impz、is*、order、および stepz の各メソッドのみです。zplane メソッドは、出力なしで使用する場合にのみ配列に適用できます。
以下のメソッドの中には、Signal Processing Toolbox™ の関数と同じ名前をもち、動作も似ているものがあります。これは、関数の "オーバーロード" と呼ばれます。
使用可能な手法は以下のとおりです。
メソッド | 説明 |
|---|---|
|
|
|
|
| 2 つの |
| フィルター係数を、元の |
|
|
| フィルター係数を ASCII ファイルに書き込みます。ファイルには、単一のフィルター、またはオブジェクトのベクトルを含めることができます。既定のファイル名は
|
|
|
| |
| タイプ (1-4) の線形位相 FIR フィルターが返されます。 |
周波数応答をプロットします。関数 | |
群遅延をプロットします。 | |
インパルス応答をプロットします。 | |
| インパルス応答の長さを返します。 |
| フィルター構造、長さ、安定性、線形位相、および該当する場合はラティス長やラダー長など、 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 次セクション フィルターのセクション数が返されます。多段フィルターに複数のセクションをもつステージが含まれる場合、 |
| フィルターのステージ数が返されます。ステージは独立のモジュラー フィルターです。 |
| オブジェクトの状態数を返します。 |
| フィルターの次数を返します。 |
| 2 つの |
| 位相応答をプロットします。 |
| (Simulink 導入時のみ使用可能)
以下のプロパティを使用できます。
以下のプロパティでは、ブロックの構造が最適化されます。値を
|
| カスケードまたは並列の |
| カスケードまたは並列の |
|
|
|
|
| ステップ応答をプロットします。
|
|
|
|
|
| ゼロ位相応答をプロットします。 |
|
|
極-零点プロットをプロットします。 |
各メソッドの詳細については、MATLAB プロンプトから構文 help dfilt/method を使用してください。
プロパティの表示
ほかのオブジェクトと同様に、get を使って dfilt のプロパティを表示できます。特定のプロパティを表示するには、以下を使用します。
get(Hd,'property')
オブジェクトのすべてのプロパティを表示するには、以下を使用します。
get(Hd)
プロパティの変更
特定のプロパティを設定するには、以下を使用します。
set(Hd,'property1',value,'property2',value,...)
プロパティ名は必ず一重引用符で囲んでください。
別の方法として、Object.property を使用してプロパティ値の取得や設定ができます。
b = [0.05 0.9 0.05]; Hd = dfilt.dffir(b); % Lowpass direct-form I FIR filter Hd.arithmetic % get arithmetic property % returns double Hd.arithmetic = 'single'; % Set arithmetic property to single precision
オブジェクトのコピー
オブジェクトのコピーを作成するには、copy メソッドを使用します。
H2 = copy(Hd)
メモ
構文 H2 = Hd を使用すると、オブジェクト ハンドルのみがコピーされ、新規オブジェクトは作成されません。
フィルター構造の変換
dfilt オブジェクト Hd のフィルター構造を変更するには、以下を使用します。
Hd2=convert(Hd,'structure_name');
ここで、structure_name には、任意の有効な構造名を一重引用符で囲んで使用できます。Hd が cascade または parallel 構造の場合は、各ステージが新しい構造に変換されます。
フィルター状態の使用
次の 2 つのプロパティによって、フィルター状態が制御されます。
states— 現在のフィルター状態を格納します。フィルターを適用する前は、states は初期条件に一致し、フィルターの適用後は states は最終条件に一致します。df1、df1t、df1sos、およびdf1tsos構造では、statesによってfiltstateオブジェクトが返されます。PersistentMemory— フィルターstatesを保存するかどうかを制御します。既定値は'false'で、初期条件がフィルター処理前にゼロにリセットされ、states情報の表示がオフになります。PersistentMemoryを'true'に設定すると、フィルターで初期条件を使用したり、前のフィルター処理の最終条件を次のフィルター処理の初期条件として再利用することができます。また、statesフィルターに関する情報も表示されます。メモ
statesを設定してフィルター処理に使用する場合、フィルターを使用する前にPersistentMemoryを'true'に設定しなければなりません。
例
直接型 I のフィルターを作成し、メソッドを使用してこのフィルターが安定しているかどうかをチェックします。
[b,a] = butter(8,0.25); Hd = dfilt.df1(b,a)
dfilt の分子の値が 1 行に収まらない場合は、ベクトルの説明が表示されます。この場合に特定の分子の値を表示するには、次のようにします。
get(Hd,'numerator')
または
Hd.numerator
各構造のリファレンス ページにはこの他の例が記載されています。
バージョン履歴
R2006a より前に導入