傅立叶级数与傅立叶变换
      \;\;\,\quad 傅立叶级数/变换的作用是求时域信号的频域表示,傅立叶级数作用于周期信号,而对于非周期信号可以使用傅立叶变换,而在引入冲激函数 δ ( t ) \delta(t) δ(t)之后就可以对周期信号也做傅立叶变换。
     
\;\;\,\quad
傅立叶级数。在上一篇文章中,我们讨论了相关和正交的概念——相关函数用内积用来表述计算两个信号的相似性;用正交性来尽可能简单地描述地描述信号。从这点出发,结合前人研究的经验,傅立叶想到使用三角函数去描述周期信号(后面拓展到非周期信号),将一个周期信号用三角函数的加权和表示,这就是傅立叶级数/变换的来源。
     
\;\;\,\quad
可以证明,
{
1
,
cos
(
x
)
,
sin
(
x
)
,
cos
(
2
x
)
,
sin
(
2
x
)
,
.
.
.
}
\{1,\cos(x),\sin(x),\cos(2x),\sin(2x),...\}
{1,cos(x),sin(x),cos(2x),sin(2x),...}是一个完备正交函数集1,傅立叶将用这个函数集去对信号进行分解。上一篇文章说了,可以把一个信号表示为函数集内各个函数的加权和,即下式。那么问题来了,系数
c
i
c_i
ci怎么求呢?
f
(
x
)
=
∑
i
=
1
n
c
i
g
i
(
x
)
f(x)=\sum_{i=1}^{n}{c_ig_i(x)}
f(x)=i=1∑ncigi(x)
     
\;\;\,\quad
这就要用到相关了。理所当然地,既然是信号分解,那系数就应该表示在这个“方向”上投影的大小(如果不好理解,想想高中物理中,对力的正交分解)。而相关性就是用投影的大小表示的,你说巧不巧。既然这样,那这个系数
c
i
c_i
ci就很好求了!大概应该长这样:
c
i
=
∫
−
∞
∞
f
(
t
)
g
i
(
t
)
d
t
c_i=\int_{-\infty}^{\infty}{f(t)g_i(t)dt}
ci=∫−∞∞f(t)gi(t)dt
     
\;\;\,\quad
嗯,这么看,
g
i
(
t
)
g_i(t)
gi(t)有了,
c
i
c_i
ci怎么算也知道了,可以把傅立叶放出来了。
f
(
t
)
=
a
0
+
∑
n
=
1
∞
a
n
cos
(
n
ω
n
t
)
+
b
n
sin
(
n
ω
n
t
)
其
中
,
a
0
=
1
T
∫
t
0
t
0
+
T
f
(
t
)
×
1
d
t
(
直
流
分
量
)
a
n
=
2
T
∫
t
0
t
0
+
T
f
(
t
)
cos
(
n
ω
1
t
)
d
t
(
余
弦
分
量
)
b
n
=
2
T
∫
t
0
t
0
+
T
f
(
t
)
sin
(
n
ω
1
t
)
d
t
(
正
弦
分
量
)
t
0
任
取
,
T
为
信
号
周
期
,
ω
为
角
频
率
,
ω
=
2
π
f
=
2
π
T
\bm{f(t)=a_0+\sum_{n=1}^{\infty}{a_n\cos{(n\omega_nt)}+b_n\sin{(n\omega_nt)}}} \\其中,a_0=\frac{1}{T}\int_{t_0}^{t_0+T}f(t)\times1 dt(直流分量) \\a_n=\frac{\textbf{2}}{T}\int_{t_0}^{t_0+T}f(t)\cos{(n\omega_1t)}dt (余弦分量) \\b_n=\frac{\textbf{2}}{T}\int_{t_0}^{t_0+T}f(t)\sin{(n\omega_1t)}dt(正弦分量) \\t_0任取,T为信号周期,\omega 为角频率,\omega=2\pi f=\frac{2\pi}{T}
f(t)=a0+n=1∑∞ancos(nωnt)+bnsin(nωnt)其中,a0=T1∫t0t0+Tf(t)×1dt(直流分量)an=T2∫t0t0+Tf(t)cos(nω1t)dt(余弦分量)bn=T2∫t0t0+Tf(t)sin(nω1t)dt(正弦分量)t0任取,T为信号周期,ω为角频率,ω=2πf=T2π
     
