首先,放一张图,与本文相关的示意图都可以在这张图里找到。
周期性连续函数傅里叶级数(CTFS)
周期性时间连续函数
x
~
(
t
)
\tilde x(t)
x~(t)可以写成一系列正余弦的三角函数之和
x
~
(
t
)
=
a
0
2
+
∑
n
=
1
∞
[
a
n
cos
(
n
2
π
T
t
)
+
b
n
sin
(
n
2
π
T
t
)
]
1.1
\tilde{x}(t)=\frac{a_0}{2}+\sum_{n=1}^{\infty}\left[a_n\cos\left(n\frac{2\pi}{T}t\right)+b_n\sin\left(n\frac{2\pi}{T}t\right)\right]\tag*{1.1}
x~(t)=2a0+n=1∑∞[ancos(nT2πt)+bnsin(nT2πt)]1.1
式中:
a
n
=
2
T
∫
−
T
2
T
2
x
~
(
t
)
cos
(
n
2
π
T
t
)
d
t
b
n
=
2
T
∫
−
T
2
T
2
x
~
(
t
)
sin
(
n
2
π
T
t
)
d
t
a_n=\frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}\tilde{x}(t)\cos\left(n\frac{2\pi}{T}t\right)dt\\b_n=\frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}\tilde{x}(t)\sin\left(n\frac{2\pi}{T}t\right)dt
an=T2∫−2T2Tx~(t)cos(nT2πt)dtbn=T2∫−2T2Tx~(t)sin(nT2πt)dt
由式1.1我们也可以看出
x
~
(
t
+
T
)
=
x
~
(
t
)
\tilde{x}(t+T)=\tilde{x}(t)
x~(t+T)=x~(t)它是周期函数,符号
∼
\sim
∼代表它是周期性的。换言之,只有周期性函数才可以这样写。虽然
x
~
(
t
)
\tilde x(t)
x~(t)是定义在
(
−
∞
,
+
∞
)
(-\infty,+\infty)
(−∞,+∞)上的周期性系数,但
a
n
a_n
an以及
b
n
b_n
bn都是在主周期内的积分。
这里我们引用一下线性空间里面的正交基的概念,我们可以把 1 , cos ( 2 π T t ) , sin ( 2 π T t ) , ⋯ 1,\cos(\frac{2\pi}{T}t),\sin(\frac{2\pi}{T}t),\cdots 1,cos(T2πt),sin(T2πt),⋯看成一组正交基,那么 a n a_n an和 b n b_n bn就是这组正交基下的坐标(或者叫 x ~ ( t ) \tilde x(t) x~(t)在这组正交基上的投影)。这里的线性空间内的两个向量 α , β \alpha,\beta α,β内积定义为: < α , β > = 1 / T ∫ − T / 2 T / 2 α ⋅ β d t <\alpha,\beta>=1/T\int_{-T/2}^{T/2}\alpha\cdot\beta dt <α,β>=1/T∫−T/2T/2α⋅βdt。
对于n倍频处:
a
n
c
o
s
(
n
2
π
T
t
)
+
b
n
sin
(
n
2
π
T
t
)
a_ncos(n\frac{2\pi}{T}t)+b_n\sin(n\frac{2\pi}{T}t)
ancos(nT2πt)+bnsin(nT2πt)。接下来引入宇宙第一耍帅公式:欧拉公式,即
e
j
θ
=
cos
(
θ
)
+
j
sin
(
θ
)
e^{j \theta}=\cos(\theta)+j\sin(\theta)
ejθ=cos(θ)+jsin(θ),那么我们得出
cos
(
θ
)
=
e
j
θ
+
e
−
j
θ
2
sin
(
θ
)
=
e
j
θ
−
e
−
j
θ
2
j
\cos( \theta)=\frac{e^ {j\theta}+e ^ {-j\theta}}{2}\\ \sin(\theta)=\frac{e^ {j\theta}-e^ {-j\theta}}{2j}
cos(θ)=2ejθ+e−jθsin(θ)=2jejθ−e−jθ把它代入1.1式,我们整理一下就可以得到
x
~
(
t
)
=
∑
n
=
0
∞
[
a
n
+
j
b
n
2
e
−
j
n
2
π
T
t
+
a
n
−
j
b
n
2
e
j
n
2
π
T
t
]
\tilde{x}(t)=\sum_{n=0}^{\infty}\left[\frac{a_n+jb_n}{2}e^ {-jn\frac{2\pi}{T}t}+\frac{a_n-jb_n}{2}e^{jn\frac{2\pi}{T}t}\right]
x~(t)=n=0∑∞[2an+jbne−jnT2πt+2an−jbnejnT2πt]其中
a
0
a_0
a0归并,可以改写为:
x
~
(
t
)
=
∑
n
=
−
∞
+
∞
A
n
e
j
n
2
π
T
t
\tilde{x}(t)=\sum_{n=-\infty}^{+\infty}A_ne^{jn\frac{2\pi}{T}t}
x~(t)=n=−∞∑+∞AnejnT2πt可以根据欧拉公式以及
a
n
,
b
n
a_n,b_n
an,bn的表达式得出
A
n
=
1
T
∫
−
T
/
2
−
T
/
2
f
~
(
t
)
e
−
j
n
2
π
T
t
d
t
A_n=\frac{1}{T}\int_{-T/2}^{-T/2}\tilde{f}(t)e^{-jn\frac{2\pi}{T}t}dt
An=T1∫−T/2−T/2f~(t)e−jnT2πtdt
这里我们也可以看到 ∣ A n ∣ |A_n| ∣An∣是偶对称的,其中 A n A_n An的实数部分是偶对称,虚数部分是奇对称的。所以,其 n < 0 n<0 n<0部分是重复信息。只要考虑 n > 0 n>0 n>0的部分就可以了。 A n A_n An中包含有余弦系数和正弦系数,如 A n = R e ( A n ) + j I m ( A n ) = ∣ A n ∣ a r g A n A_n=Re(A_n)+jIm(A_n)=|A_n|arg A_n An=Re(An)+jIm(An)=∣An∣argAn,而 a n cos ( x ) + b n sin ( x ) = a n 2 + b n 2 cos [ x + arctan ( b n a n ) ] a_n\cos(x)+b_n\sin(x)=\sqrt{a_n^2+b_n^2}\cos[x+\arctan(\frac{b_n}{a_n})] ancos(x)+bnsin(x)=an2+bn2cos[x+arctan(anbn)]可知, A n A_n An把 cos \cos cos项和 sin \sin sin项结合起来了,可以写成一个 cos \cos cos项。因此, ∣ A n ∣ |A_n| ∣An∣也叫n阶的幅值, arg ( A n ) \arg(A_n) arg(An)也叫n阶幅角。
非周期函数的傅里叶变换(CTFT)
我们取非周期函数 x ( t ) x(t) x(t)它是 x ~ ( t ) \tilde{x}(t) x~(t) 的主周期,而在主周期之外,定义为0。那么 x ( t ) = lim T → + ∞ x ~ ( t ) x(t)=\lim\limits_{T\to +\infty}{\tilde{x}(t)} x(t)=T→+∞limx~(t) 。我们知道 A n = 1 T ∫ − T / 2 − T / 2 x ~ ( t ) e − j n 2 π T t d t = 1 T ∫ − ∞ + ∞ x ( t ) e − j n 2 π T t d t A_n=\frac{1}{T}\int_{-T/2}^{{-T/2}}\tilde{x}(t)e^{-jn\frac{2\pi}{T}t}dt=\frac{1}{T}\int_{-\infty}^{+\infty}x(t)e^{-jn\frac{2\pi}{T}t}dt An=T1∫−T/2−T/2x~(t)e−jnT2πtdt=T1∫−∞+∞x(t)e−jnT2πtdt。我们定义 ∫ − ∞ + ∞ x ( t ) e − j Ω t d t = X ( j Ω ) \int_{-\infty}^{+\infty}x(t)e^{-j\Omega t}dt=X(j\Omega) ∫−∞+∞x(t)e−jΩtdt=X(jΩ)为非周期函数 x ( t ) x(t) x(t)的傅里叶变换(CTFT)。
从这里我们可以看出
T
⋅
A
n
=
X
(
j
Ω
)
∣
Ω
=
n
2
π
T
T\cdot A_n=X(j\Omega)|_{\Omega=n\frac{2\pi}{T}}
T⋅An=X(jΩ)∣Ω=nT2π。也就是说,
X
(
j
Ω
)
X(j\Omega)
X(jΩ)是
T
⋅
A
n
T\cdot A_n
T⋅An的包络线,
X
(
j
Ω
)
X(j\Omega)
X(jΩ)在
n
2
π
T
n\frac{2\pi}{T}
nT2π处的取样就是
T
⋅
A
n
T\cdot A_n
T⋅An。换句话说,就是我们假想一下把
x
(
t
)
x(t)
x(t)按
T
T
T为周期进行延拓成
x
~
(
t
)
\tilde{x}(t)
x~(t)的展开式中的
A
n
⋅
T
A_n\cdot T
An⋅T的包络线就是
X
(
j
Ω
)
X(j\Omega)
X(jΩ)。(注意这里的T和后面的
T
s
T_s
Ts不是一回事。)
这里我们可以看到两点:
一、 X ( j Ω ) X(j\Omega) X(jΩ)的信息中含有限长度信号周期性延拓后的傅里叶级数展开的各频率的信号的强度以及幅角,与延拓周期T有关系。
二、时域的周期性导致了频域的离散。
离散函数的傅里叶级数(DTFT)
我们如果把 x ( t ) x(t) x(t)在时域进行取样(不是严格意义上的取样,还是当成时间连续函数处理), x s ( t ) = ∑ n = − ∞ + ∞ x ( n T ) δ ( t − n T ) = x ( t ) ∑ n = − ∞ + ∞ δ ( t − n T ) = x ( t ) δ p ( t ) x_s(t)=\sum\limits_{n=-\infty}^{+\infty}x(nT)\delta(t-nT)=x(t)\sum\limits_{n=-\infty}^{+\infty}\delta(t-nT)=x(t)\delta_p(t) xs(t)=n=−∞∑+∞x(nT)δ(t−nT)=x(t)n=−∞∑+∞δ(t−nT)=x(t)δp(t),仍把它当做连续函数处理。对于傅里叶变换而言, X s ( j Ω ) = 1 2 π X ( j Ω ) ∗ Δ p ( j Ω ) X_s(j\Omega)=\frac{1}{2\pi}X(j\Omega)*\Delta_p(j\Omega) Xs(jΩ)=2π1X(jΩ)∗Δp(jΩ)。
接下来,我们来看看
Δ
(
j
Ω
)
\Delta(j\Omega)
Δ(jΩ)和
Δ
p
(
j
Ω
)
\Delta_p(j\Omega)
Δp(jΩ)的关系。由于
δ
p
(
t
)
\delta_p(t)
δp(t)是周期性函数,那么它也可以写成傅里叶级数
δ
p
(
t
)
=
∑
n
=
−
∞
∞
A
n
e
j
n
Ω
s
t
\delta_p(t)=\sum\limits_{n=-\infty}^{\infty}A_ne^{jn\Omega_st}
δp(t)=n=−∞∑∞AnejnΩst,其中
A
n
=
1
T
s
∫
−
T
/
2
T
/
2
δ
(
t
)
e
−
j
n
Ω
s
t
d
t
=
1
T
s
A_n=\frac{1}{T_s}\int_{-T/2}^{T/2}\delta(t)e^{-jn\Omega_st}dt=\frac{1}{T_s}
An=Ts1∫−T/2T/2δ(t)e−jnΩstdt=Ts1,因此,我们对此式进行傅里叶变换:
Δ
p
(
j
Ω
)
=
1
T
s
∑
n
=
−
∞
∞
∫
−
∞
+
∞
e
j
n
Ω
s
t
e
−
j
Ω
t
d
t
=
2
π
T
s
∑
n
=
−
∞
∞
δ
(
Ω
−
n
Ω
s
)
=
Ω
s
∑
n
=
−
∞
∞
δ
(
Ω
−
n
Ω
s
)
\Delta_p(j\Omega)=\frac{1}{T_s}\sum\limits_{n=-\infty}^{\infty}\int_{-\infty}^{+\infty}e^{jn\Omega_st}e^{-j\Omega t}dt=\frac{2\pi}{T_s}\sum\limits_{n=-\infty}^{\infty}\delta(\Omega-n\Omega_s)=\Omega_s\sum\limits_{n=-\infty}^{\infty}\delta(\Omega-n\Omega_s)
Δp(jΩ)=Ts1n=−∞∑∞∫−∞+∞ejnΩste−jΩtdt=Ts2πn=−∞∑∞δ(Ω−nΩs)=Ωsn=−∞∑∞δ(Ω−nΩs)
(由
1
2
π
∫
−
∞
∞
δ
(
t
)
e
j
Ω
t
d
t
=
1
\frac{1}{2\pi}\int_{-\infty}^{\infty}\delta(t)e^{j\Omega t}dt=1
2π1∫−∞∞δ(t)ejΩtdt=1可得出傅里叶变换对:
1
↔
2
π
δ
(
Ω
)
1\leftrightarrow2\pi\delta(\Omega)
1↔2πδ(Ω)进而有上式。)
因此,我们得出:
X
s
(
j
Ω
)
=
1
2
π
∫
−
∞
+
∞
X
(
j
U
)
Δ
p
[
j
(
Ω
−
U
)
]
d
U
=
1
2
π
∫
−
∞
+
∞
X
(
j
U
)
⋅
Ω
s
∑
n
=
−
∞
∞
δ
(
Ω
−
U
−
n
Ω
s
)
d
U
=
1
T
s
∑
n
=
−
∞
+
∞
X
[
j
(
Ω
−
n
Ω
s
)
]
(2.1)
\begin{aligned} X_s(j\Omega) & =\frac{1}{2\pi}\int_{-\infty}^{+\infty}X(jU)\Delta_p[j(\Omega-U)]dU\\& =\frac{1}{2\pi}\int_{-\infty}^{+\infty}X(jU)\cdot\Omega_s\sum\limits_{n=-\infty}^{\infty}\delta(\Omega-U-n\Omega_s)dU\\&=\frac{1}{T_s}\sum\limits_{n=-\infty}^{+\infty}X[j(\Omega-n\Omega_s)]\tag{2.1} \end{aligned}
Xs(jΩ)=2π1∫−∞+∞X(jU)Δp[j(Ω−U)]dU=2π1∫−∞+∞X(jU)⋅Ωsn=−∞∑∞δ(Ω−U−nΩs)dU=Ts1n=−∞∑+∞X[j(Ω−nΩs)](2.1)
即是它把
X
(
j
Ω
)
X(j\Omega)
X(jΩ)以
Ω
s
\Omega_s
Ωs进行了周期性延拓,幅值变为
1
/
T
s
1/T_s
1/Ts。所以,如果要让频域不混迭,时域的取样圆周频率
Ω
s
=
2
π
/
T
s
\Omega_s=2\pi/T_s
Ωs=2π/Ts要满足一定的条件,要大于折叠频率
Ω
c
\Omega_c
Ωc的2倍,即取样要足够密,时间间隔
T
s
T_s
Ts要足够小,得到的频谱才能包含所有的信息。
数字傅里叶级数(DFS)与数字傅立叶变换(DFT)
原则上,我们取一段有限时间的函数,进行取样,变成了离散信号。把它延拓成周期性无限长的(只是分析问题的办法)。
如果我们实际的采样序列
x
˙
(
n
)
=
x
(
t
)
∣
t
=
n
T
s
,
n
=
0
,
1
,
2
,
⋯
,
M
−
1
\dot x(n)=x(t)|_{t=nT_s},n=0,1,2,\cdots,M-1
x˙(n)=x(t)∣t=nTs,n=0,1,2,⋯,M−1,(为了和时间连续函数相区分,我们这里把
x
x
x上加
⋅
\cdot
⋅)我们定义序列傅立叶变换为:
X
(
e
j
ω
)
=
∑
n
=
−
∞
+
∞
x
˙
(
n
)
e
−
j
ω
n
=
∑
n
=
0
M
−
1
x
˙
(
n
)
e
−
j
ω
n
(3.1)
X(e^{j\omega})=\sum\limits_{n=-\infty}^{+\infty}\dot x(n)e^{-j\omega n}=\sum\limits_{n=0}^{M-1}\dot x(n)e^{-j\omega n}\tag{3.1}
X(ejω)=n=−∞∑+∞x˙(n)e−jωn=n=0∑M−1x˙(n)e−jωn(3.1)
那么它的形状和
X
(
j
Ω
)
X(j\Omega)
X(jΩ) 的关系为:幅值一样,但周期变为以
2
π
2\pi
2π为周期,即横向进行了压缩。
实际上,我们如果令
ω
=
Ω
T
s
\omega=\Omega T_s
ω=ΩTs:
X
(
e
j
ω
)
∣
ω
=
Ω
T
s
=
1
/
T
s
∑
n
=
−
∞
+
∞
x
(
n
T
s
)
e
−
j
Ω
n
T
s
⋅
T
s
≈
1
/
T
s
∫
−
∞
+
∞
x
(
t
)
e
−
j
Ω
t
d
t
X(e^{j\omega})|_{\omega=\Omega T_s}=1/T_s\sum\limits_{n=-\infty}^{+\infty}x(nT_s)e^{-j\Omega nT_s}\cdot T_s\approx1/T_s\int_{-\infty}^{+\infty}x(t)e^{-j\Omega t}dt
X(ejω)∣ω=ΩTs=1/Tsn=−∞∑+∞x(nTs)e−jΩnTs⋅Ts≈1/Ts∫−∞+∞x(t)e−jΩtdt
可以看出它和 X s ( j Ω ) X_s(j\Omega) Xs(jΩ)是一致的,并且可以看出 X ( e j ω ) X(e^{j\omega}) X(ejω)是以 2 π 2\pi 2π 为周期,而 X ( j Ω ) X(j\Omega) X(jΩ)以 Ω s \Omega_s Ωs为周期。
因此,我们可以通过分析序列的傅里叶变换来分析原时间连续函数的频谱。那么我们就可以用DTFT的方式得到这段信号的频谱。但是在频域,信号还是连续的,这不便于计算机处理。如果在频域,我们进行取样,得到的就是:
X
~
(
k
)
=
∑
n
=
0
M
−
1
x
˙
(
n
)
e
−
j
2
π
N
n
k
(3.2)
\tilde X(k)=\sum\limits_{n=0}^{M-1} \dot x(n) e^{-j \frac{2\pi}{N}nk}\tag{3.2}
X~(k)=n=0∑M−1x˙(n)e−jN2πnk(3.2)
和周期性连续时间函数一样处理我们可以把周期性的序列变成一个系列的累加,不过这里和连续时间函数不一样的是,累加只是由0~N-1进行累加,而不是由
−
∞
→
+
∞
-\infty \to +\infty
−∞→+∞。这里N是指频域的取样数目,时域的离散化导致了频域的周期性,因此,不可以将所有的
X
~
(
k
)
\tilde X(k)
X~(k)进行累加,而只能在主周期内累加。这些后面将会讲到。
x
˙
~
(
n
)
=
1
N
∑
k
=
0
N
−
1
X
~
(
k
)
e
j
2
π
N
n
k
(3.3)
\tilde {\dot x}(n)=\frac{1}{N}\sum\limits_{k=0}^{N-1}\tilde X(k) e^{j \frac{2\pi}{N}nk}\tag{3.3}
x˙~(n)=N1k=0∑N−1X~(k)ejN2πnk(3.3)
这里我们把连续函数中的积分变成累加,但是从主周期里面累加。上式两边同乘以
e
−
j
2
π
N
r
n
e^{-j \frac{2\pi}{N}rn}
e−jN2πrn,并对n从0~M-1累加,我们得到如下的式子:
∑
n
=
0
M
−
1
x
˙
~
(
n
)
(
e
−
j
2
π
N
r
n
=
∑
k
=
0
N
−
1
1
N
X
~
(
k
)
∑
n
=
0
M
−
1
e
−
j
2
π
N
(
k
−
r
)
n
\sum\limits_{n=0}^{M-1}\tilde {\dot x}(n)(e^{-j \frac{2\pi}{N}rn}=\sum\limits_{k=0}^{N-1}\frac{1}{N}\tilde X(k)\sum\limits_{n=0}^{M-1} e^{-j \frac{2\pi}{N}(k-r)n}
n=0∑M−1x˙~(n)(e−jN2πrn=k=0∑N−1N1X~(k)n=0∑M−1e−jN2π(k−r)n
对于
∑
n
=
0
M
−
1
e
−
j
2
π
N
(
k
−
r
)
n
\sum\limits_{n=0}^{M-1} e^{-j \frac{2\pi}{N}(k-r)n}
n=0∑M−1e−jN2π(k−r)n,当
k
=
r
+
m
N
k=r+mN
k=r+mN时,它等于N,当
k
=
o
t
h
e
r
s
k=others
k=others时,它等于0。于是我们得到:
X
~
(
r
)
=
∑
n
=
0
M
−
1
x
˙
~
(
n
)
e
−
j
2
π
N
n
r
(3.4)
\tilde X(r)=\sum\limits_{n=0}^{M-1}\tilde {\dot x}(n) e^{-j \frac{2\pi}{N}nr}\tag{3.4}
X~(r)=n=0∑M−1x˙~(n)e−jN2πnr(3.4)
此式和式3.2是一致的。
这里我们可以看出它是一个以N为周期的周期序列,这个就是DFS。而式3.3又叫IDFS。IDFS得到的是时域序 x ˙ ( n ) \dot x(n) x˙(n)以N为周期的延拓。我们必须要指出,在频域取样时,必须要使 N ≥ M N\geq M N≥M,否则还原出来的 x ˙ ~ ( n ) \tilde {\dot x}(n) x˙~(n)在时域上将出现混叠,其主周期只有N点,还原不了原数据的M点。 x ˙ ( n ) = 0 , ( n = M , M + 1 , ⋯ , N − 1 ) \dot x(n)=0,(n=M,M+1,\cdots,N-1) x˙(n)=0,(n=M,M+1,⋯,N−1)。
如果在DFS和IDFS时不考虑它们(包括时域和频域)的周期性,结果只取其主周期部分。我们把这个过程叫做DFT和IDFT。这里我们就完全抛弃了时域的周期T(因为它仅仅是个分析工具),而直接以有限长的数据来进行分析。而时域的采样周期 T s T_s Ts在还原时间连续函数的频谱时还有用。