Hatena::ブログ(Diary)

プログラムモグモグ このページをアンテナに追加 RSSフィード

2012-07-26

単位ステップ関数のフーリエ変換

単位ステップ関数フーリエ変換は, 非常に難しい. 今回はこれを考察してみよう. フーリエ変換は次の式で定義する.

¥mathfrak F ¥left¥[f(t)¥right¥] = ¥int_{-¥infty}^¥infty f(t) e^{-i¥omega t}dt



単位ステップ関数は次のように定義される.

u(t) = ¥begin{cases} 0 & t < 0 ¥¥ 1 & t ¥le 0 ¥end{cases}

この関数微分デルタ関数で与えられる.

¥frac{d}{dt} u(t) = ¥delta(t)

これの両辺をフーリエ変換すると,

¥mathfrak F ¥left¥[¥frac d {dt} u(t) ¥right¥] = 1

よって, 公式

¥mathfrak F ¥left¥[¥frac d {dt} f(t) ¥right¥] = i ¥omega ¥mathfrak F ¥left¥[f(t)¥right¥]

を用いると,

 i ¥omega ¥mathfrak F ¥left¥[u(t)¥right¥] = 1

したがって,

 ¥mathfrak F ¥left¥[u(t)¥right¥] = ¥frac 1 {i ¥omega}

となる.



ところで, 符号関数

¥mathrm{sgn}(t) = ¥begin{cases} -1 & t < 0 ¥¥ 0 & t = 0 ¥¥ 1 & t ¥le 0 ¥end{cases}

と単位ステップ関数は,

u(t) = ¥frac{¥mathrm{sgn}(t) + 1}{2} ¥quad(t ¥ne 0)

の関係がある. 更に,

¥frac{d}{dt} ¥mathrm{sgn}(t) = 2¥delta(t)

であるから,

¥mathfrak F ¥left¥[¥frac d {dt} ¥mathrm{sgn}(t) ¥right¥] = 2

である. 先程の公式を用いると,

 i ¥omega ¥mathfrak F ¥left¥[¥mathrm{sgn}(t)¥right¥] = 2

となって

 ¥mathfrak F ¥left¥[¥mathrm{sgn}(t)¥right¥] = ¥frac 2 {i ¥omega}

結果,

 ¥mathfrak F ¥left¥[u(t)¥right¥] = ¥mathfrak F ¥left¥[¥frac{¥mathrm{sgn}(t)+1}{2}¥right¥] = ¥frac 1 {i ¥omega} + ¥frac 1 2 ¥mathfrak F ¥left¥[1¥right¥] = ¥frac 1 {i ¥omega} + ¥pi ¥delta(¥omega)

すなわち,

 ¥mathfrak F ¥left¥[u(t)¥right¥] = ¥frac 1 {i ¥omega} + ¥pi ¥delta(¥omega)

を得る.


先程は

 ¥mathfrak F ¥left¥[u(t)¥right¥] = ¥frac 1 {i ¥omega}

であり, 今度は

 ¥mathfrak F ¥left¥[u(t)¥right¥] = ¥frac 1 {i ¥omega} + ¥pi ¥delta(¥omega)

となった. どっちが正しいのであろう?

¥mathfrak F¥left¥[u(t)¥right¥] = ¥frac{¥mathfrak F ¥left¥[¥mathrm{sgn}(t)¥right¥] + 1}{2}

は採用したいので, 上のようにu(t)フーリエ変換が変わると, ¥mathrm{sgn}(t)フーリエ変換も変わってしまう.


結論を先に言ってしまうと, 後者が正しい.


直感的に行こう*1. u(t)は, 時間領域全体でみて, 直流成分1/2を持つ.

¥lim_{T¥to¥infty}¥int_{-T}^T ¥frac{u(t)}{2T} = ¥frac 1 2

直流成分1/2フーリエ変換すると,

¥mathfrak F ¥left¥[¥frac 1 2 ¥right¥] = ¥pi¥delta(¥omega)

である. よって

 ¥mathfrak F ¥left¥[u(t)¥right¥] = ¥frac 1 {i ¥omega} + ¥pi ¥delta(¥omega)