\;\;\,\quad
看上去像是这么一回事儿,但是怎么多了个
1
T
\frac{1}{T}
T1,甚至还有
2
T
\frac{\textbf{2}}{T}
T2呢?为了公平起见,取平均。如果不取平均,周期越长的信号积分值可能会越大,对周期短的信号不公平。那分子上的“2”又是从哪里冒出来的呢?这是个好问题!那不如再问多一个问题,为啥求和的范围是
n
=
1
n=1
n=1到
∞
\infty
∞呢?好像没有规定
n
n
n不能为负数吧?不对,
n
n
n怎么可能是负数!如果
n
n
n是负数那岂不是出现了负频率了?那么问题又来了,负频率真的不存在么,如果存在它有什么意义呢?如果想深究,请看附录2,我们就暂且承认它存在吧。引入了负频率之后就很好解释了,本来应该是
∑
−
∞
∞
\sum_{-\infty}^{\infty}
∑−∞∞的,但是这么巧,对我们用到的实信号而言,正负频率系数是相同的,为了计算方便就取一半,
∑
n
=
1
∞
\sum_{n=1}^{\infty}
∑n=1∞,同时系数乘以2,完事儿~
     
\;\;\,\quad
傅立叶级数的“简单”表示。傅立叶级数的原理其实就是上面所说的,把原信号正交分解,再求系数。只不过,在一个式子里面即有cos也有sin,写起来有点长。人是很懒的,能不能少写点呢?这就要用到高中所学的cos和sin的合并公式了,傅立叶级数就可以写成
f
(
t
)
=
c
0
+
∑
n
=
1
∞
c
n
cos
(
n
ω
n
t
+
φ
n
)
其
中
,
c
0
=
a
0
,
c
n
2
=
a
n
2
+
b
n
2
,
φ
n
=
arctan
(
−
b
n
a
n
)
\bm{f(t)=c_0+\sum_{n=1}^{\infty}{c_n\cos{(n\omega_nt+\varphi_n)}}} \\其中,c_0=a_0,c_n^2=a_n^2+b_n^2,\varphi_n=\arctan(-\frac{b_n}{a_n})
f(t)=c0+n=1∑∞cncos(nωnt+φn)其中,c0=a0,cn2=an2+bn2,φn=arctan(−anbn)
     
\;\;\,\quad
能不能再简单点呢?那就引入复频率吧!欧拉老爷子曾经说过,
e
i
x
=
cos
(
x
)
+
i
sin
(
x
)
e^{ix}=\cos(x)+i\sin(x)
eix=cos(x)+isin(x),再做一个
x
=
n
ω
t
x=n\omega t
x=nωt的变量代换,然后我们得到了指数形式的傅立叶级数:
f
(
t
)
=
∑
n
=
−
∞
∞
F
n
e
j
ω
n
t
其
中
,
F
n
=
1
T
∫
t
0
t
0
+
T
f
(
t
)
e
-
j
ω
n
t
d
t
\bm{f(t)=\sum_{n=-\infty}^{\infty}F_ne^{j\omega_nt}} \\其中,F_n=\frac{1}{T}\int_{t_0}^{t_0+T}f(t)e^{\textbf{-}j\omega_nt}dt
f(t)=n=−∞∑∞Fnejωnt其中,Fn=T1∫t0t0+Tf(t)e-jωntdt
     
\;\;\,\quad
多简洁!注意,积分是
∑
−
∞
∞
\sum_{-\infty}^{\infty}
∑−∞∞,包括了负频率,因此
F
n
F_n
Fn是
1
T
\frac{1}{T}
T1,非常直观。诶不对!为什么求
F
n
F_n
Fn时做相关运算的复指数信号是负值(
-
j
ω
n
t
{\textbf{-}j\omega_nt}
-jωnt)?这是因为它是个复信号,在上一篇文章附录我们专门提到过,对复能量信号求相关,要对
f
2
f_2
f2求共轭,
R
12
(
τ
)
=
∫
−
∞
+
∞
f
1
(
t
)
⋅
f
2
∗
(
t
−
τ
)
d
t
R_{12}(\tau)=\int_{-\infty}^{+\infty}{f_1 (t)·f_2^* (t-\tau)}dt
R12(τ)=∫−∞+∞f1(t)⋅f2∗(t−τ)dt,而
e
j
ω
n
t
e^{j\omega_nt}
ejωnt的共轭就是
e
-
j
ω
n
t
e^{\textbf{-}j\omega_nt}
e-jωnt。这样来看这条式子就很好理解了。其中
F
n
F_n
Fn是复振幅,前面的
a
n
,
b
n
,
c
n
a_n,b_n,c_n
an,bn,cn都是实数。由这个
F
n
F_n
Fn我们可以得到
f
(
t
)
f(t)
f(t)的双边频谱(范围从
−
∞
-\infty
−∞到
∞
\infty
∞),但是由于
F
n
F_n
Fn是复数,画图的时候我们只能画出它的绝对值
∣
F
n
∣
|F_n|
∣Fn∣,这是需要注意的(除非画三维频谱图)。
     
