简单粗暴傅里叶级数

简单粗暴傅里叶级数

楠木
wnn2000@hust.edu.cn


为什么写本文?

  我是电信专业的。对于这个专业来讲,傅里叶级数和傅里叶变换这部分知识太重要了。我在大一学微积分时,对这部分内容就有点懵,基本上是靠死背公式糊弄过去的。现在到了大二,傅里叶反复出现在《复变函数》、《信号与系统》、《数理方程》等课程中。我意识到必须把它弄懂了。
  网络上有很多关于傅里叶级数的文章。其阐述角度,思路都令人耳目一新。唯一的缺点是,大部分的文章都只从sin xcos x两个实函数来讲傅里叶级数。私以为,对于工程领域,复指数形式的傅里叶级数才是真正的精髓。本文将从傅里叶级数的复指数形式出发。
  综上原因,我写下此文。
  有任何问题欢迎前辈们指正。

为什么给文章取这个名字?

  前段日子拜读过某pku学霸的《简单粗暴 TensorFlow》。这篇教程,是不可多得的 TensorFlow 中文好教程。为了向这篇教程的作者致敬,我给这篇文章取这个名字。

鸣谢

  特别感谢我的好友兼偶像,华中科技大学物理学院的黄晨同学给本文校对。


一、预备知识

1.欧拉公式

e i θ = cos ⁡ θ + i sin ⁡ θ e^{i\theta} = \cos\theta+i\sin\theta eiθ=cosθ+isinθ
  欧拉是这样证明它的。
  由指数函数的麦克劳林展开式,有:
e x = 1 + x + x 2 2 ! + x 3 3 ! + x 4 4 ! + x 5 5 ! . . . e^x = 1+x+{x^2\over2!}+{x^3\over3!}+{x^4\over4!}+{x^5\over5!}... ex=1+x+2!x2+3!x3+4!x4+5!x5...
  将其中的 x x x换成 i x ix ix,就得到:
e i x = 1 + i x − x 2 2 ! − i x 3 3 ! + x 4 4 ! + i x 5 5 ! . . . e^{ix} = 1+ix-{x^2\over2!}-i{x^3\over3!}+{x^4\over4!}+i{x^5\over5!}... eix=1+ix2!x2i3!x3+4!x4+i5!x5...
= 1 − x 2 2 ! + x 4 4 ! − . . . + i x − i x 3 3 ! + i x 5 5 ! . . . = cos ⁡ θ + i sin ⁡ θ =1-{x^2\over2!}+{x^4\over4!}-...+ix-i{x^3\over3!}+i{x^5\over5!}...= \cos\theta+i\sin\theta =12!x2+4!x4...+ixi3!x3+i5!x5...=cosθ+isinθ
  得证。
  证明看起来很完美,但是有一个小问题——麦克劳林展开的对象是实函数,当带上虚数单位 i i i后能这样展开吗?
  这种证明是不严谨的。事实上,欧拉公式是复指数函数定义的推论。
  复分析中定义复指数函数如下:
e x + i y = e x ( cos ⁡ y + i sin ⁡ y ) e^{x+iy} = e^x(\cos y+i\sin y) ex+iy=ex(cosy+isiny)
  由这个定义,欧拉公式显然成立。
  下面是一本教材中的内容。可以看出欧拉公式其实是这个定义的推论,而不是证明出来的。

2.复指数的周期性

  在实数域,指数函数没有周期性,而在复数域,它有周期性。
  从上述指数函数的定义,显然有:
e z = e z + 2 π i e^{z} = e^{z+2\pi i} ez=ez+2πi
  周期为 2 π i 2\pi i 2πi

3.复指数的积分

  我们考虑这样一个指数为纯虚数的复指数:
e i ( m − n ) ω t e^{i(m-n)\omega t} ei(mn)ωt
  其中, m m m n n n是整数, ω \omega ω是常数, t t t是自变量。
  当它在一个周期内积分时,有:
∫ T e i ( m − n ) ω t   d t = ∫ T cos ⁡ [ ( m − n ) ω t ]   d t + i ∫ T sin ⁡ [ ( m − n ) ω t ]   d t \int_{T} e^{i(m-n)\omega t}\, {\rm d}t=\int_{T} \cos[(m-n)\omega t]\, {\rm d}t+i\int_{T} \sin[(m-n)\omega t]\, {\rm d}t Tei(mn)ωtdt=Tcos[(mn)ωt]dt+iTsin[(mn)ωt]dt
  显然,如果 m ≠ n m\not=n m=n,由于三角函数在周期内积分值为 0 0 0,那么最终结果就是 0 0 0
  如果 m = n m=n m=n,结果为 ∫ T cos ⁡ 0   d t = T \int_{T} \cos 0\, {\rm d}t =T Tcos0dt=T
  事实上,这就是三角函数的正交性

