ローパスフィルタ

2次ローパスフィルタの作成例です。試験用に雑音入り正弦波を発生させています。

ソースコードやプロジェクトファイルのダウンロードはこちら →lowpass.zip

(1)シミュレーション用のプログラムです。
ブロック図
プログラム
    proc
    {
        test = w_sin( period, 0, amp ) + gauss( sd );  // 試験信号の生成
        filter = bqLpf( test, freq, damp );            // フィルタ処理
    }
説明 以下の関数、信号、パラメータを使っています。 関数名は予約されていますが、信号名やパラメータ名は予約語以外なら任意です。

関数
(予約語)
 w_sin正弦波を発生させます
 gauss正規雑音を発生させます。
 bqLpf2次ローパスフィルタ関数です。
信号 test試験信号です。正弦波と正規雑音の和になります。
 filterフィルタの出力になります。
パラメータ period 正弦波の周期[秒]です。
 amp正弦波の振幅です
 sd正規雑音の標準偏差です
 freqフィルタの帯域[rad/s]です。
 dampフィルタのダンピングファクタです。

設定例
記録例


(2)試験用プログラムです。アナログ出力した試験信号を入力とします。
ブロック図
プログラム
    proc
    {
        test = w_sin( period, 0, amp ) + gauss( sd );  // 試験信号の生成
        Aout( 1, 0, 1, test );                         // アナログ出力(1ch)
        signal = Ain( 0, 0, 1 );                       // アナログ入力(0ch)

        filter = bqLpf( signal, freq, damp );          // フィルタ処理
        Aout( 0, 0, 1, filter );                       // アナログ出力(0ch)
    }
説明 シミュレーションに以下の関数と信号を追加しました。 信号testをアナログ出力し、それをアナログ入力へ接続して、電気信号による試験を行います。 試験を終えたら、試験信号の発生は不要です。

関数
(予約語)
 Ainアナログ信号を入力します。
 Aoutアナログ信号を出力します。
信号
(任意の名前)
 signalアナログ入力した信号です。

設定例
記録例


(3)試験信号発生を除いたものです。
ブロック図
プログラム
    proc
    {
        signal = Ain( 0, 0, 1 );                  // アナログ入力(0ch)
        filter = bqLpf( signal, freq, damp );     // フィルタ処理
        Aout( 0, 0, 1, filter );                  // アナログ出力(0ch)
    }