2ntブログ

プログラマに必要な基礎知識(4) 音のデジタル化の仕組み

今回は音の数値データ化、すなわち「デジタル信号」化の話です。

とはいっても「音」ってなんぞや?という基本が分かってないと理解不能になるので、「音」の仕組みをまず述べます。
次に「音」を電気信号に変える、あるいは電気信号化された「音」を人間の耳に聞こえる形に戻す最も簡単で古い方法である「アナログ」信号について。
最後に「アナログ」信号を元に「デジタル」信号にする仕組みを述べます。



1.音とは?
音というのは「空気の振動」です。
空気が動いたり、あるいは密度が変わったりしてもそうですが、それが人間の耳に「音」として聞こえるのです。
人間の耳の中には「鼓膜」という膜が張ってるのは、誰でも知ってると思います。
この膜で空気の「振動」を感じ取って脳に「音」として伝えてるわけですね。
なのでこの「鼓膜」が揺れなければ、人間の耳には「音」は聞こえません。
四方を紐などで固定されたタイプの旗を思い浮かべて下さい。
これに風が当たれば旗は揺れますのでパタパタと「音」がしますが、風がなければ、あるいは旗を揺らすほどの強い風が吹かなければ音はしません。
また旗を揺らす程の風でも、ずーっと同じ方向にずーっと同じ強さで吹いていればそれほど「音」はしません。
自然の風ではまずあり得ませんが、ずーっと同じ方向にずーっと同じ強さで吹けば、旗が風に押された状態で固定されてしまう=揺れない=振動しないので「音」にならないわけです。

さて、音には「大きさ」と「高さ」があります。
音の大きさは、振動の大きさと比例します。
大音量で音楽を流すと、スピーカーが大きく振動するのが見えると思います、カバーとかされてないで直接スピーカー自体が見えるような、高級オーディオのアホみたいに高いスピーカーとかじゃないと見えませんがw
逆に小さい音で音楽を流すと、スピーカーが揺れているのが見えません、音はもちろん聞こえますが。
このように、振動の幅が大きいほど「大きな」音として聞こえます。
人間が発する音=声なんかもそうで、大きな声を出す前に息を思いっきり吸い込むのは、空気の振動を大きくするために、声を出す時に口から出る空気の量を多くする為です。
逆にヒソヒソ話す時は、意識はないかも知れませんが吐く息の量を抑えてるはずです。

次に音の高さですが、振動には揺れの幅の他に揺れの速さというのがあります。
揺れの幅=音の大きさなので、揺れの速度=音の高さになるのが分かるでしょうか。
弦楽器をやった事のある人ならピンと来るかもしれませんが、ギターとかバイオリンで音を合わせる時って、「んーなんかちょとドの音が低いなー」と思ったら、その音を出している弦の張りを強くすると思います。
逆に「ちょっと高いかなー」と思ったら弦の張りを緩めると思います。
弦の張りが強いと、それだけ揺らした時にまっすぐに戻ろうとする力が強くなるので、揺れが小さくなるのはもちろんなのですが、揺れがその分速くなるんです。
逆に弦の張りを緩めると、まっすぐに戻ろうとする力が弱くなるので、揺れの速度がゆっくりになります。
その為に音程が下がるんです。
また、弦自体も高い音を出す弦ほど細くてピンと張っていて、低い音を出す弦ほど太くて緩いのも分かると思います。

まとめると
・音とは空気の振動である
・振動が大きいほど大きな音になり、振動が速いほど高い音になる

ということです。



2.アナログ音声信号
空気の振動を電気の流れる量、すなわち「電圧」の変化として記録したものが「アナログ」信号です。
ではどうやって空気の振動を電圧の変化に変えるのでしょうか?

答えはスピーカーを見ると分かると思います。
スピーカーって円形に張られた紙系の素材の中心に「磁石」があるの知ってますかね?
   /
 ■
   \
スピーカーって大体こんな形をしてると思いますが、真ん中の図でいう■の部分に鉄製のものを近づけるとくっつくはずです。

磁石に鉄がくっついたり、あるいはSとS、NとNなど同じ極を近づけると反発するのは「磁力」のせいですね。
また「磁力」は小学校の理科で習ったと思いますが、「電気」を使って発生させる事ができます。
「電磁石」とかってやつですね。
またモーターを手動で回すと逆に電気が発生するのも知っているかと思います。
発電所はほぼこの原理で電気を作っているし、一番身近なものだと自転車の前輪に付いてる漕いで車輪を回す事で光るタイプのライトなんかですかね。

この「磁力」の物を引き寄せたり、逆に反発して遠ざけたりする力と、それらが「電気」で引き起こせる、あるいはそれによって「電気」が発生する事を利用して、空気の振動を電圧の変化である電気信号に変えたり、あるいは変えた電気信号を元の空気の振動に戻したりするのに使っているのです。

ものすごーく単純化した図でスピーカーを表すと、
        / ←紙
= ■   ■
        \
↑ ↑ ↑ ↑
電 磁 空 磁
線 石 間 石