二、傅里叶级数

1.定理的必要性

  在工程上,虚数单位 i i i写作 j j j
  对于周期为 T T T,角频率 ω = 2 π T \omega = {2\pi \over T} ω=T2π的函数 f ( t ) f(t) f(t),不妨假设它可以展开成复指数级数(?):
f ( t ) = ∑ k = − ∞ + ∞ a k e j k ω t f(t)=\sum_{k=-\infty}^{+\infty} a_ke^{jk\omega t} f(t)=k=+akejkωt
  接下来,我们来确定系数 a k a_k ak
  在等式左右两边同时乘以 e − j n ω t e^{-jn\omega t} ejnωt,并在一个周期内取定积分:
∫ T f ( t ) e − j n ω t   d t = ∫ T ∑ k = − ∞ + ∞ a k e j k ω t e − j n ω t   d t \int_{T} f(t)e^{-jn\omega t}\, {\rm d}t=\int_{T} \sum_{k=-\infty}^{+\infty} a_ke^{jk\omega t}e^{-jn\omega t}\, {\rm d}t Tf(t)ejnωtdt=Tk=+akejkωtejnωtdt
  若交换积分和求和顺序(?),继续计算
∫ T ∑ k = − ∞ + ∞ a k e j k ω t e − j n ω t   d t = ∑ k = − ∞ + ∞ ∫ T a k e j ( k − n ) ω t   d t = ∑ k = − ∞ + ∞ a k ∫ T e j ( k − n ) ω t   d t \int_{T} \sum_{k=-\infty}^{+\infty} a_ke^{jk\omega t}e^{-jn\omega t}\, {\rm d}t=\sum_{k=-\infty}^{+\infty}\int_{T} a_ke^{j(k-n)\omega t}\, {\rm d}t = \sum_{k=-\infty}^{+\infty}a_k\int_{T} e^{j(k-n)\omega t}\, {\rm d}t Tk=+akejkωtejnωtdt=k=+Takej(kn)ωtdt=k=+akTej(kn)ωtdt
  由预备知识可知:
