周期デルタ関数列とそのフーリエ変換
時刻tk=kΔt (k=0, ±1, ±2, …)にデルタ関数をもつ、周期デルタ関数列を次式で定義する。
$$\delta_{\Delta t}(t)=\sum_{k=-\infty}^{\infty}\delta(t-k\Delta t)$$
この関数は周期Δtを持つ周期関数なので、フーリエ級数展開することができる。
この関数は偶関数なので、フーリエ級数a_n、b_nのうちa_nのみが0でない値をもち、これはサンプリング周波数fs=1/Δtを用いて計算することができる。
\[
\begin{align*}
a_n & =\frac{2}{\Delta t}\int_{-\frac{\Delta t}{2}}^{\frac{\Delta t}{2}}\delta_{\Delta t}(t)\cos(2\pi nf_st)dt \\
& =\frac{2}{\Delta t}\int_{-\frac{\Delta t}{2}}^{\frac{\Delta t}{2}}\left[\sum_{k=-\infty}^{\infty}\delta(t-k\Delta t)\right]\cos(2\pi nf_st)dt \\
& =\frac{2}{\Delta t}\int_{-\frac{\Delta t}{2}}^{\frac{\Delta t}{2}}\delta(t)\cos(2\pi nf_st)dt \\
& =\frac{2}{\Delta t}
\end{align*}
\]
よって、周期デルタ関数列は
$$\delta_{\Delta t}(t)=\frac{1}{\Delta t}+\frac{2}{\Delta t}\sum_{n=1}^{\infty}\cos(2\pi nf_st)$$
とフーリエ級数展開される。
つぎに、周期デルタ関数列のフーリエ変換は、cos関数および定数のフーリエ変換式により以下のように計算できる。
\[
\begin{align*}
\mathcal{F}[\delta_{\Delta t}(t)] & =\frac{1}{\Delta t}\delta(f)+\frac{1}{\Delta t}\sum_{n=1}^{\infty}(\delta(f-nf_s)+\delta(f+nf_s)) \\
& =\frac{1}{\Delta t}\sum_{n=-\infty}^{\infty}\delta(f-nf_s)
\end{align*}
\]
これより、周期デルタ関数列のフーリエ変換は、周期fs=1/Δtを持つ周期的なデルタ関数列となることがわかる。
離散データのフーリエ変換
離散時刻tk (k=0, ±1, ±2, …) に対する離散データg(tk)から得られるフーリエ変換Gs(f)を計算する。
この離散データからなる関数を、デルタ関数を用いて次のように定義する。
\[
\begin{align*}
g_s(t) & =\sum_{n=-\infty}^{\infty}g(t_k)\delta(t-t_k) \\
& =g(t)\sum_{n=-\infty}^{\infty}\delta(t-t_k) \\
& =g(t)\delta_{\Delta t}(t)
\end{align*}
\]
積のフーリエ変換はフーリエ変換の畳み込みになることを用いると、この関数のフーリエ変換は次のように計算できる。
\[
\begin{align*}
G_s(f) & =\mathcal{F}[g(t)\delta_{\Delta t}(t)] \\
& =\mathcal{F}[g(t)]*\mathcal{F}[\delta_{\Delta t}(t)] \\
& =G(f)*\mathcal{F}[\delta_{\Delta t}(t)]
\end{align*}
\]
ここに、先に求めたデルタ関数列のフーリエ変換の結果を代入すると
\[
\begin{align*}
G_s(f) & =G(f)*\left[\frac{1}{\Delta t}\sum_{n=-\infty}^{\infty}\delta(f-nf_s)\right] \\
& =\int_{-\infty}^{\infty}G(f’)\left(\frac{1}{\Delta t}\sum_{n=-\infty}^{\infty}\delta(f-nf_s-f’)\right)df’ \\
& =\frac{1}{\Delta t}\sum_{n=-\infty}^{\infty}\int_{-\infty}^{\infty}G(f’)\delta(f-nf_s-f’)df’ \\
& =\frac{1}{\Delta t}\sum_{n=-\infty}^{\infty}G(f-nf_s)
\end{align*}
\]
を得る。G(f-nf_s)は関数G(f)を横軸方向にnf_sだけ移動した関数である。
この式から、「サンプリングしたデータg(tk)から得られるフーリエ変換Gs(f)は、元の関数g(t)のフーリエ変換G(f)をnf_s (n=0, ±1, ±2, …) だけ移動したものをすべて足し合わせたものである」ということがわかる。
サンプリング定理の導出
導出の準備として、|f|≦fcにおいてのみ1をとり、その他の領域では0をとるような関数を次式で定義しておく。
\[
rect_{2f_c}(f)=\begin{cases}
1 & (|f|\le f_c) \\
0 & (|f|>f_c)
\end{cases}
\]
この関数の逆フーリエ変換を計算する。
\[
\begin{align*}
\mathcal{F}^{-1}[rect_{2f_c}(f)] & =\int_{-\infty}^{\infty}rect_{2f_c}(f)e^{2\pi ift}df \\
& =\int_{-f_c}^{f_c}e^{2\pi ift}df \\
& =2\int_0^{f_c}\cos(2\pi ft)df \\
& =\frac{1}{\pi t}\left[\sin(2\pi ft)\right]_0^{f_c} \\
& =\frac{\sin(2\pi f_ct)}{\pi t}
\end{align*}
\]
これを用いて元の信号g(t)を構成することができる。
まず、離散データのフーリエ変換式より、元の関数g(t)のフーリエ変換G(f)はΔtGs(f)を|f|≦fcに制限したものと等しいことがわかる。すなわち、
$$G(f)=\Delta tG_s(f)rect_{2f_c}(f)$$
である。これを逆フーリエ変換すればg(t)が得られる。
\[
\begin{align*}
g(t) & =\mathcal{F}^{-1}[G(f)] \\
& =\Delta t\mathcal{F}^{-1}[G_s(f)rect_{2f_c}(f)] \\
& =\Delta t\mathcal{F}^{-1}[G_s(f)]*\mathcal{F}^{-1}[rect_{2f_c}(f)] \\
& =\Delta tg_s(t)*\frac{\sin(2\pi f_ct)}{\pi t}
\end{align*}
\]
ここで、先に定義したg_s(t)を代入すると
\[
\begin{align*}
g(t) & =\Delta t\left[\sum_{k=-\infty}^{\infty}g(t_k)\delta(t-t_k)\right]*\frac{\sin(2\pi f_ct)}{\pi t} \\
& =\Delta t\int_{-\infty}^{\infty}\left[\sum_{k=-\infty}^{\infty}g(t_k)\delta(t’-t_k)\right]\frac{\sin(2\pi f_c(t-t’))}{\pi(t-t’)}dt’ \\
& =\Delta t\sum_{k=-\infty}^{\infty}g(t_k)\frac{\sin(2\pi f_c(t-t_k))}{\pi(t-t_k)}
\end{align*}
\]
となる。
この式が、離散的なデータから元の信号g(t)を構成する式である。そして、これが可能であると主張するのがサンプリング定理である。