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

filterBuilder

対話型のフィルター設計

構文

filterBuilder(h)
filterBuilder('response')

説明

filterBuilder は、フィルターを作成するための対話型のツールです。このツールは fdesign オブジェクト-オブジェクト指向フィルター設計パラダイムを基盤とし、フィルター設計プロセス中の開発時間を削減することを目的としています。filterBuilder は仕様に基づいたアプローチを使用して、希望する応答に最適なアルゴリズムを見つけます。

メモ

fdesignfilterBuilder を使用するには、Signal Processing Toolbox™ がインストールされていなければなりません。下記の機能の中には、ご使用のシステムに DSP System Toolbox™ を含まない場合は利用できないものがあります。ツールボックスは、コマンド プロンプトで「ver」と入力することにより確認できます。

filterBuilder の使用方法の詳細については、Filter Builder Design Processを参照してください。

filterBuilder を使用するには、次の 3 つのアプローチのいずれかを使用して、MATLAB® コマンド ラインに filterBuilder と入力します。

  • 単に filterBuilder と入力します。MATLAB によってダイアログが表示され、フィルターの応答タイプを選択できるようになります。フィルターの応答タイプを選択すると、filterBuilder によって適切なフィルター設計ダイアログ ボックスが表示されます。

  • filterBuilder(h)」と入力します。ここで、h は既存のフィルター オブジェクトです。たとえば、h がバンドパス フィルターである場合は、filterBuilder(h) によってバンドパス フィルター設計ダイアログ ボックスが表示されます h オブジェクトは filterBuilder を使用するか fdesign を使用して作成したものでなければなりません。

    メモ

    フィルター System object の作成とインポートを行うには、DSP System Toolbox ソフトウェアがインストールされていなければなりません。

  • filterBuilder('response')」と入力し、response を次の表に示す応答メソッドに置き換えます。MATLAB によって、指定した応答に対応したフィルター設計ダイアログが表示されます。

メモ

次の表に示すフィルター設計の多くは、その実装にDSP System Toolbox ソフトウェアを必要とします。Signal Processing Toolbox ソフトウェアのみを使用する場合は、次に示すフィルター応答タイプの一部しか設計できません。

応答メソッド結果のフィルター設計の説明フィルター オブジェクト
arbgrpdelay任意の群遅延フィルター設計fdesign.arbgrpdelay
arbmag任意の振幅フィルター設計fdesign.arbmag
arbmagnphase任意の応答フィルター (振幅と位相)fdesign.arbmagnphase
audioweightingオーディオの重み付けフィルターfdesign.audioweighting
bandpass または bpバンドパス フィルターfdesign.bandpass
bandstop または bsバンドストップ フィルターfdesign.bandstop
cicCIC フィルターfdesign.decimator(M,'cic',...) または fdesign.interpolator(L,'cic',...)
fdesign.decimator および fdesign.interpolator を参照してください。
ciccompCIC 補償器fdesign.ciccomp
comb櫛形フィルターfdesign.comb
diff微分器フィルターfdesign.differentiator
fracdelay小数部遅延フィルターfdesign.fracdelay
halfband または hbハーフバンド フィルターfdesign.halfband
highpass または hpハイパス フィルターfdesign.highpass
hilbヒルベルト フィルターfdesign.hilbert
isinc
isinclp または
isinchp
逆 sinc ローパスまたはハイパス フィルターfdesign.isinclp および
fdesign.isinchp
lowpass または lpローパス フィルター (既定の設定)fdesign.lowpass
notchノッチ フィルターfdesign.notch
nyquistナイキスト フィルターfdesign.nyquist
octaveオクターブ フィルターfdesign.octave
parameqパラメトリック イコライザー フィルターfdesign.parameq
peakピーク フィルターfdesign.peak

メモ

これらはフィルター構造を変更しないため、filterBuilder の使用時には振幅の仕様と設計法を調整できます。

フィルター ビルダーの設計ペイン

メイン設計ペイン

フィルター ビルダーの [メイン] ペインはフィルター応答タイプによって異なりますが、基本的な構造は同じです。次の図は、ダイアログ ボックスの基本的なレイアウトを示しています。

