※2024/5/14更新
※ 本記事では、基本情報技術者試験の対策として私が勉強したことを備忘録的にまとめておきたいと思います。
少しでも参考になれば嬉しいです。
はじめに
今回は、アナログの波形データをディジタル化させる代表的な手順についてまとめていきます。
音声データなどの連続したアナログ情報をコンピュータ上で処理するためには、あるポイントで区切って数値化してあげる(ディジタル化してあげる)必要があります。
そうしないと処理が難しいですからね。
今回取り上げるような波形データは、ディジタル化させるために、標本化・量子化・符号化というような処理を実行していきます。
いまいち字面だけでは分かりにくいので、図でイメージしましょう。
※ おまけ・・・
今回お話する処理方式は、PCM(Pulse Code Modulation)方式というらしいです。
PCM方式は、音声や音楽のデジタル録音や再生に広く使われており、高音質な音声再生を実現するための基本的な方式となっています。
特に基本情報でこの用語が問われることはないかと思いますが、頭の片隅には置いておきましょう。
以降の説明では、PCMという言葉も使っていきますね。
ちなみに私はこの参考書を使って勉強してました。
漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。
過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!
最新版はこちらです。
少し内容が異なる部分もあるかもしれませんが、大まかには変わらないはずですので、安心して下さい。
ディジタル化手順
さて、アナログの波形データをディジタル化させるためには、標本化・量子化・符号化というような処理を実行するとお話しました。
それぞれどのような処理を実行するのでしょうか・・・
標本化
標本化とは、アナログの波形データをある一定の時間間隔で区切り、抽出する処理です。
アナログ信号は連続的な波形(上図の黒実線のようなイメージ)ですが、PCM方式ではその波形を一定の間隔で観測し、その瞬間の値をディジタルデータとして扱います。
サンプリングとも言いますね。
時間的に連続しているアナログの波形データに区切りを与えて、それぞれのポイントで処理できるようにしているわけです。そうしないと処理がしにくいので・・・
ちなみに、どのような間隔でデータを区切っていくかを表す際、「サンプリング周期」・「サンプリング周波数」という表現がよくされます。
「サンプリング周期」とは、観測する時間間隔を表しており、「サンプリング周波数」とは、1秒間に何回サンプリングを行うかを表しています。
まぁ色々言いましたが、「1秒間に何回標本(サンプル)を得るよ」というイメージを持ってもらえればOKです。
ここで大切なのは、「サンプリング周期」が短ければ短いほど、元々のアナログ波形データを正確に再現できるということです。
例えば昔のゲームと、今のゲームをイメージしてもらえれば分かりやすいでしょうか??
(皆さんゲームとかやりますか??)
昔のドットが粗いゲームと、今のドットが細かいゲームを比較したときに、今の方がよりキレイに鮮明に、リアルに近いような感じで映っていますよね??ポイントを細かく取れば取るほど、より正確に表現できるというのは、そうゆうことです。
(イメージしにくかったら、今の話は忘れてください・・・)
※「標本化」に関するおまけ・・・
以下はあんまり、基本情報で問われる内容では無いと思いますが、おまけです。気になる方は追加で調べてみてくださいね。
サンプリング周期は、「ナイキストの定理」というのに基づいているらしいです。この定理によると、サンプリング周波数は、アナログ波形データの最高周波数の2倍以上じゃないといけないらしいです。
まぁ参考までに・・・
量子化
量子化とは、波形データの強度、信号の強さを、ある一定の間隔で区切り、段階的に強度レベルを定めて、標本化したデータを当てはめていく処理です。
標本化が波形データの横軸(時間軸)を区切っていくのに対し、量子化は波形データの縦軸(信号の強度軸)を区切っていく処理です。
また、標本化で言うところの「サンプリング周期」・「サンプリング周波数」のように、量子化でも何段階でデータを区切っていくかを表す指標があります。
これは「量子化ビット数」と呼ばれます。
例えば、量子化ビット数が8ビットならば、2の8乗で256段階に区切られるというわけです。
こちらも単純に考えて、「量子化ビット数」が多ければ多いほど、細かくデータが区切られて、元々のデータに近づきますね。
(標本化のときと同じです。)
符号化
符号化とは、標本化、量子化によって区切り、得られた数値を、コンピュータ上で処理しやすいように2進数表現してあげる処理です。
量子化によって得られたデータは数値で表されますが、これをビット列として表現する必要があります。符号化では、数値を対応するビット列に変換します。一般的には、固定長のビット列や可変長のビット列などの符号化方式が使われます。
これはそんなに難しくないですね。
これだけは覚えよう!
さて今回は、アナログの波形データをディジタル化するための代表的な手法についてまとめました。
ポイントは簡単にまとめると以下の通りです。
- 標準化:
時間軸で分割
アナログの波形データを一定の時間間隔で切り出す処理 - 量子化:
強度軸で分割
標本化されたデータを一定の範囲(強さの範囲)で表現する処理 - 符号化:
分割された数値を変換
標本化・量子化されたディジタルデータをビット列に変換する処理
実際の波形データをイメージした上で、どう切り分けていくのかが整理できれば、覚えるのは簡単ですね。
以下は余談です。どうでもいいや~って方は読み飛ばしてOKです。
ちなみに余談ですが、「標本化」、「量子化」の際、データを細かく取れば取るほど、元々のアナログ波形データに近い、正確な表現ができるとお伝えしたかと思います。
このとき、だったら絶対に細かく取った方がお得じゃんか?!と思いませんでした??
確かに細かく取った方が、より正確に波形を表現できるわけですが、これにはもちろんデメリットがあります。
そのデメリットとは、処理しなくてはならないデータ量が多くなるというものです。
(まぁそりゃそうか、という感じですよね。)
例えば、音声データをディジタル化処理していく際、ある一定のライン以上に細かく取ろうが取るまいが、音の聞こえ方に変わりが無かったとします。
そしたらわざわざ細かく取る必要ありますか??処理は大変なのに、聞こえ方が変わらないなら、それ以上に細かく取る分は無駄ですよね??
そう、ただひたすたに、細かく取れば良いというわけではないのです。
自分が求めるものに沿って、「標本化」、「量子化」は実施していく必要があるというわけですね。
試験に問われる内容では無いかと思いますが、このあたりもしっかりと頭に入れておくと、いつか役に立つ瞬間があるかもしれませんので、参考までに~
本記事は以上です。しっかり対策をして、試験合格を目指しましょう!
前回まとめた記事も読んでもらえると嬉しいです!
基本情報以外の勉強記事も是非!
オススメ参考書 & Udemy講座
過去問編
兎にも角にも過去問を解かないことには始まりません。解いて解いて解きまくりましょう!
特に以下の参考書は問題数が多いのでオススメです。
この1冊だけ買って、とりあえず1周すれば合格がかなり近くなると思います!
科目A+B両方合わせて4セット収録されてるとかヤバすぎます・・・
知識網羅編
以下は知識網羅編として、講義系の参考書、動画をピックアップしています。
1からしっかりと学習し、知識を身に着けたい方はとてもオススメです。
過去問を解きまくり、不明点を参考書で補う。これが最高の勉強サイクルです~
私が勉強する際に使用していたオススメ参考書は以下です。
上記シリーズの最新版は以下です。(内容はそこまで変わらないはずですが・・・)
私がぜひオススメしたい、Udemyの講座もいくつかピックアップしておきます。
誰かに解説してもらった方が分かりやすい場合もありますからね~
画像でもボタンでも、どちらを押下しても講座へ飛べるようにしてありますので是非!
コメント