こんな感じでしょうか?w
例えば左側の磁石は電気を流さないと磁力が発生しないタイプ、右側の磁石は常に磁石だったとします。
電気を流すと左側の磁石に磁力が発生し、右側の磁石を引き寄せるかあるいは遠ざけるかします。
すると右側の磁石の動きにつられて張ってある紙も動きます。
電気を止めると右側の磁石は張ってある紙の力(影響)で、元の位置に戻ります。
この時に出っ張ったり、引っ込んだりする真ん中の磁石によって、紙も凸ってなったり凹ってなったりします。
これによって紙の周辺の空気が動く=振動となり「音」になるわけです。

これはスピーカーですから、既に電気信号化された「音」を空気の振動に戻す仕組みですが、マイクなど空気の振動=「音」を電気信号に変える機器も中身は同じ仕組みです。
電気を流すのではなく、空気の振動で左右の磁石間の距離が縮まったり広がったりする事によって発生する電気、その圧の変化に変換するのが「マイク」です。

従ってスピーカーでもマイクの代わりになります。
嘘だと思う人はパソコンのマイク端子にヘッドホンなどを繋げて、録音ソフトなどを起動してみて下さい。
本来音を出すスピーカー的な仕組みのヘッドホンに向かって声を出しても、ちゃんとそれが録音されるのが分かります。
ただ当たり前ですが、スピーカーとして作られたものはマイクとして作られたものほど綺麗に音は記録できないし、逆にマイクとして作られたもので音を出すと綺麗な音は出ませんけどw

これが「音」の「アナログ」信号の仕組みです。



3.デジタル音声信号
さて、このアナログの電気信号を数値データ化、すなわちデジタル信号にする場合です。

まずアナログの音声信号を図で表すと

音

このような2次元のグラフになります。
縦軸が電圧、横軸が時間ですね。
よって、「いつ」「どれだけ」電気が流れていたかを数値で表せば、「アナログ」音声信号を「デジタル」化できる事になります。
まずこの縦軸の幅をどのぐらいの段階で表現できるようにするか?
デジタルというのは、パソコンと同じく電気が流れたか流れてないかを「1」と「0」で表す2進数の世界ですから、そのままでは縦軸が2段階でしか表現できず、あまりにも不正確になってしまいます。
従って2進数の桁、つまりビット数を増やして表現できる大きさや細かさを増やします。
デジタル音声信号の代表格である音楽CDは、これを「16ビット」としています。
2進数16桁なので、10進数で言うと0~65535の65536(0も含めるので)段階です。
実際は+方向と-方向があるので、+方向に32767段階、-方向に同じく32767段階です。
次に横軸である時間ですが、これもデジタルでは無制限・無段階にはできませんので、一定間隔でその時の縦軸の状態を記録するしかありません。
この一定間隔、つまり簡単に言えば1秒で何回この記録を取る=サンプリングするか?を決めます。
CDの場合は44100Hzだそうです。
1Hz(イチヘルツ)=1秒間に1回の振動という意味なので、44100Hzって事は1/44100秒に1回、あるいは1秒間に44100回、この電圧の状態を調べて記録するって事ですね。
これがデジタル信号の仕組みです。

ただし先にも述べたように、アナログの信号というのは縦軸も横軸もほぼ無制限・無段階です。
従ってこれたを無理やり段階や時間を区切って数値化すると、どうしても誤差が出ます。
上のアナログ音声信号のグラフに、方眼紙のような細かい罫線を引いて、縦線の所のグラフが横線のどこの位置にあるかを調べたときに、ぴったりどっかの横線に重なってれば良いのですが、そんなことはまずなく、たいていは横線の間のどこかにあるはずです。
従って一番近い横線の表す数値を記録するしかありませんので、当然誤差が生じます。
まずここでアナログに比べてデジタルが不正確であると言われるゆえんです。
また縦軸についても縦の線の間の状態は記録されないわけですから、もし仮に縦線の間で上下に激しく動いたとしても、それはそっくりそのまま無かった事にされてしまうわけです。

ただこれらは映像の時と同じように、人間の耳が聞き分けられる振動の細かさと振動の速さを考慮した上で作られたフォーマットなので、よほど耳の良い人以外にはアナログとデジタル化された同じ音声信号を聞かせても、違いは分からりません。



映像もそうでしたが、音声についてもこのように「人間」が判別可能なぎりぎりの細かさで、逆に言えば人間が判別不能なものは切り捨てられているのが、デジタル信号の特徴です。
従って「人間」より目や耳の良い動物には、うそっぽく見えたり聞こえたりするであろう為に、「デジタル」を否定する人もいるわけです。
環境や機器の状態に左右されない極めて正確で、半永久的に記録できる方法である反面、誤差や切り捨てられた部分がある不正確なデータ、この相反する二面性のあるのが「デジタル」であり「コンピュータ」なのです。

コメントの投稿

非公開コメント

カウンタ
プロフィール

ウホッ!いい男

Author:ウホッ!いい男
異世界転生を待ち続ける中高年のおっさん

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR