第 3 章 Fourier 変換 87
3.4 フィルター
フィルターとは、入力信号をその目的に応じて処理し、それを出力信号として返す ブラックボックス*1 である。フィルターをどのように実現するかにおいてFourier 変換が中心的役割をする。
信号(signal)とは区分的に連続な関数f:R→Cで、フィルタ(filter)とは、信 号fを信号f˜に写す変換である。フィルタLが であるとは、信号f, gとある定数 a, bについて
L[af+bg] =a L[f] +b L[g]
となることである。関数f をある数だけ平行移動したものをfa、つまりfa(x) =
*1 ブラックボックスとは、その利用において“何が行われているか”の詳細を知る必要がない装置で ある。
f(x−a)と表そう。以下で、関数fの変数xを時刻tとして、f(x)の代わりにf(t) と記すことあるが、x∈Rである限り混乱は起こらないはずだ。
定義3.27 フィルタ(信号を別の信号に写す変換)が平行移動不変(shift-invariant) であるとは、定義域R上の信号fおよびある実数aについて、
L[fa] = (Lf)a, つまり、∀xについて L[fa](x) = (Lf)(x−a) となることである。
代表的なフィルターに雑音除去があるが、これが実用的であるためにはフィルタが 平行移動不変であることが望ましい。ある音源fを雑音除去しておいてa日後に聞 く場合と、音源fをa日後に再生しながら雑音除去して行く場合とは、同じ音質であ ることが期待されるからである。
例3.28 コンパクトサポートである関数ℓ(x)(有限サポート外のxについては ℓ(x) = 0)を使って、信号fのフィルタを
(Lf)(x) = (ℓ∗f)(x) =
∫ ∞
−∞
ℓ(x−y)f(y)dy で定義する。Lの線形性は明かである。
(Lf)(x−a) =
∫ ∞
−∞
ℓ(x−a−y)f(y)dy
=
∫ ∞
−∞
ℓ(x−y′)f(y′−a)dy′ たたみ込みの性質:y′=y+a
=
∫ ∞
−∞
ℓ(x−y′)fa(y′)dy′
=L[fa](x)
これより、コンパクトサポートな関数とのたたみ込みで定義したフィルタLは平行 移動不変であることがわかる。
注意3.29 たたみ込みによって構成した線形フィルタは必ずしも平行移動不変では ない。たとえば、コンパクトサポートではない関数˜ℓ(x)
ℓ(x) =˜
®1 0≦x 0 x <0
とでたたみ込んで構成したフィルタL˜は次のようになる。
( ˜Lf)(x) =
∫ ∞
−∞
ℓ(x˜ −y)f(y)dy=
∫ x 0
f(y)dy.
このとき、
L[f˜ a](x) =
∫x 0
f(y−a)dy
=
∫x−a
−a
f(y′)dy′ y′=y−a.
一方、
( ˜Lf)(x−a) =
∫ x−a 0
f(y)dy とり、L[f˜ a](x)̸= ( ˜Lf)x−a)である。
次は、周波数λの三角関数eλxを入力すると、その線形平行移動不変なフィルタ出 力はまた同じ周波数をもつ三角関数であることを示している。
補題3.30 Lを線形な平行移動不変なフィルタ、λをある数とする。このとき、ある 関数hが存在して、これから定まるbhによって、次が成立する。
L(eiλx) =√
2πbh(λ)eiλx.
h(x)をシステム関数(system function)または伝達関数(transfer function)という。
証明 hλ(x) =L(eiλx)とおく。Lが平行移動不変であることから、任意のaに 対して
L[eiλ(x−a)] =hλ(x−a).
Lの線形性から
L[eiλ(x−a)] =hλ(x−a)
=L[e−iλaeiλx]
= e−iλaL[eiλx]
= e−iλahλ(x).
これより
hλ(x−a) = e−iλahλ(x) (3.22)
を得るが、a =xのときhλ(0) = e−iλxhλ(x)になって、hλ(x) = hλ(0)eiλxがわ かる。
よって、形式的にbh(λ) =hλ(0)/√
2πと置いて、証明が終わる。 ■ ここで、式(3.22)に注意しよう。Fourier変換の性質(定理3.18)の(6)平行移動 F[f(x−a)](λ) = e−iλaF[f](λ) (3.13′) を思い起こそう。これより、λの関数として式(3.22)のhλ(x)は、関数h(x)の Fourier変換F[f](λ) =bh(λ)であると見ることができる。
実際、次の定理が成立する。
定理3.31 Lを、区分的に連続な関数に作用する線形な平行移動不変なフィルタとす る。このとき、
L(f) =f∗h
となるシステム関数hが存在する。
証明 信号fは、Fourier反転公式(定理3.8)を適用すると次のように書ける。
f(x) =F−1[f] =b 1
√2π
∫ ∞
−∞
f(λ)eb iλxdλ.
これにフィルタLを適用すると (Lf)(x) =L
Å 1
√2π
∫ ∞
−∞
f(λ)eb iλxdλ ã
であるが、Lを積分記号内に取り入れることができれば(Riemann和の極限で積分 を定義するならOKである)
(Lf)(x) = 1
√2π
∫ ∞
−∞
fb(λ)L[eiλx](x)dλ
= 1
√2π
∫ ∞
−∞
fb(λ)Ä√
2πbh(λ)ä
eiλxdλ 補題3.30
=√
2πF−1îf(λ)bb h(λ)ó
(x) 定理3.8の反転公式
= (f∗h)(x) たたみ込み定理3.25
■ 例3.32 入力信号fとしてインパルス(デルタ関数δ(x))としてみる。このときの フィルタLの出力は
(Lf)(x) =δ∗h(x)
=
∫ ∞
−∞
δ(x−y)h(y)dy
=h(x)
となる。つまり、h(x)はインパルス信号に対するフィルタLの出力に等しいこと がわかる。このとき、h(x)をインパルス応答(inpulse response function)という。
式(3.22)でみたように、周波数λを持つ純振動eiλxに対するフィルタLの出力は
L[eiλx] =√2πbh(λ)eiλxである。
定理3.31およびたたみ込み定理3.25から、Lf=f∗hは L[f](λ) =‘ √
2πfbbh(λ) (3.23)
と表される。このことがら、入力信号fからある周波数λc以内の周波数成分を取り 除く、つまりフィルタ出力の周波数成分が区間|λ|> λcで零となるようなシステム 関数hλc(x)として、そのFourier変換が
dhλc(λ) =
√1
2π |λ|≦λc, 0 |λ|> λc
(3.24) であるようなものとして選びたくなるが、これは適切ではない。
図3.5 システム関数のFourier変換が帯域制限的h”λc(λ)(式(3.24))としたと き、x≧0で値を持つような入力信号fxc(x) =χ[0,xc](x)のフィルタ出力信号 (Lfxc)(x)のグラフ。x <0においてもフィルタ出力として値をもつことは、入力 信号が0≦xで値を持つという因果律に反している。
実際、hdλc(λ)のFourier逆変換を行ってみると hλc(λ) =F−1[dhλc]
= 1
√2π
∫∞
−∞
dhλc(λ)eiλx dλ
= 1
√2π
∫λc
−λc
eiλxdλ
=eiλcx−e−iλcx 2iπx
=sinλcx πx
を得る。いま、入力信号としてfxc
fxc(x) =χ[0,xc](x) =
®1 0≦x≦xc, 0 x <0またはx > xc
とする。このときフィルタLの出力Lfxcは、定理3.31から次のようになる。
(Lfxc(x) = (fxc∗hc)(x)
=
∫∞
−∞
fxc(y)hc(x−y)dy
=
∫xc 0
sinλc(x−y) π(x−y)
= 1 π
∫ λcx λc(x−xc)
sinw w dw
= 1 π
(Si(λcx)−Si(λc(x−xc))) .
ここで、si(x)は節2.5の積分正弦関数である。図3.5に示すように、0≦xで値を 持つ入力信号fxcであるにもかかわらず、フィルタ出力がx <0においても値をも つ。xを時間的変数とみた場合、この出力結果は因果律に反していると見なすことが できる。
定義3.33 フィルタが因果的(causal)であるとは、x <0について入力がf(x) = 0 であるフィルタ出力Lfが、x <0で(Lf)(x)=0であることである。
定理3.34 Lを応答関数hを持つ平行移動不変なフィルタLf =f∗hであるとす る。Lが因果的であるのは、すべてのx <0に対してh(x) = 0であるときに限る。
より正確には、Lに関するこの因果的応答関数h(x)のFourier変換bh(λ)は bh(λ) =L[h](iλ)
√2π
と表される。ここで、L[g](s)がgのLaplace変換 L[g](s) =
∫ ∞
0
g(x)e−xsdx である。
証明 まず、すべてのx <0に対してh(x) = 0であれば、そのフィルタが因果 的であることを示す。x <0に対して入力がf(x) = 0であるとき、x <0に対して
(Lf)(x) = 0であることを確認しよう。入力特性から
(Lf)(x) = (f∗h)(x) =
∫∞
0
f(y)h(x−y)dy
であるが、x <0およびy≧0のときには、仮定よりh(x−y) = 0である。よって、
x <0について(Lf)(x) = 0がわかった。
h(x)のFourier変換 bh(λ) = 1
√2π
∫ ∞
−∞
h(x)e−iλxdx
を考えると、hが因果的であることからx <0に対してh(x) = 0であることより bh(λ) = 1
√2π
∫ ∞ 0
h(x)e−iλxdx
=L[h(x)/√ 2π](iλ)
と表される。 ■
(a) (b)
図3.6 (a)信号f(x) = e−x/3(
sin 3x+ 2 sin 5x+ 0.4 sin 2xsin 40x) の[0, π]
でのグラフ。(b)フィルタを通ったf∗h(x)の[0, π]グラフ。図(a)の低い周波数 での挙動は保存されているが、高い周波数の挙動は除去されている(ローパス)。
例3.35 (Butterworthフィルタ) [22, 6 章 2 節 F 項] で 紹 介 さ れ て い る S.Butterworthが提案(1930年)したローパス(low pass)フィルタは雑音(一般に 高い周波数を含む)の除去に利用されている。数a, bを正のパラメータとして、シス テム関数hを
h(x) =
®ae−bx x≧0 0 x <0
とする。定理3.34より、このフィルタは因果的で bh(λ) = 1
√2π(Lh)(iλ) = 1
√2π a b+iλ
であることは容易に確かめられる。式(3.23)L[f](λ) =‘ √
2πfbbh(λ)からわかるよう に、この場合にbh(λ)はλ→ ∞で零に減衰するため、フィルタ出力における高周波 数も減少していくことになる(この効果がhight cutであり、low passである)。実 際、ローパスフィルタの効果はλについて
bh(λ) bh(0) = b
√b2+λ2 の程度になる。
試しに、入力信号fとして次を考えてみよう(図3.6(a))。
f(x) = e−x/3(
sin 3x+ 2 sin 5x+ 0.4 sin 2xsin 40x)
(3.25) 上のシステム関数において、a=b= 10と選んだときのフィルタ出力は次のように たたみこみf∗hで与えられる(図3.6(b))。
f∗h(x) =−0.292842e−x/3(
cos 3x+ 2.88305 cos 5x−0.0429412 cos 38x + 0.0355433 cos 42x−3.22222 sin 3x−5.5739 sin 5x
−0.168803 sin 38x+ 0.15443 sin 42x)
図3.6(b)で示されているように、フィルタ出力は入力信号の低い周波数成分は保存
され、高い成分が除去されており、確かにローパスになっている。
演習3.36 図3.6(a)および(b)をMathematicaで描きなさい。