离散傅里叶变换(DFT)
离散信号的傅里叶变换DTFT,它是 Ω \Omega Ω的连续周期函数,尽管在理论上有重要意义,但在实际中往往难于计算,尤其在数字计算机上实现有困难。为此我们需要一种时域和频域都离散的傅里叶变换对,这就是离散傅里叶变换(Discrete Fourier Transformation),简称DFT。DFT的导出有多种方法,比较方便同时物理意义也比较明确的是从离散傅里叶级数(DFS)着手。由于时域和频域都是离散的,因而这种傅里叶变换对有其特殊性质,这些性质使DFT在实际应用中有时会产生误解。DFT有快速计算方法,即快速傅里叶变换(FFT)。
从离散傅里叶级数(DFS)到离散傅里叶变换(DFT)
考虑有限长序列
x
(
n
)
(
0
≤
n
≤
N
−
1
)
x(n)(0\leq n\leq N-1)
x(n)(0≤n≤N−1),将其按周期N进行延拓,得到周期序列
x
p
(
n
)
=
∑
r
x
(
n
+
r
N
)
(
r
为
任
意
整
数
)
x_p(n)=\sum_{r}x(n+rN) \quad (r为任意整数)
xp(n)=r∑x(n+rN)(r为任意整数)
我们把
x
(
n
)
x(n)
x(n)称为主值序列,它也是周期序列
x
p
(
n
)
x_p(n)
xp(n)的主值区间序列。由于
x
p
(
n
)
x_p(n)
xp(n)是周期为N的周期序列,可以展开成离散傅里叶级数DFS
X
p
(
k
Ω
0
)
=
1
N
∑
n
=
0
N
−
1
x
p
(
n
)
e
−
j
k
Ω
0
n
k
=
0
,
1
,
2
,
⋯
,
N
−
1
X_p(k\Omega_0)=\frac{1}{N}\sum_{n=0}^{N-1}x_p(n)e^{-jk\Omega_0 n} \quad k=0,1,2,\cdots,N-1
Xp(kΩ0)=N1n=0∑N−1xp(n)e−jkΩ0nk=0,1,2,⋯,N−1
X
p
(
k
Ω
0
)
X_p(k\Omega_0)
Xp(kΩ0)是周期为N的,离散的,它的反变换为
x
p
(
n
)
=
∑
k
=
0
N
−
1
X
p
(
k
Ω
0
)
e
j
k
Ω
0
n
x_p(n)=\sum_{k=0}^{N-1}X_p(k\Omega_0)e^{jk\Omega_0 n}
xp(n)=k=0∑N−1Xp(kΩ0)ejkΩ0n
虽然它也是离散的、周期为N的序列。由于
X
p
(
k
Ω
0
)
X_p(k\Omega_0)
Xp(kΩ0)的周期性,我们也可以取它的一个周期为主值区间
(
0
≤
k
≤
N
−
1
)
(0\leq k\leq N-1)
(0≤k≤N−1),主值区间的
X
p
(
k
Ω
0
)
X_p(k\Omega_0)
Xp(kΩ0)记为
X
(
k
Ω
0
)
X(k\Omega_0)
X(kΩ0)。当
x
p
(
n
)
x_p(n)
xp(n)和
X
p
(
k
Ω
0
)
X_p(k\Omega_0)
Xp(kΩ0)都取主值区间序列时,显然有
X
(
k
Ω
0
)
=
1
N
∑
n
=
0
N
−
1
x
(
n
)
e
−
j
k
Ω
0
n
k
=
0
,
1
,
2
,
⋯
,
N
−
1
(8)
X(k\Omega_0)=\frac{1}{N}\sum_{n=0}^{N-1}x(n)e^{-jk\Omega_0 n} \quad k=0,1,2,\cdots, N-1 \tag{8}
X(kΩ0)=N1n=0∑N−1x(n)e−jkΩ0nk=0,1,2,⋯,N−1(8)
和
x
(
n
)
=
∑
k
=
0
N
−
1
X
(
k
Ω
0
)
e
j
k
Ω
0
n
k
=
0
,
1
,
2
,
⋯
,
N
−
1
(9)
x(n)=\sum_{k=0}^{N-1}X(k\Omega_0)e^{jk\Omega_0 n} \quad k=0,1,2,\cdots,N-1 \tag{9}
x(n)=k=0∑N−1X(kΩ0)ejkΩ0nk=0,1,2,⋯,N−1(9)
同DTFT一样,非周期序列的傅里叶变换是信号的频谱密度,所以将式(8)乘以N,同时考虑到离散的频谱可用序列来表示,所以定义长度为N的有限长序列
x
(
n
)
x(n)
x(n)的离散傅里叶变换(DFT)
X
(
k
)
X(k)
X(k)为
X
(
k
)
=
N
X
(
k
Ω
0
)
=
∑
n
=
0
N
−
1
x
(
n
)
e
−
j
k
Ω
0
n
k
=
0
,
1
,
2
,
⋯
,
N
−
1
(10)
X(k)=NX(k\Omega_0)=\sum_{n=0}^{N-1}x(n)e^{-jk\Omega_0 n} \quad k=0,1,2,\cdots, N-1 \tag{10}
X(k)=NX(kΩ0)=n=0∑N−1x(n)e−jkΩ0nk=0,1,2,⋯,N−1(10)
并由式(9)和式(10),可得
X
(
k
)
X(k)
X(k)的DFT反变换
x
(
n
)
=
1
N
∑
k
=
0
N
−
1
N
X
(
k
Ω
0
)
e
j
k
Ω
0
n
=
1
N
∑
k
=
0
N
−
1
X
(
k
)
e
j
k
Ω
0
n
n
=
0
,
1
,
2
,
⋯
,
N
−
1
(11)
x(n)=\frac{1}{N}\sum_{k=0}^{N-1}NX(k\Omega_0)e^{jk\Omega_0 n}=\frac{1}{N}\sum_{k=0}^{N-1}X(k)e^{jk\Omega_0 n} \quad n=0,1,2,\cdots,N-1 \tag{11}
x(n)=N1k=0∑N−1NX(kΩ0)ejkΩ0n=N1k=0∑N−1X(k)ejkΩ0nn=0,1,2,⋯,N−1(11)
同样,把满足式(10)和式(11)的
x
(
n
)
x(n)
x(n)和
X
(
k
)
X(k)
X(k)称为离散傅里叶变换(DFT)对,简记为
x
(
n
)
↔
D
F
T
X
(
k
)
x(n)\overset{DFT}{\leftrightarrow}X(k)
x(n)↔DFTX(k)
只要从DFS变换对截取序列的主值,就构成了DFT变换对。但是它们在本质意义上还是有区别的,DFS是按傅里叶分析严格定义的,而DFT是一种”借用“的形式,因为我们知道,有限长序列
x
(
n
)
x(n)
x(n)是非周期性的,故它的傅里叶变换是连续的、周期性的,现在,我们人为地把
x
(
n
)
x(n)
x(n)按周期延拓成离散的、周期性的序列
x
p
(
n
)
x_p(n)
xp(n),得到离散的、周期性的频率函数
X
p
(
k
Ω
0
)
X_p(k\Omega_0)
Xp(kΩ0),然后利用
x
(
n
)
x(n)
x(n)是
x
p
(
n
)
x_p(n)
xp(n)的主值序列,借用取主值的方法,得出DFT的定义,这样处理的结果相当于把原来
x
(
n
)
x(n)
x(n)的连续的、周期性的频谱离散化了。事实上,我们完全可以从非周期性序列的傅里叶变换DTFT出发,按采样间隔
Ω
0
=
2
π
N
\Omega_0=\frac{2\pi}{N}
Ω0=N2π实现原连续频域函数
X
(
Ω
)
X(\Omega)
X(Ω)离散化,来得到离散傅里叶变换DFT。