前回はこちら

前回解説したフーリエ展開について,実数を用いることから,実フーリエ展開と呼称します.

実フーリエ変換に対して,オイラーの公式に依って複素数を導入したフーリエ展開を複素フーリエ展開と呼びます.

今回は,主に複素フーリエ展開について解説し,フーリエ変換への導入としたいと思います.

1. オイラーの公式

高校数学で用いた,オイラーの公式を思い出しましょう.虚数単位をjjとすれば,以下が成り立ちます:

ejθ=cosθ+jsinθe^{j\theta} = \cos\theta + j\sin\theta

これをcosθ\cos\thetaおよびsinθ\sin\thetaについて解けば,以下のようになります.

cosθ=ejθ+ejθ2,sinθ=ejθejθ2j\cos\theta = \frac{e^{j\theta} + e^{-j\theta}}{2}, \quad \sin\theta = \frac{e^{j\theta} – e^{-j\theta}}{2j}

2. 実フーリエ展開からの遷移

さて,前回解説した通り,実フーリエ展開は以下で示されます:

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]

ここでθ=nω0t\theta=n\omega_0tとして,オイラーの公式から導出される三角関数を代入してみましょう.

x(t)=a02+n=1[anejnω0t+ejnω0t2+bnejnω0tejnω0t2j]\displaystyle x(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left[ a_n \frac{e^{jn\omega_0 t} + e^{-jn\omega_0 t}}{2} + b_n \frac{e^{jn\omega_0 t} – e^{-jn\omega_0 t}}{2j} \right]

これをe±jnω0te^{\pm jn\omega_0 t}で整理すれば,

x(t)=a02+n=1[anjbn2ejnω0t+an+jbn2ejnω0t]x(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left[ \frac{a_n – jb_n}{2} e^{jn\omega_0 t} + \frac{a_n + jb_n}{2} e^{-jn\omega_0 t} \right]

となります(1j=j\frac{1}{j} = -jを用いた).

ここで,ejnω0te^{jn\omega_0 t}およびejnω0te^{-jn\omega_0 t}に掛かる係数をそれぞれA, Bとして見てみましょう.

x(t)=a02+n=1[anjbn2(A)ejnω0t+an+jbn2(B)ejnω0t]x(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left[ \underbrace{\frac{a_n – jb_n}{2}}_{(A)} e^{jn\omega_0 t} + \underbrace{\frac{a_n + jb_n}{2}}_{(B)} e^{-jn\omega_0 t} \right]

\sumをA, Bにそれぞれ分配してみると,

x(t)=a02+n=1anjbn2ejnω0t+n=1an+jbn2ejnω0tx(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \frac{a_n – jb_n}{2} e^{jn\omega_0 t} + \sum_{n=1}^{\infty} \frac{a_n + jb_n}{2} e^{-jn\omega_0 t}

となります.ここで,Bに掛けられる\sumについて,Bにおけるeeは負の累乗であるから,負値の範囲における演算と置きましょう.そうすればeeの累乗における符号が揃うので,扱いやすそうです.

n=1an+jbn2ejnω0t\sum_{n=-\infin}^{-1} \frac{a_{-n} + jb_{-n}}{2} e^{jn\omega_0 t}

よって,

x(t)=a02+n=1anjbn2ejnω0t+n=1an+jbn2ejnω0tx(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \frac{a_n – jb_n}{2} e^{jn\omega_0 t} +\sum_{n=-\infin}^{-1} \frac{a_{-n} +jb_{-n}}{2} e^{jn\omega_0 t}

となります.すなわち,変数が:

・負であれば,

n=1an+jbn2ejnω0t\sum_{n=-\infty}^{-1} \frac{a_{-n} + jb_{-n}}{2} e^{jn\omega_0 t}

・0であれば

a02ej0ω0t\frac{a_0}{2} e^{j0\omega_0 t}

・正であれば

n=1anjbn2ejnω0t\sum_{n=1}^{\infty} \frac{a_n – jb_n}{2} e^{jn\omega_0 t}

の項が用いられるわけです.変数が-\infin~\infinまで連続的であること,全ての項がejnω0te^{jn\omega_0 t}の係数であることを踏まえて,これらをある1つの変数としてまとめてしまえば,より扱いやすい形になりそうです.

この”ある1つの変数”をcnc_nとして考えてみましょう.

cnc_nについて定義すれば,上記より

cn={anjbn2(n>0)a02(n=0)an+jbn2(n<0)c_n = \begin{cases} \displaystyle \frac{a_n – jb_n}{2} & (n > 0 ) \\[10pt] \displaystyle \frac{a_0}{2} & (n = 0) \\[10pt] \displaystyle \frac{a_{-n} + jb_{-n}}{2} & (n < 0 ) \end{cases}

となり,複素フーリエ展開式は

x(t)=n=cnejnω0tx(t) = \sum_{n=-\infty}^{\infty} c_n e^{jn\omega_0 t}

から,

cn=1T0Tx(t)ejnω0tdtc_n = \frac{1}{T} \int_{0}^{T} x(t) e^{-jn\omega_0 t} dt

という形でまとめられます.簡単ですね,符号を揃えたり,係数でまとめた甲斐が在りました.

3.ここまでのまとめ:フーリエ展開を実践

任意の信号は,全て正弦波の足し合わせで表されます.フーリエ変換およびフーリエ展開は,その信号から,どの周波数の正弦波(周波数成分)が含まれているのかを取り出すための演算であり,特にフーリエ展開は周期信号における周波数成分を取り出します.この操作によって取り出された周波数成分を可視化したものを,周波数スペクトルと言います(fig.1).

fig.1 フーリエ変換のイメージ図 (AllElectroHub)

フーリエ展開は周期信号が対象です.周期信号とは,

こんな波形だったり,

こんな波形だったり,

こんな波形を示す信号を指します.ようは一定周期で同じ波形を繰り返す信号を周期信号と言います(これらのように,綺麗な形のものばかりではありませんが).

今まで学習した実フーリエ展開,および複素フーリエ展開によって,今回は矩形波(一番下の四角形の波,くけいは)の周波数成分を求めてみましょう.電子回路において用いられる場面が多いですからね.

3.1. 実フーリエ展開で求める

周期TTの,ある矩形波の信号x(t)x(t)を考えます(fig.2).

fig.2 信号x(t)x(t)の概形

この信号は,以下のように定義されますね.

x(t)={1(0t<T2)1(T2t<T)0(otherwise)x(t) = \begin{cases} 1 & (0 \le t < \frac{T}{2}) \\[10pt] -1 & (\frac{T}{2} \le t < T) \\[10pt] 0 & (\text{otherwise}) \end{cases}

また何度も貼りますが,信号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]

ここに含まれる係数a0,an,bna_0, a_n, b_nを求めれば,周波数成分が求められますね.

前回求めた通り,a0a_0は以下のように求められます:

a0=1T0Tx(t)dta_0 = \frac{1}{T} \int_{0}^{T} x(t) dt

明らかに信号x(t)x(t)の平均値(直流成分)を示します.定義より,計算するまでもなく平均は0となりますから,

a0=0a_0=0

となります.

また同様に,ana_n

an=2T0Tx(t)cos(nω0t)dta_n = \frac{2}{T} \int_{0}^{T} x(t) \cos(n\omega_0 t) dt

です.定義より,積分区間は2つに分割すべきです:

an=2T(0T2cos(nω0t)dtT2Tcos(nω0t)dt)a_n = \frac{2}{T} \left( \int_{0}^{\frac{T}{2}} \cos(n\omega_0 t) dt – \int_{\frac{T}{2}}^{T} \cos(n\omega_0 t) dt \right)

後半の積分区間は負値なので,差分を取るような形となります.

まずcos\cosを積分すればsin\sinになりますね.また

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

であって,変形すれば

ω0T=2π\omega_0 T = 2\pi

となりますね.

ここで,各区間について考えてみると:

t=0t=0のとき

sin(nω00)=sin(0)\sin(nω_00)=\sin(0)

t=T2t=\frac{T}{2}のとき

sin(nω0T2)=sin(nω0ω0T2)\sin(n\omega_0\frac{T}{2})=\sin(n\omega_0\frac{\omega_0T}{2})

ここで,ω0T=2π\omega_0 T = 2\piより

sin(nω0ω0T2)=sin(nπ)=0\sin(n\omega_0\frac{\omega_0T}{2})=\sin(n\pi)=0

t=Tt=Tのとき

sin(nω0T)=sin(2nπ)=0\sin(n\omega_0T) = \sin(2n\pi)=0

以上より,全ての区間で0となることから,係数ana_nの成分も全て0であることが分かります.すなわちcos\cosの,偶関数の成分が0であることが分かります.

信号の波形から,明らかに奇関数ですから,妥当な結果となります.

最後に,係数bnb_nについて求めましょう.今までの結果から,おそらく非ゼロの値が出て来るはずです.

bnb_nは,以下のようになりますね:

bn=2T0Tx(t)sin(nω0t)dtb_n = \frac{2}{T} \int_{0}^{T} x(t) \sin(n\omega_0 t) dt

ana_nの際と同様,2つの積分で考えます:

bn=2T(0T2sin(nω0t)dtT2Tsin(nω0t)dt)b_n = \frac{2}{T} \left( \int_{0}^{\frac{T}{2}} \sin(n\omega_0 t) dt – \int_{\frac{T}{2}}^{T} \sin(n\omega_0 t) dt \right)

普通に積分をしていくと,

=2T([cos(nω0t)nω0]0T2[cos(nω0t)nω0]T2T)= \frac{2}{T} \left( \left[ \frac{-\cos(n\omega_0 t)}{n\omega_0} \right]_{0}^{\frac{T}{2}} – \left[ \frac{-\cos(n\omega_0 t)}{n\omega_0} \right]_{\frac{T}{2}}^{T} \right)

ω0=2πT\omega_0 = \frac{2\pi}{T}とすると,

=1nπ([cos(nπ)+cos(0)][cos(2nπ)+cos(nπ)])= \frac{1}{n\pi} \left( [-\cos(n\pi) + \cos(0)] – [-\cos(2n\pi) + \cos(n\pi)] \right)

ここで,

cos(0)=1\cos(0)=1
cos(2nπ)=1\cos(2n\pi)=1
cos(nπ)=(1)n\cos(n\pi)=(-1)^n

となるから,

=1nπ(((1)n+1)(1+(1)n))= \frac{1}{n\pi} \left( ( -(-1)^n + 1 ) – ( -1 + (-1)^n ) \right)

整理して,

bn=2nπ(1(1)n)b_n = \frac{2}{n\pi} (1 – (-1)^n)

となります.

ここで,nnが偶数であるなら,計算せずともbn=0b_n=0であることが分かります(11=01-1=0).

またnnが奇数であるなら,

bn=2nπ(1(1))=4nπb_n=\frac{2}{n\pi}(1-(-1))=\frac{4}{n\pi}

となります.

以上の結果をまとめると,

a0=0a_0=0
an=0a_n=0
bn={4nπ(n is odd)0(n is even)b_n = \begin{cases} \displaystyle \frac{4}{n\pi} & (n \text{ is odd}) \\[10pt] 0 & (n \text{ is even}) \end{cases}

となり,奇数倍のsin\sin波成分が無限個現れることになります.

すなわち,最終的に信号x(t)x(t)をフーリエ展開した結果,

x(t)=n=1,3,5…4nπsin(nω0t)x(t) = \sum_{n=1, 3, 5…}^{\infty} \frac{4}{n\pi} \sin(n\omega_0 t)

と表されます.

この結果を,周波数スペクトルという形で可視化してみましょう(fig.3)

fig.3 矩形波の周波数スペクトル

上記の計算通り,奇数倍の高調波にのみ,成分が現れていることが分かります.第一高調波が最大となり,そこから指数関数的に振幅が減衰していくことも読み取れます.

また,この成分の正弦波を順に足し合わせていくと,だんだんと矩形波の形が現れることが分かります(fig.4).なお,級数展開なので,有限回足し合わせても,矩形波が現れることはありません.

fig.4 波の足し合わせ

以上から,実フーリエ展開を用いて,適切に矩形波の周波数成分を求めることができました.

なお,fig.4におけるn=1~15あたりで特に顕著になる,ツノのような両サイドの出っ張りは,ギブス現象によるものであり,無限回足し合わせても,必ず元の波形の9%の飛び出しが発生します.

3.2. 複素フーリエ展開で求める

3.1.において用いた信号x(t)x(t)を用います:

x(t)={1(0t<T2)1(T2t<T)0(otherwise)x(t) = \begin{cases} 1 & (0 \le t < \frac{T}{2}) \\[10pt] -1 & (\frac{T}{2} \le t < T) \\[10pt] 0 & (\text{otherwise}) \end{cases}

複素フーリエ変換は以下のように求められました:

cn=1T0Tx(t)ejnω0tdtc_n = \frac{1}{T} \int_{0}^{T} x(t) e^{-jn\omega_0 t} dt

積分区間を分割します.

cn=1T[0T2(1)ejnω0tdt+T2T(1)ejnω0tdt]c_n = \frac{1}{T} \left[ \int_{0}^{\frac{T}{2}} (1) e^{-jn\omega_0 t} dt + \int_{\frac{T}{2}}^{T} (-1) e^{-jn\omega_0 t} dt \right]

ここでejnω0tdt=1jnω0ejnω0t\int e^{-jn\omega_0t} dt = \frac{1}{-jn\omega_0} e^{-jn\omega_0t} を用いると,

cn=1T([ejnω0tjnω0]0T2[ejnω0tjnω0]T2T)c_n = \frac{1}{T} \left( \left[ \frac{e^{-jn\omega_0 t}}{-jn\omega_0} \right]_{0}^{\frac{T}{2}} – \left[ \frac{e^{-jn\omega_0 t}}{-jn\omega_0} \right]_{\frac{T}{2}}^{T} \right)

またω0T=2π\omega_0 T = 2\piであるから,定数を括り出して

cn=1j2nπ([ejnω0T2e0][ejnω0Tejnω0T2])c_n = \frac{1}{-j2n\pi} \left( \left[ e^{-jn\omega_0 \frac{T}{2}} – e^0 \right] – \left[ e^{-jn\omega_0 T} – e^{-jn\omega_0 \frac{T}{2}} \right] \right)

また,

ejnω0T2=ejnπ=(1)ne^{-jn\omega_0\frac{T}{2}}=e^{-jn\pi}=(-1)^n
ejnω0T=ejn2π=1e^{-jn\omega_0T}=e^{-jn2\pi}=1
e0=1e^0=1

より,

cn=1j2nπ([(1)n1][1(1)n])c_n = \frac{1}{-j2n\pi} \left( [(-1)^n – 1] – [1 – (-1)^n] \right)

整理して,

cn=jnπ((1)n1)c_n = \frac{j}{n\pi} \left( (-1)^n – 1 \right)

となります.実フーリエ展開の際と同様,nnが偶数であれば,cn=0c_n=0となります.

また奇数であれば,

cn=jnπ(11)=2jnπc_n = \frac{j}{n\pi} (-1 – 1) = \frac{-2j}{n\pi}

となるから,最終的に

x(t)=n=(2jnπ)ejnω0t,(n is odd)x(t) = \sum_{n=-\infty}^{\infty} \left( \frac{-2j}{n\pi} \right) e^{jn\omega_0 t} , (n \text{ is odd})

となります.fig.3と同様のスペクトルを示しそうですね.念のため確認してみましょう(fig.5).

fig.5 複素フーリエ展開の周波数スペクトル

確かに奇数次の高調波にのみスペクトルが現れています.が,負値にもスペクトルが表れている事が分かります.\sumの範囲が-\infin ~\infinであるから.と言えばそうなんですが,オイラーの公式より,三角関数は以下のように示されましたよね.

cosθ=ejθ+ejθ2,sinθ=ejθejθ2j\cos\theta = \frac{e^{j\theta} + e^{-j\theta}}{2}, \quad \sin\theta = \frac{e^{j\theta} – e^{-j\theta}}{2j}

それぞれにejθe^{j\theta}およびejθe^{-j\theta}の項が含まれており,ようは反時計周りと時計回りの両方の成分が含まれることになります(fig.7).

fig.7 複素平面における回転により正弦波が作られる.(Wirelesspi.com)

仮に反時計回り(正値)の成分のみであった場合,値は常に虚数となります.それでは現実世界に作用しませんから,逆回転の負値を用意することで,虚数成分を打ち消し合い,実数のみを残します.

それにより,複素フーリエ展開では,正負両側にスペクトルが現れます.

 

今回はここまでとなります.次回は,いよいよフーリエ変換とDSP(:Digital Signal Processing,ディジタル信号処理)について触れて行こうと思います.