フィルターの応答を選択すると、ダイアログ ボックスに表示される利用可能なオプションと設計パラメーターが変化します。この表示により、フィルター設計のコンテキストで意味のあるパラメーターのみに注目できるようになります。

フィルター設計の各ダイアログ ボックスには、次の図に示すように、ダイアログ ボックスの上部に表示されるオプションが含まれています。

  • [変数を保存][適用] をクリックして変更を適用するか、[OK] をクリックしてこのダイアログ ボックスを閉じると、filterBuilder によって現在のフィルターが入力した名前のフィルター オブジェクトとして MATLAB ワークスペースに保存されます。

  • [フィルター応答の表示] — フィルターの可視化ツール (fvtool) を開いて、現在のフィルターの仕様と設計法に対する振幅応答を表示します。

メモ

filterBuilder ダイアログ ボックスには [適用] オプションが含まれています。[適用] をクリックするたびに、filterBuilder によって、変更されたフィルターが MATLAB ワークスペースに書き込まれます。この変更されたフィルターは、[変数を保存] で割り当てた変数名をもっています。ワークスペースの変数を上書きせずに変更を適用するには、[適用] をクリックする前に [変数を保存] で変数名を変更します。

[フィルター ビルダー] ダイアログ ボックスには 3 つのタブがあり、[メイン][データ型] および [コード生成] の 3 つのペインが含まれています。最初のペインは、設計するフィルターに応じて変化します。残りの 2 つのペインはすべてのフィルターに共通しています。これらのペインについては以下の節で説明します。

[データ型] ペイン

[フィルター ビルダー] ダイアログ ボックスの 2 番目のタブを次の図に示します。

[演算] ドロップダウン ボックスでは、[倍精度][単精度]、または [固定小数点] を選択できます。フィルターのパラメーターによっては、これらのオプションがすべて使用できない場合もあります。次の表にこれらのオプションを示します。

演算リスト項目フィルターに対する効果
倍精度すべてのフィルター処理と係数は、倍精度浮動小数点の表現と演算を使用します。filterBuilder を使用してフィルターを作成する場合、[倍精度] は [演算] プロパティの既定値になります。
単精度すべてのフィルター処理と係数は、単精度浮動小数点の表現と演算を使用します。
固定小数点このエントリは、固定小数点フィルターのプロパティに対し、数多くのデジタル プロセッサで一般的に使用される、選択された既定値に適用されます。これらのプロパティには、係数の語長、小数部の長さ、およびさまざまな動作モードが含まれます。この設定では、符号付き固定小数点データ型のみを使用できます。filterBuilder を使用した固定小数点フィルターの設計は、DSP System Toolbox ソフトウェアと共に Fixed-Point Designer™ ソフトウェアをインストールした場合にのみ使用できます。

次の図は、[演算][固定小数点] を選択し、[フィルター内部]Specify precision に設定した後の [データ型] ペインを示しています。この図は、[メイン] ペインで [System object を使用してフィルターを実装します] チェック ボックスが選択されていない場合の [データ型] ペインです。

[メイン] ペインで [System object を使用してフィルターを実装します] チェック ボックスをオンにした場合は、[データ型] ペインが次のように表示されます。

次の節で説明するすべてのパラメーターがすべてのフィルターに適用されるとは限りません。たとえば、FIR フィルターには [セクションの入力] パラメーターと [セクションの出力] パラメーターはありません。

入力信号

フィルターがフィルター処理するデータに適用する形式を指定します。すべての場合において、filterBuilder では 2 進小数点スケーリングと符号付き入力を使用するフィルターを実装します。語長と小数部の長さは必要に応じて設定します。

Coefficients

フィルターの分子と分母の係数の語長と小数部の長さを指定する方法を選択します。

  • [語長の指定] では、係数の語長をビット数で入力できます。このモードでは、filterBuilder は係数の小数部の長さを 2 進小数点のみのスケーリングに自動的に設定します。このスケーリングは、係数の値と語長に最高の精度をもたらします。

  • [2 進小数点スケーリング] では、係数の語長と小数部の長さをビット数で入力できます。必要に応じて、分子と分母の係数に個別の小数部の長さを入力できます。

  • フィルターの係数は、[フィルター内部] リストから [精度の指定] を選択したときに使用できる [丸めモード] パラメーターと [オーバーフロー モード] パラメーターには従いません。係数は常に飽和され、[最も近い正の整数方向] に丸められます。

