第１章 連続-離散（AD）変換ための標本化
1.1 実験目的
本実験では、信号とシステムの基礎知識として連続時間（アナログ）から離散時間（ディジタル）へ変換するための標本化について，MATLAB のシミュレーションを通して理解することを目的としている。

1.2 実験原理
1.2.1 信号とシステム「信号とシステム」と言う用語は電子情報工学でしばしば使われているが、信号とはある物理量の変動パターンを表現するものと考えてもよい。信号の種類として、例えば、音声・画像・通信・生体・地震などのように、実際にその物理量を測ることが可能なあらゆる信号が含まれる。一方、システムとは、「信号から新しい信号への変換、伝送などのような可能な操作である」、と狭義的に定義される。例えば、本実験の連続時間信号から離散信号という A/D 変換は、一つのシステムであると考えられる。つまり、連続信号をシステムに入力すると、それに対応する離散的な信号が得られるという操作を意味する。
便宜上、信号とシステムは数式やブロック図を用いて表現されることが多い。例えば、
連続時間 t に変動する入力信号を x(t)とすると、ある操作によって出力信号 y(t)が得られた場合には、次のような数式で表現される。

y (t ) = S{x(t )}(1)

ここで、S{・}はオペレータで、システムが具体化されることによって決められるものである。式(1)で表現される信号とシステムの関係をブロック図で表すと、次のようになる。

x(t)

y(t)
S{}

このようなブロック図はシステムの設計と実装の段階でよく用いられる表現法である。

1-1

1.2.2 連続信号のサンプリング
１. アナログ信号からディジタル信号への変換

音声、通信及び脳波などの信号は、計測により、連続時間（アナログ）信号として記録されていることが多い。これらの信号をディジタル装置で処理するためには、アナログ信号からディジタル信号への変換（A/D 変換）が必ず必要となる。A/D 変換はアナログ信号の時間変化に対する標本化（サンプリング）と振幅変化に対する量子化の二つの操作(演算)から成る。
サンプリングの操作は一定の時間間隔で連続時間信号を取り出していくことにより実現される。例えば、連続な時間 t に変動している信号 x(t)に対してある一定の間隔でデータの値を取り出すようなスイッチを用いると、次式で表現されるような離散的な信号（数列）が得られる。

y[nTs ] = S{x(t )}(2)

ここで、Ts [sec] はサンプリング周期、fs=1/Ts [Hz] はサンプリング周波数、n はサンプ
ル数、S{・}は標本化を行うような演算子とそれぞれ定義できる。
一方、量子化の操作とは、標本化によりある時点でのアナログ信号の値を取り出し、その値を離散値で表現することである。例えば、電圧 0～10 V のアナログ値を 16 bit のディジタルの数列で表現すると、計 216= 65536 の値を表現することができる。つまりアナログ
電圧 0 V がディジタルの 0 に対応し、電圧 10 V がディジタルの 216 に相当する。このときの分解能は 10/216=0.15 mV となる。
上記二つの操作により、アナログ信号はディジタル信号へ変換することができるが、逆にディジタル信号からアナログ信号へ再変換するときに、元のアナログ信号が再構築できるかと言う問題が生じてくる。量子化の操作では bit 数によって量子化誤差が生じるが、元のアナログ信号の再構築には影響がない。しかし、標本化の操作においては、どのような時間間隔で信号の標本を取り出すかについては標本化定理に従わないと、元のアナログ信号が正しく再構築されない。
２. Shannon の標本化定理

連続信号 x(t)に含まれる最大の周波数成分 fmax[Hz] の 2 倍以上のサンプリング周波数
fs [Hz]：f s ³ 2 f max
または標本化の時間間隔を次式のようして標本(サンプル)を取り出すと、

1-2(3)

Ts £12 f max(4)

元の連続信号 x(t)は離散数列から正しく（誤差が無く）再構築される。ここで、周波数 2fmaxはナイキスト(Nyquist)周波数と呼ばれる。
標本化定理はディジタル信号処理、ディジタル制御、ディジタル通信、ディジタル音声処理などによく登場する一つの基礎定理である。例えば、音の信号に対する人間の聴覚で感知できる上限は 20 [kHz]と言われているが、その上限周波数の 2 倍以上の周波数 44.1[kHz]で標本化されているのが一般に市販されている音楽用のディジタル CD に用いられている。
例題 1：周波数 f=10 [Hz]の連続正弦波信号 y (t ) = sin( 2p f t ) に対する t=0.2 [秒]の波形を下図のように示す。

