Main Content

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

フィルターの設計と実装

Simulink によるデジタル フィルターの設計

Digital Filter Design ブロックまたは Filter Realization Wizard を使用して、ローパス、ハイパス、バンドパス、およびバンドストップの各フィルターを設計することができます。これらのブロックはさまざまなフィルター構造のフィルター係数を計算することができます。この節では、Digital Filter Design ブロックを使用してホワイト ノイズを低周波ノイズに変換し、その結果をご使用のシステムでシミュレートします。

実際的な用途として、パイロットが飛行機のコックピットでマイクに向かって話しているとしましょう。機体の風切音のノイズもマイクに入ります。飛行機の外部にはセンサーがあり風のノイズが計測されています。コックピット内の風のノイズを見積もり、それをマイクへの入力から差し引くことによってパイロットの声だけが送信されるようにします。この章では、まずマイクに入る低周波ノイズをモデル化する方法を学びます。その後、パイロットの声だけが聞こえるよう、このノイズを除去する方法を学びます。

このトピックでは、Digital Filter Design ブロックを使用して、コックピット内の風切音をモデル化した低周波ノイズを作成します。

  1. モデルを開くため

    入力は MATLAB® コマンド プロンプトで行います。このモデルは Scope ブロックを含み、これは本来の正弦波とホワイト ノイズが付加された正弦波を表示します。

  2. MATLAB コマンド プロンプトで「dsplib」と入力して、DSP System Toolbox™ ライブラリを開きます。

  3. Digital Filter Design ブロックをモデルに組み込むことにより、ホワイト ノイズを低周波ノイズに変換します。この飛行機のシナリオでは、機体の周囲を流れる風によるホワイト ノイズがセンサーによって計測されています。Random Source ブロックによってこのノイズをモデル化します。飛行機の機体によってホワイト ノイズは低周波ノイズ (一種のカラード ノイズ) に変わり、これがコックピット内に聞こえます。このノイズは一定の周波数のみを含み、より除去しづらくなっています。この例では、Digital Filter Design ブロックを使用して低周波ノイズをモデル化します。このブロックでは、フィルターの設計と解析ツール (FDATool) の機能を利用してフィルターを設計します。

    Filtering ライブラリをダブルクリックし、次に Filter Implementations サブライブラリをダブルクリックします。Digital Filter Design ブロックをモデルまでクリック アンド ドラッグします。

  4. Digital Filter Design ブロックのパラメーターを設定してローパス フィルターを設計し、低周波ノイズを作成します。ブロックをダブルクリックしてブロック パラメーター ダイアログ ボックスを開きます。パラメーターを以下のように設定します。

    • 応答タイプ = ローパス

    • 設計法 = [FIR] を選び、リストから [ウィンドウ] を選択

    • フィルター次数 = [次数指定] を選択して、31 と入力

    • 通過帯域のスケーリング = チェックを外す

    • ウィンドウ = Hamming

    • 単位 = 正規化 (0-1)

    • wc = 0.5

    これらのパラメーターに基づき、Digital Filter Design ブロックは 32 の係数をもち、カットオフ周波数が 0.5 のローパス FIR フィルターを設計します。このブロックはフィルターの時間領域応答に 32 サンプルのハミング ウィンドウを乗じます。

  5. ダイアログ ボックスの下中央にある [フィルターの設計] をクリックすると [振幅応答] ペインにフィルターの振幅応答が表示されます。以下の図のような Digital Filter Design ダイアログ ボックスが表示されます。

これで Digital Filter Design ブロックを使用したデジタル ローパス フィルターの設計が完了しました。

Digital Filter Design ブロックでさまざまな独自フィルターの設計を試すことができます。このブロックの機能の詳細は、Digital Filter Design ブロック リファレンス ページを参照してください。

モデルにデジタル フィルターを追加する

このトピックでは、Simulink によるデジタル フィルターの設計で設計したローパス フィルターをブロック線図に追加します。ホワイト ノイズをカラード ノイズに変換するこのフィルターでコックピット内の低周波数の風切音をシミュレートします。

  1. Simulink によるデジタル フィルターの設計で作成したモデルがデスクトップ上に開いていない場合、モデルを開くには

    入力は MATLAB コマンド プロンプトで行います。

  2. Digital Filter Design ブロックを Random Source ブロックと Sum ブロックの間に配置してブロック線図に組み込みます。

  3. モデルを実行して結果を [Scope] ウィンドウで確認してください。ウィンドウには本来の入力信号、およびそれに低周波ノイズが付加された信号が表示されます。

デジタル フィルターが組み込まれ、それによって信号のカラード ノイズの存在がモデル化されています。これは飛行機のコックピット内のマイクに入る低周波ノイズをモデル化したものに似ています。さて、システムにはノイズが追加されました。今度はこれを取り除いてみましょう。