ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fdesign

フィルター仕様オブジェクト

構文

d = fdesign.response
d = fdesign.response(spec)
d = fdesign.response(...,Fs)
d = fdesign.response(...,magunits)

説明

フィルター仕様オブジェクト

d = fdesign.response では、フィルター応答 response のフィルター仕様オブジェクト d が返されます。d からフィルターを作成するには、「仕様オブジェクトを使用するフィルター設計法の使用」に記述されている設計法のいずれかを使用します。

    メモ:   以下で説明するフィルター応答タイプの一部は、ご使用のシステムに DSP System Toolbox™ が含まれている場合にのみ利用できます。DSP System Toolbox は、フィルターの仕様、設計、分析のための機能を大幅に拡張するものです。

ここでは、fdesign を使用したフィルター設計について説明します。

  1. フィルター仕様オブジェクトを作成するには、fdesign.response を使用します。

  2. 新規のフィルター仕様オブジェクトに対して適切なフィルター設計法を判断するには、designmethods を使用します。

  3. ステップ 2 で決定したフィルター設計法を適用して、フィルター仕様からフィルター オブジェクトを作成するには、design を使用します。

  4. フィルター オブジェクトの検査や解析には FVTool を使用します。

    メモ:   fdesign ではフィルターの作成は行われません。fdesign では、通過帯域のカットオフや、阻止帯域の減衰量などの、フィルターの仕様を含むフィルター仕様オブジェクトが返されます。フィルター仕様オブジェクト d からフィルター hd を設計するには、butterhd = design(d,'butter') などのようにフィルター設計法で d を使用します。

response には、バンドストップ フィルターや内挿器などの、希望するフィルター応答を指定する次の表のエントリのいずれかを使用できます。

fdesign Response 文字列

説明

arbgrpdelay

fdesign.arbgrpdelay は、オールパス任意群遅延フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

arbmag

fdesign.arbmag は、入力引数によって定義された任意振幅応答をもつ IIR フィルターを指定するためのオブジェクトを作成します。

arbmagnphase

fdesign.arbmagnphase は、入力引数によって定義された任意振幅位相応答をもつ IIR フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

audioweighting

fdesign.audioweighting は、オーディオの重み付けフィルター用のフィルター仕様オブジェクトを作成します。サポートされているオーディオの重み付けタイプは、A、C、C メッセージ、ITU-T 0.41 および ITU-R 468-4 の重み付けです。DSP System Toolbox が必要です。

bandpass

fdesign.bandpass は、バンドパス フィルターを指定するためのオブジェクトを作成します。

bandstop

fdesign.bandstop は、バンドストップ フィルターを指定するためのオブジェクトを作成します。

ciccomp

fdesign.ciccomp は、CIC 間引きまたは内挿の応答曲線の補正を行うフィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

comb

fdesign.comb は、ノッチまたはピークの櫛形フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

decimator

fdesign.decimator は、間引きを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

differentiator

fdesign.differentiator は、FIR 微分器フィルターを指定するためのオブジェクトを作成します。

fracdelay

fdesign.fracdelay は、非整数遅延フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

halfband

fdesign.halfband は、ハーフバンド フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

highpass

fdesign.highpass は、ハイパス フィルターを指定するためのオブジェクトを作成します。

hilbert

fdesign.hilbert は、FIR ヒルベルト変換器を指定するためのオブジェクトを作成します。

interpolator

fdesign.interpolator は、内挿を指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

isinchp

fdesign.isinchp は、逆 sinc ハイパス フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

isinclp

fdesign.isinclp は、逆 sinc ローパス フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

lowpass

fdesign.lowpass は、ローパス フィルターを指定するためのオブジェクトを作成します。

notch

fdesign.notch は、ノッチ フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

nyquist

fdesign.nyquist は、ナイキスト フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

octave

fdesign.octave は、オクターブ フィルターおよび 1/N オクターブ フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

parameq

fdesign.parameq は、パラメトリック イコライザー フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

peak

fdesign.peak は、ピーク フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

polysrc

fdesign.polysrc は、多項式サンプルレート変換フィルターを指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

pulseshaping

fdesign.pulseshaping は、パルス整形フィルターを指定するためのオブジェクトを作成します。

rsrc

fdesign.rsrc は、有理ファクター サンプルレート変換を指定するためのオブジェクトを作成します。DSP System Toolbox が必要です。