セクションの入力

SOS フィルターの各セクションに入力される固定小数点データ型の語長と小数部の長さを指定する方法を選択します。このパラメーターは、選択されているフィルター構造が IIR または SOS の場合にのみ表示されます。

  • [2 進小数点スケーリング] では、セクションの入力の語長と小数部の長さをビット数で入力できます。

  • [語長の指定] では、語長をビット数で入力できます。

セクションの出力

SOS フィルターの各セクションから返される固定小数点データ型の語長と小数部の長さを指定する方法を選択します。このパラメーターは、選択されているフィルター構造が IIR または SOS の場合にのみ表示されます。

  • [2 進小数点スケーリング] では、セクションの出力の語長と小数部の長さをビット数で入力できます。

  • [語長の指定] では、出力の語長をビット数で入力できます。

状態

フィルターの操作前、操作中、および操作後のフィルター状態を含んでいます。状態は、フィルタリングの実行間またはセッション間のフィルターのメモリとして機能します。このパラメーターを使用して、状態の語長と小数部の長さの指定方法を指定します。このパラメーターは、直接型および直接型 I のフィルター構造に対しては表示されません。filterBuilder では状態を入力形式から直接推定するためです。状態では常に以下の符号付き表現を使用します。

  • [2 進小数点スケーリング] では、積和の語長と小数部の長さをビット数で入力できます。

  • [精度の指定] では、語長と小数部の長さをビット数で入力できます (利用可能な場合)。

乗算

フィルターが乗算操作の出力を処理する方法を決定します。以下のオプションから選択します。

  • [完全精度] — 結果の完全精度を維持します。

  • [LSB を保持] — データの単語を短縮する必要があるときに、結果の最下位ビットを保持します。

  • [精度の指定] — 乗算の出力によって使用される精度 (小数部の長さ) を設定できます。

フィルター内部

固定小数点フィルターがフィルター内で算術演算を実行する方法を指定します。影響を受けるフィルター部分は、フィルターの乗算、加算、状態、および出力です。以下のオプションのいずれかをクリックします。

  • [完全精度] — フィルターが乗算、出力、および積和のすべての計算において完全精度を維持することを指定します。

  • [精度の指定] — 乗算操作の結果、フィルター出力、および積和に適用される語長と小数部の長さを設定します。このオプションを選択すると、語長と小数部の長さのコントロールが有効になります。

Signed

このオプションを選択すると、フィルター係数に対して符号付き表現を使用するようにフィルターに指示されます。

語長

関連付けられているフィルターのパラメーターの語長をビット数で設定します。

小数部の長さ

関連付けられているフィルターのパラメーターの小数部の長さをビット数で設定します。

アキュムレータ

このパラメーターを使用して、積和の語長と小数部の長さの指定方法を指定します。

積和の出力による値の保存方法を決定します。以下のオプションから選択します。

  • [完全精度] — 積和の完全精度を維持します。

  • [MSB を保持] — 積和の最上位ビットを保持します。

  • [LSB を保持] — データの単語を短縮する必要があるときに、積和の最下位ビットを保持します。

  • [精度の指定] — 積和によって使用される精度 (小数部の長さ) を設定できます。

出力

フィルターがフィルター処理後に出力データをスケーリングするために使用するモードを設定します。以下の選択肢があります。

  • [オーバーフローを回避] — 出力データの小数部の長さを設定し、データのオーバーフローを回避します。[オーバーフローの回避] は、入力のデータ値と範囲とは独立しているため、保守的な設定と見なされます。

  • [最高精度] — 出力データの精度が最大化されるように、出力データの小数部の長さを設定します。

  • [精度の指定] — フィルター処理したデータによって使用される小数部の長さを設定します。

固定小数点が使用可能なパラメーター

このグループのパラメーターは、フィルターが固定小数点値を丸める方法と、オーバーフロー データを処理する方法を制御します。