\;\;\,\quad
傅立叶变换。有了指数形式的傅立叶级数的认识,理解傅立叶变化就简单多了。周期信号的频谱是离散的,只有特定频点(谐波的整数倍)有值;而非周期信号的频谱是连续的,没有特定的谐波频率,所以要把指数形式的傅立叶级数的求和换为积分,由此,我们就得到傅立叶变换和逆变换的公式:
F
(
ω
)
=
F
[
f
(
t
)
]
=
∫
−
∞
+
∞
f
(
t
)
e
-
j
ω
n
t
d
t
f
(
t
)
=
F
−
1
[
F
(
ω
)
]
=
1
2
π
∫
−
∞
+
∞
F
(
ω
)
e
j
ω
n
t
d
ω
F(\omega)=\mathcal{F}[f(t)]=\int_{-\infty}^{+\infty}{f (t)e^{\textbf{-}j\omega_nt}}dt \\f(t)=\mathcal{F}^{-1}[F(\omega)]=\frac{1}{2\pi}\int_{-\infty}^{+\infty}{F(\omega)e^{j\omega_nt}}d\omega
F(ω)=F[f(t)]=∫−∞+∞f(t)e-jωntdtf(t)=F−1[F(ω)]=2π1∫−∞+∞F(ω)ejωntdω
     
\;\;\,\quad
p.s.
F
(
ω
)
F(\omega)
F(ω)可能在别的书上表示为
F
(
j
ω
)
,
F
(
e
j
ω
)
F(j\omega),F(e^{j\omega})
F(jω),F(ejω)
     
\;\;\,\quad
可能你们还想问,
1
T
\frac{1}{T}
T1怎么不见了,怎么又出来了个
1
2
π
\frac{1}{2\pi}
2π1,emmm这其实是个数学问题,大概意思是来源于
ω
=
2
π
T
\omega=\frac{2\pi}{T}
ω=T2π,详细证明请看奥本海姆《信号与系统》第四章。这篇文章主要内容是讲它核心运算的意义,将原时域上表示的信号与频域信号做内积,投影到频域的各个频点上。
      \;\;\,\quad 至此,对傅立叶级数和傅立叶变换的讨论就结束了。3我是使用相关和正交的概念来对他们进行讨论的,与从三角函数讲起的文章4相比,这种思路更容易拓展到拉普拉斯变换、z变换,甚至拓展到自己想要的域上面的变换。
      \;\;\,\quad 如果本文有不严谨和不科学的地方,欢迎指出!谢谢各位捧场!
正交函数集指的是对集合内的每个函数,两两正交,即 ⟨ g i , g j ⟩ = 0 ( i ≠ j ) \langle{g_i,g_j}\rangle=0(i \neq j) ⟨gi,gj⟩=0(i̸=j)。完备正交函数集,指的是这个集合满足,找不到其他函数,即不在这个函数集内,还能和该集合内的函数正交。详情见郑君里《信号与系统》第六章。 ↩︎
负频率这东西,看起来像是欧拉老头子引入的,只有数学上的意义。由于我们平时看到的信号都是实信号,不好理解这怎么能是负的,其实只是我们的视角问题。回忆一下复数的幅角表示, c = a + j b = A e j θ c=a+jb=Ae^{j\theta} c=a+jb=Aejθ, θ \theta θ为正时角度为正逆时针转,负数为顺时针转,而角频率 ω \omega ω就是对 θ \theta θ求导得到的,负频率就意味着它的“转动方向”是顺时针。这在机械和控制理论上用得可能会更多。由于比较抽象,可以参考别人对负频率的解释加以理解:链接1,链接2,链接3 ↩︎
并不是说从三角函数讲起不好,我只是提供了另外一种思路。在写完本文后,我又查了一下网上讲傅立叶变换的文章,这一篇讲解得非常地生动形象(主要是配了很多图),推荐大家去看一下。看待一个事物的方法不止一种,多看,多学,多想会更有帮助。 ↩︎