メインコンテンツ

フィルター ビルダー設計プロセス

フィルター ビルダーの紹介

関数 filterBuilder は、オブジェクト指向フィルター設計パラダイムである fdesign のグラフィカル インターフェイスを提供し、フィルター設計プロセスにおける開発時間の短縮を目的としています。filterBuilder では、仕様中心型のアプローチを使用して、希望する応答に対して最適なアルゴリズムを求めます。

メモ

filterBuilder には Signal Processing Toolbox™ が必要です。DSP System Toolbox™ 製品は、filterBuilder の機能を大幅に拡張します。このページに記載されている機能の多くは、DSP System Toolbox がインストールされている場合にのみ使用できます。このソフトウェアがインストールされているかどうかは、コマンド プロンプトで ver と入力して確認できます。

フィルター ビルダーを使用したフィルターの設計

filterBuilder を使用するときの基本ワークフローでは、フィルターの制約と仕様を選択し、これらの制約を設計の開始点として使用します。フィルターに使用するアルゴリズムの選択を先に延ばせば、希望するパフォーマンス基準に基づき、最適な設計法を自動的に決定することができます。以下に、filterBuilder を使用したフィルター設計の各ステップを詳細に説明します。

応答の選択

filterBuilder ツールを起動するには、以下のように入力します。

filterBuilder
MATLAB® コマンド プロンプトで、[応答選択] ダイアログ ボックスが開き、DSP System Toolbox で使用可能なすべてのフィルター応答が表示されます。

Response Selection window, listing the following filter responses: Lowpass, Highpass, Bandpass, Bandstop, Differentiator, Hilbert Transformer, Arbitrary Response, Pulse Shaping. The option Bandpass is selected.

メモ

このステップは自動的には行われないため、省略することはできません。フィルター設計プロセスを開始するには、応答を選択しなければなりません。

応答を、たとえばバンドパスに選択し、仕様オブジェクトの設計を開始すると、[バンドパス設計] ダイアログ ボックスが表示されます。このダイアログ ボックスには、[メイン] ペイン、[データ型] ペイン、[コード生成] ペインがあります。フィルターの仕様は、通常このダイアログ ボックスの [メイン] ペインで設定します。

[データ型] ペインでは精度とデータ型の設定を行い、[コード生成] ペインには完了したフィルター設計のためのさまざまな実装オプションがあります。

フィルターの初期設計には、主に [メイン] ペインを使用します。

Bandpass Design window. The window has two panes: Main, and Code Generation. The figure shows the Main pane.

[バンドパス設計] ダイアログ ボックスには、バンドパス フィルターの仕様を決定するために必要なすべてのパラメーターがあります。[メイン] ペインに表示されるパラメーターは、設計するフィルターのタイプにより異なります。ただし、[応答選択] ダイアログ ボックスで選択したフィルターのタイプに関わらず、フィルター設計のダイアログ ボックスには、[メイン][データ型][コード生成] の 3 つのペインがあります。

仕様の選択

バンドパス フィルターの仕様を選択するには、まず [メイン] ペインの [フィルター仕様] フレームで [インパルス応答][次数モード][フィルター タイプ] を選択します。[メイン] ペインの適切なフレームで周波数と振幅の仕様を設定することにより、フィルターの応答をさらに詳細に指定できます。

メモ

[周波数][振幅][アルゴリズム] の各仕様は、相互に依存し、[フィルター仕様] の選択に基づいて変更できます。フィルターの仕様を選択する際には、まずフィルター仕様を選択し、ダイアログ ボックスの上から順に作業します。このアプローチによって、ダイアログ ボックスに依存する仕様に対して最適な設定が表示されるようになります。

アルゴリズムの選択

フィルターで使用可能なアルゴリズムは、前のステップで選択したフィルター応答と設計パラメーターにより異なります。たとえばバンドパス フィルターで、選択したインパルス応答が IIR、[次数モード] フィールドが [最小値] に設定されている場合、使用可能な設計法は [バタワース][チェビシェフ] I 型または II 型、または [楕円] です。[次数モード] フィールドが [指定] に設定されている場合、使用可能な設計法は [IIR 最小 p ノルム] です。

Bandpass Design window. The window has two panes: Main, and Code Generation. The figure shows the Main pane. The Algorithm section is located in the bottom third of the window. The figure shows the Butterworth design method selected.

アルゴリズムのカスタマイズ

[アルゴリズム] フレームの [設計オプション] を展開すると、指定したアルゴリズムをさらにカスタマイズできます。使用可能なオプションは、アルゴリズムとダイアログ ボックスで選択した設定により異なります。Butterworth を使用するバンドパス IIR フィルターの場合、以下の図に示すように、[厳密に一致] などの設計オプションが使用可能です。

Bandpass Design window. The window has two panes: Main, and Code Generation. The figure shows the Main pane. The Match Exactly label is located at the bottom of the Algorithm section. The figure shows the Stopband design option selected.

設計の解析

フィルター応答を解析するには、[フィルター応答の表示] ボタンをクリックします。

フィルターの入力データへの実現または適用

設計プロセスを繰り返し、[フィルターの可視化ツール] を使用した解析によって希望するフィルターが得られたら、フィルターを入力データに適用します。このステップも、ソフトウェアによって自動的に実行されることはありません。データをフィルター処理するには、このステップを明示的に行う必要があります。[バンドパス設計] ダイアログ ボックスで [OK] をクリックすると、Signal Processing Toolbox ソフトウェアによってフィルター係数が作成され、MATLAB ワークスペースにエクスポートされます。

これで、フィルターを実際の入力データに対して使用できます。基本的なフィルター コマンドは、入力データ x を受け取り、フィルター オブジェクトによってフィルター処理を行い、出力 y を生成します。

y = filter(Hbs,x)
フィルター処理コマンドの動作を理解するために、以下を入力します。
help dfilt/filter

ヒント

Simulink® を使用している場合は、realizemdl コマンドを使ってこのフィルターを Simulink ブロックにエクスポートすることもできます。このコマンドのヘルプを表示するには、以下を入力します。

help realizemdl