【ITニュース解説】From Analog to Digital: Signal Simulation
2025年09月09日に「Dev.to」が公開したITニュース「From Analog to Digital: Signal Simulation」について初心者にもわかりやすいように丁寧に解説しています。
ITニュース概要
音などのアナログ信号がデジタルデータに変換される仕組みを解説。連続的な波を一定間隔で測定し(標本化)、その値を段階的な数値に近似し(量子化)、最後に0と1の2進数に変換(符号化)する。これがデジタル化の基本である。
ITニュース解説
私たちの周りにある音や光といった情報は、本来「アナログ信号」と呼ばれる形で存在している。アナログ信号とは、時間とともに滑らかに、連続的に変化する波のような情報である。例えば、人の声は空気の振動という連続的な波として伝わる。しかし、コンピュータはこのような滑らかな情報をそのままの形で扱うことができない。コンピュータが理解できるのは、「0」と「1」の組み合わせで表現される「デジタル信号」だけである。デジタル信号は、アナログ信号とは対照的に、とびとびの不連続な値を持つ。そのため、マイクで録音した音声やカメラで撮影した映像をコンピュータで保存したり処理したりするには、アナログ信号をデジタル信号に変換するプロセスが不可欠となる。この変換は「A/D変換(Analog to Digital Conversion)」と呼ばれ、大きく分けて「サンプリング(標本化)」「量子化」「符号化」という三つの主要なステップで構成される。
アナログ信号をデジタル化する最初のステップは「サンプリング(標本化)」である。これは、時間的に連続しているアナログ信号を、一定の時間間隔で区切り、その瞬間ごとの値を点として抜き出す作業に相当する。例えるなら、滑らかに動く物体の様子をパラパラ漫画にするために、一瞬一瞬を写真に撮るようなものである。この写真を撮る頻度、つまり1秒間に何回値を測定するかという回数を「サンプリング周波数」と呼び、単位にはヘルツ(Hz)が用いられる。サンプリング周波数が高いほど、元の滑らかな波形をより細かく、忠実に捉えることができるため、デジタル化された後の品質は向上する。例えば、音楽CDでは1秒間に44100回(44.1kHz)という非常に高い周波数でサンプリングが行われており、これによって人間の耳にはほとんど区別がつかないほど高音質なデジタルサウンドが実現されている。ただし、サンプリング周波数を高くすればするほど、データ量は増大するという側面もある。元の信号を正しく再現するためには、その信号が持つ最も高い周波数の少なくとも2倍以上のサンプリング周波数が必要であるという「サンプリング定理(ナイキストの定理)」が知られており、適切な周波数の設定が重要となる。このサンプリングのプロセスを経ることで、時間的に連続だった波は、時間的にとびとびの値を持つ点の集まりに変換される。
サンプリングによって時間は離散的な点になったが、各点の値(振幅)はまだアナログ的な、非常に細かい数値のままである可能性がある。次のステップである「量子化」は、このサンプリングされた各点の値を、あらかじめ定められた有限個の段階的な数値に割り当てる処理である。これは、測定した身長を「175.342cm」のような精密な値ではなく、「175cm」や「175.5cm」といった、決まった目盛りの最も近い値に近似する作業に似ている。この目盛りの細かさを決定するのが「ビット数」である。ビット数は、値を表現するために使用する0と1の桁数を意味し、ビット数が多いほど、より多くの段階を表現できる。例えば、3ビットであれば2の3乗で8段階、4ビットであれば2の4乗で16段階、CDで使われる16ビットであれば2の16乗で65536段階もの細かいレベルで値を表現することが可能になる。ビット数が多く、量子化の段階が細かくなるほど、元の信号の振幅をより正確に表現できるため、音の大小の細かなニュアンスなどが失われにくくなり、品質は向上する。一方で、ビット数が増えれば、それだけ1つのサンプルを表すためのデータ量も増加することになる。この量子化のプロセスにより、サンプリングされた点の値は、決められた段階の中から選ばれた数値へと変換され、値の面でも離散的になる。
サンプリングと量子化を経て、元のアナログ信号は「どの時刻に、どの段階の値を持つか」という、とびとびの数値の集まりに変換された。最後のステップは「符号化」である。これは、量子化によって得られた段階的な数値を、コンピュータが直接的に扱うことができる「0」と「1」の羅列、すなわち2進数のコードに変換する作業である。例えば、4ビットで量子化した場合、0から15までの16段階の数値が得られるが、符号化ではそれぞれの数値が4桁の2進数に置き換えられる。数値「0」は「0000」、数値「5」は「0101」、数値「15」は「1111」といった具合である。こうして、すべてのサンプル値が対応する2進数のコードに変換される。そして最終的に、時間順に並んだ各サンプルの2進数コードをすべて一直線に連結することで、一つの連続した0と1のデータの流れである「ビットストリーム」が完成する。このビットストリームこそが、コンピュータ上で音声ファイルとして保存されたり、インターネットを通じてストリーミングされたりするデジタルデータの実体である。このようにして、私たちの耳に聞こえる連続的な音の波は、サンプリング、量子化、符号化という段階的なプロセスを経て、コンピュータが処理できる離散的なデジタルデータへと姿を変えるのである。