本記事は,初学者や趣味向けの記事ですので,厳密性については保証できません.

1. 導入

オーディオや無線,電子工作に少しでも触れたことがある方なら,周波数を見るという発想を避けては通れない場面に何度も出会すものと思います.時間の変化として観測される信号も,周波数という別の側面からとらえることで,構造がよりはっきりと見えてくることがあります.

それを扶けるための基本的な道具がフーリエ変換です.フーリエ変換は時間領域の信号を周波数領域へ写像する変換です.しかし,定義式を眺めるだけでは,操作の内容が直感的に理解しがたいというのも事実です.

本記事では,フーリエ変換の具体的な活用事例として,ディジタルフィルタの設計を交えながら,具体的にどのような操作によって信号を周波数という側面から観測しているのかを整理し,身の回りの多くの場面で用いられている,フィルタの動作について理解を深めることを目的とします.

2. フーリエ級数展開について

まずフーリエ変換を理解するための前提として,フーリエ級数展開を理解しておく必要があります.

フーリエ変換とフーリエ級数,似た名前が多くて混乱しそうですが,まずフーリエ級数展開で考えて欲しいのは周期的な信号です.すなわち周期TTを持つ時間信号x(t)x(t)は,時間軸上で同一の波形を繰り返すという性質を持つ信号を考えます.

フーリエ級数展開における主張とは,任意の周期信号は異なる周波数の,三角関数の線型結合で示されるというものです.

ここで用いられる三角関数の周波数は,信号の周期TTによって決まる基本角周波数

ω0=2πT\omega_0 = \frac{2\pi}{T}

の整数倍に限定されます(これらは一般に高調波成分と呼ばれます).

数式で示せば,周期TTを持つ信号x(t)x(t)は次のように級数展開されます.

x(t)=a02+n=1[ancos(nω0t)+bnsin(nω0t)]x(t)=\frac{a_0}{2}+\sum_{n=1}^{\infty}\left[a_n\cos(n\omega_0 t)+b_n\sin(n\omega_0 t)\right]

ここで係数ana_nおよびbnb_nはフーリエ係数と呼ばれます.それぞれが掛かっている三角関数の成分の強さを示します.すなわち

ana_n:周波数nω0nω_0cos波成分

bnb_n:周波数nω0nω_0sin波成分

を表しています.言い換えると,フーリエ係数とは,ある信号の中に特定の周波数成分がどの程度含まれているか,を数値として取り出したものであると言えます.

sinとcosは互いに直交した関数なので,周期TTを区間として積分すると,当然異なる周波数同士の積は0となります.つまり互いに干渉し得ない基底ですから,このような係数が一意に決定されます.

この性質を利用すれば,信号x(t)x(t)の中から,特定の周波数成分だけを抜き出すことができます.具体的には,信号をcos(nω0t)\cos(nω_0t)sin(nω0t)\sin(nω_0t)と掛け合わせて,周期TTで積分することで,対応する係数が計算できます.それぞれの係数について導出してみましょう.

・係数ana_nの導出

先の級数展開式の両辺に,cos(mω0t\cos(m\omega_0 t)を掛け,周期TTで積分します(ここでmmは任意の正の整数).

0Tx(t)cos(mω0t)dt=0T[a02+n=1(ancos(nω0t)+bnsin(nω0t))]cos(mω0t)dt\int_0^T x(t)\cos(m\omega_0 t)\,dt = \int_0^T \left[\frac{a_0}{2}+\sum_{n=1}^{\infty}\left(a_n\cos(n\omega_0 t)+b_n\sin(n\omega_0 t)\right)\right]\cos(m\omega_0 t)\,dt
=0Ta02cos(mω0t)dt+n=1an0Tcos(nω0t)cos(mω0t)dt+n=1bn0Tsin(nω0t)cos(mω0t)dt=\int_0^T \frac{a_0}{2}\cos(m\omega_0 t)\,dt +\sum_{n=1}^{\infty} a_n\int_0^T \cos(n\omega_0 t)\cos(m\omega_0 t)\,dt +\sum_{n=1}^{\infty} b_n\int_0^T \sin(n\omega_0 t)\cos(m\omega_0 t)\,dt

ここで

0Tcos(mω0t)dt=0\int_0^T \cos(m\omega_0 t)dt=0
0Tsin(nω0t)cos(mω0t)dt=0\int_0^T \sin(n\omega_0 t)\cos(m\omega_0 t)dt=0

であることを踏まえると,最終的に

0Tx(t)cos(mω0t)dt=am0Tcos2(mω0t)dt\int_0^T x(t)\cos(m\omega_0 t)\,dt = a_m\int_0^T \cos^2(m\omega_0 t)\,dt

と整理されます.0Tcos2(mω0t)dt\int_0^T \cos^2(m\omega_0 t)\,dtにおいて,cos2\cos^2の1周期平均が1/2であることを踏まえると,

0Tcos2(mω0t)dt=T2\int_0^T \cos^2(m\omega_0 t)\,dt=\frac{T}{2}

となります.したがって

0Tx(t)cos(mω0t)dt=amT2\int_0^T x(t)\cos(m\omega_0 t)\,dt = a_m\frac{T}{2}
am=2T0Tx(t)cos(mω0t)dta_m=\frac{2}{T}\int_0^T x(t)\cos(m\omega_0 t)\,dt

・係数bnb_nの導出

ana_nと同様に,今度はsin(mω0t)\sin(mω_0t)を掛けて積分します.

0Tx(t)sin(mω0t)dt=0T[a02+n=1(ancos(nω0t)+bnsin(nω0t))]sin(mω0t)dt\int_0^T x(t)\sin(m\omega_0 t)\,dt = \int_0^T \left[\frac{a_0}{2}+\sum_{n=1}^{\infty}\left(a_n\cos(n\omega_0 t)+b_n\sin(n\omega_0 t)\right)\right]\sin(m\omega_0 t)\,dt

また同様に,打ち消し合う成分を除けば

0Tx(t)sin(mω0t)dt=bm0Tsin2(mω0t)dt\int_0^T x(t)\sin(m\omega_0 t)\,dt = b_m\int_0^T \sin^2(m\omega_0 t)\,dt

0Tsin2(mω0t)dt=T2\int_0^T \sin^2(m\omega_0 t)\,dt=\frac{T}{2}であるから,

bm=2T0Tx(t)sin(mω0t)dtb_m=\frac{2}{T}\int_0^T x(t)\sin(m\omega_0 t)\,dt

ここで,今まで触れてこなかった係数a0a_0について導出してみましょう.

展開式の両編をそのまま周期TTで積分すると,

0Tx(t)dt=0T[a02+n=1(ancos(nω0t)+bnsin(nω0t))]dt\int_0^T x(t)\,dt = \int_0^T \left[\frac{a_0}{2}+\sum_{n=1}^{\infty}\left(a_n\cos(n\omega_0 t)+b_n\sin(n\omega_0 t)\right)\right]dt

sin\sincos\cosの積分は1周期で0となるから,

0Tx(t)dt=0Ta02dt=a02T\int_0^T x(t)\,dt = \int_0^T \frac{a_0}{2}\,dt = \frac{a_0}{2}T

したがって

a0=2T0Tx(t)dta_0=\frac{2}{T}\int_0^T x(t)\,dt

となります.これは明らかに信号x(t)x(t)の平均値と対応します.すなわちx(t)x(t)における直流成分を示します.

次回は,オイラーの公式を用いた複素フーリエ展開について解説します.