Rounding mode

数値がデータ形式に対して表現できる値 (語長および小数部の長さ) の間に位置する場合に、フィルターがその値を量子化するために使用するモードを設定します。

  • ceil — 正の無限大方向に丸めます。

  • [最も近い偶数への丸め] — 最も近い表現可能な整数に丸めます。同順位が存在する場合は、最も近い偶数の保存整数に丸めます。これは、このソフトウェアで利用可能な最もバイアスのない方法です。

  • zero/fix — ゼロ方向に丸めます。

  • floor — 負の無限大方向に丸めます。

  • nearest — 最も近い整数へ丸めます。同順位が存在する場合は、正の無限大方向に丸めます。

  • round — 最も近い整数へ丸めます。同順位が存在する場合、負数に対しては負の無限大方向に丸め、正数に対しては正の無限大方向に丸めます。

ここで行う選択は、常に丸められる係数値と入力データを除くすべてに影響します。ほとんどの場合、乗算はオーバーフローせず、完全精度を維持します。

Overflow mode

フィルターが固定小数点演算におけるオーバーフロー状態に対応するために使用するモードを設定します。以下のオプションから選択します。

  • [飽和] — 出力を表現可能な最大の正または負の値に制限します。

  • [ラップ] — モジュラー演算を使用して、表現可能な最も近い値にオーバーフロー値を設定します。

ここで行う選択は、常に丸められる係数値と入力データを除くすべてに影響します。ほとんどの場合、乗算はオーバーフローせず、完全精度を維持します。

加算前にキャスト

加算操作の実行前に、数値データを適切な積和形式にキャストするかどうかを指定します。[加算前にキャスト] を選択すると、影響を受ける加算操作の結果が、ほとんどのデジタル信号プロセッサで見られる結果に最も近くなります。加算前にキャスト操作を実行すると、エラー ソースをフィルター結果に追加できる 1 つまたは 2 つの量子化操作が追加されます。

[加算前にキャスト] をオフにすると、加算操作前に和が加算形式にキャストされなくなります。この設定を選択すると、フィルターが使用するハードウェアを気にせずに最も正確な加算結果を得ることができます。[加算前にキャスト] によって参照される入力形式は、使用するフィルター構造によって異なります。

[加算前にキャスト] をオンまたはオフにした場合の影響を次に示します。

  • オフ — フィルター加算操作が前回の操作から継承された形式の和を保持するように構成します。

  • オン — 加算操作実行前の加算出力形式に合わせて和の入力形式を変換するようにフィルター加算操作を構成します。通常、[加算前にキャスト] をオンにすると、デジタル信号プロセッサで見られる結果により近い加算結果が生成されます。

[コード生成] ペイン

[コード生成] ペインには、完成したフィルター設計のさまざまな実装に対するオプションが含まれています。ご使用のシステムに応じて、設計したフィルターからは、MATLAB、VHDL、および Verilog コードを生成できます。設計したフィルターから Simulink® モデルを作成または更新することもできます。以下の節では、これらのオプションについて説明します。

HDL

これらのオプションの詳細は、Opening the Filter Design HDL Coder UI from the Filter Builder (Filter Design HDL Coder)を参照してください。

MATLAB

フィルター仕様に基づいて MATLAB コードを生成します。

  • フィルターを出力として返す関数を生成します

    このオプションを選択すると、fdesign を使用してフィルター オブジェクトを設計する関数が生成されます。

  • データをフィルター処理する関数を生成します

    このオプションを選択すると、データを入力として取り込み、設計したフィルターで処理されたデータを出力する関数が生成されます。フィルター出力のデータ型は、[データ型] ペインのデータ型設定に従って設定されます。

[MATLAB コードを生成] ボタンをクリックすると、ファイルの保存ダイアログ ボックスが表示されます。ファィル名と場所を指定して、保存します。これでフィルターが編集可能ファイルに含まれるようになりました。

Simulink モデル

設計したフィルターから Simulink ブロックとサブシステムを生成できます。

[モデルの生成] をクリックすると、フィルター ビルダーによって、設計したフィルターから Simulink ブロックとサブシステムが生成されます。