この正弦波に対して時間間隔（サンプリング周期）Ts=5, 10, 60 [ms]を用いてそれぞれ標本化し、その結果について検討してみよう。
連続信号から離散信号への変換は式(2)で表される。この式を利用して上記の正弦波信号に対するサンプリングすると、次式が得られる。

y[nTs ] = S{sin( 2p f t )} = sin(2p f nTs )(5)

この例題では、周波数は f=10 [Hz]で、サンプリング周期 (Ts=1/fs [sec])は Ts=5, 10,60 [ms]である。時間 t=0.2 [秒]の間に Ts でサンプルを採り出すと、サンプル数はそれぞれ n=t/Ts=40, 20, 3 [個]となる。
上述のパラメータ f,n,Ts を式(5)に代入すると、離散信号 y が求められる。これを実行するような Matlab プログラムは次表のようになる。

1-3

% Investigation of the Shannon sampling theorem% filename: Samp6_1_2.m% Jianting Cao, Feb. 22, 2003
clear all
f=10; % 正弦波周波数
t=0.2; % 表示する時間（秒）Ts=[5 10 60]/1000; % 標本化する周期（秒）[Ts <= 1/2f = 50 ms]
n=[1:t/min(Ts)]; % サンプル数の計算
y=[]; % ｙの定義
% 各サンプリング時間に対する計算とプロット
for i=1:3y(i,:)=sin(2*pi*f*n*Ts(i));
subplot(3,1,i);
stem(y(i,:))axis([0 t/Ts(i) -1.2 1.2]);
ylabel('Amplitude','FontSize',12);if i==1; title('Digital signal: y(n)=sin(2{\pi}*10nTs) with Ts=[5 10 60][ms]','FontSize',10);end
if i==3; xlabel('Sample numbers [n]','FontSize',12);end
end% ビットマップファイルへ出力
Print -dbitmap Samp6_1_2

このプログラムを実行すると、次の波形が得られる。

1-4

上段の図の場合、サンプリング周期は Ts=5 [ms]であり、これを式(4)で定義されたナイキスト周期 Ts* £11== 50 [ms]と比較すると、明らかに Ts < Ts*であること
2 f max 2 * 10が分かる。つまり、サンプリング周期 Ts=5 [ms]で標本化することは標本化定理を満たしており、この場合には、連続信号に含まれている周波数成分が全く失われることはなく再構築が可能である、ということが分かる。また、最上段図に示されるように隣同士のサンプル値（○の中心）を直線で繋げた波形と、元の連続時間で表現される正弦波形とを比較すれば、形がほぼ一致することからこのことが直感的にも推察される。
次に、中段の図の場合、サンプリング周期は Ts=10 [ms]であり、上段の図の場合と同様に Ts < Ts*であるため、元の連続信号が再構築することが出来る。しかし、この場合はサンプル数が十分でないため、誤差が多少生じることが波形からも明らかである。
下段の図では、サンプリング周期は Ts=60 [ms]であり、 Ts > Ts* であるため、標本化定理を満たさないことが分かる。つまりこの場合波形から推察できるように、離散数列から元の連続信号への再構築ができないことを示している。

1-51.3 実験課題
1. 今、連続三角関数信号を次式のように定義する：

y (t ) = sin(200p t ) - 0.2 sin(600p t ) + 0.4 sin(1000p t )この場合の時間 t=0.04 [秒]までの波形を下の図に示す。

１） 上式で定義される連続信号に対するナイキスト周波数を求めよ。また、時間間隔
Ts=0.2, 0.5, 1.5 [ms]で標本化するような MATLAB プログラムを作成し、その結果を波形で示せ。
２） プログラムの実行結果に対して、元の連続信号に含まれているすべての周波数成分が失われているかどうか、また失われた場合には何故失われたのか、前述した標本化定理に基づいて検討せよ。

1-6