なめらかな入力(例えば 0.3)を、0 か 1 だけの出力で表す。秘密は「誤差を捨てずに溜める」こと。入力を誤差タンクに足していって、1 を超えた瞬間に 1 を吐き、溢れたぶんだけ残す。これを繰り返すと、1ビットしか無いのに、ならせば(平均すれば)入力に戻る。これが ノイズシェイピング=ΔΣ変調の素の姿だよ。
「素の丸め(OFF)」に切り替えると、タンクを使わずに毎回ただ近いほうへ丸める。一定の 0.3 は毎回 0 に丸まって平らなまま——だから OFF だとパタパタしない。OFF=誤差を持ち越すループ(ΔΣの心臓)を外した状態で、ΔΣをOFFにするのと同じこと。Δ(差分)もΣ(積分)もそのループの中の操作だから、OFFはそれを止めて、量子化器だけを裸で残す、ということだよ。← ほかのツール
右の図はその結果:青の階段=出力の 0/1、灰の破線=入力、橙=1ビット列を窓ぶんならした移動平均による簡易復元(低域だけ取り出す)。出力は 0 か 1 だけなのに、抜いた誤差を捨てず次へ回すから、平均すれば入力にそろう。下の「計算」欄に、いま図のどの数を足し引きしているかが 1 ステップごとに出るよ。
式にするとこの2つ ──
・作る側(青いタンク):残り(今) = 残り(前) + 入力 − 出力。前のステップの残りが次の水位になって、誤差が代々つながっていく。
・読む側(橙の簡易復元):簡易復元 = 直近 win 個の出力の平均(移動平均=ならし)。窓ぶん平均する都合で、約 win/2 サンプルだけ遅れる。
※ この復元は単純な移動平均ローパスで、教材用の簡易版です。実際の ΔΣ ADC/DAC では、もっと急峻なローパス/デシメーションフィルタを使います。
※ このデモはディザなしなので、一定入力では 0.50 → 0101…、0.30 → 0010010… のような周期的なビット列が出ます。これはバグではなく、低次・ディザなしΔΣの idle tone / limit cycle という性質。実機では高次化・ディザ・アナログノイズで目立ちにくくします。