センサのノイズを除去する方法
図1は,生体センサなどのノイズ除去に用いられるフィルタ回路です.この回路の周波数特性を示した波形は,図2の(a)~(d)のどれでしょうか.
(a)の波形 (b)の波形 (c)の波形 (d)の波形
生体センサの信号の電圧レベルは,非常に微弱なため,さまざまなノイズが乗ります.その1つが,商用電源周波数(50Hz,60Hz)による電磁ノイズです.生体センサには,このノイズを除去する回路が用いられます.
※本メルマガの説明や実機デモはhttps://www.youtube.com/c/BuonoTVでも公開しています.ぜひそちらも合わせてご覧ください.
図1は,バンド・エリミネーション・フィルタと呼ばれる回路です.この回路はローパス・フィルタとハイパス・フィルタから構成されており,これらを組み合わせると,(d)のように特定の周波数(今回の場合は50Hz)だけを減衰させる回路を作る事ができます.
●さまざまなノイズに悩まされる生体センサ
生体信号には,筋電位や脳波,心電,心拍,血圧,体温などさまざまな観測対象があります.これらのうち,筋電位,脳波,心電などに関しては外部から観測する事は難しいため,身体に直接電極を付けて,電気的な変化を捉える方法が取られています.例として,市販の筋電位センサを使って,計測した結果を図3に示します.
図3で観測されている電圧レベルは,数Vありますが,実際に筋肉からこのレベルの電圧が出力されているわけではありません.生体から発生する元々の信号は,数μV~数mVと非常に微弱なため,このようなセンサ・モジュールは,検出した電圧を観測できるレベルにするためにオペアンプなどで増幅する機能を備えています.加えて,生体センサには,図4に示すさまざまな種類のノイズが混入するため,増幅する前にそれらを除去するフィルタ回路が使用されています.
●ノイズを除去する4種類のフィルタ
ノイズを除去するフィルタには,大きく分けると4つの種類があります(図5).また,フィルタには,それぞれ,アナログ・フィルタとデジタル・フィルタがあります.ここでは,アナログフィルタの解説をします.
図5の(a)ローパス・フィルタ,(b)ハイパス・フィルタであり,(c)バンドパス・フィルタ,(d)バンド・エリミネーション・フィルタの周波数特性は,図2の(a)~(d)に対応します.例えば,図5(a)のローパス・フィルタの周波数特性は,図2(a)の波形です.
基本的なフィルタは,ローパス・フィルタとハイパス・フィルタです.バンドパス・フィルタとバンド・エリミネーション・フィルタは,ローパス・フィルタとハイパス・フィルタを応用したものです.
●カットオフ周波数と周波数特性
信号が3dB減衰する周波数をカットオフ周波数(fc)と言います.ローパス・フィルタ,ハイパス・フィルタの場合,式1の関係が成り立ちます.
fc=1/2πRC ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・(1)
図5(a)(b)の回路では「R=100kHz,C=0.064uF」のため,式1に当てはめるとカットオフ周波数は25Hzとなります.図2(a)(b)を見ると,図2(a)のローパス・フィルタは,25Hzを境に周波数が上がるほど信号は減衰します.逆に,図2(b)のハイパス・フィルタは周波数が下がるほど信号が減衰します.このように,高い周波数の信号,または,低い周波数の信号のみを除去したい場合に利用されます.
図5(c)のバンドパス・フィルタは,ローパス・フィルタとハイパス・フィルタを直列で接続した回路です.図2(c)の曲線を見ても分かるように,図2(a)ローパス・フィルタと図2(b)ハイパス・フィルタの線と重なる周波数特性を持ちます.バンドパス・フィルタは,特定の周波数帯を「抽出」したい場合に利用されます.
そして,図5(d)のバンド・エリミネーション・フィルタは,ある周波数でゲインが下がる特性を持っています.使われ方はバンドパス・フィルタとは逆で,特定の周波数帯を「除去」したい場合に使われます.
図1で使用されている回路は,図5(d)のバンド・エリミネーション・フィルタと同じ形であるため,特定の周波数帯のゲインが下がっている図2(d)が問題の正解となります.
●特定の周波数を除去するノッチ・フィルタ
生体センサに混在する主要なノイズの1つが,商用電源周波数(50Hz,60Hz)のノイズ,いわゆるハムノイズです.
図2(d)の特性のように,バンド・エリミネーション・フィルタの中でも,除去する周波数帯が特に狭いフィルタのことをノッチ・フィルタと呼びます.図6にノッチフィルタの回路と各定数を決めるための計算式を示します.
ノッチ・フィルタは,特定の周波数のゲインを減衰できる特性を持っているため,この特性を利用してハムノイズを除去するために用いられることがあります.
この回路で,減衰させる周波数をノッチ周波数(fn)と言います.fnは式2で求めることができます.
fn=1/2πRC ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・(2)
例えば「fn=50Hz」としたい場合,「R1=R2=10kΩ」に設定すると,R3は「10kΩ/2=5kΩ」となります.また,コンデンサの定数は式2を用いることで計算でき「C=1/(2*π*R*fn)=1/(2*π*10k*50)」より「C=0.32uF」となります.さらに,図6の関係式より「C2=C3=C=0.32uF,C1=0.32uF*2=0.64uF」を求めることができます.これらの定数を適用すると,図7のフィルタ部の回路を作ることができます.なおここでは,回路検証用に5V/50Hzの正弦波を入力しています.
まず,図7の回路をtrans解析(トランジェント解析)でVin,Voutの様子を確認します.trans解析は,オシロスコープのように時間的な電圧・電流変化を確認するためのモードであり,その結果を図8に示します.
この結果によると,Vinが5V/50Hzで振幅しているのに対し,Voutはほぼ0Vに減衰している事が分かります.ノッチ周波数が50Hzであるため,見事にノッチ・フィルタによってカットされていることが分かります.
●フィルタ特性をAC解析で確認する方法
図8で,ノッチ・フィルタの効果を確認することができました.しかし,trans解析で,入力周波数が少しずれた場合(例えば49Hzなど)などの挙動について,予測する事は難しいです.LTspiceにはAC解析など,周波数特性を確認できるコマンドがいくつか用意されているので,それらの方法で,効果や特性を確認します.
ここでは,図7の回路を用いてAC解析する方法を説明します.まずは,図9のように,図7の回路図上の電源の上で右クリックをし,AC Amplitudeの欄に「1」を入力してOKをクリックします.
次に,図10のようにシミュレーション条件を設定します.まずは,図7の回路図内のシミュレーション・コマンド(ここでは「.tran 0.2」)の上で右クリックをし,「AC Analysis」のタブをクリックします.
周波数範囲などを設定する画面が現れるので,図10のように入力をしてOKをクリックしたあと,シミュレーションを走らせるとAC解析を行う事ができます.周波数範囲やプロット数は自由に変更できるので,確認したい周波数に応じて調整して下さい.
図11は,図7の回路を用いて,AC解析をした結果です.こちらは,trans解析とは異なり,横軸は周波数になっています.この周波数特性からも,やはり50Hzで大きく減衰されている事が分かります.また,50Hzから少し離れた周波数(40Hzや60Hz)でもある程度信号が減衰される事も読み取る事ができます.この周波数ごとの挙動の違いはtrans解析では確認しづらいので,AC解析を用いることをおすすめします.
解説に使用しました,LTspiceの回路をダウンロードできます.
LTspice8_015.zip
●データ・ファイル内容
Standard_filters.asc:図5の回路
Standard_filters.plt:図2を描画するファイル
Notch_filter_trans.asc:図7をtrans解析する回路
Notch_filter_trans.plt:図8を描画するファイル
Notch_filter_ac.asc:図7をAC解析する回路
Notch_filter_ac.plt:図11のグラフを描画ファイル
■LTspice関連リンク先
(01) LTspice ダウンロード先
(02) LTspice Users Club
(03) LTspice メール・マガジン全アーカイブs
(04) ◆LTspice電子回路マラソン・アーカイブs
(05) ◆LTspiceアナログ電子回路入門アーカイブs
(06) ◆LTspice電源&アナログ回路入門アーカイブs
(07) ◆IoT時代のLTspiceアナログ回路入門アーカイブs
(08) ◆オームの法則から学ぶLTspiceアナログ回路入門アーカイブs
(09) ◆LTspiceエデュケーショナル・ファイルで学ぶアナログ回路アーカイブs
(10) ◆LTspiceドット・コマンドから学ぶアナログ回路アーカイブs