« 多重帰還形フィルタのパラメータを変えたら発振した | トップページ | 基板が届いたのでADCLK914の実験を行う »

2021.12.27

Cosmo-Zのロックインアンプを復活

Cosmo-Zには昔、ロックインアンプの機能が備わっていました。

ここ数年のバージョンアップにより、ロックインアンプ機能は失われていましたが、復活させることができましたので、その動作例を紹介します。

次の図は正弦波が入力されている様子です。

Lockin1

この状態でコンソールから

/cosmoz.elf lockin iter=1000
/cosmoz.elf lockin 

とコマンドを打つと、ロックインアンプが動作して1000周期分の積和を取るようになります。

その結果、下の図のように表示されます。

Lockin2

これは、CH1の電圧が0.415053Vで、位相が35.483度であることを示しています。

 

どのくらい安定しているかを調べるため、20回動作させてCH1の振幅だけ見るようにしてみました。

i=0; while [ $i -ne 20 ]; do /cosmoz.elf lockin | grep -e Ampl1 ; i=$(expr 1 + $i); done

小数点以下4桁は安定していて5桁目も8~9でほぼ一定しています。

Lockin3

このロックインアンプの動作は、任意の入力チャネルの信号を見て周期を測り、同じ周期のSINとCOSをFPGAの中で作り出して掛け算し、それをN周期分平均するという動作をしています。

下の波形は茶色が入力波形、緑が検出した位相ゼロの点と位相が180°以上かの区別、青が三角関数生成用の位相(少しずれる)を示しています。

Lockin4

このような計算をFPGA内で行い、また、任意の長さの周期の分平均化できます。

|

« 多重帰還形フィルタのパラメータを変えたら発振した | トップページ | 基板が届いたのでADCLK914の実験を行う »

コメント

コメントを書く



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




« 多重帰還形フィルタのパラメータを変えたら発振した | トップページ | 基板が届いたのでADCLK914の実験を行う »