のほうが正しい.


なるほど電気系の人には通じそうな, 尤もらしい解答. 直流成分があるからそれに相当するスペクトルが立つのだ. 同じように, ¥mathrm{sgn}(t)は直流成分を持たないから,

 ¥mathfrak F ¥left¥[¥mathrm{sgn}(t)¥right¥] = ¥frac 2 {i ¥omega}

のように, 直流に相当する2¥pi¥delta(¥omega)の定数倍の項はつかないのも正当化される. 更に, ¥mathfrak F ¥left¥[¥mathrm{sgn}(t)¥right¥] = 0 ¥quad(¥omega = 0) としておくのが自然だと分かる. また, ¥mathrm{sgn}(t)は奇関数であるから, そのフーリエ変換虚数部のみになるはずである.



もうちょっと数学的に行こう*2.

¥mathfrak F ¥left¥[¥frac d {dt} u(t) ¥right¥] = 1

まではよろしい. ここで, ¥omega ¥delta(¥omega) = 0恒等式である. なぜなら, まず

¥omega ¥delta(¥omega) = 0 ¥quad (¥omega ¥ne 0)

であり, 更に

¥int_{-¥alpha}^¥alpha ¥omega ¥delta(¥omega) d¥omega = 0 ¥quad (¥alpha > 0)

であるからである. よって,

¥mathfrak F ¥left¥[¥frac d {dt} u(t) ¥right¥] = 1 + k ¥omega ¥delta(¥omega)

とも書ける. ここで, kは定数.

¥mathfrak F ¥left¥[¥frac d {dt} f(t) ¥right¥] = i ¥omega ¥mathfrak F ¥left¥[f(t)¥right¥]

を用いると,

 i ¥omega ¥mathfrak F ¥left¥[u(t)¥right¥] = 1  + k ¥omega ¥delta(¥omega)

よって

 ¥mathfrak F ¥left¥[u(t)¥right¥] = ¥frac 1 {i ¥omega} + ¥frac{k}{i} ¥delta(¥omega)

となる. ここで,

 ¥mathfrak F ¥left¥[u(t)+u(-t)¥right¥] = ¥frac 1 {i ¥omega} + ¥frac{k}{i} ¥delta(¥omega) + ¥frac 1 {i(-¥omega)} + ¥frac k i ¥delta(-¥omega)

¥delta(¥omega)は偶関数なので,

 ¥mathfrak F ¥left¥[u(t)+u(-t)¥right¥] = 2 ¥frac{k}{i} ¥delta(¥omega) = ¥mathfrak F ¥left¥[1¥right¥] = 2 ¥pi ¥delta(¥omega)

より, k = i ¥piである. したがって,

 ¥mathfrak F ¥left¥[u(t)¥right¥] = ¥frac 1 {i ¥omega} + ¥pi ¥delta(¥omega)

を得る.


分かったような分からんようなだ. 狐につままれた気分. うーむ. u(t) + u(-t) = 1って使ってるけど, t=0のところでは大丈夫なんだろうかとか, 心配しだしたらキリがない. 更に,

¥mathfrak F ¥left¥[¥frac d {dt} f(t) ¥right¥] = i ¥omega ¥mathfrak F ¥left¥[f(t)¥right¥]

u(t)適用してもいいのかどうか, 分からない. おさらいのためこの式を導いておくと,

¥mathfrak F ¥left¥[¥frac d {dt} f(t)¥right¥] = ¥int_{-¥infty}^¥infty ¥left(¥frac d {dt} f(t)¥right) e^{-i¥omega t} dt = ¥left¥[f(t) e^{-i ¥omega t} ¥right¥]_{-¥infty}^{¥infty} + i ¥omega ¥mathfrak F ¥left¥[f(t)¥right¥]

ここで, はたと筆が止まる. そうだ, この第一項の収束が必要なのだ. あれ, じゃあこの公式ってu(t)とか¥mathrm{sgn}(t)に使えるの?

¥left¥[u(t) e^{-i ¥omega t} ¥right¥]_{-¥infty}^{¥infty} = e^{-i ¥omega ¥infty}

収束しない.

