【情報技術の基礎知識】サンプリングデータ量、符号化速度、音声パケットの大きさの計算方法

## はじめに
ネットワークスペシャリストの学習内容整理のために投稿しています。
応用技術まで合格済みですが、馴染み無い分野を全て捨ててきたため、今回のように基本情報レベルのことも整理しています。
誤りや認識違いがありましたらご指摘いただけると嬉しいです。

## 目的
A/D変換[^1]、D/A変換[^2]を行うための標本化、量子化、符号化、およびデータ量や速度の計算方法の理解。
具体的には、以下のような問題を解くことを目的とします。

#### 問題①
音声を標本化周波数10kHz、量子化ビット数16ビットで4秒間サンプリングして音声データを取得した。
この音声データを圧縮率1/4のADPCMを用いて圧縮した場合のデータ量は何kバイトか。
ここで、1kバイトは1,000バイトとする。 【基本情報試験H28午前問題】

#### 問題②
CS-ACELP(G.729)による8kビット/秒の音声符号化を行うVoIPゲートウェイ装置において、パケットを生成する周期が20ミリ秒の時、1パケットに含まれる音声ペイロードは何バイトか。【NW試験H24午前2問題】

#### 問題③
帯域が4kHzの音声信号を8ビットでデジタル符号化して伝送する場合、標本化定理に従うと最低限必要とされる伝送速度は何kビット/秒か【NW試験H24午前問題】

## 各用語の解読
#### 前提
- A/D変換[^1]、D/A変換[^2]を行うためには、標本化、量子化、符号化の3つの作業が必要です。
![アナログとデジタル.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/380300/1b21f227-30bf-fd4d-9299-079e00ff9e33.png)


#### 標本化周波数とは
標本化(サンプリング)とは、連続したデータを一定の間隔を置いてサンプリングすることです。
そこで必要になるのが、標本化（サンプリング）周波数[^3]。

つまり、標本化周波数とは1秒間に必要なサンプリング数のことです。
標本化周波数10kHz[^4]を4秒間サンプリングとは、1秒間に10k回のサンプリングを4秒（10k*4)することを指します。

#### 標本化定理とは
標本化を行う時に必要なサンプリング周波数は、A/D変換時アナログ信号に復元するために必要な数である必要があります。
標本化定理では、周波数の2倍のサンプリング周波数が必要とされています。
つまり問題③のように帯域が4kHzまでの音声データを復元させるために必要なサンプリング周波数は8kHzとなります。
問題①にはすでに「標本化周波数10kHz」が導かれているので、この定理を適用する必要はありません。

#### 量子化と符号化とは
量子化とは、サンプリングしたアナログの値をデジタルデータに置き換えること。
符号化とは、デジタルの値を2進数に変換すること。

#### 量子化ビット数とは
A/D変換[^1]の際に、信号を何段階の数値で表現するかを示す値。
大きいほど元の信号に忠実なデータが得られるが、データ量はその分増大する。

量子化ビット数8ビットは、毎回のサンプリングで得られた信号強度を2<sup>8</sup>(256段階)の数で表現できる。
量子化ビット数16ビットになると、2<sup>16</sup>(65,536段階)で表現できる。

#### ミリ秒とは
1秒の1000分の1（0.001秒）。10<sup>-3</sup>秒。

#### 音声ペイロードとは
1パケットに含まれる音声のデータ量です。

##データ量の計算１（問題①の解答）
以下の問題を用いて解いていきます。
> 音声を標本化周波数10kHz、量子化ビット数16ビットで4秒間サンプリングして音声データを取得した。
この音声データを圧縮率1/4のADPCMを用いて圧縮した場合のデータ量は何kバイトか。
ここで、1kバイトは1,000バイトとする。 【応用技術者試験H28午前問題】

①標本の回数：10kHz（1秒間に10k回の標本）を4秒間
　10k回 * 4秒 = 40k回

②1回の標本にかかるデータ量（バイト）：量子化ビット数 / 8
　16ビット / 8 = 2バイト

③サンプリングにかかるデータ量（圧縮前）：① * ②
　40k回 * 2バイト = 80kバイト

④サンプリングにかかるデータ量（圧縮後）：③ * 圧縮率1/4
　80kバイト * 1/4 = 20kバイト


##データ量の計算2（問題②の解答）
以下の問題を用いて解いていきます。
> CS-ACELP(G.729)による8kビット/秒の音声符号化を行うVoIPゲートウェイ装置において、パケットを生成する周期が20ミリ秒の時、1パケットに含まれる音声ペイロードは何バイトか。【NW試験H24午前2問題】

①符号化速度（バイト）：8kビット/秒 / 8
　8kビット/秒 / 8 = 1000バイト/秒（1kバイト/秒 = 1 * 10<sup>3</sup>/秒）

②時間幅（秒）：20ミリ秒 * 1/1000
　20ミリ秒 * 1/1000 = 0.02秒(20 * 10<sup>-3</sup>秒)

③ペイロードのデータ量：① * ②
　1000バイト/秒 * 0.02秒 = 20バイト


##伝送速度の計算（問題③の解答）
以下の問題を用いて解いていきます。
> 帯域が4kHzの音声信号を8ビットでデジタル符号化して伝送する場合、標本化定理に従うと最低限必要とされる伝送速度は何kビット/秒か【NW試験H24午前問題】

①1秒間におけるサンプリング数（標本化周波数)：標本化定理により、最高周波数4Hkz * 2
　4kHz * 2 = 8k回/秒(8kHz = 8k回/秒 = 8000回/秒)

②1回の標本にかかるデータ量：符号化(量子化ビット数)
　8ビット

③サンプリングにかかる伝送速度：① * ②
　8k回/秒 * 8ビット = 64k回/秒


## おわりに
ありがとうございました。

## 学習に利用している教材
<a target="_blank"  href="https://www.amazon.co.jp/gp/product/B09DK5MZXJ/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B09DK5MZXJ&linkCode=as2&tag=cocolonifty00-22&linkId=fb23dcb5ac7c2efeaa81215667286b13"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=B09DK5MZXJ&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL160_&tag=cocolonifty00-22" ></a>　　<a target="_blank"  href="https://www.amazon.co.jp/gp/product/B09MTR2C4M/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B09MTR2C4M&linkCode=as2&tag=cocolonifty00-22&linkId=ac860c75c0c0a98e5389cf21663bc882"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=B09MTR2C4M&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL160_&tag=cocolonifty00-22" ></a>



[^1]: A/D変換：アナログをデジタルに変換すること。デジタル回線で音声などのアナログ情報を扱うために必要。
[^2]: D/A変換：デジタルをアナログに変換すること。アナログ回線で通信データなどのデジタル情報を扱うために必要。
[^3]: 周波数：波動や振動が、単位時間当たりに繰り返される回数のこと。
[^4]: Hz(ヘルツ)：周波数・振動数の単位。1ヘルツは、「1秒間に1回の周波数・振動数」と定義される。