こんなん徒然草生えるわ

研究であったり、日記であったり、趣味であったり

周期関数をフーリエ変換しろと言われた件について

ぞはるです。最近Minecraft BEに再びハマってしまって単位の危機です。
再履の課題でハマったので備忘録を残しておきます。

この記事の対象

  • 一度学校の授業でフーリエ変換を勉強したことがあるものの、どうにも計算ができずに単位を落としてしまった人
  • この記事を書いている人

問題

本文

複素フーリエ級数{c_n}を用いて、
{\displaystyle 
h(t)=\sum_{n=-\infty}^{\infty}c_ne^{jn2\pi t/T}
}
フーリエ変換せよ。({j}虚数単位、{T}{h(t)}の周期)

概要

要するに周期関数フーリエ変換しろという問題です。方形関数やsinc関数だけしかフーリエ変換したことがない人にとっては結構な変化球ですよね。

解答

まずは正攻法で

とりあえずフーリエ変換の公式は分かっているので、それに先程の{h(t)}を代入して計算してみましょう。
{\displaystyle
\mathcal{F}\{h(t)\}=\int_{-\infty}^{\infty}h(t)e^{-j2\pi ft}\mathrm{d}f\\
\displaystyle
=\int_{-\infty}^{\infty}\left( \sum_{n=-\infty}^{\infty}c_ne^{jn2\pi t/T}\right)\cdot e^{-j2\pi ft}\mathrm{d}f\\
\displaystyle
=\sum_{n=-\infty}^{\infty}c_n\int_{-\infty}^{\infty}e^{jn2\pi t/T}\cdot e^{-j2\pi ft}\mathrm{d}f\\
\displaystyle
=\sum_{n=-\infty}^{\infty}c_n\int_{-\infty}^{\infty}e^{-j2\pi\left(f-\frac{n}{T}\right)t}\mathrm{d}f\\
}
…ここでお手上げです。{(-\infty, \infty)}区間でこんな関数を積分する方法なんて知りませんから。

とりあえず教科書を舐めるように見回してみましたが、使えそうな公式は見つけられませんでした。これが電気回路の教科書だったのがまずかったのでしょうか。少し自室に戻ってちゃんとしたフーリエ解析の教科書を探してきましょう。

δ関数

というわけでフーリエ解析の教科書を見事発掘して、色々調べてみました。結局公式は見つかりませんでしたが、その代わりに、どうやら{\delta}関数を使うらしいということが分かってきました。

{\delta}関数は次のような関係式を満たす超関数*1として定義されます。
{\displaystyle
\int_{-\infty}^{\infty}\delta(x)\phi(x)\mathrm{d}x=\phi(0)
}
ここで{\phi(x)}は何回でも微分できて、{|x|\rightarrow\infty}{x}の任意の多項式よりも速く0に収束するような「良い関数」であるとします。(今回の場合は{\phi(x)=e^{-j2\pi\left(f-\frac{n}{T}\right)t}}なのでこの定義に当てはまるかは微妙ですが*2、とりあえず先程のデルタ関数の性質を満たすものとして考えましょう)
細かい定義については数学書に任せるとして、ここでは{\delta}関数は

「他の関数{\phi(x)}との積を{(-\infty,\infty)}積分すると、{\phi(0)}の値を取り出す事ができる」

ものとして認識していただければそれで十分かと思われます。

では、これは{x=0}のときの値しか取り出せないのでしょうか。やっぱり任意の{a}に対して、{x=a}のときの値も取り出したいので、こうしましょう。
{\displaystyle
\int_{-\infty}^{\infty}\delta(x-a)\phi(x)\mathrm{d}x=\phi(a)
}
{\delta}関数で取り出す点を原点から{a}だけスライドさせただけです。これを覚えておいて次の話に進みましょう。

逆から攻めよ

スライドさせた{\delta}関数をフーリエ逆変換してみましょう。そうですね、{\dfrac{n}{T}}ぐらいずらしてみましょうか。いえ、特に意味はありませんよ。
{\displaystyle
\mathcal{F}^{-1}\left\{\sum_{n=-\infty}^{\infty}\delta\left(f-\frac{n}{T}\right)\right\}\\
\displaystyle
=\int_{-\infty}^{\infty}\left[\sum_{n=-\infty}^{\infty}\delta\left(f-\frac{n}{T}\right)\right]e^{j2\pi ft}\mathrm{d}f\\
\displaystyle
=\sum_{n=-\infty}^{\infty}\int_{-\infty}^{\infty}\delta\left(f-\frac{n}{T}\right)\cdot e^{j2\pi ft}\mathrm{d}f\\
\displaystyle
=\sum_{n=-\infty}^{\infty}e^{j2\pi\frac{n}{T}t}
}
あれれ、どこかで見たような式ですね。どこで見たのでしょうね。

…すっとぼけるのはここまでにしましょう。ええ、これは問題で与えられた周期関数{h(t)}の式にそっくりです。後は複素フーリエ級数である{c_n}をつければ、
{\displaystyle
h(t)=\sum_{n=-\infty}^{\infty}c_ne^{j2\pi\frac{n}{T}t}
}
と、{h(t)}の式そのものになります。

ここで、{c_n}{f}に依存しない係数ですので、フーリエ変換積分に影響を与えることはありません。よって、
{\displaystyle
h(t)=\mathcal{F}^{-1}\left\{\sum_{n=-\infty}^{\infty}c_n\delta\left(f-\frac{n}{T}\right)\right\}
}
が成立します。両辺を改めてフーリエ変換すれば、
{\displaystyle
\mathcal{F}\left\{h(t)\right\}=\sum_{n=-\infty}^{\infty}c_n\delta\left(f-\frac{n}{T}\right)
}
が問題なく得られました。
解答は以上です。これ以降は解説ですのでレポートの提出期限が差し迫っている人はそちらに戻りましょう。

解説

そういえば僕もレポート放り出してこれ書いていたんでした、では失礼して。

*1:通常の関数の定義を拡張して、有限な値を取らない関数も含めたもの

*2:実は別に任意の実数値連続関数でも構わないらしい。でもこれ複素関数なんだよな、詳しい人教えてください