MATLAB プロンプトで doc fdesign.response の構文を使用して、特定の構造に関するヘルプを表示することができます。以下のような doc 構文を使用します。

doc fdesign.lowpass
doc fdesign.bandstop

すると、ローパスまたはバンドストップ構造オブジェクトに関する詳細情報が表示されます。

response は、フィルター設計で使われる仕様を定義する Specification プロパティをもちます。仕様オブジェクトを作成する際には、既定値を使用するか、Specification プロパティを指定します。

Specification プロパティの文字列を使用して、仕様オブジェクトからフィルターを作成する際に使用する、フィルター次数や通過帯域の減衰量などのフィルターの制約を指定します。

プロパティ

fdesign からは、フィルター仕様オブジェクトが返されます。各フィルター仕様オブジェクトは以下のプロパティをもちます。

プロパティ名

既定値

説明

Response

選択したタイプにより異なる

内挿器やバンドパス フィルターなどの、設計するフィルターのタイプを定義。この値は読み取り専用です。

Specification

選択したタイプにより異なる

カットオフ周波数 Fc やフィルター次数 N などの、希望するフィルター性能の定義に使用するフィルターの特性を定義。

Description

選択したフィルター タイプにより異なる

オブジェクトの定義に使用するフィルター仕様の記述と、オブジェクトからフィルターを作成する際に使用するフィルター仕様を含む。この値は読み取り専用です。

NormalizedFrequency

論理 true

フィルターの計算で、0 ~ 1 の正規化された周波数と、0 ~ Fs/2 の周波数領域のいずれを使用するかを決定。true または false (単一引用符なし) を受け入れます。オーディオ重み付けフィルターは、正規化された周波数をサポートしていません。

これらのプロパティに加え、フィルター仕様オブジェクトには、dfilt オブジェクトを設計するか、mfilt オブジェクトを設計するかによって、その他のプロパティも含まれる場合があります。

mfilt オブジェクトの追加プロパティ

説明

DecimationFactor

サンプルレートの減少量を指定します。常に正の整数です。

InterpolationFactor

サンプルレートの増加量を指定します。常に正の整数です。

PolyphaseLength

ポリフェーズの長さは、間引きフィルター、内挿フィルターまたはレート変換率フィルターを構成する各ポリフェーズ サブフィルターの長さです。フィルター全体の長さは pl とレート変換率の積です。pl は偶数の整数でなければなりません。

d = fdesign.response(spec)spec では、通過帯域の周波数や阻止帯域の減衰量のような、フィルター設計を定義するための変数を指定します。これらの仕様はフィルター設計用に選択した設計法に適用されます。

たとえば、既定のローパス フィルター仕様オブジェクトを作成する場合、fdesign.lowpass では通過帯域周波数 Fp、阻止帯域周波数 Fst、阻止帯域の減衰量 Ast、通過帯域のリップル Ap が設定されます。

H = fdesign.lowpass
% Without a terminating semicolon
% the filter specifications are displayed

既定の仕様 'Fp,Fst,Ap,Ast' は、fdesign.lowpass の仕様の 1 つにすぎません。利用可能な仕様をすべて表示するには、以下を入力します。

H = fdesign.lowpass;
set(H,'specification')

DSP System Toolbox ソフトウェアは利用可能なすべての仕様文字列をサポートしています。Signal Processing Toolbox™ はその仕様文字列のサブセットの 1 つをサポートしています。インストール済み環境でどの仕様文字列がサポートされているかを確認するには、フィルター仕様オブジェクトの参照ページをご覧ください。

選択した仕様文字列によって、フィルター仕様オブジェクトに対して適用される設計法が決まることに注意してください。

仕様にフィルター次数が含まれない場合は、design メソッドを呼び出したときに最小次数設計となります。

d = fdesign.lowpass; 
% Specification is Fp,Fst,Ap,Ast
Hd = design(d,'equiripple');
length(Hd.Numerator) % returns 43
% Filter order is 42
fvtool(Hd) %view magnitude

d = fdesign.response(...,Fs) では、フィルター仕様で使用するサンプリング周波数を Hz 単位で指定します。サンプリング周波数は他のすべての入力引数に続くスカラーです。サンプリング周波数を指定する場合は、すべての周波数仕様を Hz 単位とします。