[モデルの生成] ボタンをクリックすると、[Simulink にエクスポート] ダイアログ ボックスが開きます。

  • [ブロック名] — 新しい Subsystem ブロックの名前。既定の設定では [フィルター] に設定されます。

  • 作成先[現在] は、生成されたモデルを現在の Simulink モデルに保存します。[新規] は、生成されたブロックを含む新しいモデルを作成します。[ユーザー定義] は、新しいモデルまたはサブシステムを [ユーザー定義] で指定された場所に作成します。

  • 生成された 'Filter' ブロックに上書きする[ブロック名] で指定した名前の既存のブロックを上書きします。このチェック ボックスをオフにすると、同じ名前で新しいブロックが作成されます。

  • Simulink 基本要素を使ったモデルの作成 — 基本ブロックのみを使用してモデルを作成します。

  • 0 のゲインに対して最適化する — モデルからゼロのゲイン ブロックをすべて削除します。

  • 1 のゲインに対して最適化する — 1 のゲインを直接接続にすべて置き換えます。

  • 負のゲインに対して最適化する — 1 の負のゲイン ブロックをすべて削除し、最も近い加算ブロックの符号を変更します。

  • 遅延連鎖を最適化する — n の単位遅延からなる遅延連鎖を n の単一遅延で置き換えます。

  • 1 のスケール値に対して最適化する — スケール値の 1 による乗算をフィルター構造からすべて削除します。

  • [入力処理] — 生成されたフィルター ブロックまたはサブシステム ブロックによる入力の処理方法を指定します。設計しているフィルターのタイプに応じて、次のオプションのうちの 1 つまたは両方が利用できます。

    • Columns as channels (frame based) — ブロックは入力の各列を別々のチャネルとして扱います。

    • Elements as channels (sample based) — ブロックは入力の各要素を別々のチャネルとして扱います。

    サンプルベースおよびフレームベースの処理の詳細については、Sample- and Frame-Based Conceptsを参照してください。

  • モデルの実現 — 設定されたパラメーターを使用してモデルをビルドします。

[メイン] ペインで [System object を使用してフィルターを実装します] チェック ボックスをオンにした場合、次の状況では [Simulink モデル] パネルの [モデルの生成] ボタンが無効になります。

  • [Filter response][櫛形][データ型] ペインの [演算][固定小数点] を選択している。

  • [Filter response][任意応答法][インパルス応答][IIR] を選択し、[応答を指定][振幅と位相] または [周波数応答][データ型] ペインの [演算][固定小数点] に設定している。

これらの設定では、固定小数点演算を含む dsp.IIRFilter System object™ が設計されます。固定小数点の dsp.IIRFilter オブジェクトに対する Simulink モデルの生成はサポートされていません。

フィルター応答

filterBuilder [応答選択] メイン メニューから、フィルター応答を選択します。

DSP System Toolbox ソフトウェアがインストールされている場合は、以下の [応答選択] メニューが表示されます。

メニューから目的のフィルター応答を選択し、フィルターを設計します。

次の節では、各応答タイプで利用可能なオプションについて説明します。

任意応答フィルター設計 — [メイン] ペイン

 フィルター仕様

 応答の仕様

 帯域特性

 アルゴリズム

 フィルターの実装

オーディオ重みフィルター設計 — [メイン] ペイン

 フィルター仕様

 アルゴリズム

 フィルターの実装

バンドパス フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

バンドストップ フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

CIC フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

CIC 補正設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

櫛形フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

微分器フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

非整数遅延設計 — [メイン] ペイン

 周波数仕様

ハーフバンド フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

ハイパス フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

ヒルベルト フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

逆 sinc フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

ローパス フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

ナイキスト フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

オクターブ フィルター設計 — [メイン] ペイン

 フィルター仕様

 アルゴリズム

 フィルターの実装

パラメトリック イコライザー フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 ゲイン仕様

 アルゴリズム

 フィルターの実装

ピーク/ノッチ フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

パルス整形フィルター設計 — [メイン] ペイン

 フィルター仕様

 周波数仕様

 振幅仕様

 アルゴリズム

 フィルターの実装

R2009a で導入