Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Simulink でのノイズを含む正弦波信号フレームのフィルター処理

この例では、ノイズを含む信号を Simulink® でローパス フィルター処理する方法、およびスペクトル アナライザーで元の信号とフィルター処理された信号を可視化する方法を説明します。この例の MATLAB® バージョンについては、MATLAB でのノイズを含む正弦波信号フレームのフィルター処理を参照してください。

モデルを開く

新しい空のモデルを作成してそのライブラリ ブラウザーを開くには、次のようにします。

  1. MATLAB の [ホーム] タブで [Simulink] をクリックし、[Basic Filter] モデル テンプレートを選択します。

  2. [モデルを作成] をクリックして DSP System Toolbox™ での使用に適切な設定で基本フィルター モデルを作成します。ライブラリ ブラウザーにアクセスするには、モデルのツールストリップの [シミュレーション] タブで [ライブラリ ブラウザー] をクリックします。

テンプレートの設定とコンテンツを使用した新規モデルが Simulink エディターに表示されます。保存するまでは、モデルはメモリ内にのみ存在します。

モデルの検査

入力信号

入力信号を構成するソース ブロックは 3 つです。入力信号は、2 つの正弦波の和と、平均が 0 で分散が 0.05 のホワイト ガウス ノイズから構成されています。正弦波の周波数は 1 kHz と 15 kHz です。サンプリング周波数は 44.1 kHz です。次のダイアログ ボックスは、1 kHz の正弦波のブロック パラメーターを表示したものです。

ローパス フィルター

ローパス フィルターは、Lowpass Filter ブロックを使用してモデル化されます。この例では、一般化された Remez FIR フィルター設計アルゴリズムを使用します。フィルターの通過帯域周波数は 8000 Hz、阻止帯域周波数は 10,000 Hz、通過帯域リップルは 0.1 dB、阻止帯域の減衰量は 80 dB です。

Lowpass Filter ブロックは、フレームベースの処理を使用して一度に 1 フレームずつデータを処理します。データの各フレームには独立チャネルからの連続サンプルが含まれます。フレームベースの処理では、複数のサンプルを一度に処理できるため、多くの信号処理アプリケーションで有利です。データをフレームにバッファリングしてマルチサンプルのデータ フレームを処理することにより、信号処理アルゴリズムの計算時間を改善できます。

元の信号とフィルター処理された信号の比較

Spectrum Analyzer を使用して、元の信号とフィルター処理された信号のパワー スペクトルを比較します。スペクトルの単位は dBm です。

シミュレーションを実行するには、モデルで [実行] をクリックします。シミュレーションを停止するには、Spectrum Analyzer ブロックで [停止] をクリックします。または、次のコードを実行して 200 フレームのデータのシミュレーションを実行できます。

set_param(model,'StopTime','256/44100 * 200')
sim(model);

ソース信号の 10 kHz を超える周波数が減衰しています。1 kHz のピークはローパス フィルターの通過帯域にあるため、結果の信号はこれを維持しています。