Simulink でのノイズを含む正弦波信号フレームのフィルター処理
この例では、ノイズを含む信号を Simulink® でローパス フィルター処理する方法、およびスペクトル アナライザーで元の信号とフィルター処理された信号を可視化する方法を説明します。この例の MATLAB® バージョンについては、MATLAB でのノイズを含む正弦波信号フレームのフィルター処理を参照してください。
モデルを開く
新しい空のモデルを作成し、ライブラリ ブラウザーを開くには、次のようにします。
MATLAB の [ホーム] タブで [Simulink] をクリックし、[基本フィルター] モデル テンプレートを選択します。
[モデルを作成] をクリックして DSP System Toolbox™ での使用に適切な設定で基本フィルター モデルを作成します。ライブラリ ブラウザーにアクセスするには、モデルのツールストリップの [シミュレーション] タブで [ライブラリ ブラウザー] をクリックします。
テンプレートの設定とコンテンツを使用した新規モデルが Simulink エディターに表示されます。モデルは、保存するまでメモリ内にのみ存在します。
モデルの検査
入力信号
入力信号を構成するソース ブロックは 3 つです。入力信号は、2 つの正弦波の和と、平均が 0 で分散が 0.05 のホワイト ガウス ノイズから構成されています。正弦波の周波数は 1 kHz と 15 kHz です。サンプリング周波数は 44.1 kHz です。
ローパス フィルター
ローパス フィルターは、Lowpass Filter ブロックを使用してモデル化されます。この例では、一般化された Remez FIR フィルター設計アルゴリズムを使用します。フィルターの通過帯域周波数は 8000 Hz、阻止帯域周波数は 10,000 Hz、通過帯域リップルは 0.1 dB、阻止帯域の減衰量は 80 dB です。
Lowpass Filter ブロックは、フレームベースの処理を使用して一度に 1 フレームずつデータを処理します。データの各フレームには独立チャネルからの連続サンプルが含まれます。フレームベースの処理では、複数のサンプルを一度に処理できるため、多くの信号処理アプリケーションで有利です。データをフレームにバッファリングしてマルチサンプルのデータ フレームを処理することにより、信号処理アルゴリズムの計算時間を改善できます。
元の信号とフィルター処理された信号の比較
モデルを開いていない場合は、[モデルを開く] ボタンをクリックします。
スペクトル アナライザーブロックは、元の信号とフィルター処理された信号のパワー スペクトルを比較します。スペクトルの単位は dBm
です。
シミュレーションを実行するには、モデルで [実行] をクリックします。シミュレーションを停止するには、Spectrum Analyzer ブロックで [停止] をクリックします。または、次のコードを実行して 200 フレームのデータのシミュレーションを実行できます。
ソース信号の 10 kHz を超える周波数が減衰しています。1 kHz のピークはローパス フィルターの通過帯域にあるため、結果の信号はこれを維持しています。
open_system('basic_filter_model.slx'); set_param('basic_filter_model','StopTime','256/44100 * 400'); sim('basic_filter_model.slx');
参考
Lowpass Filter | Sine Wave | Random Source | Spectrum Analyzer