信号処理(signal processing)とは、時間とともに変わる量を整数上の数列(離散時間信号)や実数上の関数(連続時間信号)として表し、雑音の除去、特定の周波数の抽出、標本化と復元、観測からの推定などの変換を行う方法とその数学である。$\ell^2$ 上の有界な線形シフト不変な系はインパルス応答 $h$ との畳み込みで書け、$h$ が絶対総和可能なら複素正弦波を周波数応答倍し、有界な入力を有界な出力に移す。帯域幅 $B$ 以下に帯域制限された信号は、間隔 $1/(2B)$ の標本から sinc 関数の級数で一様に復元できる(標本化定理)。Fourier 級数・Fourier 変換・離散 Fourier 変換・Laplace 変換が主な道具である。
信号処理は、時間とともに変わる量を関数や数列として表し、必要な情報を取り出すように変換する方法と、その数学である。音声の振幅、回路の電圧、画像の画素の明るさの並びはどれも信号であり、雑音を除く、特定の高さの音だけを通す、連続な波形を有限個の数値で記録する、ぼけた観測から元の信号を推定する、といった処理が問題になる。
数学の側から見ると、中心にある道具は三つである。第一に、線形でシフト不変な系はインパルス応答との畳み込みで書ける。第二に、Fourier 変換は畳み込みを周波数ごとの掛け算に変えるので、系の働きを周波数応答という 1 つの関数で読める。第三に、帯域が制限された連続時間の信号は、十分細かい等間隔の標本から完全に復元できる(標本化定理)。以下ではこの三つを定義から述べて証明し、各道具を詳しく扱う記事への道筋を示す。
離散時間信号 とは、整数全体 $\mathbb{Z}$ 上の複素数値関数 $x\colon\mathbb{Z}\to\mathbb{C}$ のことであり、値を $x[n]$ と書く。連続時間信号 とは、実数全体 $\mathbb{R}$ 上の複素数値関数 $f\colon\mathbb{R}\to\mathbb{C}$ のことである。離散時間信号の空間として
$$
\ell^1=\Bigl\{x:\sum_n\lvert x[n]\rvert<\infty\Bigr\},\quad
\ell^2=\Bigl\{x:\sum_n\lvert x[n]\rvert^2<\infty\Bigr\},\quad
\ell^\infty=\Bigl\{x:\sup_n\lvert x[n]\rvert<\infty\Bigr\}
$$
を使い、ノルムをそれぞれ $\|x\|_1$、$\|x\|_2$、$\|x\|_\infty$ と書く。$\ell^1\subset\ell^2\subset\ell^\infty$ である。
$(Sx)[n]:=x[n-1]$ で定まる写像 $S$ を シフト(1 単位の遅延)という。$\delta[0]=1$、$n\neq0$ で $\delta[n]=0$ となる列 $\delta$ を 単位インパルス という。$S^k\delta$ は時刻 $k$ にだけ $1$ をもつ列である。
離散時間信号のある空間 $X$(シフトで閉じたもの)から離散時間信号への写像 $T$ を 系 という。$T$ が線形写像であり、すべての $x\in X$ について $T(Sx)=S(Tx)$ を満たすとき、$T$ を 線形シフト不変な系(LSI 系)という。$\delta\in X$ のとき $h:=T\delta$ を $T$ の インパルス応答 という。
離散時間信号 $h,x$ について、すべての $n$ で級数 $\sum_k h[k]x[n-k]$ が絶対収束するとき、
$$
(h*x)[n]:=\sum_{k\in\mathbb{Z}}h[k]\,x[n-k]
$$
を $h$ と $x$ の 畳み込み という。添字を $m=n-k$ と取り替えると $\sum_mh[n-m]x[m]$ とも書ける。
畳み込みを使う系 $x\mapsto h*x$ を フィルタ ともいう。出力の時刻 $n$ の値は、入力の過去と未来の値に重み $h[k]$ を掛けて足したものである。$k<0$ で $h[k]=0$ なら、出力は現在と過去の入力だけで決まる(因果的 なフィルタ)。連続時間では、和を積分に替えた $(h*f)(t)=\int h(\tau)f(t-\tau)\,d\tau$ が同じ役割をもつ(畳み込み の定義「畳み込み」)。
信号の種類ごとに、周波数で表すための変換が決まっている。
| 信号の種類 | 周波数で表す変換 | 詳しく扱う記事 |
|---|---|---|
| 連続時間・周期的 | Fourier 級数 | Fourier級数 |
| 連続時間・非周期的 | Fourier 変換 | Fourier変換 |
| 連続時間・$t\ge0$ で始まる | Laplace 変換 | Laplace変換 |
| 離散時間・非周期的 | 離散時間 Fourier 変換、z 変換 | z変換 |
| 離散時間・有限長 | 離散 Fourier 変換(高速 Fourier 変換で計算) | 離散Fourier変換と反転公式, 高速Fourier変換 |
この記事では、$x\in\ell^1$ の 離散時間 Fourier 変換 を
$$
X(e^{i\omega}):=\sum_{n\in\mathbb{Z}}x[n]e^{-i\omega n}\qquad(\omega\in\mathbb{R})
$$
と書く。級数は $\omega$ について一様に絶対収束するので、$X$ は $2\pi$ 周期の連続関数である。インパルス応答 $h\in\ell^1$ の変換 $H(e^{i\omega})$ を、そのフィルタの 周波数応答 という(VKG14 §3.4.4、p. 227)。
入力を単位インパルスの和 $x=\sum_kx[k]S^k\delta$ に分け、各項に $T$ を当てれば $Tx=\sum_kx[k]S^kh=h*x$ となりそうである。ただし和は無限和なので、線形性だけでは $T$ を和の中に入れられない。次の定理では、有界性(連続性)を使ってこの一歩を正当化する。
$T\colon\ell^2\to\ell^2$ を有界な線形写像とし、$TS=ST$ を満たすとする。$h:=T\delta$ とおくと $h\in\ell^2$ であり、すべての $x\in\ell^2$ とすべての $n\in\mathbb{Z}$ について、級数 $\sum_kh[k]x[n-k]$ は絶対収束して
$$
(Tx)[n]=\sum_{k\in\mathbb{Z}}h[k]\,x[n-k]=(h*x)[n]
$$
が成り立つ。とくに $T$ はインパルス応答 $h$ だけで決まる。
$T\delta=h\in\ell^2$ は仮定から従う。シフト不変性を $k$ 回使うと $T(S^k\delta)=S^kT\delta=S^kh$ であり、$k<0$ についても $S$ が全単射で $TS^{-1}=S^{-1}T$ となるので同じである。$S^kh$ の時刻 $n$ の値は $h[n-k]$ である。
$N\ge0$ について $x_N:=\sum_{\lvert k\rvert\le N}x[k]S^k\delta$($x$ を $\lvert k\rvert\le N$ に切り詰めた列)とおく。これは有限和なので線形性から
$$
(Tx_N)[n]=\sum_{\lvert k\rvert\le N}x[k]\,h[n-k]
$$
である。一方 $\|x-x_N\|_2^2=\sum_{\lvert k\rvert>N}\lvert x[k]\rvert^2\to0$ であり、$T$ の作用素ノルムを $\|T\|$ とすると $\|Tx-Tx_N\|_2\le\|T\|\,\|x-x_N\|_2\to0$ である。各成分は $\lvert(Tx)[n]-(Tx_N)[n]\rvert\le\|Tx-Tx_N\|_2$ を満たすので、各 $n$ で $(Tx_N)[n]\to(Tx)[n]$ となる。
他方、Cauchy–Schwarz の不等式から
$$
\sum_{k}\lvert x[k]\rvert\,\lvert h[n-k]\rvert\le\Bigl(\sum_k\lvert x[k]\rvert^2\Bigr)^{1/2}\Bigl(\sum_k\lvert h[n-k]\rvert^2\Bigr)^{1/2}=\|x\|_2\|h\|_2<\infty
$$
なので級数 $\sum_kx[k]h[n-k]$ は絶対収束し、その対称な部分和が $(Tx_N)[n]$ である。よって $(Tx)[n]=\sum_kx[k]h[n-k]$ であり、添字 $m=n-k$ に取り替えれば主張の形になる。$\square$
証明で有界性を使ったのは、有限和の結果から無限和へ移る一歩だけである。この一歩には、有限個の項だけをもつ列が定義域の中で稠密であることも効いている。定義域をその性質をもたない空間に替えると、線形・シフト不変・有界であっても畳み込みで書けない系がある(下の反例の表の 1 行目)。VKG14 §3.3.3(Definition 3.6・3.7、pp. 205–206)は、入力を単位インパルスの和に分け、線形性とシフト不変性からこの表示を導いている。上の定理は、この導き方が $\ell^2$ 上の有界な系で正しいことを確かめるものである。
$h\in\ell^1$ とし、$H(e^{i\omega})$ をその離散時間 Fourier 変換とする。
1:$\sum_k\lvert h[k]\rvert\lvert x[n-k]\rvert\le\|x\|_\infty\sum_k\lvert h[k]\rvert$ による。2:$(h*e_\omega)[n]=\sum_kh[k]e^{i\omega(n-k)}=e^{i\omega n}\sum_kh[k]e^{-i\omega k}$ である。3:非負の項の二重級数は和の順序によらないので
$$
\sum_n\sum_k\lvert h[k]\rvert\lvert x[n-k]\rvert=\sum_k\lvert h[k]\rvert\sum_n\lvert x[n-k]\rvert=\|h\|_1\|x\|_1<\infty
$$
である。よって $\|h*x\|_1\le\|h\|_1\|x\|_1$ であり、二重級数 $\sum_n\sum_kh[k]x[n-k]e^{-i\omega n}$ は絶対収束するので和の順序を替えられる。$e^{-i\omega n}=e^{-i\omega k}e^{-i\omega(n-k)}$ と分けると
$$
\sum_n(h*x)[n]e^{-i\omega n}=\sum_kh[k]e^{-i\omega k}\sum_nx[n-k]e^{-i\omega(n-k)}=H(e^{i\omega})X(e^{i\omega})
$$
を得る。$\square$
2 は、複素正弦波 $e_\omega$ がどのフィルタに対しても「固有ベクトル」であり、固有値が周波数応答の値であることを述べている。3 により、入力をいろいろな周波数の正弦波の重ね合わせとみると、フィルタは周波数 $\omega$ の成分を $H(e^{i\omega})$ 倍する。$\lvert H\rvert$ が $1$ に近い周波数は通り、$0$ に近い周波数は除かれる。
系が BIBO 安定(bounded input, bounded output)であるとは、有界な入力をいつも有界な出力に移すことをいう。フィルタについては、インパルス応答の絶対値の和で判定できる(VKG14 Theorem 3.8、p. 208)。
$h$ を離散時間信号とする。
1 の前半は prop-sp-frequency の 1 である。どちらの後半も、$x[-k]:=\overline{h[k]}/\lvert h[k]\rvert$($h[k]=0$ なら $x[-k]:=0$)という入力を使う。$\lvert x[n]\rvert\le1$ であり、$h[k]x[-k]=\lvert h[k]\rvert\ge0$ なので
$$
\sum_kh[k]x[-k]=\sum_k\lvert h[k]\rvert
$$
である。$h\in\ell^1$ なら $(h*x)[0]=\|h\|_1$ となり、$\|x\|_\infty\le1$ の入力で出力の大きさ $\|h\|_1$ に達するので、1 の定数は小さくできない($h=0$ なら主張は自明)。$h\notin\ell^1$ なら右辺は非負の項の発散級数であり、どの順に足しても $+\infty$ に発散する。$\square$
再帰式 $y[n]=ay[n-1]+x[n]$ で定まる因果的なフィルタ(下の例)では、インパルス応答は $a^n$($n\ge0$)なので、BIBO 安定であることと $\lvert a\rvert<1$ は同値である。
連続時間の信号 $f$ を間隔 $T>0$ で記録すると、数列 $f(nT)$ が得られる。$1/T$ を 標本化周波数 という。一般には標本から $f$ を復元できないが、$f$ が高い周波数を含まなければ復元できる。
$B>0$ とする。$[-B,B]$ 上で Riemann 積分可能な関数 $F$ によって
$$
f(t)=\int_{-B}^{B}F(\xi)e^{2\pi i\xi t}\,d\xi\qquad(t\in\mathbb{R})
$$
と表せる連続時間信号 $f$ を、帯域幅 $B$ 以下に帯域制限された 信号という。$\xi$ は 1 秒あたりの振動数(Hz)にあたる。
$f$ が積分可能で Fourier変換 の反転公式が使える場合には、$F$ は $f$ の Fourier 変換($e^{-2\pi i\xi t}$ を使う規格化)であり、定義の条件は「Fourier 変換が $[-B,B]$ の外で $0$」ということになる。$\operatorname{sinc}(u):=\sin(\pi u)/(\pi u)$($\operatorname{sinc}(0):=1$)とおく。
$f$ を帯域幅 $B$ 以下に帯域制限された信号とし、$T:=1/(2B)$ とする。このとき
$$
f(t)=\sum_{n\in\mathbb{Z}}f(nT)\,\operatorname{sinc}\Bigl(\frac{t-nT}{T}\Bigr)\qquad(t\in\mathbb{R})
$$
が成り立ち、右辺の対称な部分和 $\sum_{\lvert n\rvert\le N}$ は $t\in\mathbb{R}$ について一様に収束する。さらに $T\sum_n\lvert f(nT)\rvert^2=\int_{-B}^{B}\lvert F(\xi)\rvert^2\,d\xi$ である。
周波数の区間 $[-B,B]$ を $[-\pi,\pi]$ に移す。$x\in[-\pi,\pi]$ について $\varphi(x):=F(Bx/\pi)$ とおき、$2\pi$ 周期に延ばす。$\varphi$ は $[-\pi,\pi]$ 上 Riemann 積分可能である。$\xi=Bx/\pi$ と置換し、$2\pi B/\pi=2B=1/T$ を使うと
$$
f(t)=\frac B\pi\int_{-\pi}^{\pi}\varphi(x)e^{i(t/T)x}\,dx=2B\cdot\frac1{2\pi}\int_{-\pi}^{\pi}\varphi(x)e^{i(t/T)x}\,dx\qquad(1)
$$
である。とくに $t=-nT$ とおけば、$\varphi$ の Fourier 係数は
$$
\hat\varphi(n)=\frac1{2\pi}\int_{-\pi}^{\pi}\varphi(x)e^{-inx}\,dx=T\,f(-nT)
$$
である。部分和 $s_N(x):=\sum_{\lvert n\rvert\le N}\hat\varphi(n)e^{inx}$ を (1) の $\varphi$ の代わりに入れると、$\frac1{2\pi}\int_{-\pi}^{\pi}e^{iax}\,dx=\operatorname{sinc}(a)$($a\in\mathbb{R}$)から
$$
2B\cdot\frac1{2\pi}\int_{-\pi}^{\pi}s_N(x)e^{i(t/T)x}\,dx=2B\sum_{\lvert n\rvert\le N}Tf(-nT)\operatorname{sinc}\Bigl(\frac tT+n\Bigr)=\sum_{\lvert m\rvert\le N}f(mT)\operatorname{sinc}\Bigl(\frac{t-mT}{T}\Bigr)
$$
となる($m=-n$、$2BT=1$)。これを $S_N(t)$ と書く。(1) との差に積分の Cauchy–Schwarz の不等式を使うと、$\lvert e^{i(t/T)x}\rvert=1$ なので
$$
\lvert f(t)-S_N(t)\rvert\le2B\Bigl(\frac1{2\pi}\int_{-\pi}^{\pi}\lvert\varphi(x)-s_N(x)\rvert^2dx\Bigr)^{1/2}
$$
である。右辺は $t$ によらず、Parsevalの等式 の定理「Riemann 積分可能な関数の Parseval の等式」の 1 により $N\to\infty$ で $0$ に近づく。よって $S_N\to f$ は一様である。同じ定理の 2 から $\sum_n\lvert\hat\varphi(n)\rvert^2=\frac1{2\pi}\int_{-\pi}^{\pi}\lvert\varphi\rvert^2=\frac1{2B}\int_{-B}^{B}\lvert F\rvert^2$ であり、$\hat\varphi(n)=Tf(-nT)$ を代入して $T$ で割れば最後の等式を得る。$\square$
標本化の間隔 $T=1/(2B)$、すなわち標本化周波数 $2B$ は、帯域幅 $B$ の 2 倍である。$T<1/(2B)$ でもよい:帯域幅 $B$ 以下の信号は、$B'>B$ に対して帯域幅 $B'$ 以下でもある($F$ を $[-B',B']$ に $0$ で延ばす)ので、$B'=1/(2T)$ として定理を使えばよい。逆に $T>1/(2B)$ だと復元は一意に決まらない。たとえば $0<\varepsilon\le2B-1/T$ について $\sin(\pi t/T)\operatorname{sinc}(\varepsilon t)$ は帯域幅 $B$ 以下に帯域制限されており、標本 $f(nT)$ はすべて $0$ だが関数は $0$ でない。周波数 $\nu$ の正弦波と $\nu+k/T$($k\in\mathbb{Z}$)の正弦波は、$e^{2\pi i(\nu+k/T)nT}=e^{2\pi i\nu nT}$ なので標本では区別できない。この現象を 折り返し(エイリアシング)という。実際の処理では、標本化の前に高い周波数を除くフィルタを通しておく。この定理は複数の研究者によって定式化・証明され、Whittaker、Kotelnikov、Shannon、染谷勲(Isao Someya)らの名を冠して呼ばれることがある(VKG14 Theorem 5.15 と脚注 96、p. 457、Historical remarks、p. 498)。
離散時間のフィルタで連続時間の信号を処理するときの、典型的な流れは次のとおりである。
$h=\frac12(\delta+S\delta)$、すなわち $(h*x)[n]=\frac12(x[n]+x[n-1])$ の周波数応答は
$$
H(e^{i\omega})=\frac{1+e^{-i\omega}}2=e^{-i\omega/2}\cos\frac\omega2
$$
である。$\lvert H\rvert$ は $\omega=0$ で $1$、$\omega=\pi/2$ で $\cos(\pi/4)\approx0.707107$、$\omega=\pi$ で $0$ である。実際、交互の列 $x[n]=(-1)^n=e^{i\pi n}$ を入れると出力はすべて $0$ になる。ゆっくり変わる成分を通し、速く振動する成分を除く 低域通過フィルタ の最も簡単な例である。
$\lvert a\rvert<1$ とし、因果的な系 $y[n]=ay[n-1]+x[n]$ を考える。$x=\delta$ を入れ、$n<0$ で $y[n]=0$ とすると $h[n]=a^n$($n\ge0$)、$h[n]=0$($n<0$)である。$\|h\|_1=1/(1-\lvert a\rvert)$ なので BIBO 安定であり、等比級数の和から
$$
H(e^{i\omega})=\sum_{n\ge0}a^ne^{-i\omega n}=\frac1{1-ae^{-i\omega}}
$$
である。$a=1/2$ なら $H(e^{i0})=2$、$H(e^{i\pi})=2/3$ で、低い周波数を強める。$\lvert a\rvert\ge1$ では $h\notin\ell^1$ となり、thm-sp-bibo の 2 により安定でない。
$f(t)=\operatorname{sinc}(t)^2$ は、$F(\xi)=1-\lvert\xi\rvert$($\lvert\xi\rvert\le1$)によって帯域幅 $1$ 以下に帯域制限されている。$T=1/2$ の標本は $f(0)=1$、奇数 $n$ で $f(n/2)=4/(\pi^2n^2)$、$0$ でない偶数 $n$ で $0$ である。thm-sp-sampling の部分和で $f(1/4)=\operatorname{sinc}(1/4)^2\approx0.810569$ を近似すると、$\lvert n\rvert\le10$ で誤差 $2.1\times10^{-5}$、$\lvert n\rvert\le100$ で $2.1\times10^{-8}$ となる。また $T\sum_n\lvert f(nT)\rvert^2=\int_{-1}^{1}(1-\lvert\xi\rvert)^2d\xi=2/3$ である。
$\int_{-1}^{1}(1-\lvert\xi\rvert)e^{2\pi i\xi t}d\xi=2\int_0^1(1-\xi)\cos(2\pi\xi t)\,d\xi=\frac{1-\cos2\pi t}{2\pi^2t^2}=\frac{\sin^2\pi t}{\pi^2t^2}$ である。$t=n/2$ で $n$ が奇数なら $\sin^2(\pi n/2)=1$ なので $f(n/2)=4/(\pi^2n^2)$、$n$ が $0$ でない偶数なら $0$ である。
標本化周波数 $10$ Hz($T=0.1$)で $\cos(2\pi\cdot3t)$ と $\cos(2\pi\cdot7t)$ を標本化すると、$\cos(2\pi\cdot7n/10)=\cos(2\pi n-2\pi\cdot3n/10)=\cos(2\pi\cdot3n/10)$ なので、すべての標本が一致する。$7$ Hz は $1/(2T)=5$ Hz を超えるので、標本からは $3$ Hz の信号と区別できない。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| 定義域が $\ell^2$(有限個の項だけの列が稠密) | 収束列の空間で $Tx:=(\lim_nx[n])$ を並べた定数列 | 畳み込み表示:$h=T\delta=0$ だが $T\neq0$ |
| 線形性 | $(Tx)[n]:=\lvert x[n]\rvert$ | 畳み込み表示:$T(-\delta)=\delta\neq h*(-\delta)$ |
| シフト不変性 | $(Tx)[n]:=(-1)^nx[n]$ | 畳み込み表示:$h=\delta$ だが $T(S\delta)=-S\delta$ |
| $h\in\ell^1$ | $h[n]=1/n$($n\ge1$)、$h[n]=0$($n\le0$) | BIBO 安定:$x[-k]=1$($k\ge1$)で $(h*x)[0]$ が発散 |
| 標本化の間隔 $T\le1/(2B)$ | $B=1$、$T=1$ で $\operatorname{sinc}(2t)$ と $\operatorname{sinc}(t)$ | 復元の一意性:標本は一致するが関数は違う |
| 帯域制限 | $\sin(2\pi Bt)/(1+t^2)$、$T=1/(2B)$ | 復元:標本はすべて $0$ だが関数は $0$ でない |
1 行目:収束する複素数列全体を $c$ とし、ノルム $\|x\|_\infty$ を入れる。$T$ は線形で、$\lvert\lim x[n]\rvert\le\|x\|_\infty$ から有界、$\lim(Sx)[n]=\lim x[n]$ からシフト不変である。$T\delta=0$ だが、すべての項が $1$ の列 $\mathbf{1}$ について $T\mathbf{1}=\mathbf{1}$ である。有限個の項だけの列は $c$ の中で $\mathbf{1}$ に近づけない(距離が常に $1$ 以上)ので、thm-sp-lsi の証明の極限の段が使えない。2 行目:$T$ はシフト不変で $T\delta=\delta$ だが線形でない。3 行目:$T$ は線形で有界だが $TS\delta=-S\delta\neq S\delta=ST\delta$。4 行目:$h\in\ell^2$ だが $h\notin\ell^1$ であり、$(h*x)[0]=\sum_{k\ge1}1/k$ は調和級数である。5 行目:$\operatorname{sinc}(2t)$ は $F=\frac12$($\lvert\xi\rvert\le1$)、$\operatorname{sinc}(t)$ は $F=1$($\lvert\xi\rvert\le\frac12$)で帯域幅 $1$ 以下だが、整数 $n$ での値はどちらも $n=0$ で $1$、それ以外で $0$ である。$t=\frac12$ では値が $0$ と $2/\pi$ で異なる。6 行目:$t=n/(2B)$ で $\sin(\pi n)=0$ である。もし帯域幅 $B$ 以下に帯域制限されていれば thm-sp-sampling により恒等的に $0$ になるはずなので、この関数は帯域制限されていない。
| 誤り | 正しくは | なぜ |
|---|---|---|
| 積 $hx$ の変換が $HX$ | 畳み込み $h*x$ の変換が $HX$ | prop-sp-frequency の 3 |
| 帯域幅 $B$ なら標本化周波数 $B$ で足りる | 標本化周波数は $2B$ 以上 | 折り返し(ex-sp-aliasing) |
| $h\in\ell^2$ なら安定 | 有界な入力に対しては $h\in\ell^1$ が必要十分 | thm-sp-bibo |
| 線形・シフト不変なら必ず畳み込み | 有界性と定義域の稠密性が要る | 反例の表の 1 行目 |
| 周波数 $\omega$ を Hz で読む | $\omega$ は 1 標本あたりのラジアン。Hz の $\nu$ とは $\omega=2\pi\nu T$ | 単位の換算 |
信号処理の数学を学ぶ順の一例を挙げる。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する