From c307df8f87ef437c73d9442123d448348a3229d9 Mon Sep 17 00:00:00 2001 From: Wan Ziyu Date: Tue, 24 Mar 2026 16:34:10 +0900 Subject: [PATCH] dsp: fixing discretisation progression to 'good enough' --- wip/dsp.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/wip/dsp.md b/wip/dsp.md index ebfef1c..d6e60ff 100644 --- a/wip/dsp.md +++ b/wip/dsp.md @@ -215,10 +215,9 @@ $S(\omega)$ はその内訳である。どの周波数の成分がどれだけ ### 5. 離散化 -フィルタでは、無限に高い周波数を切るかどうかは自由である。 -デジタルでは、最小の時間単位を決めなければならない。それより細かいものは全て捨てることになる。これで話が長くなる… - -と、時間の話から入ったが、離散化の軸は時間だけではない。振幅もである。 +フィルタはアナログにもデジタルにも存在する。 +アナログ空間では、振幅も時間も連続である。最小単位というものがない。なめらかに、切れ目なく続く。 +デジタル空間では、切れ目がある。 デジタルシステムが振幅を表現できる精度は、ビット深度によって決まる。 $N$ ビットのシステムは $2^N$ 個の離散的な振幅レベルを持つ。別にこういう二進数の話はしなくていいはずですが。 各サンプルの値は、最も近いレベルに丸められる。この丸め誤差を量子化ノイズと呼ぶ。 @@ -231,8 +230,11 @@ $N$ ビットのシステムは $2^N$ 個の離散的な振幅レベルを持つ ここで問題がある。前の節で述べたように、アナログ信号は原理的には無限大まで周波数成分を持ちうる。 しかし有限のサンプリング頻度では、表現できる周波数に上限がある。全てを保存することはできない。 -その上限を超える成分がサンプリング時に残っていると、問題が起きる。 -対策として、サンプリングの前にローパスフィルタで高周波成分を除去する。 +その上限を超える成分がサンプリング時に残っていると、消えるわけではない。 +折り返される。上限を超えた分だけ、反対側に折り返して、低い周波数の成分として現れる。 +サンプリング周波数が40kHzのとき、25kHzの成分は15kHzとして記録される。存在しないはずの周波数が信号に混入する。 +これをエイリアシングと呼ぶ。 +対策は、サンプリングの前にローパスフィルタをかけておくことである。 ではそのフィルタのカットオフ周波数をどこに設定するか。 それは用途次第である。例えば人間の聴覚はおよそ20kHzまでしか知覚できない。 @@ -247,7 +249,7 @@ $N$ ビットのシステムは $2^N$ 個の離散的な振幅レベルを持つ 人間の聴覚が20kHzまでなら、$F_s$ が40kHzを超えていれば聞こえる範囲はカバーできる。 余裕を持たせて、一般的には44.1kHzや48kHzが使われる。192kHzは人間以外の何かのためにあるのだろう。 定理が言うのはそれだけである。$F_s$ をどこに設定すべきかは用途が決める。 -$F_s/2$ を超える成分は再構成できない。これをエイリアシングと呼ぶ。 +$F_s/2$ を超える成分は再構成できない。それがエイリアシングである。 補足しておく。この離散化によって、線形時不変システムの性質が崩れるわけではない。 連続時間において積分であった畳み込みは、離散時間においては和になる。有限インパルス応答なら有限和、無限インパルス応答なら無限和である。