简单粗暴傅里叶级数
楠木
wnn2000@hust.edu.cn
文章目录
为什么写本文?
我是电信专业的。对于这个专业来讲,傅里叶级数和傅里叶变换这部分知识太重要了。我在大一学微积分时,对这部分内容就有点懵,基本上是靠死背公式糊弄过去的。现在到了大二,傅里叶反复出现在《复变函数》、《信号与系统》、《数理方程》等课程中。我意识到必须把它弄懂了。
网络上有很多关于傅里叶级数的文章。其阐述角度,思路都令人耳目一新。唯一的缺点是,大部分的文章都只从sin x
和cos 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+ix−2!x2−i3!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
=1−2!x2+4!x4−...+ix−i3!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(m−n)ω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(m−n)ωtdt=∫Tcos[(m−n)ωt]dt+i∫Tsin[(m−n)ω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}
e−jnω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)e−jnωtdt=∫Tk=−∞∑+∞akejkωte−jnω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ωte−jnωtdt=k=−∞∑+∞∫Takej(k−n)ωtdt=k=−∞∑+∞ak∫Tej(k−n)ω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(k−n)ω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=−∞∑+∞ak∫Tej(k−n)ω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=T∫Tf(t)e−jnω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=T∫Tf(t)e−jkω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(t−t0)的傅里叶展开式系数如下:
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=T∫Tf(t−t0)e−jkωtdt=Te−jkωt0∫Tf(t−t0)e−jkω(t−t0)d(t−t0)=e−jkω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)e−jk(αω)tdt=αT∫αTf(αt)e−jkω(αt)dt=T∫αTf(αt)e−jkω(α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=−∞∑+∞a−kejkωt
所以,
f
(
−
t
)
f(-t)
f(−t)的展开系数为
a
−
k
a_{-k}
a−k
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=T∫Tf′(t)e−jkωtdt=Tf(t)e−jkωt∣0T+jkω∫Tf(t)e−jkωtdt=jkωak
6.实信号
如果
f
(
t
)
f(t)
f(t)是实信号,那么
a
k
=
a
−
k
∗
a_k = a_{-k}^*
ak=a−k∗
证明如下,因为:
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=−∞∑+∞ak∗e−jkωt=k=−∞∑+∞a−k∗ejkωt
因为,
f
(
t
)
=
f
(
t
)
∗
f(t) = f(t)^*
f(t)=f(t)∗
所以,
a
k
=
a
−
k
∗
a_k = a_{-k}^*
ak=a−k∗
7.奇偶性
如果
f
(
t
)
f(t)
f(t)是实偶函数,那么
a
k
=
a
−
k
=
c
(
c
是
实
数
)
a_k=a_{-k}=c(c是实数)
ak=a−k=c(c是实数)
如果
f
(
t
)
f(t)
f(t)是实奇函数,那么
a
k
=
−
a
−
k
=
j
c
(
c
是
实
数
)
a_k=-a_{-k}=jc(c是实数)
ak=−a−k=jc(c是实数)
不给出详细证明了,可以简单理解。
因为是实函数,根据上条性质,可设
a
k
=
A
+
j
B
a_k=A+jB
ak=A+jB,
a
−
k
=
A
−
j
B
a_{-k}=A-jB
a−k=A−jB
如果是偶函数,则
f
(
t
)
f(t)
f(t)是余弦函数的线性组合。利用欧拉公式将余弦转换成复指数,其系数都是实数。故
a
k
=
a
−
k
=
c
(
c
是
实
数
)
a_k=a_{-k}=c(c是实数)
ak=a−k=c(c是实数)
如果是奇函数,则
f
(
t
)
f(t)
f(t)是正弦函数的线性组合。利用欧拉公式将余弦转换成复指数,其系数都是纯虚数。故
a
k
=
−
a
−
k
=
j
c
(
c
是
实
数
)
a_k=-a_{-k}=jc(c是实数)
ak=−a−k=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
T1∫T∣f(t)∣2dt=k=−∞∑+∞∣ak∣2
具体证明比较简单就不给出了。
事实上,这个式子表示了功率守恒。左边是原信号单位的功率,右边是级数各部分的功率和。
有人可能会有疑问,为什么和的平方会等于平方的和?实际上,这个问题的答案就是三角函数的正交性,只有同频率的相乘积分才不为
0
0
0。
全文完