11-19-2019 01:39 AM
ここ最近、LabVIEWでロックインアンプ作れないですか?というお問い合わせを良く聞きます。
(いや、かなり昔からずーっとそんな話はあった気がします)
ロックインアンプとは、ノイズ成分の大きい信号を検出する際に、対象となる測定信号が周期信号であれば同じ周期の参照信号と比較することで高感度で計測ができますよ、という手法で同期検波とか位相検波と呼ばれたりします。
やっていることは、測定信号に参照信号を乗じて、フィルタかけるだけなのでソフトウェア的に処理すればDAQやデジタイザを使っても実装ができるのではないか?と思う方が多いようでちらほらそのような問い合わせを受けます(そして私もずっとそう思っていました)
という訳でやってみました。位相検波のアルゴリズム部分はこんな感じです。
サブVIになっているので細かいところは隠れていますが、参照信号との積と、90度位相回した参照信号の積をそれぞれ取ってローパスフィルタでDC成分だけ抽出して振幅と位相情報に変換しています。
後は、測定信号と参照信号さえ計測ができてしまえば、このアルゴリズムを走らせるだけで完成です。
たまたま手元にあったPXI-6259 (ちょっと古い)を使って、アナログ出力チャンネルを2ch使って信号を出力し、それを直接アナログ入力で計測して評価してみました。
(1)ノイズ無し、参照信号:正弦波の場合
出力信号は↓こんな感じで、1MS/sのアップデートレートにて1kHzの正弦波を100mVで出力し、参照信号も同じ周波数の正弦波です。
計測結果が↓こちら。サンプリング速度は500kS/s, 計測範囲は±5Vで計測しています。
上のグラフが振幅で±20μVくらいの揺らぎで計測ができています。位相も結構安定してます。(赤い線は移動平均です。)
(2)ノイズ無し、参照信号:矩形波の場合
参照信号が矩形波でも正しく計測ができました(同じく100mVの正弦波です)
(3)ノイズあり、参照信号:正弦波の場合
キレイな信号が正しく測定できるのは当たり前ということで、ノイズまみれの信号が正しく計測できるか試してみました。
出力してみたのは↓こんな信号で、5Vrmsのホワイトノイズに埋もれた100mVの正弦波を出力してみました。(その他の条件は先ほどと同じです)
その計測結果が↓こちら
±5mV程度の誤差で100mVの信号を検出することができているのが確認できました。
更に測定信号の位相を90度動かしてみると
位相も正しく90度動いていることが確認できました。
CPUで連続的に処理ができる範囲内なので、参照信号の周波数としてはkHzオーダーくらいまでになりますが、USB
接続で小型化したり、PXIで多チャンネル化したりといった普通のロックインアンプには実現できないアプリケーションがこの方法で実現できそうです。
今回使ったサンプルはダウンロードできますので、興味があれば試してみてください。
ハードも借りたい!!という場合はデモ用の機材の貸出も行っていますので是非弊社までご依頼下さい。
デジタイザを使えば、より高い周波数帯域でも計測が可能になるのですが、データ量が多いのでどうするかが課題です。
次回はデジタイザを使ったロックインアンプの実装にチャレンジしてみたいと思います。
この記事を書いた人
鴨志田 敦史 (1979年11月生まれ、典型的なB型)
Sales本部 第二営業部 アカウントマネージャー 先端科学研究領域担当
(兼)理化学研究所 客員研究員
大学では磁性、大学院では表面物理と物性物理を学びつつ同じ銅ガスケットを何回使いまわせるかに挑戦していたが、その時に出会ったLabVIEWの素晴らしさに惹かれてNIに入社。
LabVIEWを使ったオンラインゲームの自動レベル上げなどLabVIEWの可能性を探求しています。
NI非公認ブログ ⇒ http://labview.seesaa.net/
E-mail:atsushi.kamoshida@ni.com
12-25-2020 11:19 AM
質問です。
位相検波のlower fcのとこの作成の仕方を教えていただきたいです。
あとextract ref のところも知りたいです。お願いします。