科学の箱

科学・IT・登山の話題

IT

PCMについて知っておくべき最低限のこと

投稿日:

PCMはPulse Code Modulationの略である。日本語ではパルス符号変調と呼ばれる。PCMはアナログで流されている音楽をデジタル化するために使用される。

PCMについてまずこの単語を分解して意味を探ってみる。

パルス=パルス信号は一定時間のみ続く電気信号である。この信号はOn/Offの2つの状態がある。

例として歩行者用の信号を使ってみる。歩行者用の信号は青と赤二つの状態がある。信号の設定にもよるが例えば青をオンの状態で20秒、赤はオフの状態で1分とした場合、下記のようなパルス信号図で表すことができる。

 

 

 

心臓は定期的に鼓動を打っている。この鼓動を目で見えるようにしたのが心電図である。この心電図もパルス信号として表現される。

 

 

 

さて次の”符号”である。これはある信号を別の形式を持つ信号に変換することを意味する。数学では関数とも呼ばれる。肝心なことは双方向であるつまりA→符号化→Bとした場合、B→符号化の逆→Aとすることが可能である。

関数を買い物に例えて説明してみる。八百屋にいって大根、トマト、ニンジンを買うとする。このとき[八百屋]という関数を考えると、この[八百屋]は入力が[お金]で出力が[野菜]になる。

100円→[八百屋]→大根

150円→[八百屋]→トマト

50円→[八百屋]→人参

最後の”変調”であるがこれは少々説明が難しい。通信用語で説明すると、波である信号を送るときに、搬送波という基本となる波に乗せて送る。この波に乗せる方法を変調と呼ぶ。

例えば赤青黄色の3つの組み合わせでアルファベットABCを意味するとする。送る人と受け取る人の間にはベルトコンベアがあり、ここに白いボールを載せておく。

 

 

 

 

このボールを赤青黄のいづれかに塗ることで、アルファベットのABCを使ったやり取りができるようになる。この塗る作業を変調と呼ぶ。

 

 

 

 

 

さてここまでを総合するとパルス符号変調は、”何らかの信号”を”変調”という方法によりパルス信号に変換することを意味することが分かる。ここで”何らかの信号”がアナログ信号である音になる。

アナログ信号は連続した波である、それに対してデジタル信号はとびとびの数字になる。大雑把に説明するとアナログ信号は0, 0.1, 0.2, 0.3,,,1.0,,,となるのに対して、デジタル信号は0,1,2,3,,,ととびとびになる。このためにアナログ信号をデジタル信号に変換するときには一番近い値にマッピングをする必要がある。四捨五入ルールでマッピングをするのであれば, 0~0.4は0、0.5~1.4は1になる。これをサンプリングと呼ぶ。

サンプリングするときに大事なのがサンプリングするタイミングと細かさである。これはそれぞれ横軸と縦軸に当てはまる。

サンプリングするタイミングはHzという単位であらわされ、サンプリング周波数と呼ばれる。たとえば10Hzであれば一秒間に10回サンプリングを行う。下記に代表的になサンプリング周波数を記載しておく。

昔の電話 8kHz
IP電話 16kHz, 32kHz
CD 44.1kHz

サンプリング周波数は、送られる音の最高周波数に依存する。これは染谷の定理とよばれ、送られる音がもつ最高周波数の2倍でサンプリングをすればアナログ <-> デジタルで変換できることが知られている。たとえば電話は3.4kHzが最高周波数であるのでその2倍強である8khzで十分である。

もう一つのパラメータであるサンプリングの細かさは”量子化”と呼ばれ、音を分ける細かさである。これは2進数で表される。たとえば1ビットであれば2段階であるので、音があるか、ないかになる。電話は8bitであるので256段階に音が分けられている。CDは16bit(65,536段階), ハイレゾリューションは24bitである。

細かいほどいいではないかという話があるかもしれないが、人間が聞き分けることが音には限界があるので16bitあれば十分である。

 

メタ情報

inarticle



メタ情報

inarticle



-IT
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

RemoteFPingの設定

SmokePingで拠点間のping情報を集約する方法は2通りある。一つはslaveモードを使う方法。もう一つはRemoteFPingを使う。 Slaveは以前設定をしたことがある。不都合としては3点 …

no image

TypeError: $(…).live is not a function

ドットインストールでRuby on Rails 3.0を勉強していたところ、一か所どうしてもエラーが消えない部分があった。 メッセージは.liveが関数ではないといっているのだがタイポも見つからず、ド …

no image

Expireしていないメディアを再利用する手順

Networkerではバックアップしたデータに保管期限を設定できる。これをExpireやBrowsibleと呼んでいる。保管期限は会社で決められたバックアップポリシーに従うことが多い。公的なコンプライ …

no image

ブランチを切り替えるタイミングについて調べる

OTRSシステムのチケットをトピックとしてgitにブランチを作って変更をする際の手順について確認してみる。 ここでは架空のOTRSチケット OTRS#25645OTRS#25645についてフィックスす …

no image

muninでSNMPを監視する

muninでSNMPを監視するための手順をまとめておく。 muninはエージェントを使って対象機器を監視するがそれ以外にSNMP経由での監視もできる。エージェントがなくてもほとんどの機器ではSNMPは …

2017年8月
« 7月   9月 »
 123456
78910111213
14151617181920
21222324252627
28293031  

side bar top



アーカイブ

カテゴリー