3

私は、値を14ビットワードとして表すADCで信号をサンプリングするプロジェクトに取り組んでいます。値を8ビットワードにスケーリングする必要があります。一般的にこれを行うための良い方法は何ですか。ちなみに、私はFPGAを使用しているので、ソフトウェアソリューションではなく「ハードウェア」で使用したいと思います。また、一連のイベントが気になる場合は、アナログ信号のサンプル、サンプル値を14ビットワードで表し、14ビットワードを8ビットワードにスケーリングし、UARTを使用して8ビットワードをPCCOM1に送信します。

私はこれまでこれをしたことがありません。量子化レベルを使用することを想定していましたが、この操作に効率的な回路が何であるかはわかりません。どんな助けでもいただければ幸いです。

ありがとう

4

3 に答える 3

3

私はあなたが6つの最低解像度ビットを落としてそれを良いと呼ぶだけだと思いますよね?しかし、私は問題の説明を完全には理解していないかもしれません。

于 2012-03-10T08:38:15.187 に答える
3

必要なのは追加とシフトだけです。

val_8 = (val_14 + 32) >> 6;

+ 32正しい丸めを行うために必要です。省略できますが、省略した場合、信号でより多くの切り捨てノイズが発生します。)

于 2012-03-10T10:37:15.193 に答える
2

Paulのアルゴリズムは正しいですが、いくつかの境界チェックが必要になります。

assign val_8 = (&val_14[13:5]) ?  //Make sure your sum won't overflow
                         8'hFF :  //Assign all 1's if it will
                         val_14[13:6] + val_14[5];
于 2012-03-12T02:27:29.473 に答える