マナビング基本情報技術者

D/A変換器で最下位1ビット分の電圧変化を求める考え方

基本情報技術者試験 平成29年度春期 午前 問20 / ハードウェア › ハードウェア

過去問にチャレンジ

平成29年度春期 午前 問20

分解能が8ビットのD/A変換器に,ディジタル値0を入力したときの出力電圧が0Vとなり,ディジタル値128を入力したときの出力電圧が2.5Vとなる場合,最下位の1ビットの変化による当該D/A変換器の出力電圧の変化は何Vか。

  1. ア

    2.5/128

  2. イ

    2.5/255

  3. ウ

    2.5/256

  4. エ

    2.5/512

会話形式の解説

講師講師
今回はD/A変換器、つまりディジタル値を電圧に変える装置の計算問題です。注目点は、入力値と出力電圧の対応が1組だけ与えられていることです。そこから、ディジタル値が1変わったときの電圧を求めます。
受験者受験者
8ビットとあるので、私は2の8乗の256で2.5Vを割るのかと思いました。分解能の問題では256を使うと覚えていたので。
講師講師
そこが一番つまずきやすいところです。まず確かめたいのですが、2.5Vになるのはディジタル値がいくつのときでしたか。
受験者受験者
128のときです。0のときは0Vです。最大値の255のときの電圧ではないのですね。
講師講師
そうです。D/A変換器の出力は入力に比例するとみなせるので、入力が0から128に増える、つまり差が128で、電圧は2.5V増えています。では、入力が1増えると電圧はどれだけ増えますか。
受験者受験者
差の比で考えると、2.5Vを128で割った値です。最下位1ビットの変化は入力値が1増減することなので、2.5/128がそのまま答えになるわけですね。
講師講師
その通りです。約0.0195Vです。検算として、2.5/128に128を掛けると2.5Vに戻り、条件と一致します。この検算をほかの選択肢にも当てはめてみましょう。
受験者受験者
2.5/256だと、128を掛けると1.25Vで半分になってしまいます。2.5/512なら0.625Vで、さらに小さくなりますね。
講師講師
どちらも条件の2.5Vになりません。512については、8ビットの入力は0〜255なので、問題のどこからも出てこない数です。残る2.5/255はどうでしょう。
受験者受験者
2.5/255を1段階とすると、2.5Vになるのは入力が255のときです。最大値で2.5Vという問題なら合いそうですが、今回は128で2.5Vなので合いません。
講師講師
よく整理できています。8ビットなら256通りといったビット数からの計算は、最大値や全範囲の電圧が与えられたような場合に使います。今回のように途中の点の対応が示されたときは、出力電圧の差を入力値の差で割るのが確実です。
受験者受験者
数字を見てすぐ公式に当てはめず、どの入力でどの電圧なのかを先に確かめるようにします。
講師講師
補足すると、128は2進数で10000000、最上位ビットだけが1の値です。つまり条件は「最上位ビットが1のとき2.5V」と言い換えられ、最下位ビットの重みはその1/128になります。こう見ると、計算の意味がつかみやすくなります。

まとめ

8ビットのD/A変換器で、入力0のとき0V、入力128のとき2.5Vという条件から、最下位1ビット分の電圧変化を求める問題です。出力は入力に比例するとみなせるので、電圧差2.5Vを入力差128で割った2.5/128V(約0.0195V)が答えです。8ビットだから256や255で割るという思い込みは誤りで、求めた値に128を掛けて2.5Vに戻るかを検算すると見分けられます。ビット数からの計算は、最大値や全範囲の電圧が与えられたような場合に使います。

解答・解説

正解はアです

この問題のテーマ

D/A変換器で、入力値と出力電圧の対応が1組与えられたとき、ディジタル値が1変わったときの出力電圧の変化(最下位1ビット分の電圧)を求める問題です。

解き方の考え方

D/A変換器の出力は入力値に比例するとみなせるので、「入力の変化量」と「出力電圧の変化量」の比から1段階あたりの電圧が求まります。入力を0から128に変えると出力は0Vから2.5Vになるため、入力差128で電圧差2.5Vです。最下位1ビットの変化は入力値が1増減することにあたるので、1段階あたりの電圧は 2.5V ÷ 128 = 2.5/128 V(約0.0195V)です。検算すると (2.5/128) × 128 = 2.5V となり、問題の条件と一致します。

選択肢ごとの解説

  1. ○ア  2.5/128
    アの2.5/128は、入力差128で2.5V変わるという条件を、入力1あたりに直した値です。最下位1ビットの変化は入力が1変わることなので、これが求める電圧変化になります。
  2. ×イ  2.5/255
    イの2.5/255で1段階を計算すると、2.5Vになるのは入力が255のときです。問題では入力128で2.5Vになっているので、この値は条件と合いません。
  3. ×ウ  2.5/256
    ウの2.5/256では、入力128のときの出力は (2.5/256)×128 = 1.25V です。問題の条件の2.5Vにならないので誤りです。
  4. ×エ  2.5/512
    エの2.5/512では、入力128のときの出力は (2.5/512)×128 = 0.625V で、条件の2.5Vと一致しません。8ビットの入力は0〜255なので、512という値は問題のどこからも出てきません。

補足

8ビットの128は2進数で10000000で、最上位ビットだけが1の値です。そのため、この問題の条件は「最上位ビットが1のとき2.5V」と言い換えることもでき、最下位ビットの重みはその1/128になります。

POINT

  • D/A変換器の1段階あたりの電圧は、与えられた2点の「出力電圧差 ÷ 入力値の差」で求められます。
  • 最下位1ビットの変化は、ディジタル値が1増減することにあたります。
  • 分解能のビット数(8ビットなら256通り)が使えるのは、最大値や全範囲の電圧が与えられたときだけで、この問題では入力128の対応から計算します。
  • 求めた1段階の電圧を与えられた入力値に掛けて、条件の電圧に戻るかを確かめると誤りを防げます。

※出典:平成29年度春期 基本情報技術者試験 午前 問20