デジタル信号処理の基礎
16ビットの固定小数点のデータと係数の積を32ビットで表し、その積を256個たし合わせるFIRフィルタの計算がある。途中で桁あふれが起こらないことを保証するのに必要な、アキュムレータのビット数の最小値として正しいものはどれか。
- A32ビット
- B33ビット
- C40ビット
答えと解説を見る
正解:C. 40ビット
32ビットの積を2個足すと値の大きさは最大で1ビット分、256 = 2⁸ 個足すと最大で8ビット分増えます。そのため、32 + log₂256 = 32 + 8 = 40 ビットのアキュムレータなら、最悪の場合でも桁あふれしません。代表的な16ビットの固定小数点のDSPには、32ビットの積に8ビットのガードビットを加えた40ビットのアキュムレータをもつものがあります。最後に結果を16ビットに戻すときは、丸めと飽和演算で範囲に収めます。
- A. 積と同じ32ビットでは、2個足しただけで桁あふれすることがあります。
- B. 1ビットの余裕では、2個の積の和までしか保証できません。
- C. 正しい。256 = 2⁸ なので、8ビットのガードビットを加えた40ビットです。