Games101 の第 6 講ではフーリエ変換に関する内容が含まれており、授業後に少し時間をかけてこのことを理解しました(大学で学んだことはありますが、ほとんど忘れてしまいました)。そこで、学びの心得を記録するためにこの記事を書きました。
参考資料として、私は DR_CAN 先生の『純粋な数学的推導』シリーズを強くお勧めします!この記事のほとんどは彼の講義のノートです。
この記事では、以下のいくつかの側面から順に推導します。
- 三角関数の直交性
- 周期が 2 π の関数のフーリエ級数展開
- 周期が T の関数のフーリエ級数展開
- フーリエ級数の複素形式
- 非周期関数のフーリエ級数展開
注意が必要なのは、私の知識が不足しているため、フーリエ級数展開の公式の証明を提供することはできません。G=mg の理由を証明できないのと同じように、真理は直接使う方が簡単かもしれません。しかし、理解できないことが不快な読者には、王繼良先生が書いた記事をお勧めします。この文章では、フーリエが熱伝導方程式からフーリエ級数をどのように抽出したかの過程が詳しく説明されています。
フーリエ級数展開 : f(x)=2a0+Σn=1+∞(ancosnx+bnsinnx)
三角関数の直交性#
もし関数 f (x) と g (x) が存在し、両者が ∫abf(x)g(x)dx=0 を満たすならば、我々は関数 f (x) と g (x) が区間 [a, b] で直交していると呼びます。
三角関数 0(sin0),1(cos0),sinx,cosx,sin2x,cos2x.....sinnx,cosnx は区間 [- π, π ] で直交します。
⎩⎨⎧∫−ππcos(nx)sin(mx)dx=0,∫−ππcos(nx)cos(mx)dx=0,∫−ππsin(nx)sin(mx)dx=0n=mn=m
上記の積分は三角関数の積和公式を用いて証明できますが、ここではその計算過程の一つを参考として示します。
∫−ππcos(nx)sin(mx)dx=21∫−ππsin(n+m)xdx−21∫−ππsin(n−m)xdx=21[−n+m1cos(n+m)x∣−ππ+n−m1cos(n−m)x∣−ππ]=0
では、n = m の場合はどうなるでしょうか?sin と cos の組み合わせでは影響はありませんが、cos と cos または sin と sin の場合は、同じ三角関数を掛け合わせて積分することになります。以下に cosmx と cosmx の組み合わせの解法を示します。
∫−ππcos(mx)cos(mx)dx=∫−ππ21+cos(2m)xdx=21(x+2m1sin2mx)∣−ππ=π
ここで導出した結果を覚えておいてください。次のセクションでこれらを使用します。
周期が 2 π の関数のフーリエ級数展開#
最初にフーリエ級数の関連公式を直接示しました。次に、三角関数の直交性を利用して公式内の係数を求める方法を紹介します。
a0 の求め方#
フーリエ級数展開公式の両辺を −π から π まで積分します。
∫−ππf(x)dx=∫−ππ(2a0+Σn=1+∞(ancosnx+bnsinnx))dx=∫−ππ2a0dx+an∫−ππΣn=1+∞1cosnxdx+bn∫−ππΣn=1+∞1sinnxdx
両辺を積分すると、1、 cosnx と 1、 sinnx の組み合わせが明らかに見えます。三角関数の直交性により、これらの組み合わせの積分結果は必ず 0 であることがわかります。したがって、以下の等式を直接消去できます。
∫−ππf(x)dx=∫−ππ2a0dx=2a0∫−ππ1dx=2a0x∣−ππ=a0π
したがって、a0 は次のように求められます。
a0=21∫−ππf(x)dx
an の求め方#
フーリエ級数展開の両辺に cosmx を掛けて積分します。
∫−ππf(x)cosmxdx=∫−ππ(2a0cosmx+Σn=1+∞(ancosnxcosmx+bnsinnxcosmx))dx=2a0∫−ππ1cosmxdx+an∫−ππΣn=1+∞cosnxcosmxdx+bn∫−ππΣn=1+∞sinnxcosmxdx
この時、三角関数の直交性により 2a0∫−ππ1cosmxdx と bn∫−ππΣn=1+∞sinnxcosmxdx を直接削除できます。結局、どちらも 0 になるからです。しかし、中央の an∫−ππΣn=1+∞cosnxcosmxdx は直接削除できません。なぜなら、m=n の場合、その積分結果は π になるからです。
したがって、次のようになります。
∫−ππf(x)cosmxdx=anπ
変形すると、
an=π1∫−ππf(x)cosmxdx
bn の求め方#
フーリエ級数展開の両辺に sinmx を掛けて積分します。
∫−ππf(x)sinmxdx=∫−ππ(2a0sinmx+Σn=1+∞(ancosnxsinmx+bnsinnxsinmx))dx
証明過程は省略しますが、上記の考え方と同じで、次のようになります。
bn=π1∫−ππf(x)sinmxdx
周期が T の関数のフーリエ級数展開#
周期が T の関数の展開方法は少し巧妙で、全体的にはパラメータの変換を通じて式を強制的に π の形に変えることです。
T = 2L とすると、f (t) = f (t + 2L) となります。
x = Lπ t とすると、t = πLx となり、f (t) = f ( πLx ) となります。
g (x) を f ( πL (x)) と見なすと、上表の対応関係から、g (x) のグラフは f (t) に対応します。例えば、f (2L) = g (2 π) という具合です。g (x) の周期は 2 π ですが、前のセクションで周期が 2 π の関数のフーリエ展開の係数をすでに得ています。
⎩⎨⎧a0=21∫−ππg(x)dxan=π1∫−ππg(x)cosnxdxbn=π1∫−ππg(x)sinnxdx
次に、x = Lπ t を代入します。
⎩⎨⎧cosnx=cosLnπtsinnx=sinLnπt∫−ππ1dx=∫−LL1dLπtg(x)=f(t)
これにより、周期が T のフーリエ級数展開が得られます。
f(t)=2a0+Σn=1+∞(ancosLnπt+bnsinLnπt)
ここで(計算過程は省略、解法は前のセクションと一致します)
⎩⎨⎧a0=L1∫−LLf(t)dtan=L1∫−LLf(t)cosLnπtdtbn=L1∫−LLf(t)sinLnπtdt
L を T に置き換えると、次のようになります。
f(t)=2a0+Σn=1+∞(ancosT2nπt+bnsinT2nπt)
⎩⎨⎧a0=T2∫0Tf(t)dtan=T2∫0Tf(t)cosT2nπtdtbn=T2∫0Tf(t)sinT2nπtdt
フーリエ級数の複素形式#
このセクションではオイラーの公式を使用します。オイラーの公式の証明については後で別の記事を書く予定です(証明にはテイラー展開が必要ですが、オイラー自身はこの方法で得たわけではありません)。
eiθ=cosθ+isinθ
{eiθ=cosθ+isinθei−θ=cos−θ+isin−θ=cosθ−isinθ
上式から得られるのは、
{sinθ=2ieiθ−e−iθ=−i2eiθ−e−iθcosθ=2eiθ+e−iθ
x=T2πt と置き、この式をフーリエ級数に代入すると、
f(x)=2a0+Σn=1+∞(an2einx+e−inx−ibn2einx−e−inx)=2a0+Σn=1+∞2an−ibneinx+Σn=1+∞2an+ibne−inx
次の変換は頭が痛くなるかもしれませんが、理解できれば「なるほど、こういうことか」と感じるでしょう。
2a0 を Σn=002a0einx と見なすことができます。なぜなら、n = 0 のとき、 einx も 1 になるからです。
Σn=1+∞e−inx の変形も面白く、n を -1 から - ∞ と見なすと、式は Σn=−1−∞einx になります。
したがって、得られるのは、
f(x)=Σn=−∞+∞Cneinx
x を置き換えると、
f(t)=Σn=−∞+∞CneiT2nπt
ここで、
Cn=⎩⎨⎧2a0,2an−ibn2a−n+ib−nn=0n=1,2,3...n=−1,−2,−3...
前のセクションで周期 T の関数のフーリエ級数展開をすでに求めました。
⎩⎨⎧a0=T2∫0Tf(t)dtan=T2∫0Tf(t)cosT2nπtdtbn=T2∫0Tf(t)sinT2nπtdt
代入すると、
Cn=⎩⎨⎧T1∫0Tf(t)dt,T1∫0Tf(t)(cosT2nπt−isinT2nπt)dtT1∫0Tf(t)(cosT2nπt−isinT2nπt)dtn=0n>0n<0
表現が少し見苦しいので、オイラーの公式を使って簡略化します。
cosT2nπ−isinT2nπ=cos−T2nπ+isin−T2nπ=e−iT2nπ
Cn=⎩⎨⎧T1∫0Tf(t)dt,T1∫0Tf(t)e−iT2nπtdtT1∫0Tf(t)e−iT2nπtdtn=0n>0n<0
注意してください。代入後、n > 0 と n <0 の結果は同じです。さらに、n = 0 を見てみると、実はその表現も n> 0 と n < 0 と同じであることがわかります(n=0 を代入すると e−iT2nπ の結果は 1 になります)。
したがって、Cn の表現は次のように統一できます。
Cn=T1∫0Tf(t)e−iT2nπtdt
この時、ω0 を T2π (工学上の角速度)とすると、
Cn=T1∫0Tf(t)e−inω0tdt
これにより、フーリエ級数の複素形式が得られます。
{f(t)=Σn=−∞+∞Cneinω0tCn=T1∫0Tf(t)e−inω0tdt
次に小さな変換を行います。
積分の上下限を [-T/2, T/2] に置き換え、元の式に代入すると(周期関数の定積分の上下限は、差が 1 周期であれば結果は同じです)。
{f(t)=Σn=−∞+∞Cneinω0tCn=T1∫−2T2Tf(t)e−inω0tdt
非周期関数のフーリエ級数展開#
非周期関数のフーリエ級数展開の処理も非常に巧妙で、基本的な考え方は非周期関数を 無限周期 の周期関数と見なし、その後周期関数の展開公式を使用して変換することです。
T1 を f とし、T = ∞ なので f は無限小に近づきます。したがって、
f(t)=Σn=−∞+∞(∫−∞∞f(t)e−inω0tdt)einω0tf
見覚えのある形ではありませんか(定積分の定義)?f は無限に近づくため、ω0=T2π=2πf に基づいて 和を積分に変える ことができます。
f(t)=∫−∞∞(∫−∞∞f(t)e−i2πftdt)ei2πftdf
ただし、皆さんはおそらく次の形式の方がなじみがあるでしょう。
f(t)=2π1∫−∞∞(∫−∞∞f(t)e−iωtdt)eiωtdω
二つの表現方法は実際には同じで、単に一つは周波数から出発し、もう一つは角速度から出発するだけです。
ここで、
F(ω)=∫−∞∞f(t)e−iωtdt
はフーリエ変換です。
また、
f(t)=2π1∫−∞∞F(ω)eiωtdω
はフーリエ逆変換です。
参考資料#
純粋な数学的推導_フーリエ級数とフーリエ変換_Part5_フーリエ級数からフーリエ変換を導出
IoT の最前線実践 - フーリエ級数
Bilibili 初公開!草履虫でも理解できる【フーリエ変換】の解説、清華大学の李永楽先生がフーリエ変換の理解方法を教えます。美顔と声変換の原理を見分ける...
フーリエ変換の視覚的表示