Main Content

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

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

モデルを開く

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

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

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

Basic filter model template contains two Sine Wave blocks, one Gaussian Noise block, one Lowpass FIR Filter block, and one spectrum Analyzer block. The two Sine Wave blocks and the Gaussian Noise block feed into an adder. The output of the adder block is the noisy sinusoidal signal. This noisy signal is fed into the Lowpass Filter block. The output of the Lowpass Filter block is the filtered signal. The noisy signal and the filtered signal are fed into the Spectrum Analyzer which shows the spectra of both the signals.

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

モデルの検査

入力信号

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

The block dialog box of the first Sine Wave block. The settings on the block dialog are as follows. Main pane: Amplitude is set to 1, Frequency is set to 1000 Hz, Phase offset is set to 0 radians, Sample mode is set to Discrete, Output complexity is set to Real, Computation method is set to Trignometric fcn, Sample time is set to 1/44100, Samples per frame is set to 256, Resetting states when re-enabled is set to Restart at time zero.

ローパス フィルター

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

The block dialog box of the Lowpass Filter block. The settings on the block dialog are as follows. Main pane: Filter type is set to FIR, Design minimum order filter check box is selected, Passband edge frequency is set to 8000 Hz, Stopband edge frequency is set to 10000 Hz, Maximum passband ripple is set to 0.1 dB, Minimum stopband attenuation is set to 80 dB, Inherit sample rate from input check box is not selected, Input sample rate is set to 44100 Hz, Simulate using is set to Interpreted execution.

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

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

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

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

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

Output of the Spectrum Analyzer shows two signals. Original signal in yellow is unattenuated and has peaks at 1 KHz and 15 KHz. Filtered signal in blue is attenuated after 10 KHz.

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