音声サンプリングの計算方法がわかる|かんたん計算問題
この連載では、基本情報技術者試験で、多くの受験者が苦手意識を持っている「計算問題」に的を絞って、問題の解き方をやさしく説明します。
今回のテーマは、「音声サンプリング」の計算問題です。
いくつか難しそうな用語が出てくるので、それらの意味を理解することから始めましょう。用語の意味がわかれば、計算方法が見えてきます。
標本化、量子化、符号化
音声サンプリングの計算問題を解くポイントは、「標本化」「量子化」「符号化」という用語を理解することです。一般的なCDを例にして、それぞれの用語の意味を説明しましょう。
- 「標本化(サンプリング)」とは
- アナログ信号から、一定の時間間隔で区切ってデータを採取することです。この時間間隔を「標本化周波数(サンプリング周波数)」と呼び、 Hz(ヘルツ)という単位で示します。 1 秒間に 1 回が 1 Hz です。
CD のサンプリング周波数は、44.1 kHz(キロ・ヘルツ)であり、1 秒間に 44.1 × 1000 = 44100 回のデータの採取を行います。 - 「量子化」とは
- 標本化で採取されたデータを、数値にすることです。この数値の大きさを「量子化ビット数」と呼びます。
CD の量子化ビット数は、16 ビット( 2 進数で 16 桁)です。 - 「符号化」とは
- 量子化で得られた数値を、特定の形式にすることです。「 PCM( Pulse Code Modulation )」という形式では、量子化された 16 ビットのデータを、そのままの形式で符号化します。
用語の意味がわかったら、計算の例として、演奏時間 5 分の音楽を、サンプリング周波数 44.1 kHz、量子化ビット数 16 ビット、PCM 形式、ステレオ( 2 チャンネル)でデジタル化した場合のデータの容量を、M バイト(メガ・バイト)単位で求めてみましょう。ここでは、1 M バイト= 1000000 バイトとします。計算するときの考え方を、以下に示します。
単に掛け算をしているだけですが、用語の意味と対応付けて、計算方法を理解してください。
- 演奏時間の 5 分は、5 × 60 = 300 秒です。
- サンプリング周波数 44.1 kHzなので、1 秒間に 44.1 × 1000 = 44100 回のデータの採取をします。
- したがって、5 分間で 300 × 44100 = 13230000 回のデータの採取をします。
- 量子化ビット数 16 ビットは、8 ビット= 1 バイトなので、16 ビット = 2 バイトです。
- PCM 形式なので、この 2 バイトのデータが、そのまま符号になります。
- 1 回のデータの採取が 2 バイトの符号になるので、 13230000 回のデータの採取は、 2 × 13230000 = 26460000 バイトの容量になります。
- ステレオ( 2 チャンネル)なので、同じ容量のデータが 2 つ(左チャンネル用と右チャンネル用)あり、全体の容量は、26460000 × 2 = 52920000 バイトになります。
- 1 M バイト = 1000000 バイトとするので、 52920000 バイト = 52.92 M バイトです。
データの容量を求める問題
60 分の音声信号(モノラル)を,標本化周波数 44.1 kHz,量子化ビット数 16 ビットの PCM 方式でディジタル化した場合,データ量はおよそ何 M バイトか。ここで,データの圧縮は行わないものとする。
ア 80 イ 160 ウ 320 エ 640
それでは、音声サンプリングの過去問題を解いてみましょう。最初は、先ほど示した計算の例と同じ手順でできる問題です。計算するときの考え方を、以下に示します。
M(メガ)は、1000 × 1000 = 1000000 とする場合と、 1024 × 1024 = 1048576 とする場合がありますが、この問題には示されていません。ここでは、1000 × 1000 = 1000000 として計算します。
- 60 分の音声信号は、 60 × 60 = 3600 秒です。
- 標本化周波数(サンプリング周波数)44.1 kHzなので、 1 秒間に 44.1 × 1000 = 44100 回のデータの採取をします。
- したがって、 60 分間で 3600 × 44100 = 158760000 回のデータの採取をします。
- 量子化ビット数 16 ビットは、 8 ビット = 1 バイトなので、 16 ビット = 2 バイトです。
- PCM 形式なので、この 2 バイトのデータが、そのまま符号になります。
- 1 回のデータの採取が 2 バイトの符号になるので、 158760000 回のデータの採取は、 2 × 158760000 = 317520000 バイトの容量になります。
- モノラル(ステレオではない)なので、全体の容量は、この 317520000 バイトです。
- 1 M バイト = 1000000 バイトとするので、 317520000 = 317.52 M バイトです。
問題に「およそ何 M バイトか」とあるので、 317.52 Mバイトに近い 320 M バイトの選択肢ウが正解です。
正解 ウ
記録できる音声の長さを求める問題
音声のサンプリングを 1 秒間に 11,000 回行い、サンプリングした値をそれぞれ 8 ビットのデータとして記録する。このとき,512 × 106 バイトの容量をもつフラッシュメモリに記録できる音声の長さは、最大何分か。
ア 77 イ 96 ウ 775 エ 969
次は、記録できる音声の長さを求める問題です。これまでに得た知識があれば、すんなりと計算方法を見出せるでしょう。計算するときの考え方を、以下に示します。
- 1 秒間に 11000 回のサンプリングを行い、それぞれが 8 ビット = 1 バイトのデータとして記録されるので、1 秒間のデータの容量は、 11000 × 1 = 11000 バイトである。
- フラッシュメモリの容量は、 512 × 106 バイトなので、 512 × 106 ÷ 11000 = 46545.45・・・ 秒のデータを記録できる。
- 答えを分単位で求めるので、46545.45・・・ ÷ 60 = 775.75・・・ 分である。
問題に「最大何分か」とあるので、775.75・・・ 分の端数を切り捨てて最大 775 分であり、選択肢ウが正解です。
正解 ウ
サンプリング間隔を求める問題
PCM 方式によって音声をサンプリング(標本化)して 8 ビットのディジタルデータに変換し,圧縮せずにリアルタイムで転送したところ,転送速度は 64,000 ビット / 秒であった。このときのサンプリング間隔は何マイクロ秒か。
ア 15.6 イ 46.8 ウ 125 エ 128
今度は、サンプリング間隔(何秒間隔でサンプリングを行うか)を求める問題です。
「転送速度」がからんでいますが、音声をリアルタイムで転送したのですから、 64000 ビット / 秒というのは、1 秒間に符号化した容量と同じです。それがわかれば、これまでに得た知識で計算方法を見出せるでしょう。
計算するときの考え方を、以下に示します。
- 1 秒間に 64000 ビットで、符号化されたデータの大きさが 8 ビットなのだから、1 秒間に行ったサンプリングの回数は、 64000 ÷ 8 = 8000 回である。
- 1 秒間に 8000 回のサンプリングを行ったのだから、その時間間隔は、 1 ÷ 8000 = 0.000125 秒である。
問題に「何マイクロ秒か」とあるので、 0.000125 秒をマイクロ秒単位にした、 125 マイクロ秒の選択肢ウが正解です。
正解 ウ
バッファリング時間を求める問題
符号化速度が 192 k ビット / 秒の音声データ 2.4 M バイトを,通信速度が 128 k ビット / 秒のネットワークを用いてダウンロードしながら途切れることなく再生するためには,再生開始前のデータのバッファリング時間として最低何秒間が必要か。
ア 50 イ 100 ウ 150 エ 250
最後に、これまでとは、ちょっと毛色の違う問題を解いてみましょう。デジタル化された音声データをダウンロードするときのバッファリング時間を求める問題です。
バッファリングとは、再生を始める前に、ある程度のデータをダウンロードしておくことです。これによって、ダウンロードの速度が遅くても、音声を途切れずに再生することができます。
計算するときの考え方を以下に示しますので、 1 つずつ丁寧に確認してください。ここでは、 M = 1000 k としています。
- 符号化速度が 192 k ビット / 秒というのは、デジタル化されたデータの容量が 1 秒あたり 192 k ビットということである。
- データの容量は、全部で 2.4 M バイト = 2.4 M × 8 = 19.2 M ビットであり、これを秒単位で表すと、 19.2 M ÷ 192 k = 19200 k ÷ 192 k = 100 秒である。
- 通信速度が 128k ビット / 秒なので、100 秒で 128 k × 100 = 12800 k ビットのデータを転送できる。
- ところが、データの容量は、全部で 19.2 M ビット = 19200 k ビットなので、その差の 19200 k ビット – 12800 k ビット = 6400 k ビットのデータを、あらかじめバッファリングしておく必要がある。
- 通信速度が 128 k ビット / 秒なので、 6400 k ビットのデータをバッファリングするには、 6400 k ÷ 128 k = 50 秒かかる。
以上のことから、バッファリング時間は 50 秒であり、選択肢アが正解です。
正解 ア
以上、「音声サンプリング」の計算問題の解き方を説明しましたが、十分にご理解いただけましたでしょうか。
もしも、すぐに理解できない問題があったなら、同じ問題を繰り返し練習してください。
基本情報技術者試験では、同じ問題が何度も再利用されているので、できない問題をできるようにすることが、必ず得点アップにつながるからです。
それでは、またお会いしましょう!
label 関連タグ
免除試験を受けた 74.9% の方が、 科目A免除資格を得ています。
一般常識で解ける マネジメント と ストラテジ の計算方法|かんたん計算問題
updateITエンジニアも知っておくべき 財務会計 の計算方法|かんたん計算問題
update略語でわかる MIPS の計算方法|かんたん計算問題
updateビットパターンの計算問題|かんたん計算問題
update構造と仕組みを知ればできる 磁気ディスク装置 の計算方法|かんたん計算問題
update音声サンプリングの計算方法がわかる|かんたん計算問題
update通信ネットワークの計算方法がわかる|かんたん計算問題
update工数の計算方法がわかる|かんたん計算問題
update稼働率の計算方法がわかる|かんたん計算問題
update期待値の計算方法がわかる|かんたん計算問題
update『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数