简单粗暴傅里叶级数

Posted 楠木_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单粗暴傅里叶级数相关的知识,希望对你有一定的参考价值。

简单粗暴傅里叶级数

楠木
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!-ix^3\\over3!+x^4\\over4!+ix^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-ix^3\\over3!+ix^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 dt=\\int_T \\cos[(m-n)\\omega t]\\, \\rm dt+i\\int_T \\sin[(m-n)\\omega t]\\, \\rm dt 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 dt =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
  接下来,我们来确定系数

以上是关于简单粗暴傅里叶级数的主要内容,如果未能解决你的问题,请参考以下文章

傅里叶级数系数​​ gnuplot

Matlab中的傅里叶级数系数​​使用FFT不是负数

matlab 编写计算傅里叶级数函数

傅里叶级数

傅里叶级数拟合 Python

第三章 傅里叶级数