上一部分讲述了有关正交函数集的概念,是学习理解傅里叶级数、傅里叶变换的数学基础。这一部分将了解将信号表示为傅里叶级数的方法。傅里叶级数是一种最常用的正交函数集,在信号处理,数字信号处理,滤波等等工程中有着广泛的应用.
1. 什么是傅里叶级数?
傅里叶级数是一种正交函数集,通过列举法表示如下:
{
1
,
c
o
s
Ω
t
,
s
i
n
Ω
t
,
c
o
s
2
Ω
t
,
s
i
n
2
Ω
t
,
⋯
,
c
o
s
k
Ω
t
,
s
i
n
k
Ω
t
}
\{1, \space cos\Omega t,\space sin\Omega t,\space cos2\Omega t,\space sin2\Omega t, \cdots,cosk\Omega t,\space sink\Omega t \}
{1, cosΩt, sinΩt, cos2Ωt, sin2Ωt,⋯,coskΩt, sinkΩt}
其中:
Ω
=
2
π
T
=
2
π
t
2
−
t
1
\Omega = \frac{2\pi}{T}=\frac{2\pi}{t_2-t_1}
Ω=T2π=t2−t12π
或使用函数集合的方式表示为:
{
c
o
s
(
n
Ω
t
)
,
s
i
n
(
n
Ω
t
)
∣
n
=
0
,
1
,
2
,
⋯
}
\{ cos(n\Omega t), \space sin(n\Omega t)\space |n=0,1,2,\cdots \}
{cos(nΩt), sin(nΩt) ∣n=0,1,2,⋯}
这一部分存在非常严谨的数学证明和推导,但是这里不需要过渡强调其数学的严谨性,只需要了解傅里叶级数是一种最常用的正交函数集,其表现形式如上所示即可。
傅里叶级数具备如下性质:
- 正交性:函数集中的函数两两相正交,即:
{ ∫ t 1 t 2 c o s ( n Ω t ) s i n ( m Ω t ) d t = 0 ∫ t 1 t 2 c o s ( n Ω t ) c o s ( m Ω t ) d t = 0 , m ≠ n ∫ t 1 t 2 s i n ( n Ω t ) s i n ( m Ω t ) d t = 0 , m ≠ n \left\{ \begin{aligned} &\int_{t_1}^{t_2}cos(n\Omega t)sin(m\Omega t)dt = 0 \\&\int_{t_1}^{t_2}cos(n\Omega t)cos(m\Omega t)dt = 0, \space\space m\neq n \\&\int_{t_1}^{t_2}sin(n\Omega t)sin(m\Omega t)dt = 0, \space\space m\neq n \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧∫t1t2cos(nΩt)sin(mΩt)dt=0∫t1t2cos(nΩt)cos(mΩt)dt=0, m=n∫t1t2sin(nΩt)sin(mΩt)dt=0, m=n
- 归一性:
- 当 n ≠ 0 n\neq 0 n=0时:
∫ t 1 t 2 c o s 2 ( n Ω t ) d t = ∫ t 1 t 2 s i n 2 ( n Ω t ) d t = T 2 = t 2 − t 1 2 \int_{t_1}^{t_2}cos^2(n\Omega t)dt = \int_{t_1}^{t_2}sin^2(n\Omega t)dt=\frac{T}{2}=\frac{t_2-t_1}{2} ∫t1t2cos2(nΩt)dt=∫t1t2sin2(nΩt)dt=2T=2t2−t1
- 当 n = 0 n=0 n=0时:
∫ t 1 t 2 1 d t = T = t 2 − t 1 \int_{t_1}^{t_2}1dt=T=t_2-t_1 ∫t1t21dt=T=t2−t1
可见,傅里叶级数虽然不具备归一性,但是对自身平方的积分仍是一个常数,在运算过程中相对简便。
2. 如何将信号表示为傅里叶级数?
2.1 傅里叶级数展开
任意信号
f
(
t
)
f(t)
f(t)可以通过傅里叶级数进行如下表示:
f
(
t
)
=
a
0
+
a
1
c
o
s
(
Ω
t
)
+
a
2
c
o
s
(
2
Ω
t
)
+
⋯
+
a
n
c
o
s
(
n
Ω
t
)
+
b
1
s
i
n
(
Ω
t
)
+
b
2
s
i
n
(
2
Ω
t
)
+
⋯
+
b
n
s
i
n
(
n
Ω
t
)
=
a
0
+
∑
n
=
1
+
∞
[
a
n
c
o
s
(
n
Ω
t
)
+
b
n
s
i
n
(
n
Ω
t
)
]
\begin{aligned} f(t)&= a_0+a_1cos(\Omega t)+a_2cos(2\Omega t) +\cdots+a_ncos(n\Omega t) \\&+b_1sin(\Omega t) + b_2sin(2\Omega t) +\cdots+b_nsin(n\Omega t) \\&=a_0+\sum_{n=1}^{+\infty}[a_ncos(n\Omega t)+b_nsin(n\Omega t )] \end{aligned}
f(t)=a0+a1cos(Ωt)+a2cos(2Ωt)+⋯+ancos(nΩt)+b1sin(Ωt)+b2sin(2Ωt)+⋯+bnsin(nΩt)=a0+n=1∑+∞[ancos(nΩt)+bnsin(nΩt)]
上式的系数为:
a
n
=
∫
t
1
t
2
f
(
t
)
c
o
s
(
n
Ω
t
)
d
t
∫
t
1
t
2
c
o
s
2
(
n
Ω
t
)
d
t
=
{
2
t
2
−
t
1
∫
t
1
t
2
f
(
t
)
c
o
s
(
n
Ω
t
)
d
t
,
n
≠
0
1
t
2
−
t
1
∫
t
1
t
2
f
(
t
)
,
n
=
0
a_n=\frac{\int_{t_1}^{t_2}f(t)cos(n\Omega t)dt}{\int_{t_1}^{t_2}cos^2(n\Omega t)dt}= \left\{ \begin{aligned} &\frac{2}{t_2-t_1}\int_{t_1}^{t_2}f(t)cos(n\Omega t)dt, \space \space & n\neq0 \\&\frac{1}{t_2-t_1}\int_{t_1}^{t_2}f(t), \space \space & n=0 \end{aligned} \right.
an=∫t1t2cos2(nΩt)dt∫t1t2f(t)cos(nΩt)dt=⎩⎪⎪⎪⎨⎪⎪⎪⎧t2−t12∫t1t2f(t)cos(nΩt)dt, t2−t11∫t1t2f(t), n=0n=0
b n = ∫ t 1 t 2 f ( t ) s i n ( n Ω t ) d t ∫ t 1 t 2 s i n 2 ( n Ω t ) d t = 2 t 2 − t 1 ∫ t 1 t 2 f ( t ) s i n ( n Ω t ) d t \begin{aligned} b_n=\frac{\int_{t_1}^{t_2} f(t)sin(n\Omega t)dt}{\int_{t_1}^{t_2}sin^2(n\Omega t)dt}= \frac{2}{t_2-t_1}\int_{t_1}^{t_2}f(t)sin(n\Omega t)dt \end{aligned} bn=∫t1t2sin2(nΩt)dt∫t1t2f(t)sin(nΩt)dt=t2−t12∫t1t2f(t)sin(nΩt)dt
关于上述系数表达式的由来可以回顾信号与系统(6)- 信号频域研究的思路及正交函数集。
2.2 傅里叶级数展开-形式1
由于上式中
a
0
a_0
a0表达起来不是很方便,需要将n进行分类讨论,因此为了将
a
0
a_0
a0的表达统一起来,任意信号
f
(
t
)
f(t)
f(t)通过傅里叶级数可以表示为:
f
(
t
)
=
a
0
2
+
∑
n
=
1
+
∞
[
a
n
c
o
s
(
n
Ω
t
)
+
b
n
s
i
n
(
n
Ω
t
)
]
f(t) = \frac{a_0}{2}+\sum_{n=1}^{+\infty}[a_ncos(n\Omega t)+b_nsin(n\Omega t)]
f(t)=2a0+n=1∑+∞[ancos(nΩt)+bnsin(nΩt)]
其中每一项系数为:
a
n
=
2
t
2
−
t
1
∫
t
1
t
2
f
(
t
)
c
o
s
(
n
Ω
t
)
d
t
b
n
=
2
t
2
−
t
1
∫
t
1
t
2
f
(
t
)
s
i
n
(
n
Ω
t
)
d
t
\begin{aligned} a_n&=\frac{2}{t_2-t_1}\int_{t_1}^{t_2}f(t)cos(n\Omega t)dt \\b_n&=\frac{2}{t_2-t_1}\int_{t_1}^{t_2}f(t)sin(n\Omega t)dt \end{aligned}
anbn=t2−t12∫t1t2f(t)cos(nΩt)dt=t2−t12∫t1t2f(t)sin(nΩt)dt
上式即为傅里叶级数展开的常见表达形式之一,即:信号可以表示成为直流信号和一系列正弦信号之和。其中直流部分之所以用
a
0
2
\frac{a_0}{2}
2a0而不是
a
0
a_0
a0是为了将
a
0
a_0
a0的表示进行统一。
2.3 傅里叶级数展开-形式2
傅里叶级数也存在另一种表现形式:
f
(
t
)
=
a
0
2
+
∑
n
=
1
+
∞
A
n
c
o
s
(
n
Ω
t
+
φ
n
)
f(t)=\frac{a_0}{2}+\sum_{n=1}^{+\infty}A_ncos(n\Omega t + \varphi_n)
f(t)=2a0+n=1∑+∞Ancos(nΩt+φn)
其中:
A
n
=
a
n
2
+
b
n
2
,
φ
n
=
−
a
r
c
t
a
n
b
n
a
n
\begin{aligned} A_n = \sqrt{a_n^2+b_n^2}, \\\varphi_n = -arctan\frac{b_n}{a_n} \end{aligned}
An=an2+bn2,φn=−arctananbn
这个形式的傅里叶级数展开可以看做是下列正交函数集平移后的线性组合:
{
c
o
s
(
n
Ω
t
)
∣
n
=
0
,
1
,
2
,
⋯
}
\{ cos(n\Omega t) \space| n= 0,1,2,\cdots\}
{cos(nΩt) ∣n=0,1,2,⋯}
- 式中系数 a 0 2 \frac{a_0}{2} 2a0称为信号的直流分量
- a 1 c o s ( Ω t ) , a 1 s i n ( Ω t ) a_1cos({\Omega t}), a_1sin(\Omega t) a1cos(Ωt),a1sin(Ωt), 或 A c o s ( Ω t + φ 1 ) A_cos(\Omega t+ \varphi_1) Acos(Ωt+φ1)称为信号的基波分量
- a 1 c o s ( n Ω t ) , a 1 s i n ( n Ω t ) a_1cos({n\Omega t}), a_1sin(n\Omega t) a1cos(nΩt),a1sin(nΩt), 或 A c o s ( n Ω t + φ 1 ) A_cos(n\Omega t+ \varphi_1) Acos(nΩt+φ1)称为信号的n次谐波分量
傅里叶级数的展开形式2再次用到了线性时不变系统的性质,即系统的齐次性、叠加性以及时不变性,相关概念可以回顾信号与系统(2)- 系统。
3. 上述傅里叶级数展开的适用条件是什么?
-
Direchlet证明,当满足以下3个条件时,在n趋向于无穷大时,傅里叶级数可以没有误差的表示信 f ( t ) f(t) f(t)
-
f ( t ) f(t) f(t)绝对可积,即: ∫ t 1 t 2 ∣ f ( t ) ∣ d t < ∞ \int_{t_1}^{t_2}|f(t)|dt<\infty ∫t1t2∣f(t)∣dt<∞;
-
f ( t ) f(t) f(t)在区间 [ t 1 , t 2 ] [t_1,t_2] [t1,t2]内有有限个间断点;
-
f ( t ) f(t) f(t)在区间 [ t 1 , t 2 ] [t_1,t_2] [t1,t2]内有有限个极值点,举个反例,如 s i n ( 1 t ) sin(\frac{1}{t}) sin(t1)这个函数有无穷多个极值点
-
Direchlet同时也为傅里叶级数作为子信号的完备性提出了证明。至此,子信号应具备的正交性、归一性以及完备性均得到了讨论和论述。其中归一性虽然不满足,但是结果相对容易进行计算。
-
一般情况下,n的取值无法趋近于无穷大,因此这种正交展开是存在一定误差的,并且n越大,误差越小,在误差允许的范围内,这种展开仍是一种非常好的展开。
-
-
由 f ( t ) = a 0 2 + ∑ n = 1 + ∞ [ a n c o s ( n Ω t ) + b n s i n ( n Ω t ) ] f(t) = \frac{a_0}{2}+\sum_{n=1}^{+\infty}[a_ncos(n\Omega t)+b_nsin(n\Omega t)] f(t)=2a0+∑n=1+∞[ancos(nΩt)+bnsin(nΩt)]可见,等式右边是一个周期信号的和,所以仍为周期信号。所以这种分解可以用在2个场合:
-
研究函数在区间 ( t 1 , t 2 ) (t_1,t_2) (t1,t2)内德分解。
-
研究周期为T的函数在整个时间区间的分解。
-
其中第2种场合是常使用的场合,比如正弦稳态响应等分析,都是研究周期函数在整个时间区间的分解。
-
4. 傅里叶级数如何展开的特例-周期信号的傅里叶级数展开
若信号
f
(
t
)
f(t)
f(t)的周期为T,因此通常研究或关注的时间区间为
[
−
1
T
,
1
T
]
[-\frac{1}{T},\frac{1}{T}]
[−T1,T1]或
[
0
,
T
]
[0,T]
[0,T]。比如对方波信号进行傅里叶展开:
f
(
t
)
=
{
1
,
0
<
t
<
T
2
−
1
,
T
2
<
t
<
T
f(t)=\left\{ \begin{aligned} 1, \space \space 0<t<\frac{T}{2} \\-1, \space \space \frac{T}{2}<t<T \end{aligned} \right.
f(t)=⎩⎪⎪⎨⎪⎪⎧1, 0<t<2T−1, 2T<t<T
按照定义,方波信号的傅里叶级数展开如下:
a
n
=
2
T
∫
0
T
f
(
t
)
c
o
s
(
n
Ω
t
)
d
t
=
0
a_n=\frac{2}{T}\int_{0}^{T}f(t)cos(n\Omega t)dt=0
an=T2∫0Tf(t)cos(nΩt)dt=0
b
n
=
2
T
∫
0
T
f
(
t
)
s
i
n
(
n
Ω
t
)
d
t
=
{
4
n
π
,
n
为
奇
数
0
,
n
为
偶
数
b_n=\frac{2}{T}\int_{0}^{T}f(t)sin(n\Omega t)dt=\left\{ \begin{aligned} &\frac{4}{n\pi}&, \space \space &n为奇数 \\&0&, \space \space &n为偶数 \end{aligned} \right.
bn=T2∫0Tf(t)sin(nΩt)dt=⎩⎨⎧nπ40, , n为奇数n为偶数
因此,方波周期信号的傅里叶级数展开为:
f
(
t
)
=
4
π
[
s
i
n
(
Ω
t
)
+
1
3
s
i
n
(
3
Ω
t
)
+
1
5
s
i
n
(
5
Ω
t
)
+
⋯
+
1
n
s
i
n
(
n
Ω
t
)
]
,
n
为
奇
数
f(t) = \frac{4}{\pi}[sin(\Omega t)+\frac{1}{3}sin(3\Omega t)+\frac{1}{5}sin(5\Omega t)+\cdots + \frac{1}{n}sin(n\Omega t)], n为奇数
f(t)=π4[sin(Ωt)+31sin(3Ωt)+51sin(5Ωt)+⋯+n1sin(nΩt)],n为奇数
由此可见,方波周期信号的傅里叶级数展开是一组仅含有奇次谐波的不同幅值的正弦信号的叠加,随着谐波数的增加,频率分量的幅值逐渐减少,如下图所示:
该图片引自知乎论坛真情妙语著文章,作者的MATLAB程序可以非常直观的对通过傅里叶级数合成周期信号进行展示。
下图是一个通过傅里叶级数对周期方波信号的表示,可以看到,随着n的增加,合成的信号越来越接近原信号。下图源于Brilliant
在用傅里叶级数表示周期的方波信号时,在方波信号的跳变边缘会出现一个超跳,如下图所示,图片来源于Brilliant
这个现象称为Gibbs现象,即:随着n趋向于无穷,在函数的间断点附近至少存在一点,其函数的分解误差收敛于函数在这点上跳变值得8.948987%。
问题:Gibbs现象证明存在误差,而Direchlet证明没有误差,这里是不是矛盾?
不矛盾,只是两者对“相等”的理解不同。Direchlet的相等指的是“方均”意义上的相等,即等号两端的方均误差为0,也称为方均收敛。而Gibbs的相等指的是逐点收敛。具体细节涉及到很多数学论证,这里不多进行讨论。
在工程中,由于动态原件,如电容和电感的存在,系统很难出现这样的跳变,因此傅里叶级数是可以非常好的对任意符合Direchlet条件的周期信号进行表示的。
下一步将阐述对复指数形式的傅里叶变换,也是使用最广泛的一种形式。
谢谢阅读,如有不当之处请批评指出,谢谢!