d = fdesign.response(...,magunits) は、入力引数で指定する振幅仕様の単位を指定します。magunits は、以下のいずれかの文字列となります。

  • 'linear' — 振幅を線形単位で指定

  • 'dB' — 振幅をデシベル単位で指定

  • 'squared' — 振幅をパワー単位で指定

magunits 引数の指定を省略すると、fdesign はすべての振幅をデシベル単位として扱います。fdesign は振幅をどのように指定したかにかかわらず、すべての振幅を (必要に応じて変換して) デシベル単位で格納します。

仕様オブジェクトを使用するフィルター設計法の使用

フィルター仕様オブジェクトの作成後、フィルター設計法を使用して選択したアルゴリズムによりフィルターを実装します。フィルター仕様オブジェクトに対して有効な設計法を確認するには、designmethods を使用します。

d = fdesign.lowpass('N,Fc,Ap,Ast',10,0.2,0.5,40);  
designmethods(d)
% Design FIR equiripple filter
hd = design(d,'equiripple');

出力引数を指定せずにこれらの設計法を使用すると、結果として得られるフィルターが、既定で FVTool に表示されます。

フィルター設計法と共に、fdesign は、フィルター仕様オブジェクトの作成や与えられた仕様オブジェクトで機能する設計法の判定に役立つ補助的なメソッドを扱います。

サポート対象の関数

説明

setspecs

すべての仕様を同時に設定します。

designmethods

設計法を返します。

designopts

入力引数と、仕様オブジェクトとメソッドに適用する既定値を返します。

フィルター仕様の値は、Specification 引数の後に渡すか、Specification 文字列のない値を渡すことによって設定します。

フィルター オブジェクト コンストラクターは、setspecs と同じ順序、かつ Specification の文字列内の順序で入力引数を取ります。setspecs の使用方法の詳細は、プロンプトで「doc setspecs」と入力して参照してください。

fdesign への最初の入力が 'n,fc' などの有効な Specification 文字列でない場合は、fdesign では入力引数がフィルター仕様であると仮定され、既定のSpecification 文字列を使用して適用されます。たとえば、ローパス オブジェクトの場合は fp,fst,ap,ast などです。

以下の例では、Signal Processing Toolbox のみが必須です。

例 1 — バンドストップ フィルター

8 kHz でサンプリングされたデータに対するバンドストップ フィルターの仕様オブジェクト。2 ~ 2.4 kHz の阻止帯域は最小で 80 dB 減衰します。

H = fdesign.bandstop('Fp1,Fst1,Fst2,Fp2,Ap1,Ast,Ap2',...
           1600,2000,2400,2800,1,80,1,8000);

例 2 — ローパス フィルター

10 kHz でサンプリングされたデータに対するローパス フィルターの仕様オブジェクト。通過帯域周波数は 500 ヘルツで、阻止帯域周波数は 750 ヘルツです。通過帯域リップルは 1 dB で、阻止帯域の減衰量は 80 dB です。

H = fdesign.lowpass('Fp,Fst,Ap,Ast',500,750,1,80,10000);     

例 3 — ハイパス フィルター

既定のハイパス フィルター仕様オブジェクト。

H = fdesign.highpass % Creates specifications object.
H.Description

SpecificationDescription のプロパティ値の対応に注意してください。Description では Specification の変数の定義が言葉で表示されます。

例 4 — フィルター仕様と設計

ローパス バタワース フィルター仕様オブジェクト

フィルター仕様オブジェクトを使用して、既定の Specification である 'Fp,Fst,Ap,Ast' をもつローパス バタワース フィルターを作成します。1 サンプルあたりの通過帯域エッジ周波数を 0.4π ラジアンに、阻止帯域周波数を 0.5π ラジアンに、通過帯域リップルを 1 dB、阻止帯域の減衰量を 80 dB に設定します。

d = fdesign.lowpass(0.4,0.5,1,80);

d に適用する設計法を決定します。

designmethods(d)

d および butter 設計法を使用してバタワース フィルターを設計することができます。

hd = design(d,'butter','matchexactly','passband'); 
fvtool(hd);

FVTool に表示される、結果として得られるフィルターの振幅応答を以下に示します。

DSP System Toolbox ソフトウェアがインストールされている場合は、上の図はフィルター仕様マスクが付いた状態で表示されます。

参考

| | | |

この情報は役に立ちましたか?