音声サンプリングの計算方法がわかる|かんたん計算問題


2020-03-09 更新
かんたん計算問題とは
この連載では、基本情報技術者試験で、多くの受験者が苦手意識を持っている「計算問題」に的を絞って、問題の解き方をやさしく説明します。

今回のテーマは、「音声サンプリング」の計算問題です。

いくつか難しそうな用語が出てくるので、それらの意味を理解することから始めましょう。用語の意味がわかれば、計算方法が見えてきます。

標本化、量子化、符号化

音声サンプリングの計算問題の内容は、生の声や音楽などのアナログデータ(なめらかで連続したデータ)を、コンピュータで処理できるデジタルデータ(ぶち切れで不連続のデータ)に変換するものです。身近な例では、CD( Compact Disk )に記録された音楽は、アナログデータをデジタルデータに変換したものです。

音声サンプリングの計算問題を解くポイントは、「標本化」「量子化」「符号化」という用語を理解することです。一般的な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 バイトとします。計算するときの考え方を、以下に示します。

単に掛け算をしているだけですが、用語の意味と対応付けて、計算方法を理解してください。

  1. 演奏時間の 5 分は、5 × 60 = 300 秒です。
  2. サンプリング周波数 44.1 kHzなので、1 秒間に 44.1 × 1000 = 44100 回のデータの採取をします。
  3. したがって、5 分間で 300 × 44100 = 13230000 回のデータの採取をします。
  4. 量子化ビット数 16 ビットは、8 ビット= 1 バイトなので、16 ビット = 2 バイトです。
  5. PCM 形式なので、この 2 バイトのデータが、そのまま符号になります。
  6. 1 回のデータの採取が 2 バイトの符号になるので、 13230000 回のデータの採取は、 2 × 13230000 = 26460000 バイトの容量になります。
  7. ステレオ( 2 チャンネル)なので、同じ容量のデータが 2 つ(左チャンネル用と右チャンネル用)あり、全体の容量は、26460000 × 2 = 52920000 バイトになります。
  8. 1 M バイト = 1000000 バイトとするので、 52920000 バイト = 52.92 M バイトです。

データの容量を求める問題

問 26 (平成 24 年度 春期)

60 分の音声信号(モノラル)を,標本化周波数 44.1 kHz,量子化ビット数 16 ビットの PCM 方式でディジタル化した場合,データ量はおよそ何 M バイトか。ここで,データの圧縮は行わないものとする。
ア 80  イ 160  ウ 320  エ 640

それでは、音声サンプリングの過去問題を解いてみましょう。最初は、先ほど示した計算の例と同じ手順でできる問題です。計算するときの考え方を、以下に示します。

M(メガ)は、1000 × 1000 = 1000000 とする場合と、 1024 × 1024 = 1048576 とする場合がありますが、この問題には示されていません。ここでは、1000 × 1000 = 1000000 として計算します。

  1. 60 分の音声信号は、 60 × 60 = 3600 秒です。
  2. 標本化周波数(サンプリング周波数)44.1 kHzなので、 1 秒間に 44.1 × 1000 = 44100 回のデータの採取をします。
  3. したがって、 60 分間で 3600 × 44100 = 158760000 回のデータの採取をします。
  4. 量子化ビット数 16 ビットは、 8 ビット = 1 バイトなので、 16 ビット = 2 バイトです。
  5. PCM 形式なので、この 2 バイトのデータが、そのまま符号になります。
  6. 1 回のデータの採取が 2 バイトの符号になるので、 158760000 回のデータの採取は、 2 × 158760000 = 317520000 バイトの容量になります。
  7. モノラル(ステレオではない)なので、全体の容量は、この 317520000 バイトです。
  8. 1 M バイト = 1000000 バイトとするので、 317520000 = 317.52 M バイトです。

問題に「およそ何 M バイトか」とあるので、 317.52 Mバイトに近い 320 M バイトの選択肢ウが正解です。

正解 ウ

記録できる音声の長さを求める問題

問 25 (平成 31 度 春期)

音声のサンプリングを 1 秒間に 11,000 回行い、サンプリングした値をそれぞれ 8 ビットのデータとして記録する。このとき,512 × 106 バイトの容量をもつフラッシュメモリに記録できる音声の長さは、最大何分か。

ア 77  イ 96  ウ 775  エ 969

次は、記録できる音声の長さを求める問題です。これまでに得た知識があれば、すんなりと計算方法を見出せるでしょう。計算するときの考え方を、以下に示します。

  1. 1 秒間に 11000 回のサンプリングを行い、それぞれが 8 ビット = 1 バイトのデータとして記録されるので、1 秒間のデータの容量は、 11000 × 1 = 11000 バイトである。
  2. フラッシュメモリの容量は、 512 × 106 バイトなので、 512 × 106 ÷ 11000 = 46545.45・・・ 秒のデータを記録できる。
  3. 答えを分単位で求めるので、46545.45・・・ ÷ 60 = 775.75・・・ 分である。

