一、离散傅里叶级数 DFS 的引入
其实,大家如果已经熟悉了连续时间周期信号的傅里叶级数的表示形式:
x
(
t
)
=
∑
k
=
−
∞
+
∞
a
k
e
j
k
ω
0
t
x(t) = \sum_{k=-∞}^{+∞}a_ke^{jkω_0t}
x ( t ) = k = − ∞ ∑ + ∞ a k e j k ω 0 t 那么,其实 DFS 就只是直接类比过来就行了。只不过在此之前,我们需要回忆一件事情:
即对于复指数信号
e
j
ω
t
e^{jωt}
e j ω t 和
e
j
ω
n
e^{jωn}
e j ω n 的区别:很明显,一个是连续时间信号,一个是离散时间信号;对于连续时间的复指数信号而言,他一定是周期的,
ω
ω
ω 的取值是随意的。 但是,对于离散时间信号的复指数信号就不一定了:只有当
N
=
2
π
ω
N = \frac{2π}{ω}
N = ω 2 π 是正整数的时候,
e
j
ω
n
e^{jωn}
e j ω n 才是周期函数,因此,
ω
ω
ω 的取值就不再是任意的了。
我们下面把连续时间的傅里叶级数类比到离散时间周期信号的傅里叶级数,有:
x
[
n
]
=
∑
k
=
<
N
>
a
k
e
j
k
2
π
N
n
x[n] = \sum_{k = <N>}a_ke^{jk\frac{2π}{N}n}
x [ n ] = k = < N > ∑ a k e j k N 2 π n 这里,
2
π
N
\frac{2π}{N}
N 2 π 对应的就是连续时间里面的
ω
0
ω_0
ω 0 。那么
k
=
<
N
>
k = <N>
k = < N > 是什么意思呢?它指的是
k
k
k 的取值数量只能是 N 个:比如我的
k
k
k 可以取 0,1,2
⋯
\cdots
⋯ ,N-1这 N 个;当然,也可以是:N,N+1,
⋯
\cdots
⋯ ,2N-1 这 N 个。
也即是说,对于离散时间的傅里叶级数,我们有下面的重要性质(区别于连续时间的FS):
a
k
=
a
k
+
N
a_k = a_{k+N}
a k = a k + N 即:离散时间的傅里叶级数是以 N 为周期的函数,N 恰好是信号
x
[
n
]
x[n]
x [ n ] 的周期
下面给出
a
k
a_k
a k 的计算公式(和 CFS 类似):
a
k
=
1
N
∑
k
=
<
N
>
x
[
n
]
e
−
j
k
2
π
N
n
a_k = \frac{1}{N}\sum_{k = <N>}x[n]e^{-jk\frac{2π}{N}n}
a k = N 1 k = < N > ∑ x [ n ] e − j k N 2 π n
补充 :下面再从本质而非类比的角度分析一些 DFS 的推导过程: 我们首先重温一下傅里叶的第一个观点:任何周期信号都可以表示成呈谐波关系的复指数信号的加权和。那么在周期信号里面,我们是这样表示的:
x
(
t
)
=
∑
k
=
−
∞
+
∞
a
k
e
j
k
ω
0
t
x(t) = \sum_{k=-∞}^{+∞}a_ke^{jkω_0t}
x ( t ) = k = − ∞ ∑ + ∞ a k e j k ω 0 t
现在到了离散时间的周期信号,我们也希望用一系列复指数信号的加权和来表示。但是,大家还记得吗,对于离散时间信号的复指数而言,每隔
2
π
2π
2 π 的 N 倍,我们就能得到一组完全一样的复指数信号。即对于离散时间的复指数而言,周期就是
N
N
N ,那么基波频率就是
2
π
N
\frac{2π}{N}
N 2 π 。
所以求和的话我们也只需要对 N 项进行求和即可。因此得到离散周期信号的傅里叶级数表示:
x
[
n
]
=
∑
k
=
<
N
>
a
k
e
j
k
2
π
N
n
x[n] = \sum_{k = <N>}a_ke^{jk\frac{2π}{N}n}
x [ n ] = k = < N > ∑ a k e j k N 2 π n
二、DFS 的性质
基本上,连续时间傅里叶级数有的性质,DFS 都会有。下面我们列一个表格记录一下常用的性质:
性质
序列表示
DFS
线性
M
x
[
n
]
+
N
y
[
n
]
Mx[n] + Ny[n]
M x [ n ] + N y [ n ]
M
a
k
+
N
b
k
Ma_k + Nb_k
M a k + N b k
时移
x
[
n
−
n
0
]
x[n-n_0]
x [ n − n 0 ]
a
k
e
−
j
k
2
π
N
n
0
a_ke^{-jk\frac{2π}{N}n_0}
a k e − j k N 2 π n 0
频移
e
j
M
2
π
N
n
x
[
n
]
e^{jM\frac{2π}{N}n}x[n]
e j M N 2 π n x [ n ]
a
k
−
M
a_{k-M}
a k − M
反转
x
[
−
n
]
x[-n]
x [ − n ]
a
−
k
a_{-k}
a − k
共轭
a
∗
[
n
]
a^*[n]
a ∗ [ n ]
a
−
k
∗
a_{-k}^*
a − k ∗
但是,还是需要重新强调的是,对于 DFS,其频谱
a
k
a_k
a k 是周期的:
a
k
=
a
k
+
N
a_k = a_{k+N}
a k = a k + N ,其中,N 是原信号的周期 N。
离散时间周期信号的帕斯瓦尔定理:
1
N
∑
n
=
<
N
>
∣
x
[
n
]
∣
2
=
∑
k
=
<
N
>
a
k
2
\frac{1}{N}\sum_{n=<N>}|x[n]|^2 = \sum_{k=<N>}a_k^2
N 1 n = < N > ∑ ∣ x [ n ] ∣ 2 = k = < N > ∑ a k 2
三、DFS 与 LTI 系统
这是考试的重点:给一个信号,系统的单位冲激响应,如何计算求得系统的输出。
还记得我们当初为什么使用复指数信号来表示其他信号吗?就是因为一个
e
j
ω
t
e^{jωt}
e j ω t 经过一个系统得到的输出是:
H
(
j
ω
)
e
j
ω
t
H(jω)e^{jωt}
H ( j ω ) e j ω t ,现在我们知道了:
H
(
j
ω
)
H(jω)
H ( j ω ) 就是系统的频率响应,它可以通过下面的方法计算:
H
(
j
ω
)
=
Y
(
j
ω
)
X
(
j
ω
)
H(jω) = \frac{Y(jω)}{X(jω)}
H ( j ω ) = X ( j ω ) Y ( j ω )
进一步讲,如果我们已知输入信号为:
x
[
n
]
=
∑
k
=
<
N
>
a
k
e
j
k
2
π
N
n
x[n] = \sum_{k = <N>}a_ke^{jk\frac{2π}{N}n}
x [ n ] = k = < N > ∑ a k e j k N 2 π n 那么,它经过
h
[
n
]
h[n]
h [ n ] 系统得到的输出就是:
y
[
n
]
=
∑
k
=
<
N
>
a
k
H
(
e
j
k
2
π
N
)
e
j
k
2
π
N
n
y[n] = \sum_{k = <N>}a_kH(e^{jk\frac{2π}{N}})e^{jk\frac{2π}{N}n}
y [ n ] = k = < N > ∑ a k H ( e j k N 2 π ) e j k N 2 π n 对于
H
(
e
j
k
2
π
N
)
H(e^{jk\frac{2π}{N}})
H ( e j k N 2 π ) 的值,我们只需要看在频率为
k
2
π
N
k\frac{2π}{N}
k N 2 π 时,其频率响应的值即可。
OK,对于 DFS 差不多就是这些,下一篇
B
l
o
g
Blog
B l o g 我们将要介绍 离散时间的傅里叶变换 DTFT