FPGAロックインアンプの誤差の原因は何?
FPGAで作るロックインアンプで、内部での演算が溢れないように積和計算の和の部分を48bitに拡張してみました。これによって周期が長い場合でもオーバーフローはしなくなり、最大で65536回の積算ができるようになりました。
下の図のようなノイズまみれの約1mVppの波形を測っても
5万回積算すれば0.4809~0.4812Vの間をいったりきたりして、計測値はだいたい3uVの範囲で落ち着くようになりました。
それで昨日の実験の続きをすることにしました。
ファンクションジェネレータが出す正弦波の位相を1度ずつずらしていって、どのくらいの精度で位相を読み取れるかという検証を行います。
結論からいうと昨日の結果と同じで、振幅が大きいほうが誤差が少なく、振幅が1mVの時は最大で6°もの誤差が出てしまうという結果でした。この誤差はファンクションジェネレータで1mVの正弦波を作って測っても、ファンクションジェネレータで1Vの正弦波を作ってアッテネータで1000分の1に落としても、振幅が1mVならば誤差は6°という決まった値となっていました。
なぜこうなるのか謎です。
| 固定リンク
コメント