量子化誤差とは?発生する原因や求め方をわかりやすく解説(量子化・丸め誤差・標本化・デジタル信号処理・計算式など)
音声、画像、センサー値、通信データなどをデジタルで扱う際には、連続的に変化する値を有限個の数値へ置き換えます。
この置き換えで避けられない差が量子化誤差です。
小さな誤差に見えても、測定機器の精度、音質、画像の階調、制御装置の安定性、演算結果の信頼性まで左右するため、仕組みを理解しておくことが重要でしょう。
この記事では、量子化誤差の意味、発生原因、計算式、丸め誤差や標本化との違い、誤差を小さくする方法を順に解説します。
量子化誤差の全体像

それではまず量子化誤差の基本的な考え方について解説していきます。
連続値を段階値へ置き換える処理
量子化とは、連続的に変わるアナログ信号の値を、決められた段階の数値へ割り当てる処理です。
温度が20.13度、20.14度、20.15度のように細かく変化していても、0.1度単位で記録する装置では20.1度や20.2度として扱われます。
このとき、元の値と記録された値の間に生じる差が量子化誤差です。
量子化誤差は故障や計算ミスではなく、有限の段階で情報を表すために発生する本質的な差といえます。
デジタル信号処理では、無限に細かな値をそのまま保存、伝送、演算することはできません。
そのため、何ビットで表現するか、どの刻み幅を選ぶかによって、扱える精度とデータ量のバランスを決めます。
量子化誤差の基本的な定義
元の入力値をx、量子化後の値をQxとした場合、量子化誤差eは次のように表せます。
量子化誤差 e = x − Qx
たとえば実際の電圧が2.37ボルトで、量子化後の値が2.4ボルトなら、誤差は−0.03ボルトです。
誤差の符号は、量子化後の値が元の値より大きいか小さいかによって変わります。
精度評価では符号を除いた絶対値を使う場面も多く、どれだけずれたかを確認します。
量子化誤差は入力値ごとに異なり、常に同じ方向へずれるとは限りません。
ビット数と分解能の関係
量子化の細かさは、ビット数と分解能によって決まります。
nビットで表現できる段階数は、2のn乗です。
8ビットなら256段階、12ビットなら4096段階、16ビットなら65536段階となります。
| ビット数 | 表現できる段階数 | 量子化の細かさ |
|---|---|---|
| 8ビット | 256段階 | 比較的粗い |
| 10ビット | 1024段階 | 映像や計測で利用される |
| 12ビット | 4096段階 | 測定や制御で使いやすい |
| 16ビット | 65536段階 | 高精度な音声や計測向け |
一般にビット数を増やすほど刻み幅は小さくなり、量子化誤差も抑えやすくなります。
ただし、保存容量、通信量、処理負荷、部品コストも増えるため、必要な精度に合わせた設計が必要です。
量子化誤差が発生する原因
続いては量子化誤差が起こる理由を確認していきます。
有限の値しか記録できない制約
アナログ信号は理論上、連続した無数の値を取れます。
一方でデジタル機器は、0と1の組み合わせで表せる有限個の値しか保存できません。
入力値が量子化レベルにぴったり一致しない限り、近い値へ寄せる必要があります。
この近似処理こそが量子化誤差の直接的な原因です。
たとえば0から10ボルトを100段階で区切る場合、1段階あたりの幅は0.1ボルトになります。
2.46ボルトという入力値を扱うとき、2.5ボルトへ丸めるのか2.4ボルトへ切り捨てるのかによって、誤差の内容が変わります。
丸め方法による誤差の偏り
量子化には、四捨五入、切り捨て、切り上げなどの方法があります。
最も近い量子化レベルへ割り当てる丸め処理では、誤差が正負に分かれやすく、平均的な偏りを抑えやすい特徴があります。
これに対して、常に切り捨てる方式では、量子化後の値が元の値を超えにくいため、誤差が一方向に偏る場合があります。
測定値や積算値を扱うシステムでは、誤差の最大値だけでなく、丸め方向による偏りも確認することが大切です。
偏りが小さな値でも、長時間の積算や大量データの集計では無視できない差になることがあります。
金融計算、電力量計測、在庫数の集計などでは、丸め規則を事前に統一する必要があるでしょう。
入力範囲と刻み幅の設計不足
量子化器が扱える入力範囲を広く取りすぎると、同じビット数でも1段階あたりの刻み幅が大きくなります。
たとえば0から1ボルトを12ビットで量子化する場合と、0から100ボルトを12ビットで量子化する場合では、後者のほうが細かな変化を読み取りにくくなります。
量子化誤差を減らすには、必要以上に広い測定レンジを選ばないことも重要です。
センサーの出力範囲、予想される最大値、異常時の余裕を確認し、適切なレンジを設定します。
信号が小さすぎる場合は、増幅してから変換することで、利用可能な量子化段階を有効に使えることもあります。
量子化誤差の計算式
続いては量子化誤差を求める計算式と具体例を確認していきます。
量子化幅の求め方
量子化幅は、入力範囲を量子化段階数で割ることで求めます。
最小入力値をVmin、最大入力値をVmax、ビット数をnとすると、量子化幅Δは次の式で表せます。
量子化幅 Δ = Vmax − Vmin を 2のn乗で割った値
0から5ボルトの範囲を10ビットで量子化する場合、段階数は1024です。
量子化幅はおよそ0.00488ボルトとなり、約4.88ミリボルトごとに値が区切られます。
実際の機器では最大コードの扱いによって計算上の分母が異なる場合もあるため、仕様書の定義を確認してください。
最大量子化誤差の求め方
最も近い段階へ四捨五入する均一量子化では、最大量子化誤差は原則として量子化幅の半分です。
最大量子化誤差 = Δ を2で割った値
量子化幅が0.01ボルトなら、最大誤差はおよそプラスマイナス0.005ボルトの範囲に収まります。
この値は理想的な量子化を前提にした目安です。
実際のA D変換器では、オフセット誤差、ゲイン誤差、非直線性、ノイズなども加わるため、総合的な精度は別途評価します。
量子化誤差と装置固有の誤差は分けて考えることが、正しい精度設計につながります。
具体例による計算手順
0から10ボルトの電圧を8ビットで測定し、入力が3.28ボルトだった場合を考えます。
8ビットは256段階なので、量子化幅は約0.0391ボルトです。
3.28ボルトをこの幅で割ると、およそ83.97段階に相当します。
最も近い84段階へ丸めると、量子化後の値は約3.281ボルトです。
したがって、量子化誤差は約−0.001ボルトとなります。
| 項目 | 計算内容 | 結果 |
|---|---|---|
| 入力範囲 | 0から10ボルト | 10ボルト |
| ビット数 | 8ビット | 256段階 |
| 量子化幅 | 10を256で割る | 約0.0391ボルト |
| 量子化後の値 | 84段階分 | 約3.281ボルト |
| 量子化誤差 | 3.28から3.281を引く | 約−0.001ボルト |
このように、計算式を使えば量子化によってどの程度の差が生まれるかを事前に見積もれます。
丸め誤差と標本化誤差の違い
続いては混同しやすい丸め誤差と標本化の関係を確認していきます。
丸め誤差との関係
丸め誤差は、数値を指定した桁数や表現形式に近似したときに発生する差です。
量子化誤差は、アナログ値を離散的なレベルへ変換する際の誤差であり、丸めによって発生することが多いため、広い意味では丸め誤差と関連します。
ただし、コンピューター内部の浮動小数点演算で発生する丸め誤差は、必ずしも信号の量子化と同じ場面で起こるわけではありません。
量子化誤差は信号の値を段階化する誤差、演算の丸め誤差は数値表現や計算過程での誤差として整理すると理解しやすくなります。
両者が同時に存在するシステムも珍しくありません。
たとえばセンサー信号をA D変換した後、そのデータを浮動小数点で処理すれば、変換時の量子化誤差と演算時の丸め誤差が重なります。
標本化との違い
標本化は、時間的に連続した信号から一定間隔で値を取り出す処理です。
音声を毎秒44100回測定する処理は、標本化の代表例でしょう。
標本化では時間軸が離散化され、量子化では振幅軸が離散化されます。
| 用語 | 対象となる軸 | 主な課題 |
|---|---|---|
| 標本化 | 時間 | 標本化周波数の不足 |
| 量子化 | 振幅や値の大きさ | 刻み幅による誤差 |
| 丸め | 数値表現 | 桁数や表現可能範囲 |
標本化周波数が不足すると、高い周波数成分が別の低い周波数成分として現れるエイリアシングが起こる可能性があります。
一方、量子化幅が粗いと、波形の縦方向のなめらかさが失われ、雑音のような成分が増えます。
量子化雑音との関係
量子化誤差が時間とともに変動すると、信号上では量子化雑音として現れます。
音声ではサーというノイズ、画像では階調の境目や色むら、計測では値の細かな揺れとして感じられることがあります。
量子化雑音は単なる誤差の大きさだけではなく、信号との相関や見え方、聞こえ方まで含めて評価する必要があります。
一定の信号に対して規則的な誤差が出ると、ランダムな雑音より目立つ場合があります。
そのため音響機器や画像処理では、あえて微小なノイズを加えて規則性を弱めるディザリングという手法が使われることもあります。
デジタル信号処理における影響
続いてはデジタル信号処理で量子化誤差が与える影響を確認していきます。
音声データへの影響
音声のデジタル化では、標本化周波数と量子化ビット数が音質に大きく関わります。
ビット数が少ないと小さな音の変化を表しにくくなり、静かな部分でノイズやざらつきが目立つことがあります。
16ビット音声は多くの用途で十分なダイナミックレンジを持ちますが、録音、編集、ミキシングなどでは24ビットが選ばれることもあります。
音声の量子化では、最大音量だけでなく、弱い信号をどこまで自然に表現できるかが重要です。
ただし高ビット化だけで音質が決まるわけではありません。
マイク、回路、録音環境、ノイズ対策も含めて確認する必要があります。
画像と映像への影響
画像では、各画素の明るさや色を量子化して保存します。
階調数が少ないと、本来はなめらかに変化する空や影の部分に帯状の境目が見えることがあります。
この現象はバンディングと呼ばれ、グラデーションが多い映像で目立ちやすい特徴があります。
8ビットの画像は各色256段階ですが、10ビットでは1024段階となり、より細かな階調表現が可能です。
映像編集やカラーグレーディングでは、処理の途中で情報を失わないよう、十分なビット深度を確保することが求められます。
圧縮処理も加わる場合は、量子化に伴う劣化と圧縮ノイズを切り分けて考えるとよいでしょう。
制御と計測への影響
産業機械、ロボット、車載機器、医療機器では、センサー値をデジタル化して制御に利用します。
量子化幅が大きすぎると、小さな変化を検出できず、制御出力が段階的に変化することがあります。
結果として、目標値の周辺で振動する、微調整ができない、検査値のばらつきが大きく見えるといった問題につながる可能性があります。
制御用途では、必要な測定分解能、ノイズの大きさ、制御対象の応答速度を合わせて検討することが重要です。
分解能だけを高くしても、センサー雑音が大きければ有効な情報は増えません。
現場では実測データを用いて、量子化幅が要求精度に対して十分小さいかを判断します。
量子化誤差を抑える設計方法
続いては量子化誤差を小さくする実践的な方法を確認していきます。
適切なビット数の選定
最も基本的な対策は、必要な分解能に見合うビット数を選ぶことです。
要求される最小検出量が0.01ボルトなら、量子化幅はそれより十分小さく設定する必要があります。
安全率を考慮し、量子化誤差だけで許容誤差を使い切らないように設計します。
必要なビット数は、入力範囲を必要分解能で割り、その段階数を表現できるかで見積もれます。
過剰な高ビット化はコストや処理量を増やすため、仕様に応じた選定が現実的です。
高精度計測では、変換器の有効ビット数も確認すると安心でしょう。
入力レンジと信号レベルの最適化
信号の振幅が変換器の入力範囲に対して小さすぎる場合、使われる量子化段階が少なくなります。
この状態では、カタログ上のビット数が高くても、実際に得られる分解能は低下します。
信号を適切に増幅する、測定レンジを切り替える、オフセットを調整するなどの方法で、利用できるコード範囲を広げられます。
ただし、増幅しすぎると入力飽和が起こり、波形の一部が失われるおそれがあります。
通常値だけでなく、最大値、最小値、突発的な変動を含めてレンジを決めることが大切です。
フィルタリングとディザリングの活用
標本化前に不要な高周波成分を除くアンチエイリアスフィルタを使うと、標本化に伴う問題を抑えやすくなります。
量子化誤差そのものを消す処理ではありませんが、変換後の信号品質を安定させるうえで有効です。
また、音声や画像ではディザリングにより、量子化誤差による不自然な規則性を目立ちにくくする方法もあります。
誤差の数値を減らせない場合でも、誤差が知覚される形を整える工夫は可能です。
用途によって最適な方法は異なるため、計測精度を優先するのか、聴感や見た目を優先するのかを明確にします。
量子化誤差のまとめ
量子化誤差とは、連続的なアナログ値を有限段階のデジタル値に置き換えることで発生する差です。
四捨五入による均一量子化では、最大誤差は原則として量子化幅の半分が目安になります。
量子化幅は入力範囲とビット数で決まり、ビット数が多いほど細かな値を表現しやすくなります。
一方で、標本化は時間軸を離散化する処理であり、量子化とは対象が異なります。
丸め誤差も関連する用語ですが、演算時の数値表現に関する誤差まで含むため、発生場面を分けて考えることが重要です。
量子化誤差を適切に管理するポイントは、必要な分解能に応じたビット数、入力レンジ、丸め方法を選ぶことです。
音声、画像、通信、測定、制御のいずれでも、量子化の仕組みを理解しておけば、デジタルデータの精度と品質をより的確に判断できるでしょう。