¥left¥[¥mathrm{sgn}(t) e^{-i ¥omega t} ¥right¥]_{-¥infty}^{¥infty} = e^{-i ¥omega ¥infty} + e^{i ¥omega ¥infty} = 2 ¥cos ¥omega ¥infty

収束しない.

(ノ∀`)アチャー


でもだ. 仮に, f(t)=1フーリエ変換2¥pi¥delta(¥omega)になることを知ってる人間が, これを用いて0フーリエ変換をしたいとなったとしよう.

¥mathfrak F ¥left¥[0¥right¥] = ¥mathfrak F ¥left¥[¥frac d {dt} 1¥right¥] = ¥int_{-¥infty}^¥infty ¥left(¥frac d {dt} 1¥right) e^{-i¥omega t} dt = ¥left¥[e^{-i ¥omega t} ¥right¥]_{-¥infty}^{¥infty} + i ¥omega ¥mathfrak F ¥left¥[1¥right¥] = -2i¥sin ¥omega ¥infty + i ¥omega 2 ¥pi ¥delta (¥omega)

ここで, ¥omega¥delta(¥omega)=0であるから,

¥mathfrak F ¥left¥[0¥right¥]  =-2i¥sin ¥omega ¥infty

だ. ¥mathfrak F ¥left¥[0¥right¥]=0であるから, ¥sin ¥omega ¥infty = 0.


... という似非数学. 何かがオカシイ, オカシイ. 無限を甘く見て痛い目に遭っている.



しょうがないので, 関数収束を使った計算を書いておく.

¥mathrm{sgn}(t) = u(t) - u(-t)

であるが, これを

¥mathrm{sgn}(t) = ¥lim_{a ¥to +0} ¥left¥[e^{-at} u(t) - e^{at} u(-t)¥right¥]

とする.

¥begin{eqnarray} ¥mathfrak F ¥left¥[¥mathrm{sgn}(t)¥right¥] &=& ¥mathfrak F ¥left¥[ ¥lim_{a ¥to +0} ¥left¥[e^{-at} u(t) - e^{at} u(-t)¥right¥]¥right¥] ¥¥ &=& ¥lim_{a ¥to +0}¥mathfrak F  ¥left¥[e^{-at} u(t) - e^{at} u(-t)¥right¥] ¥¥ &=& ¥lim_{a ¥to +0}¥int_{-¥infty}^¥infty ¥left¥[e^{-at} u(t) - e^{at} u(-t)¥right¥] e^{-i¥omega t} dt ¥¥ &=& ¥lim_{a ¥to +0} ¥left¥[ ¥int_0^¥infty e^{-at} e^{-i ¥omega t} dt - ¥int_{-¥infty}^0 e^{at} e^{-i¥omega t} dt ¥right¥] ¥¥ &=& ¥lim_{a ¥to +0} ¥left¥[ ¥frac{1}{a+i¥omega} -  ¥frac{1}{a-i¥omega}  ¥right¥] ¥¥ &=& ¥lim_{a ¥to +0}  ¥frac{-2i¥omega}{a^2+¥omega^2} ¥¥ &=& ¥frac{2}{i¥omega} ¥end{eqnarray}

これによって¥mathrm{sgn}(t)フーリエ変換が正当化される. a>0を取っておいてe^{¥pm at}で抑えておけば, 広義積分がちゃんと収束するからハッピーだ. 更に, u(t)フーリエ変換はこの結果を用いれば良い. つまり, ダイレクトにやろうと思ったら,

 u(t) = ¥frac{ u(t) - u(-t) + 1}{2} ¥quad (t ¥ne 0)

であるから

 u(t) = ¥lim_{a ¥to +0} ¥left¥[¥frac{ e^{-at} u(t) - e^{at} u(-t) + 1}{2}¥right¥]

として, 同じように計算するのだ. 結局のところ, 直流成分を取り出しているに過ぎない.



うーん, フーリエ変換難しすぎる. まぁともかく, 「二重の無限和? 入れ替える! 極限と広義積分? 入れ替える!」 が工学部ジャスティス.

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/itchyny/20120726/1343293786
リンク元