問題に「最大何分か」とあるので、775.75・・・ 分の端数を切り捨てて最大 775 分であり、選択肢ウが正解です。

正解 ウ

サンプリング間隔を求める問題

問 4 (平成 28 年度 秋期)

PCM 方式によって音声をサンプリング(標本化)して 8 ビットのディジタルデータに変換し,圧縮せずにリアルタイムで転送したところ,転送速度は 64,000 ビット / 秒であった。このときのサンプリング間隔は何マイクロ秒か。

ア 15.6  イ 46.8  ウ 125  エ 128

今度は、サンプリング間隔(何秒間隔でサンプリングを行うか)を求める問題です。

「転送速度」がからんでいますが、音声をリアルタイムで転送したのですから、 64000 ビット / 秒というのは、1 秒間に符号化した容量と同じです。それがわかれば、これまでに得た知識で計算方法を見出せるでしょう。

計算するときの考え方を、以下に示します。

  1. 1 秒間に 64000 ビットで、符号化されたデータの大きさが 8 ビットなのだから、1 秒間に行ったサンプリングの回数は、 64000 ÷ 8 = 8000 回である。
  2. 1 秒間に 8000 回のサンプリングを行ったのだから、その時間間隔は、 1 ÷ 8000 = 0.000125 秒である。

問題に「何マイクロ秒か」とあるので、 0.000125 秒をマイクロ秒単位にした、 125 マイクロ秒の選択肢ウが正解です。

正解 ウ

バッファリング時間を求める問題

問 31 (平成 26 年度 秋期)

符号化速度が 192 k ビット / 秒の音声データ 2.4 M バイトを,通信速度が 128 k ビット / 秒のネットワークを用いてダウンロードしながら途切れることなく再生するためには,再生開始前のデータのバッファリング時間として最低何秒間が必要か。

ア 50  イ 100  ウ 150  エ 250

最後に、これまでとは、ちょっと毛色の違う問題を解いてみましょう。デジタル化された音声データをダウンロードするときのバッファリング時間を求める問題です。

バッファリングとは、再生を始める前に、ある程度のデータをダウンロードしておくことです。これによって、ダウンロードの速度が遅くても、音声を途切れずに再生することができます。

計算するときの考え方を以下に示しますので、 1 つずつ丁寧に確認してください。ここでは、 M = 1000 k としています。

  1. 符号化速度が 192 k ビット / 秒というのは、デジタル化されたデータの容量が 1 秒あたり 192 k ビットということである。
  2. データの容量は、全部で 2.4 M バイト = 2.4 M × 8 = 19.2 M ビットであり、これを秒単位で表すと、 19.2 M ÷ 192 k = 19200 k ÷ 192 k = 100 秒である。
  3. 通信速度が 128k ビット / 秒なので、100 秒で 128 k × 100 = 12800 k ビットのデータを転送できる。
  4. ところが、データの容量は、全部で 19.2 M ビット = 19200 k ビットなので、その差の 19200 k ビット – 12800 k ビット = 6400 k ビットのデータを、あらかじめバッファリングしておく必要がある。
  5. 通信速度が 128 k ビット / 秒なので、 6400 k ビットのデータをバッファリングするには、 6400 k ÷ 128 k = 50 秒かかる。

以上のことから、バッファリング時間は 50 秒であり、選択肢アが正解です。

正解 ア

以上、「音声サンプリング」の計算問題の解き方を説明しましたが、十分にご理解いただけましたでしょうか。

もしも、すぐに理解できない問題があったなら、同じ問題を繰り返し練習してください。

基本情報技術者試験では、同じ問題が何度も再利用されているので、できない問題をできるようにすることが、必ず得点アップにつながるからです。

それでは、またお会いしましょう!

 

label 関連タグ
実は、午前試験を『免除』できます 独習ゼミで午前免除試験を受けた 86% の方が、
午前試験を免除しています。
今なら最大 2 回の
午前免除チャンス
info_outline
今なら最大 2 回の
午前免除チャンス
詳しく見てみるplay_circle_filled
label これまでの『苦手克服!かんたん計算問題』の連載一覧 label 著者

『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”

大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。

主な著作物

  • 「プログラムはなぜ動くのか」(日経BP)
  • 「コンピュータはなぜ動くのか」(日経BP)
  • 「出るとこだけ! 基本情報技術者」 (翔泳社)
  • 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
  • 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数