1. TOP
  2. OMRON
  3. NX/NJシリーズ
  4. アナログ
  5. デジタルフィルタ

概略

簡易的なデジタルフィルタを作成します

元の波形

元の波形には30Hzの正弦波に500Hzのノイズが含まれています
以下の8種類のフィルタをかけてみます

ローパスフィルタ

100Hz以上の周波数をカットオフしてノイズを除去します

ハイパスフィルタ

100Hz以下の周波数をカットオフしてノイズを除去します

バンドパスフィルタ

30Hzから1オクターブの周波数を通過させます

ノッチフィルタ

30Hzから1オクターブの周波数を除去します

ローシェルフフィルタ

100Hz以下の周波数を増幅します

ハイシェルフフィルタ

100Hz以上の周波数を増幅します

ピーキングフィルタ

30Hzから1オクターブの周波数を増幅します

オールパスフィルタ

カットオフ周波数あたりの位相を変えます

シンボル

各ファンクション共通の入出力変数

入出力
buf
2つ前の入力と出力の記憶(変数を必ず割付けてFB外で使用しないでください)
入力
In
入力値
SampFreq
サンプリング周波数
Freq
カットオフ周波数
BandWidth
帯域幅
gain
増幅量
出力
Result
計算結果

サンプリング周波数はデフォルトは実行するタスクのタスク周期で1スキャンで複数のアナログ値を取得する高速アナログユニットでは設定値に合わせてサンプリング周波数(Hz)を入力してください
以下のグラフは30Hz+500Hzの波形をサンプリング周波数=10000Hzで収集したときにフィルタを通した時のグラフです

LPF (ローパスフィルタ)

カットオフ周波数以下を通すフィルタ

LPF

HPF (ハイパスフィルタ)

カットオフ周波数以上を通すフィルタ

HPF

BPF (バンドパスフィルタ)

カットオフ周波数から帯域幅分のみ通すフィルタ
カットオフ周波数を30Hzとして帯域幅を1オクターブとした場合は30/2から30x2の周波数になるので、15Hzから60Hzを通すことになります

BPF

NotchF (ノッチフィルタ)

カットオフ周波数から帯域幅以外を通すフィルタ
BPFとは逆に15Hzから60Hz以外を通すことになります

Notch

LowShelfF (ローシェルフフィルタ)

カットオフ周波数以下を増幅量で指定した分だけ増幅するフィルタ

LowShelf

HiShelfF (ハイシェルフフィルタ)

カットオフ周波数以上を増幅量で指定した分だけ増幅するフィルタ

HiShelf

PeekingF (ピーキングフィルタ)

カットオフ周波数を中心とした帯域幅分を増幅量で指定した分だけ増幅するフィルタ

Peeking

AllPassF (オールパスフィルタ)

カットオフ周波数周辺のみの位相を変えるフィルタ

AllPass

使用例

ラダー

lpfLadder2

AnalogInのデータを100Hz以下の周波数のみ通すフィルタをかけてFilterAnalogに出力します

ソース

ローパスフィルタ(LPF)

一例としてローパスフィルタは以下のように計算しています

ダウンロード

ダウンロードされたときは利用規約に同意したものとみなします

参考サイト様

簡単なデジタルフィルタの実装

この記事へのコメント