60Hzを除去する1msサンプリング17段移動平均フィルタ
ひさびさに技術の話。
とあるテーマで、センサのアナログ信号を16ビットADカードでパソコンに取り込むことになった。
当然、WindowsリアルタイムIO制御「MOS Bench(モスベンチ)」でサポートされているCONTEC社16bitADカード「AD16-16U(PCI)EV」を使う。
パラメータ設定で該当チャンネルを許可すれば、勝手に1msサンプリングをしてくれる。(上の画像の「アナログ入力チャネルの有効(1)無効(0)」の部分)
パラメータ設定で入力範囲を-10Vから+10Vの指定をすれば、16bitデータを[V]に変換してくれる。(上の画像の「アナログ入力チャネルの入力レンジの下限値-10.00、および、アナログ入力チャネルの入力レンジの上限値10.00」の部分)
また、パラメータ設定で移動平均回数を指定すれば、勝手に移動平均をしてくれて、平均後のデータを下図の画面表示しながら、ロギングデータファイルに12万行保存できる。
以下は、20回移動平均後の出力。この波形は、ロギングデータのcsvファイルをエクセルに読み込んで、編集したもの。
200ms間に12個の波がある。200ms/12=16.7ms。この逆数は、60Hz。ACラインのノイズが入っている。約2.5mVp-p。
1ms、すなわち1000Hzサンプリングなので、1000Hz/60Hz=16.7で、17回の移動平均をしてみる。
ちなみに、1000Hz/17=58.8Hz。
例によって、「MOS Bench」のパラメータ設定画面で、移動平均回数を17回に設定する。(下の画像の「アナログ入力チャネルのフィルタ段数」の部分)
以下は、17回移動平均後の出力。
ノイズの振幅は約1mVp-p。3LSBにわたって動いている。前述の波形に対して、1/2.5のノイズになった。
目標とする仕様から判断すれば、これで十分。
しかし、200ms間に5個の波がある。200ms/5=40ms。この逆数は、25Hz。
Link:
| 固定リンク
「技術フィルタ」カテゴリの記事
- 4回移動平均フィルタでも波形がなまります(2016.05.10)
- 入力信号を3回一致で取り込むクロック同期式ディジタルフィルタのVHDLコード(2014.07.11)
- オペアンプを使ったアクティブローパスフィルタの基礎実験(2013.12.10)
- 観測信号に高精度低ノイズオペアンプAD8512ARMZをプリアンプとして入れたら(2013.03.23)
- AD変換データのノイズ(2013.03.22)
「技術Windowsでリアルタイム制御」カテゴリの記事
- Windowsリアルタイム制御によるコンテック社OUTポート信号波形(2019.10.15)
- GIG-Eカメラ用ネットワークインターフェースカードとそのドライバはリアルタイム性を阻害する(2019.10.14)
- Windwosリアルタイム制御のデモでお客様を訪問(2019.10.02)
- 産業用パソコンのスロットが足りないので、リアるタイムLANポート経由でモータ制御(2019.09.19)
- やっぱり第六世代のCorei7でもWindows7でWindowsリアルタイムIO制御したい(2019.06.28)
コメント