∫ T e j ( k − n ) ω t   d t = { 0 , if  k ≠ n T , if  k = n \int_{T} e^{j(k-n)\omega t}\, {\rm d}t=\begin{cases} 0, & \text {if $k\not=n$} \\ T, &\text{if $k=n$} \end{cases} Tej(kn)ωtdt={0,T,if k=nif k=n
  那么上面的式子就可化为:
∑ k = − ∞ + ∞ a k ∫ T e j ( k − n ) ω t   d t = a n T \sum_{k=-\infty}^{+\infty}a_k\int_{T} e^{j(k-n)\omega t}\, {\rm d}t=a_nT k=+akTej(kn)ωtdt=anT
  所以,我们得到系数 a n a_n an
a n = ∫ T f ( t ) e − j n ω t   d t T a_n = {\int_{T} f(t)e^{-jn\omega t}\, {\rm d}t \over T} an=TTf(t)ejnωtdt
  至此,我们证明了必要性,即函数 f ( t ) f(t) f(t)展开成复指数级数的必要条件是其系数 a k a_k ak为上式。
  充分性请读者参考狄利克雷定理,这里不给出证明。
  积分和求和交换次序的问题请读者参考分析教材,这里不给出证明。
  至此,我们就将一个周期函数展开成了复指数级数。

2.如何理解?

  如何理解这个式子?
f ( t ) = ∑ k = − ∞ + ∞ a k e j k ω t f(t)=\sum_{k=-\infty}^{+\infty} a_ke^{jk\omega t} f(t)=k=+akejkωt
  其中,
a k = ∫ T f ( t ) e − j k ω t   d t T a_k = {\int_{T} f(t)e^{-jk\omega t}\, {\rm d}t \over T} ak=TTf(t)ejkωtdt
  从信号的分解角度看,对于任何一个满足迪利克雷条件的周期信号,我们都可以将它分解成若干个频率为 k ω k\omega kω的复信号。其中, ω \omega ω是原信号的角频率,称为基波频率。原信号是由无穷多个频率为 ω \omega ω的整数倍的复信号叠加而成的。

3.为什么要这样分解?

  如果你学过《信号与系统》,你就能更好理解这样分解的好处。
  对于一个线性时不变(LTI)系统,假设系统单位冲激响应为 h ( t ) h(t) h(t)。当输入信号为 x ( t ) x(t) x(t)时,系统的输出 y ( t ) y(t) y(t)满足:
y ( t ) = ∫ − ∞ + ∞ h ( τ ) x ( t − τ )   d τ y(t)=\int_{-\infty}^{+\infty} h(\tau)x(t-\tau)\, {\rm d}\tau y(t)=+h(τ)x(tτ)dτ
  如果输入的是一个复指数信号 x ( t ) = e s t x(t)=e^{st} x(t)=est,则由上述公式,有:
y ( t ) = ∫ − ∞ + ∞ h ( τ ) e s ( t − τ )   d τ = e s t ∫ − ∞ + ∞ h ( τ ) e s τ   d τ = x ( t ) H ( s ) y(t)=\int_{-\infty}^{+\infty} h(\tau)e^{s(t-\tau)}\, {\rm d}\tau = e^{st}\int_{-\infty}^{+\infty} h(\tau)e^{s\tau}\, {\rm d}\tau = x(t)H(s) y(t)=+h(τ)es(tτ)dτ=est+h(τ)esτdτ=x(t)H(s)
  其中 H ( s ) H(s) H(s)是只与 s s s有关的复常数。
  当输入信号是复指数信号时,我们可以很容易确定它的输出信号——一个复常数乘上输入信号
  根据线性时不变(LTI)系统的线性性,输出信号是输入信号分解后,各分解信号单独作用的输出的线性组合。
  如果我们利用傅里叶级数,将一个输入信号分解成若干个复指数信号,则输出信号就是这些复指数信号单独作用的输出的线性组合。而复指数信号单独作用的输出的形式又特别简单,将它们线性组合后,我们就能简单地获得总输出。
  这就是我们展开成傅里叶级数的理由。
  实现了从时域到频域的转变。

三、傅里叶级数的性质

  对于一个周期函数,将其展开成系数为 a k a_k ak的傅里叶级数: f ( t ) = ∑ k = − ∞ + ∞ a k e j k ω t f(t)=\sum_{k=-\infty}^{+\infty} a_ke^{jk\omega t} f(t)=k=+akejkωt,则它有以下几点性质。

1.线性性

  线性组合的傅里叶级数等于傅里叶级数的线性组合。

2.时移

   f ( t − t 0 ) f(t-t_0) f(tt0)的傅里叶展开式系数如下:
a k 1 = ∫ T f ( t − t 0 ) e − j k ω t   d t T = e − j k ω t 0 ∫ T f ( t − t 0 ) e − j k ω ( t − t 0 )   d ( t − t 0 ) T = e − j k ω t 0 a k a_{k1} = {\int_{T} f(t-t_0)e^{-jk\omega t}\, {\rm d}t \over T} = {e^{-jk\omega t_0}\int_{T} f(t-t_0)e^{-jk\omega (t-t_0)}\, {\rm d}(t-t_0) \over T} = e^{-jk\omega t_0}a_k ak1=TTf(tt0)ejkωtdt=Tejkωt0Tf(tt0)ejkω(tt0)d(tt0)=ejkωt0ak

3.时间伸缩

   f ( α t ) f(\alpha t) f(αt)的傅里叶展开式系数如下: ( α > 0 ) (\alpha > 0) (α>0)
a k 2 = ∫ T α f ( α t ) e − j k ( α ω ) t   d t T α = ∫ T α f ( α t ) e − j k ω ( α t )   d t T α = ∫ T α f ( α t ) e − j k ω ( α t )   d ( α t ) T = a k a_{k2} = {\int_{T \over \alpha} f(\alpha t)e^{-jk(\alpha\omega) t}\, {\rm d}t \over {T \over \alpha}} = {\int_{T \over \alpha} f(\alpha t)e^{-jk\omega (\alpha t)}\, {\rm d}t \over {T\over \alpha}} = {\int_{T \over \alpha} f(\alpha t)e^{-jk\omega (\alpha t)}\, {\rm d}(\alpha t) \over {T}}=a_k ak2=αTαTf(αt)ejk(αω)tdt=αTαTf(αt)ejkω(αt)dt=TαTf(αt)ejkω(αt)d(αt)=ak
  特别要注意, f ( α t ) f(\alpha t) f(αt)的周期和频率都发生了变化。
  可见时间伸缩后,其各项系数不变,但是它的基波频率发生了改变。
  减小周期,会增大基波频率;增大周期,会减小基波频率。

4.时间反褶

  因为,
f ( t ) = ∑ k = − ∞ + ∞ a k e j k ω t f(t)=\sum_{k=-\infty}^{+\infty} a_ke^{jk\omega t} f(t)=k=+akejkωt
  所以,
f ( − t ) = ∑ k = − ∞ + ∞ a k e j k ω ( − t ) = ∑ k = − ∞ + ∞ a k e j ( − k ) ω t = ∑ k = − ∞ + ∞ a − k e j k ω t f(-t)=\sum_{k=-\infty}^{+\infty} a_ke^{jk\omega (-t)} = \sum_{k=-\infty}^{+\infty} a_ke^{j(-k)\omega t} = \sum_{k=-\infty}^{+\infty} a_{-k}e^{jk\omega t} f(t)=k=+akejkωt=k=+akej(k)ωt=k=+akejkωt
  所以, f ( − t ) f(-t) f(t)的展开系数为 a − k a_{-k} ak

5.微分性质

  若 f ′ ( t ) f^\prime(t) f(t) f ( t ) f(t) f(t)的导函数,则 f ′ ( t ) f^\prime(t) f(t)的傅里叶级数系数 a k 3 = j k ω a k a_{k3}=jk\omega a_k ak3=jkωak
  证明如下:
a k 3 = ∫ T f ′ ( t ) e − j k ω t   d t T = f ( t ) e − j k ω t ∣ 0 T + j k ω ∫ T f ( t ) e − j k ω t   d t T = j k ω a k a_{k3} = {\int_{T} f^\prime(t)e^{-jk\omega t}\, {\rm d}t \over T} = {f(t)e^{-jk\omega t}\mid _0^T + jk\omega \int_{T} f(t)e^{-jk\omega t}\, {\rm d}t \over T} = jk\omega a_k ak3=TTf(t)ejkωtdt=Tf(t)ejkωt0T+jkωTf(t)ejkωtdt=jkωak

6.实信号

  如果 f ( t ) f(t) f(t)是实信号,那么 a k = a − k ∗ a_k = a_{-k}^* ak=ak
  证明如下,因为:
f ( t ) = ∑ k = − ∞ + ∞ a k e j k ω t f(t) = \sum_{k=-\infty}^{+\infty} a_ke^{jk\omega t} f(t)=k=+akejkωt
  则,
f ( t ) ∗ = ( ∑ k = − ∞ + ∞ a k e j k ω t ) ∗ = ∑ k = − ∞ + ∞ a k ∗ e − j k ω t = ∑ k = − ∞ + ∞ a − k ∗ e j k ω t f(t)^* = (\sum_{k=-\infty}^{+\infty} a_ke^{jk\omega t})^* = \sum_{k=-\infty}^{+\infty} a_k^* e^{-jk\omega t} = \sum_{k=-\infty}^{+\infty} a_{-k}^* e^{jk\omega t} f(t)=(k=+akejkωt)=k=+akejkωt=k=+akejkωt
  因为,
f ( t ) = f ( t ) ∗ f(t) = f(t)^* f(t)=f(t)
  所以,
a k = a − k ∗ a_k = a_{-k}^* ak=ak

7.奇偶性

  如果 f ( t ) f(t) f(t)是实偶函数,那么 a k = a − k = c ( c 是 实 数 ) a_k=a_{-k}=c(c是实数) ak=ak=c(c)
  如果 f ( t ) f(t) f(t)是实奇函数,那么 a k = − a − k = j c ( c 是 实 数 ) a_k=-a_{-k}=jc(c是实数) ak=ak=jc(c)
  不给出详细证明了,可以简单理解。
  因为是实函数,根据上条性质,可设 a k = A + j B a_k=A+jB ak=A+jB a − k = A − j B a_{-k}=A-jB ak=AjB
  如果是偶函数,则 f ( t ) f(t) f(t)是余弦函数的线性组合。利用欧拉公式将余弦转换成复指数,其系数都是实数。故 a k = a − k = c ( c 是 实 数 ) a_k=a_{-k}=c(c是实数) ak=ak=c(c)
  如果是奇函数,则 f ( t ) f(t) f(t)是正弦函数的线性组合。利用欧拉公式将余弦转换成复指数,其系数都是纯虚数。故 a k = − a − k = j c ( c 是 实 数 ) a_k=-a_{-k}=jc(c是实数) ak=ak=jc(c)

8.帕斯瓦尔定理

  定理如下:
1 T ∫ T ∣ f ( t ) ∣ 2   d t = ∑ k = − ∞ + ∞ ∣ a k ∣ 2 {1 \over T} \int_{T} \left|f(t)\right|^2\, {\rm d}t = \sum_{k=-\infty}^{+\infty} \left|a_k\right|^2 T1Tf(t)2dt=k=+ak2

  具体证明比较简单就不给出了。
  事实上,这个式子表示了功率守恒。左边是原信号单位的功率,右边是级数各部分的功率和。
  有人可能会有疑问,为什么和的平方会等于平方的和?实际上,这个问题的答案就是三角函数的正交性,只有同频率的相乘积分才不为 0 0 0


全文完

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值