プロセッサのADC解像度を上げるにはどうすればよいですか?


8

私は、12ビットの内部ADCを備えたAtmel SAM4S MCUを持っています。500 Hzのサンプルレートで16ビットの解像度を実現したいと思います。ADCへの入力は、かなり低い周波数(約20 Hzの最大周波数コンテンツ)であり、低ノイズ(1つの12ビットlsb RMS未満)です。

このプロセッサのADCで16ビットの分解能を実現するにはどうすればよいですか?

回答:


6

入力信号を意図的にオーバーサンプリングすることで、有効解像度を上げることができます。以下は、Atmelが提供するトピックに関するアプリケーションノートからのアイデアの概要です。

「オーバーサンプリングとデシメーション」の背後にある理論はかなり複雑ですが、この方法の使用はかなり簡単です。この手法では、より多くのサンプルが必要です。これらの追加のサンプルは、信号をオーバーサンプリングすることで実現できます。分解能nの追加ビットごとに、信号は4回オーバーサンプリングする必要があります。入力信号をどの周波数でサンプリングするかは、式3-1で与えられます。アナログ入力信号の可能な限り最良の表現を得るには、信号をこれだけオーバーサンプリングする必要があります。これは、サンプル数が多いほど、平均すると入力信号の表現が良くなるためです。

完全なアプリケーションノートは、http//www.atmel.com/images/doc8003.pdfから入手できます

特定のケースでは、12ビットADCから16ビットの解像度に相当する値を得るには、約8KHzでサンプリングする必要があります。

これが私がこの数に到達した方法です:

f_oversample_rate = f_current_sample_rate * (4 * (desired_bits - current_bits))
f_oversample_rate = 500Hz * (4 * (16 - 12))
f_oversample_rate = 500Hz * (4 * 4)
f_oversample_rate = 500Hz * 16
f_oversample_rate = 8KHz

これには、いくらかのノイズが必要ですか?ノイズの最大値が与えられました。これは十分ですが、最小値ではありません。

2
@SimonJenkinsはい、あります。アプリケーションノートのセクション3.2はノイズをカバーしており、ノイズレベル最低1 LSBでなければならないことを指定していますが、LSBを切り替えるにはそれが十分であるため、0.5LSBを少し超えるのが難しい最小値です。システムがその仕様を満たしていない場合は、ディザリングで人工ノイズを追加できます。
skrrgwasme 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.