ushumpei’s blog

生活で気になったことを随時調べて書いていきます。

フーリエ変換の練習(前半)

f:id:ushumpei:20160612004725p:plain

フーリエ変換について知識がないため、ちょっと勉強してみます。証明的なものを載せていますが、考え方を学ぶためのメモなため正確なことを知りたい場合参考書を当たってください。フーリエ変換の雰囲気がわからなくて困っている場合はちょっとは役に立つと思います。(私も同じ状況なので)

フーリエ変換は関数を周波数で分解した表示に変換できるものです。分解の際に現れる各項は連続関数と定数の積ですが、これらの無限の和を考えることで、不連続な関数に関しても分解が得られるということが面白と思いました。通信関係をはじめとして、広い範囲での応用がされています。

元となった理論は、フーリエ級数の研究なのかと思います。フーリエ級数は周期関数に関する表示を与えるものでしたが、フーリエ変換では周期を無限と考えることで、その対象を広げたところが違いです。

考え方の核は、周期を無限と考えることと、関数空間に対して基底による分解を与える感じでしょうか?一部フーリエ級数と変わらないですが。

前提条件としては、微分積分線形代数(基底とかの話)、複素数(というかオイラーの公式)を知っていれば理解できそうです。

離散フーリエ変換など応用の方面でまだまだ研究されているようで2012年には従来の10倍の変換速度を誇るSFFTといったものも発表されたみたいですね。。。

ということで、数学の勉強方法ってどうするんだろう、としばらく悩んだのですが、ああ、証明を考えてみるのが一番理解できるな、と思い出しました。理解のためにまずはフーリエ級数を証明してみます。なので周期関数の空間について考えます。ちゃんとした参考書みないので記号は適当です、うまくいかなかったらすみません。

周期関数

周期  T の関数の空間を  F_{T} := \{\, f \,|\, f(x) = f(x + T) \} と定義します。

内積は、 \displaystyle {
(f * g) = \int_{0}^{T} f(x)g(x) dx
} で定義します。(内積であることは積分の性質からいけるはず)

 F_{T}の基底が、1(定値関数)、 s_{n}(x) = \sin(\frac{2n\pi x}{T}) c_{n}(x) = \cos(\frac{2n\pi x}{T})  (n \in (1, 2, ...)) になることを示せれば、任意の周期関数  f \in F_{T} は、

 {\displaystyle
f(x) = c + \sum_{n=1}^{\infty} ( a_{n}s_{n}(x) +  b_{n}c_{n}(x) )
}

という形で表せることがわかります。

証明

前半

基底であることを示すには、一次独立と生成系であることを言わなければいけません。

まずは一次独立を示すために、それぞれの基底候補が直交していることを示します。

 \displaystyle{
(1 * s_{n}) = \int_{0}^{T} 1 \times \sin(\frac{2n\pi x}{T}) dx \\
= \left[ - \frac{T}{2n\pi} \cos(\frac{2n\pi x}{T}) \right]_{0}^{T} \\
= - \frac{T}{2n\pi} \left[ 1 - 1 \right] = 0
}

より 1 * s_{n} = 0 がわかりました。 1 * c_{n} = 0 も同様です。

次に、 s_{n} * c_{k} s_{n} * s_{k} と、 c_{n} * c_{k} ですが、これはオイラーの公式を使うといけそうです( sin cos の積の公式を忘れてしまいました...)。

以下の等式が成立します。(記述が面倒なので、 \omega := \frac{2 \pi}{T} とします。)

 \displaystyle{
e^{i \omega (n+k) x} = e^{i \omega n x} e^{i \omega k x}\\
= (c_{n}(x) + i s_{n}(x))(c_{k}(x) + i s_{k}(x))\\
= c_{n}(x)c_{k}(x) - s_{n}(x)s_{k}(x)\\
\quad + i (s_{n}(x)c_{k}(x) + s_{k}(x)c_{n}(x))
}

一方、

 \displaystyle{
\int_{0}^{T} e^{ i \omega (n + k) x } dx\\
= \int_{0}^{T} c_{n + k}(x) + i s_{n + k}(x) dx\\
= \frac{1}{\omega (n + k)}\left[ s_{n + k}(x) \right]_{0}^{T} + \frac{-i}{\omega (n + k)}\left[ c_{n + k}(x) \right]_{0}^{T}\\
= 0
}

なので、

 \displaystyle{
\int_{0}^{T} c_{n}(x)c_{k}(x) dx = \int_{0}^{T} s_{n}(x)s_{k}(x) dx\\
\int_{0}^{T} s_{n}(x)c_{k}(x) dx = - \int_{0}^{T} s_{k}(x)c_{n}(x) dx\\
}

が成り立ちます。さらに kの符号を変えた、  e^{ i \omega (n - k) x } から、

 \displaystyle{
\int_{0}^{T} c_{n}(x)c_{k}(x) dx + \int_{0}^{T} s_{n}(x)s_{k}(x) dx = 0 \, or \,T (n = k)\\
\int_{0}^{T} s_{n}(x)c_{k}(x) dx - \int_{0}^{T} s_{k}(x)c_{n}(x) dx = 0 \quad
}

よってこれを使うと、

 {\displaystyle s_{n} * c_{k} = \int_{0}^{T} s_{n}(x)c_{k}(x) dx = 0 }

 {\displaystyle s_{n} * s_{n} = \int_{0}^{T} s_{n}(x)s_{n}(x) dx = \frac{T}{2} }

 {\displaystyle s_{n} * s_{k} = \int_{0}^{T} s_{n}(x)s_{k}(x) dx = 0 }

 {\displaystyle c_{n} * c_{n} = \int_{0}^{T} c_{n}(x)c_{n}(x) dx = \frac{T}{2} }

 {\displaystyle c_{n} * c_{k} = \int_{0}^{T} c_{n}(x)c_{k}(x) dx = 0 }

つまり、 1 s_{n}(x) c_{n}(x) は直行することがわかります。

以上のことから、

 \displaystyle{
c + \sum_{n=1}^{\infty} ( a_{n}s_{n}(x) +  b_{n}c_{n}(x) ) = 0
}

に対して、 1 s_{n}(x) c_{n}(x) をそれぞれかけて積分したものを考えれば、

 c = 0 a_{n} = 0 b_{n} = 0 がわかります。

感想

ちょっと元気が無くなってしまい、今回は前半だけです。いろいろ抜けがあると思います、後半の生成系であることを示す方針は全然思いついてないです。ただ関数空間の条件に可積分が必要になりそうですね(多分仮定されてたはず)。

あと、はてなの環境では[tex: ... ]の内部で&が使えないため等式を複数段並べる時とか面倒です。なにか方法があるのでしょうか?