« SCPIを使ってKeysightのファンクションジェネレータを自動操作 | トップページ | DHCPが使えない環境でも使える「IoT機器の管理者画面」を作る »

2022.03.23

ZYNQで作るロックインアンプ、0.1uVへの挑戦

ZYNQで作るロックインアンプでどこまで小さな電圧を測定できるかにチャレンジしています。

EDU33212Aの自動コントールができるようになったので、1mV~1000mVまでの正弦波を作り、それを抵抗で1/1000にしてロックインアンプに入れてみました。

下の図は横軸がファンクションジェネレータの出力電圧(を1000分の1にしたもの)、縦軸はロックインアンプの出力。

Lockin_1000uv

非常に綺麗な直線に見えるのですが、(出力電圧-入力電圧)のグラフを作ってみると、結構凸凹しているのが見えてきました。

Lockin_1000uv2

特に、上のオレンジの矢印の部分で誤差の傾向が変わるのが見えます。

この電圧を過ぎるときにファンクションジェネレータからカチカチと音が聞こえてくるのです。おそらく、ファンクションジェネレータの中でアッテネータのリレーが切り替わっているのでしょう。

なるほど、市販のファンクションジェネレータは幅広い電圧範囲で高いS/Nを確保するため、DACの出力値に振幅を乗算しているのではなく、できるだけDACの振幅は大きく取って複数のアッテネータを切り替えてダイナミックレンジを確保しているのでしょう!!

だから、切り替えポイントでは2~3mVの誤差が生じることがあるのでしょう。今回の実験でその切り替えが見えてしまいました。

 

このファンクションジェネレータでは、0~1000uVの範囲でフラットで正確な出力振幅を出すのは難しいので、0~100uVの範囲に絞って検証を続けるしましょう。

電圧を変更した後は0.5秒ほど待たないと電圧が安定しないようなので、次のグラフはゆっくりとスキャンして取ってみました。

 

ゼロに近いところが_/という形になっているのが見えますでしょうか?本来ならば0Vを入れたら0Vを出さなければならないのですが、そうなっていません。

Lockin_100uv_3v3trig_20220324021601

今回も(出力-入力)の誤差グラフを作ってみました。

Lockin_100uv

オレンジのところがリレー切り替えポイントです。横軸は印加電圧、縦軸は誤差です。

全体的に誤差が+のほうに出ていて、特に0~10uVくらいのときに誤差が大きく出てしまっているのがわかります。

つまり、0Vを入れても0Vと言わない計測器になってしまっています。

 

この原因ですが、ロックインアンプの参照信号としてファンクションジェネレータからのトリガ信号を使っていたのですが、この振幅が3.3Vもあるからです。3.3Vの振幅をCosmo-Zの別のアナログ入力に入れると、クロストークして信号の入力に回り込んでしまいますが、クロストークの減衰が-120dBあったとしても3.3uVのノイズとして乗ってしまいます。

ロックインアンプでuVオーダーの信号を測るときに、Vオーダーの信号が近くにあってはいけなかったのです。

トリガの代わりにファンクションジェネレータのもう一つのチャネルで振幅10mVくらいのマイルドな信号を作り、リファレンス入力としたところ、見事にゼロ付近の誤差が消えました。

Lockin_100uv_lowtrig

誤差グラフを取ってみると、計測値の誤差は約0.4uV以内に収まっていることがわかります。

Lockin_100uv_lowtrig_err

0~10uVの範囲での誤差も無視できるほどになったので、さらに低いレンジを目指します。

EDU33212Aの最小振幅は1mVなので、抵抗のアッテネータを1/10000にして、0.1uVの信号まで出せるようにします。

0.1uVの信号って、1000倍しても下の青い波形なんです。人間には全く見つけられない。

01uv

でも積分計算するとホワイトノイズや相関のないノイズなら打ち消しあって信号の振幅が見えてきます。

0.1uV~1.5uVの正弦波を入れてみた結果です。

Very_low_voltage

 0.4V以下ではプラス方向の誤差が生じてきてしまっていますが、0.4V以上では概ね直線に乗っているのがわかるかと思います。

つまり、入力電圧が0.4uV以上あれば正確に振幅が測れるようになりました。

 

さて、この様子を動画に残そうとしたら波形が不自然にピクピクと動ていていたのです。

この状態で誤差のグラフを作ってみると酷い有様です。

Wlan

原因は動画を撮ろうとしてノートPCでリモートデスクトップ接続したため、無線LANの電波を拾ってしまったことが原因のようでした。

無線LANのノイズは50usくらいの短い時間に入るのですが、繰り返し周期とは関係なしに入ります。積分しても0になりません。長時間平均しても0になりません。だから、ノイズとして残ってしまいます。

初段のOPアンプでμVオーダーの信号を1000倍に増幅しているので、こういったものも拾ってしまうのかもしれませんね。

 

|

« SCPIを使ってKeysightのファンクションジェネレータを自動操作 | トップページ | DHCPが使えない環境でも使える「IoT機器の管理者画面」を作る »

コメント

コメントを書く



(ウェブ上には掲載しません)




« SCPIを使ってKeysightのファンクションジェネレータを自動操作 | トップページ | DHCPが使えない環境でも使える「IoT機器の管理者画面」を作る »