| Signal Processing Toolbox | ![]() |
セーブしたフィルタのパラメータにアクセス
SPToolで作成されたMATLAB 構造体は、いくつかの関連したフィールドをもっています。これらのフィールドの多くのものは、MATLABの構造体でもあります。MATLAB 構造体に関する詳細については、MATLAB ドキュメントを参照してください。
たとえば、フィルタfilt1をMATLABのワークスペースに転送した後、つぎのように入力します。
filt1
これにより、フィルタに対して、MATLAB構造体のフィールドを表示します。フィルタ用のMATLAB構造体のtf、Fs、specs フィールドは、フィルタを記述する情報を含んでいます。
tf フィールド:フィルタ係数にアクセス
tf フィールドは、フィルタの伝達関数表現を含む構造体です。このフィールドを使って、フィルタ係数を得ることができます。
tf.num は、分子係数を含んでいます。tf.den は、分母係数を含んでいます。これらの構造体を含むベクトルは、zの降ベキの順の多項式を表します。分子多項式と分母多項式を使って、伝達関数を設定します。
tf.numフィールドの係数を含んだベクトルです。tf.denフィールドの係数を含んだベクトルです。関数tf2ssやtf2zpを使って、デフォルトの伝達関数型から他の型にフィルタ表現を変更できます。
Fs フィールド:フィルタのサンプル周波数にアクセス
Fs フィールドは、フィルタのサンプリング周波数をヘルツ単位で含んでいます。
specs フィールド:他のフィルタパラメータにアクセス
specs フィールドは、フィルタ設計用に設定したパラメータを含んだ構造体です。最初のフィールド、specs.currentModuleは、ユーザがフィルタを転送する前にフィルタデザイナのアルゴリズム(Algorithm)リストから選択した最新の設計法を表す文字列を含んだものです。currentModuleフィールドの内容や対応する設計法を、つぎに示します。
specs.currentModuleフィールドに続いて、7つまで追加フィールドを加えることができます。たとえば、specs.fdremez、 specs.fdfirls等のフィールドです。最新の転送されたフィルタの設計仕様は、文字列currentModuleと一致するフィールドラベルに含まれます。たとえば、specs構造体が、つぎの場合
filt1.specs ans currentModule: 'fdremez' fdremez: [1x1 struct]
となります。フィルタの仕様は、fdremezフィールドに含まれて、それ自身、データ構造体です。
仕様は、帯域エッジやフィルタ次数のようなフィルタデザイナ(Filter Designer)の仕様(Specifications)領域からのパラメータを含んでいます。たとえば、上のフィルタは、filt1.specs.fdremezの中にストアされたつぎの仕様をもっています。
filt1.specs.fdremez
ans =
setOrderFlag: 0
type: 3
f: [0 0.2000 0.3000 0.5000 0.6000 1]
m: [6x1 double]
Rp:
Rs:
wt: [3.2371 1 3.2371]
order:
あるフィルタパラメータは、設計法によりユニークなので、この構造体は、各フィルタ設計用に種々のフィールドをもっています。
つぎの表は、フィルタ用に転送される構造体に表れるフィルタ設計仕様のフィールド( specフィールド)に関連して使用可能なフィールドを記述します。
| 大きさの応答プロットを使って、フィルタの再設計 | セーブしたスペクトルのパラメータにアクセス | ![]() |