アナログ信号とデジタル信号

アナログ信号とデジタル信号
1
関数の定義
アナログ信号もデジタル信号もどちらも関数 f (x) の形で表されますので、まずは関数の定義から学びましょう。
関数 f (x) の x の事を「独立変数」と言って関数への入力値を表します。この x が取り得る値の範囲の事を「関数 f (x)
の定義域」と言います。例えば定義域として 0 ≤ x ≤ 10 と指定した場合は x は 0 から 10 までの値を取りますよとい
う事を意味します。
一方 f (x) そのものの値は x がある値の時の関数の出力値です。f (x) が取り得る値の範囲の事を「関数 f (x) の値域」
といいます。
2
アナログ信号とデジタル信号
アナログ信号の定義は文献によって微妙に違うのですが、一般的には関数の出力値 f (x) が実数値で、かつ独立変数 x
が連続的な実数値を取るとき、 この関数 f (x) のことをアナログ信号といいます。
一方、デジタル信号の定義も文献によって微妙に違うのですが、独立変数 x が飛び飛びの離散値を取るとき、 この関
数 f (x) をデジタル信号といいます。離散値とは x = 0, 1, 2 のような整数値又は x = 0.10, 0.11, 0.12 のような飛び飛
びの実数値のことです。
なお今回の講義ではデジタル信号の出力値 f (x) も実数値としますが、出力値も離散値でないと厳密には デジタル信
号では無いという人もいます。というのもコンピュータは離散値 (より具体的には整数値) しか扱えないからです (この
節の演習参照)。
さて、上の例では信号名として f (x) という記号を使いましたが、独立変数や信号名に使う記号には特にルールは無い
ので、g(i)、a(b)、z(y) みたいに使う人が自由に決めて結構です (ひらがなやカタカナを使っても良いです)。ただし一般
的には function(関数) の頭文字の f とその後に続く g 、h を信号名として使うことが多いです。また独立変数には x や
t (time の頭文字) を使う事が多いです。
なお単に f (x) とだけ書くとそれがアナログ信号なのかデジタル信号なのか分かりませんので、今回の講義では丸カッ
コ()で独立変数を囲んでいる場合はアナログ信号、角カッコ[]で囲んでいる場合はデジタル信号とみなすことにし
ます。
今回の講義でのルール:アナログ信号とデジタル信号の区別
アナログ信号・
・
・ f (x) の様に丸カッコ()で独立変数を囲む、f (x) の値は実数値、 x は連続的な実数値
デジタル信号・
・
・ f [x] の様に角カッコ[]で独立変数を囲む、f [x] の値は実数値、x は離散値
アナログ信号とデジタル信号の違いはグラフにするとすぐに分かります。図 1 はアナログ信号 f (x) = x2 , (0 ≤ x ≤ 10)
です。図 2 はデジタル信号 f [x] = x2 , (x = 0, 1, · · · , 10) です。この様にデジタル信号は x に関して飛び飛びに値を取っ
ている事が分かります。
なおこのデジタル信号の例では x を整数値かつ等間隔に取っていますが、必ずしもそうする必要はありません。例え
ば x = 0, 2.3, 4.9, 9.2, 10 とすると図 3 の様なデジタル信号になります。
1
f(x)
100
90
80
70
60
50
40
30
20
10
0
0
1
2
3
4
5
6
7
8
9
10
x
図 1: アナログ信号の例
f[x]
100
90
80
70
60
50
40
30
20
10
0
0
1
2
3
4
5
6
7
8
9
10
x
図 2: デジタル信号の例
f[x]
120
100
80
60
40
20
x
0
0
2.3
4.9
9.2
10
図 3: デジタル信号の例その 2 (x が非整数かつ等間隔でない場合)
2
演習 1 (チーム):世の中にあるアナログ信号 f (x) の例を各自で出し合ってノートにまとめなさい (1 人 1 つ)
演習 2 (チーム):世の中にあるデジタル信号 f [x] の例を各自で出し合ってノートにまとめなさい (1 人 1 つ)
演習 3 (チーム):現在のコンピュータは整数値や有理数などの実数は扱う事は出来るが、無限小数 ( π の様に小数点以
下の桁が無限に続く実数) を取り扱う事は出来ない。もしコンピュータで無限小数を扱う場合は何バイトの記憶容量が必
要になるのか話し合ってノートにまとめなさい (例えば π の値を全てメモリに記憶するには何バイト必要?)。また C 言
語の double 型変数に保存した実数値は、コンピュータ側から見ると何バイトの整数値に見えるのか話し合ってノートに
まとめなさい
(古い質問)
以下の C 言語の関数を考える。関数の出力も x も double 型なので、人間側から見ればこの関数はアナログ信号の様
に見えるが、コンピュータ側から見ればこの関数はデジタル信号である。入出力が double 型 なのにも関わらず、この
関数をコンピュータがアナログ信号ではなくデジタル信号として処理する理由を話し合ってノートにまとめなさい
double f( double x )
{
return x * x;
}
演習 4 (個人):このように現在のコンピュータは無限小数を取り扱う事が出来ないので、コンピュータで電圧や音量な
どの物理量を処理するためには一旦ある回路で実数値入力を整数値に変換してメモリに取り込む必要がある。この変換
を行う回路の事を何と呼ぶか各自で調べてノートにまとめなさい (略語も良く使うのでついでに覚えましょう)
3