カラクリ探偵団 08 数値と有効桁数
カラクリ探偵団が4カ月ぶりに復活します。日常生活では重さや長さなどの測定値は2桁精度で充分で、3桁精度以上になると精密と呼ばれ高価になるという話をしたことを覚えていらっしゃるでしょうか?
今回は「数値と有効桁数」についてB2の独断と偏見に基づく説明をします。
有効桁数の考え方
B2は小学校算数で「100gのリンゴと55.3gのミカンを合計した重さは何gでしょう?」という理解に苦しむ問題をずっと一生抱えてきました。優等生は「そんなの簡単!155.3gです。」みたいに答えると思いますが、問題の背景にある何かが気になってしかたありませんでした。
そこでデジタル計算に必要な有効桁数について考えてみました。一般に高精度計算用に精度保証付き数値演算や多倍精度演算が利用されています。しかし、ゆらぎやあいまいさの観点からもっと根源的な「量子化の丸め操作=2進数小数点以下の確率分布を考慮した有効桁数」を考えてみました。
加算演算と乗算演算では考え方が異なる!
現在の電子計算機ハードウェアは加算と乗算のみで、それらの組合せで複雑な関数演算をおこなっていることを説明しました。
下図に2つの数値aとbの加算・乗算時の計算精度を示します。有効桁数と絶対値をパラメータとして「数値aに対して数値bが…」という相対条件で分類してみました。加算でも乗算でも交換則が成り立ち、数値aと数値bが加算時には同程度の値(絶対値)であればある程度の演算精度が得られます。同様に数値aと数値bの乗算時には有効桁数が同程度であれば、ある程度の精度が得られます。
しかし (a)加算処理では有効桁数よりも絶対値大小が演算精度劣化の要因となり、(b)乗算処理では絶対値大小よりも有効桁数が演算精度の劣化に繋がることがわかると思います。

加算はリニア軸/乗算は対数軸
B2独自の考え方ですが、「数値の意味」を下図で説明します。(a)はデジタル信号の有効桁数(仮数部のビット長)に相当し、LSB以下に量子化ノイズの確率密度分布があるとしたものです。ここで仮数部精度はS/Nに対応した数値精度で、指数部は2進LSBに相当する数値有効桁数末尾(絶対値基準点)です。そのため小数点以下の曖昧さ分布は四捨五入処理時σ^2=12(±LSB/√12)の拡がりを持ちます。
(補足)2進LSB以下の拡がりを複素確率密度分布として応用したものが、量子計算機の量子ビットに関連するとB2は勝手に考えています。
ただし量子ゲート計算機の場合、量子ビットを2進数で数値を積み上げるような電子計算機由来の固定概念は通用せず(MSB側にも当然誤差の拡がりが混入します。)、新しい数学が必要になるとも考えています。
(b)は「加算乗算マップ(仮称)」で、加算演算をリニア軸で乗算演算を対数軸(対数加算)で捉えたものです。この図から前図の絶対値大小と有効桁数大小で2つの数値演算の支配関係が変化することが直感的に理解できます。

これでB2の積年の有効桁数に関する悩みが解決したように思います。
有効桁数の大きな演算
B2はサラリーマン時代に特殊な信号処理技術に携わってきました。ハードウェアで200dBを超える高ダイナミックレンジシステム(デジタルフィルタや周波数解析器など)を開発してきました。
世の中で高ダイナミックレンジ(有効桁数の大きな)の計算が必要なのは、例えばファインマンダイアグラム,(送受信兼ね備えた)高性能高感度フェーズドアレイレーダーや潜水艦ソナー,ボイジャーなどの遠距離通信,(受信のみの)大口径天文観察システムなどが考えられます。
後ほど「信号処理入門」で詳しく説明しますが、「フィードバックを持つ伝達関数,極配置」についてアナログフィルタでもデジタルフィルタでも、ランダムなシステムノイズよりも大きな系統誤差(誤差電圧や量子化ノイズ)が混入することでシステムが不安定になります。量子化ノイズを抑えるにはフィードバック係数精度を上げる必要があり、アナログ回路の電源電圧アップや高精度・高S/N信号処理回路設計,デジタル回路では内部ダイナミックレンジ拡大(高ビット長)に繋がります。
https://bookway.jp/modules/zox/index.php?main_page=product_info&products_id=1725&cPath=
いいなと思ったら応援しよう!
これからも応援しています。