第四章
离散傅里叶变换
2
本章目录
? 引言
? 离散傅里叶变换的 定义
? 离散傅里叶变换的基本 性质
? 频域取样
? Matlab实现
? 离散傅里叶变换的 应用
3
4.1 引言
? 各种形式的傅里叶变换
? 非周期实连续时间信号 的傅里叶变换, 频
谱是一个非周期的连续函数
? 周期性连续时间信号 的傅里叶变换, 频谱
是非周期性的离散频率函数
? 非周期离散信号 的傅里叶变换,频率函数是
周期的连续函数
? 离散周期序列 的傅里叶变换,具有既是周期
又是离散的频谱,即时域和频域都是离散
的、周期的
4
各种形式的傅里叶变换示意图
5
傅里叶变换的一般规律
? 如果信号 频域 是 离散 的,则该信号在 时域
就表现为 周期性 的时间函数。
? 相反,在 时域 上是 离散 的,则该信号在 频
域 必然表现为 周期性 的频率函数。
? 如果时域信号离散且是周期的,由于它时
域离散,其频谱必是周期的,又由于时域
是周期的,相应的频谱必是离散的,
? 离散周期序列一定具有既是周期又是离散
的频谱,即时域和频域都是离散周期的。
? 得出一般的规律,一个域的离散就必然
造成另一个域的周期延拓 。
6
离散傅里叶变换的导出
? 由于数字计算机 只能计算有限长 离散的
序列,因此有限长序列在数字信号处理
中就显得很重要。
? Z变换和傅里叶变换 无法直接 利用计算
机进行数值计算。
? 针对有限长序列,时域有限,这一特点,
导出一种更有用的 离散傅里叶变换 DFT
(Discrete Fourier Transform)。
7
4.2 离散傅里叶变换的定义
? 离散傅里叶变换的定义
? DFT和 z变换、序列的傅里叶变换的关系
? DFT的隐含周期性
8
4.2.1 离散傅里叶变换的定义
? 离散傅里叶正变换 (DFT)定义
??
?
??
1
0
)()]([)(
N
n
kn
NWnxnxD F TkX
0≤k≤N -1
? ?
?
???
1
0
)(1)]([)(
N
k
kn
NWkXNkXI D F Tnx
0≤n ≤N -1
NjN eW
?2?
?
x(n)长度为 N,作为周期序列的一个主值区间
? 离散傅里叶反变换 (IDFT)定义
? 式中
9
例 4.1,设有限长序列为 x(n)=R4(n),求 x(n) 的
傅里叶变换,以及 4点,8点,16点 DFT。
解( 1) x(n)的傅里叶变换
( 2) x(n)的 4点 DFT
例,离散傅里叶变换
- j 43
j - j - j
4 -j
0
1e( e ) ( ) e e
1e
nn
nn
X R n
?
? ? ?
?
??
? ? ? ?
?? ? ?
???
- j 2 j 2 - j 2
- j / 2 j / 2 - j / 2
e (e e )
e (e e )
? ? ?
? ? ?
??
?
- j3 / 2 sin ( 2 )e
sin ( / 2 )
? ?
??
33
1 4 4
00
4,0( ) ( )
0,1,2,3
k n k n
nn
kX k x n W W
k??
??? ? ? ?
????
10
( 3) x(n)的 8点 DFT
??
??
?? 3
0
8
7
0
82 )()(
n
kn
n
kn WWnxkX ?
?
?? 3
0
8
2
n
knje ?
k
k
e
kj
8
s i n
2
s i n
8
3
?
?
??
? k=0,1,…, 7
( 4) x(n)的 16点 DFT
??
??
?? 3
0
16
15
0
163 )()(
n
kn
n
kn WWnxkX ?
?
?? 3
0
16
2
n
knje ?
k
k
e
kj
16
s in
4
s in
16
3
?
?
??
? k=0,1,…, 15
11
例 4.1 的图形显示
? 从图 4.2可见,
同一序列不同点
数的 DFT是不相
同的。
? 比较可以发现,
对原序列尾部 补
零后增加的谱线
只是有规律地插
在频谱的一个周
期内 。
12
4.2.2 DFT和 Z变换、序列的傅里叶变换的关系
设序列 x(n)的长度为 N,其 Z变换,DFT和傅里叶变换分别为
1
0
( ) [ ( ) ] ( )
N n
n
X z Z x n x n z
? ?
?
?? ?
?? ?
?
??
?
???
1
0
21
0
)()()]([)(
N
n
knNjN
n
kn
N enxWnxnxD F TkX
?0≤k≤ N-1
1
0
( ) [ ( ) ] ( )Nj w j w n
n
X e F x n x n e? ?
?
?? ?
13
三种变换的关系
NkjkN eWzzXkX /2)()( ??? ??
0≤k≤ N-1
NkwjweXkX /2)()( ???
0≤k≤ N-1
? 比较三式可得
? 式 (4.3)表明,序列 x(n)的 N点 DFT相当于是在 x(n)
的 z变换的单位圆上进行 N点等间隔取样,同时第
一个取样点应取在 z= 1处。
? 式 (4.4)说明,X(k)是 x(n)的傅里叶变换 X(ejω)在区
间 [0,2π]上的 N点等间隔取样。
14
DFT和 Z变换的关系
NkjkN eWzzXkX /2)()( ??? ??
0≤k≤ N-1
N= 8时,单位圆上的 8个等间隔取样点示意图。
15
DFT和序列的傅里叶变换的关系
物理意义,X(k)是 x(n)的傅里叶变换 X(ejω)在区间
[0,2π]上的 N点等间隔取样。
NkwjweXkX /2)()( ???
0≤k≤ N-1
16
4.2.3 DFT的隐含周期性
DFT变换对中,kn
NW
具有周期性,
)( mNkNkN WW ?? 其中 k,m,N均为整数
因此有
??
?
???
1
0
)()()(
N
n
nmNk
NWnxmNkX
)()(1
0
kXWnxN
n
kn
N ?? ?
?
?
结论, X(k)具有隐含周期性,且周期均为 N。
同理可得 。 )()( nxmNnx ??
17
周期序列与周期延拓序列
任何周期为 N的周期序列 都可以看作长度为 N的有
限长序列 x(n)的周期延拓序列,而 x(n)则是 的一个
周期,即
()xn%
()xn%
??
???
??
m
mNnxnx )()(~
)()(~)( nRnxnx N??
引入运算符 ((n))N,表示 n对 N求余数,即如果
n = MN + n1,0≤n1≤N-1,M为整数
则 ((n))
N = n1
18
例, 序列的周期延拓
例如,N=8,,则有
8))(()(~ nxnx ?
8( 1 ) ( ( 1 ) )xx? ? ? ?%
x(?) =x(7)
)1())9(()9(~ 8 xxx ??
( ) ( ) ( ( ) ) N
m
x n x n m N x n?
? ? ?
? ? ??%
于是
19
主值序列
如果 x(n)的长度为 N,且,则可写出
的离散傅里叶级数表达式
( ) ( ( ) ) Nx n x n?% ()xn%
??? ?
?
?
?
?
?
???
1
0
1
0
1
0
)())(()(~)(~
N
n
kn
N
N
n
kn
NN
N
n
kn
N WnxWnxWnxkX
?? ?
?
??
?
? ?? 1
0
1
0
)(1)(~1)(~ N
k
kn
N
N
k
kn
N WkXNWkXNnx式中
)()(~)( kRkXkX N??
结论,有限长序列 x(n)的离散傅里叶变换 X(k),正好
是 x(n)的周期延拓序列 x((n))N的离散傅里叶级数系数
的 主值序列 。
)(~ kX
20
4.3 离散傅里叶变换的基本性质
? 线性性质
? 循环移位性质
? 循环卷积定理
? 复共轭序列的 DFT
? DFT的共轭对称性
21
4.3.1 线性性质
设 x1(n)和 x2(n) 长度分别为 N1和 N2,且
)()()( 21 nbxnaxny ??
取 N= max[N1,N2],则 y(n)的 N点 DFT为
)()()]([)( 21 kbXkaXnyD F TkY ??? 0≤k≤ N- 1
注意,如果 N1和 N2不相等,则以 N为 DFT变换长度时,
其中相对较短的序列就通过补零增加到长度为 N。
22
4.3.2 循环移位性质
? 序列的循环移位
设 x(n) 长度为 N,则 x(n)的
循环移位定义为
)())(()( nRmnxny NN??
23
? 时域循环移位定理
设 x(n)是长度为 N的有限长序列,y(n)为 x(n)的循环移位,
即
)())(()( nRmnxny NN??
则
)()]([)( kXWnyD FTkY kmN???
其中,0≤k≤ N- 1,)]([)( nxDF TkX ?
时域循环移位定理
24
时域循环移位定理证明
? 证明
? ?
?
???
1
0
)())(()]([)(
N
n
kn
NNN WnRmnxnyD F TkY
??
?
??
1
0
))((
N
n
kn
NN Wmnx
令 n+m=n',则有
?? ??
?
??
??
?
??
mN
mn
kn
NN
km
N
mnk
NN
mN
mn
WnxWWnxkY
1
'
')'(
1
'
))'(())'(()(
1 '
'0
( ') ( )Nk m k n k mN N N
n
W x n W W X k???
?
???
25
频域循环移位定理
? 频域循环移位定理
如果 X(k)=DFT[x(n)],0≤k≤N-1,Y(k)=X((k+l))NRN(k),则
)()]([)( nxWkYI D FTny nlN??
证明方法与时域循环移位定理类似。
26
4.3.3 循环卷积定理
? 循环卷积定理
x1(n)和 x2(n)的长度分别为 N1和 N2,N=max[N1,N2]。
如果 X(k)= X1(k) · X2(k),则
)())(()()]([)( 21
1
0
nRmnxmxkXI D F Tnx NN
N
m
??? ?
?
?或
)())(()()]([)( 12
1
0
nRmnxmxkXI D F Tnx NN
N
m
??? ?
?
?
27
循环卷积定理证明
)]([)( nxDF TkX ?
kn
N
N
n
N
m
NN WnRmnxmx? ?
?
?
?
?
??
?
??
? ?? 1
0
1
0
21 )())(()(
kn
N
N
n
N
N
m
Wmnxmx ??
?
?
?
?
??
1
0
2
1
0
1 ))(()(
令 n- m=n',则有
)'(
1
'
2
1
0
1 ))'(()()(
mnk
N
mN
mn
N
N
m
WnxmxkX ?
??
??
?
?
???
'
1
'
2
1
0
1 ))'(()(
kn
N
mN
mn
N
km
N
N
m
WnxWmx ??
??
??
?
?
??
? 证明
28
'
1
'
2
1
0
1 ))'(()(
kn
N
mN
mn
N
km
N
N
m
WnxWmx ??
??
??
?
?
??
因为上式中 以 N为周期,所以对其在任
一周期上的求和结果不变,因此
'2 ))'(( knNN Wnx
'
2
1
0'
1
1
0
)'()()( knN
N
n
km
N
N
m
WnxWmxkX ??
?
?
?
?
??
)()( 21 kXkX ?? 0≤k≤N-1
上面讨论的为时域循环卷积定理。
时域循环移位定理讨论
29
频域循环移位定理讨论
x(n)= x1(n) ? x2(n)
)()(1)]([)( 21 kXkXNnxD F TkX ???
1
12
0
1 ( ) ( ( ) ) ( ) ( 4, 1 6 )N
NN
l
X l X k l R kN
?
?
???
则
或
)())(()(1)()(1)( 12
1
0
12 kRlkXlXNkXkXNkX NN
N
l
???? ?
?
?
30
4.3.4 复共轭序列的 DFT
? 复共轭序列的 DFT
设 x*(n)是 x(n)的复共轭序列,长度为 N,? ?)()( nxD F TkX ?
)()]([ ** kNXnxD F T ?? 0≤k≤N-1 (4.17)
则
且
)0()( XNX ?
31
4.4 频域取样
? 频域取样
? 指对序列的傅里叶变换或系统的频率特性进行取样。
? 由 时域取样 定理,在一定的条件下,可以通过
时域离散取样信号恢复原来的连续信号。
? 对有限长序列而言,由 DFT的讨论可知,DFT
是在频域内对序列傅里叶变换 X(jω)的等间隔
取样,即实现了 频域取样 。
? 还可以利用 内插公式 由 X(k)恢复原来的连续谱
信号,即 频率函数 X(jω)。
32
4.4.1 频域取样
设任意序列 x(n)存在 Z变换,且收敛域包括单位圆
??
???
??
n
nznxzX )()(
在单位圆上对 X(z)进行 N点等间隔取样,得到
nk
N
n
Wz WnxzXkX kN ?
?
???
? ?? ? )()()( 2( ) ( 4, 3 3 )
jw
wk N
Xe ?
?
?
问题,能否利用取样值 X(k)恢复原始的时域信号 x(n)?
33
将 X(k)看成是长度为 N的有限长序列 的 DFT,即 )(nx
N
? ?)()( kXI D F Tnx N ? 0≤n≤N-1
定义
NNN nxnx ))(()(~ ?
)](~[))(()(~ nxD F SkXkX NN ??
由于
)()(~)( kRkXkX N??所以
?? ?
?
??
?
? ??? 1
0
1
0
)(1)(~1)](~[)(~ N
k
kn
N
N
k
kn
NN WkXNWkXNkXI D F Snx
34
代入频率取样值,得
? ?? ? ?
???
?
?
???
?
?
???
????????
m
N
k
nmk
N
kn
N
N
K m
km
NN WNmxWWmxNnx
1
0
)(1
0
1)()(1)(~
式中,x(m)= x(n)。
由于
?
?
? ???? ?
?
?
m
rrNnmW
N
N
k
nmk
N,其他
为整数,
0
)(11 1
0
)(
所以
( ) ( ) ( 4, 3 4 )N
r
x n x n r N
?
? ? ?
???%
35
的意义 ??
???
??
r
N rNnxnx )()(
~
是原序列 x(n)以 N为周期的周期延拓序列。
时域的取样造成频域的周期延拓,频域上的取样,同样也
造成时域的周期延拓,这正是傅里叶变换时域和频域之间
对称关系的反映。
)(~ nxN
如果序列 x(n)的长度为 M,当 N<M, 产生时域混叠现象。
只有当频域取样点数 N≥M时
)()()()()(~)( nxnRrNnxnRnxnx
r
NNNN ???? ?
?
???
36
4.4.2 X(z)的内插公式
? X(z)的内插公式
即用频域取样 X(k)表示 X(z)的内插公式和内插函数 。
设序列 x(n)的长度为 N,在 X(z)单位圆上等间隔取样
N点,则可以从 X(k)无失真地恢复 x(n),因而这 N个 X(k)也
应该能完全表达整个 X(z)函数及频响 X(ejw)。
??
?
?? 1
0
)()( N
n
nznxzX
kNjezzXkX ?2)()( ??
k=0,1,…, N-1
把 x(n)代入 X(z)
kn
N
N
k
WkXNkXI D F Tnx ??
?
??? 1
0
)(1)]([)(
37
? ??
?
??
?
? ?
?
??
?
?? 1
0
1
0
)(1)( N
n
nN
k
kn
N zWkXNzX ? ?
?
?
?
?
??? 1
0
1
0
)(1 N
k
N
n
nkn
N zWkXN
??
?
??
??
?
?? 1
0
11
1)(1 N
k
k
N
NkN
N
zW
zWkX
N
1kNNW ? ?
??
?
??
?
?
?? 1
0
11
1)(1)( N
k
k
N
N
zW
zkX
NzX
由于
38
令
11
11)(
??
?
?
??
zW
z
Nz kN
N
k?
则
??
?
? 1
0
)()()( N
k
k zkXzX ?
? ?
?
??
?
?
?? 1
0
11
1)(1)( N
k
k
N
N
zW
zkX
NzX
内插公式
内插函数
39
4.5 离散傅里叶变换的应用
? 用 DFT计算线性卷积
? 用 DFT对连续信号进行谱分析
? 用 DFT对序列进行谱分析
40
4.5.1 用 DFT计算线性卷积
设 x1(n)和 x2(n)都是长度为 L的有限长因果
序列,它们的循环卷积为
??
?
???? 1
0
2121 )())(()()()()(
L
m
LL nRmnxmxnxnxny
且
)]([)( 11 nxD F TkX ? )]([)( 22 nxD F TkX ?
由时域循环卷积定理有
? ? )()()()( 21 kXkXnyD F TkY ??? 0≤k≤L-1
41
用 DFT计算循环卷积方框图
用 DFT计算循环卷积方框图
理由, DFT运算存在快速算法( FFT)。
42
循环卷积与线性卷积相等的条件
? 条件,
两个长度分别为 N和 M的序列,其线
性卷积可用长度为 L的循环卷积来代替,
但必满足条件
L≥N+M-1
43
卷积相等条件的讨论
假设 h(n)长度为 N,x(n)长度为 M,则线性卷积为
??
?
???? 1
0
1 )()()()()(
N
m
mnxmhnxnhny
循环卷积为
1
2
0
( ) ( ) ( ) ( ) ( ( ) ) ( )N LL
m
y n h n x n h m x n m R n?
?
? ? ? ??
其中,L≥max[N,M],??
???
??
r
L rLnxnx )())((
44
1
2
0
( ) ( ) ( ) ( )
N
L
mr
y n h m x n m r L R n
??
? ? ? ?
? ? ???
1
0
( ) ( ) ( )
N
L
rm
h m x n r L m R n
??
? ? ? ?
? ? ???
由上可得
??
?
????
1
0
1 )()()(
N
m
rLnymrLnxmh
上式中
因此
??
???
??
r
L nRrLnyny )()()( 12
45
??
???
??
r
L nRrLnyny )()()( 12
y2(n)是 y1(n)以 L为周期的周期延拓序列的主值序列。
由于卷积 y1(n)的长度为 N+M-1,因此当循环卷积的
长度 L≥N+M-1时,以为 L周期的周期延拓才不会出现混叠
现象,此时取主值序列显然满足 y2(n)= y1(n) 。
说明,
46
4.5.2 用 DFT对连续信号进行谱分析
? DFT是连续傅里叶变换的近似
分析连续时间信号的频谱,即求其傅里叶变换,
2( ) ( ) ( ) j f ta a ax t X f x t e d t?? ?
????? ? ?
F
借助计算机分析其频谱时,需要在时域和频域离
散化,即对 xa(t) 的取样序列求 DFT,这时,求出的
X(k) 是否能代表原信号的频谱?精度如何保证?
47
用 DFT计算信号频谱原理
f
)(fX
0
1
?
)1(
0
t
T
)(tp?
? ?)
1(T
f
)1(T )1(T?
0
)(fP?
T1? T1
t
0
)(tx1
)()( tptx ??
t0 ?? f
)()( fPfX ??
0
T1
T1
0 t
)(tw1
2/0T2/0T? f
)(fW0T
0
1T
0
1T?
? ?
48
t0
)()( tptx ??
??
f
)()( fPfX ??
0
T1
T1
0 t
)(tw1
2/0T2/0T? f
)(fW0T
0
1T
0
1T?
t0
)()()( twtptx ?? ?
??
f
)()()( fWfPfX ?? ?
0
TT0
T1
? ?
49
t0
)()()( twtptx ?? ?
??
f
)()( fPfX ??
0
TT0
T1
?
)1(
0
t
01TF?
?
)(fP?
?
t
)(0T?
)(tp?
0T00T?
t0 ?? f0
TT0
T1
? ?
N 点 DFT
??
50
时域 频域
( 1)取样(离散化) → 周期化
( 2)截取(有限长)
↓ ↓
→ 波皱
↓
取样 ←
↓
( 3)周期化
可见,DFT是对连续傅里叶变换的近似,误差 主要由
取样引起的频谱混叠及信号截取引起的频谱波皱所造成。
( 1)时域取样间隔 (T)应足够小;
( 2)频域取样间隔 (F)应足够小;
( 3)截取长度 (T0)应足够大。
∴ DFT的点数
T
TN 0? 应足够大。 或采取加权技术以
提高近似程度。
为提高近似精度,
51
谱分析的参数选择原则
( 1) fc:已知信号最高频率
定义如下参数,
( 2) fs:取样频率 fs ≥2 fc
( 4) F:谱分辨率,指频域取样中两相邻点的
频率间隔
( 3) T:取样周期
( 5) tp:信号的最小记录长度
( 6) N:一个记录长度中的取样点数
52
谱分析参数间的关系
参数间的关系,
NfF s /? 1pt NT
F??
fs ≥2 fc
分析,
( 1)如果保持取样点数 N不变,要提高谱的分辨率,
必须降低取样频率,取样频率的降低会引起谱
分析范围减少。
( 2)如维持 fs不变,为提高谱的分辨率可以增加取
样点数 N。
53
tp和 N可按照下式选择,
F
fN c2? pt ≥
F
1
总之,为了提高谱分辨率,同时又照顾到谱分析范围
不减少,必须增长记录时间,增加取样点数。应当注意,
这种提高谱分辨率的条件是时域取样必须满足取样定理,
甚至选取样速率 fs为信号最高频率 fc的 3-5倍更好。
54
4.6 Matlab实现
? DFT物理意义的 Matlab实现
? 用 DFT计算线性卷积的 Matlab实现
? 频域取样定理的 Matlab实现
? 高密度谱与高分辨率谱差异的 Matlab实现
55
4.6.1 DFT物理意义的 Matlab实现
? 序列的 N点 DFT的物理意义, 对 X(ejω)在 [0,2π]上进行
N点的等间隔取样。
? 函数 fft用于快速计算离散傅里叶变换,调用方式为
? >>y= fft(x);
? >>y= fft(x,N);
? y= fft(x)利用 FFT算法计算序列 x的离散傅里叶变换。
? 当 x为矩阵时,y为矩阵 x每一列的 FFT。
? 当 x长度为 2的整数次幂时,函数 fft采用基 -2的 FFT算法,否则采
用混合基算法。
? y= fft(x,N)采用 N点 FFT。
? 当序列 x长度小于 N时,函数 fft自动对序列尾部补零,构成 N点
数据;
? 当 x长度大于 N时,函数 fft自动截取序列前面 N点数据进行 FFT。
56
4.6.2 用 DFT计算线性卷积的 Matlab实现
? 函数 ifft用于快速计算向量或矩阵的离散
傅里叶逆变换,与函数 fft的调用规则基
本相同。
? 调用方式为
? >>y= ifft(x);
? >>y= ifft(x,N);
57
例:利用 FFT实现线性卷积
例 4.4 利用 FFT实现线性卷积。已知序列 x(n)= R4(n),
求,
( 1)用 conv函数求 x(n)与 x(n)的线性卷积 y(n),并绘
出图形;
( 2)用 FFT求 x(n)与 x(n)的 4点循环卷积 y1(n),并绘出
图形;
( 3)用 FFT求 x(n)与 x(n)的 8点循环卷积 y2(n),并将结
果与( 1)比较,说明线性卷积与循环卷积之间的关系。
解 程序如下,
58
>>N1= 4; N2= 8;
n1= 0:1:N1-1;n2= 0:1:N2-1;
x= [1,1,1,1]; % 构造序列 x(n)
x1= [1,1,1,1,0,0,0,0]; % 在序列 x(n)后补 4个零
figure(1)
subplot(2,2,1)
stem(n1,x),grid on;
title('序列 x(n)')
y1= conv(x,x); % y1为 x(n)与 x(n)的线性卷积
subplot(2,2,2)
stem(0:1:length(y1)-1,y1),grid on;
title('x(n)与 x(n)线性卷积 ')
59
X2= fft(x); % 计算 x(n)与 x(n)的 4点循环卷积
Y2= X2.*X2;
y2= ifft(Y2);
subplot(2,2,3)
stem(n1,y2),grid on;
title('x(n)与 x(n)的 4点循环卷积 ')
X3= fft(x1); % 计算 x(n)与 x(n)的 8点循环卷积
Y3= X3.*X3;
y3= ifft(Y3)
subplot(2,2,4)
stem(n2,y3),grid on;
title('x(n)与 x(n)的 8点循环卷积 ')
60
例 4.4 程序运行结果图
0 0, 5 1 1, 5 2 2, 5 3
0
0, 2
0, 4
0, 6
0, 8
1
序列 x ( n )
0 1 2 3 4 5 6
0
1
2
3
4
x ( n ) 与 x ( n ) 线性卷积
0 0, 5 1 1, 5 2 2, 5 3
0
1
2
3
4
x ( n ) 与 x ( n ) 的 4 点循环卷积
0 2 4 6 8
0
1
2
3
4
x ( n ) 与 x ( n ) 的 8 点循环卷积
61
4.6.3 频域取样定理的 Matlab实现
例 4.5 设 x(n)=(0.7)n·u(n),在单位圆上以 M=5和 M=20,
对其 Z变换取样,研究时域信号受 M变化的影响。
( 1)对 x(n)进行 Z变换 ;
( 2)对 X(z)进行等角取样,取样点数为 M,求 X(k);
( 3)对 X(k)进行 IDFT变化,得到 M点序列,请比较几
个序列,并作分析。
解 x(n)=(0.7)n·u(n)的 Z变换为
()
0,7
zXz
z
?
?
62
例 4.5 程序清单
>>n= 0:19;
x= 0.7.^n;
na= 0:4;
za= exp(j*2*pi*na/5);
% 在 z平面的单位圆上对其进行 5点的等角距取样
Xa= za./(za-0.7);
xa= abs(ifft(Xa));
nb= 0:19;
zb= exp(j*2*nb*pi/20);
% 在 z平面的单位圆上对其进行 20点的等角距取样
Xb= zb./(zb-0.7);
xb= abs(ifft(Xb));
63
figure(1)
subplot(2,2,1); % 画出原始时域信号
stem(n,x)
title('时域信号 x(n)')
subplot(2,2,2);
xa= [xa,xa,xa,xa];
stem(n,xa)
title('5点取样恢复的序列 ')
subplot(2,2,3);
stem(n,xb)
title('20点取样恢复的序列 ')
64
例 4.5 程序运行结果
0 5 10 15 20
0
0, 2
0, 4
0, 6
0, 8
1
时域信号 x ( n )
0 5 10 15 20
0
0, 5
1
1, 5
5 点采样恢复的序列
0 5 10 15 20
0
0, 5
1
1, 5
20 点采样恢复的序列
65
4.6.4 高密度谱与高分辨率谱差异的 Matlab实现
例 4.6 试通过计算说明高密度频谱和高分辨率频谱之间的
差异。
)52.0c o s ()48.0c o s ()( nnnx ?? ??
( 1)取 x(n)( 0≤n≤10)时,求其离散傅里叶变换 X1(k);
( 2)将( 1)中的 x(n)以补零的方式,使 x(n)加长到
0≤n≤100,求 X2(k);
( 3)取 x(n)( 0≤n≤100),求 X3(k);
( 4)比较分析 X1(k),X2(k),X3(k),说明高密度频谱和高
分辨率频谱之间的差异。
66
例 4.6的 Matlab程序清单
>>n1= 0:9;
x= cos(0.48*pi*n1)+sin(0.52*pi*n1);
X1= abs(fft(x));
% 对 10点的时域信号进行 FFT变换并取模
xc= [x,zeros(1,90)];
% 在序列后补 90个零,得到长度为 100的序列
X2= abs(fft(xc));
% 对补零后的时域信号进行 FFT变换并取模
n= 0:99;
xn= cos(0.48*pi*n)+sin(0.52*pi*n);
%建立 100个点的时域信号
X3= abs(fft(xn));
% 对 100点的时域信号进行 FFT变换并取模
67
figure(1);
subplot(3,1,1);
stem(n1,X1)
% 画出原始信号 10点的 DFT变换的图
title('取样 10点的 DFT')
subplot(3,1,2);
stem(n,X2)
% 画出补 90个零后的 DFT变换的图
title('补 0到 100点的 DFT')
subplot(3,1,3);
stem(n,X3)
% 画出取样点数为 100的 DFT变换的图
title('取样 100点的 DFT')
68
例 4.6 程序运行结果
0 1 2 3 4 5 6 7 8 9
0
5
10
采样 10 点的 D F T
0 10 20 30 40 50 60 70 80 90 100
0
5
10
补 0 到 100 点的 D F T
0 10 20 30 40 50 60 70 80 90 100
0
20
40
60
采样 100 点的 D F T
离散傅里叶变换
2
本章目录
? 引言
? 离散傅里叶变换的 定义
? 离散傅里叶变换的基本 性质
? 频域取样
? Matlab实现
? 离散傅里叶变换的 应用
3
4.1 引言
? 各种形式的傅里叶变换
? 非周期实连续时间信号 的傅里叶变换, 频
谱是一个非周期的连续函数
? 周期性连续时间信号 的傅里叶变换, 频谱
是非周期性的离散频率函数
? 非周期离散信号 的傅里叶变换,频率函数是
周期的连续函数
? 离散周期序列 的傅里叶变换,具有既是周期
又是离散的频谱,即时域和频域都是离散
的、周期的
4
各种形式的傅里叶变换示意图
5
傅里叶变换的一般规律
? 如果信号 频域 是 离散 的,则该信号在 时域
就表现为 周期性 的时间函数。
? 相反,在 时域 上是 离散 的,则该信号在 频
域 必然表现为 周期性 的频率函数。
? 如果时域信号离散且是周期的,由于它时
域离散,其频谱必是周期的,又由于时域
是周期的,相应的频谱必是离散的,
? 离散周期序列一定具有既是周期又是离散
的频谱,即时域和频域都是离散周期的。
? 得出一般的规律,一个域的离散就必然
造成另一个域的周期延拓 。
6
离散傅里叶变换的导出
? 由于数字计算机 只能计算有限长 离散的
序列,因此有限长序列在数字信号处理
中就显得很重要。
? Z变换和傅里叶变换 无法直接 利用计算
机进行数值计算。
? 针对有限长序列,时域有限,这一特点,
导出一种更有用的 离散傅里叶变换 DFT
(Discrete Fourier Transform)。
7
4.2 离散傅里叶变换的定义
? 离散傅里叶变换的定义
? DFT和 z变换、序列的傅里叶变换的关系
? DFT的隐含周期性
8
4.2.1 离散傅里叶变换的定义
? 离散傅里叶正变换 (DFT)定义
??
?
??
1
0
)()]([)(
N
n
kn
NWnxnxD F TkX
0≤k≤N -1
? ?
?
???
1
0
)(1)]([)(
N
k
kn
NWkXNkXI D F Tnx
0≤n ≤N -1
NjN eW
?2?
?
x(n)长度为 N,作为周期序列的一个主值区间
? 离散傅里叶反变换 (IDFT)定义
? 式中
9
例 4.1,设有限长序列为 x(n)=R4(n),求 x(n) 的
傅里叶变换,以及 4点,8点,16点 DFT。
解( 1) x(n)的傅里叶变换
( 2) x(n)的 4点 DFT
例,离散傅里叶变换
- j 43
j - j - j
4 -j
0
1e( e ) ( ) e e
1e
nn
nn
X R n
?
? ? ?
?
??
? ? ? ?
?? ? ?
???
- j 2 j 2 - j 2
- j / 2 j / 2 - j / 2
e (e e )
e (e e )
? ? ?
? ? ?
??
?
- j3 / 2 sin ( 2 )e
sin ( / 2 )
? ?
??
33
1 4 4
00
4,0( ) ( )
0,1,2,3
k n k n
nn
kX k x n W W
k??
??? ? ? ?
????
10
( 3) x(n)的 8点 DFT
??
??
?? 3
0
8
7
0
82 )()(
n
kn
n
kn WWnxkX ?
?
?? 3
0
8
2
n
knje ?
k
k
e
kj
8
s i n
2
s i n
8
3
?
?
??
? k=0,1,…, 7
( 4) x(n)的 16点 DFT
??
??
?? 3
0
16
15
0
163 )()(
n
kn
n
kn WWnxkX ?
?
?? 3
0
16
2
n
knje ?
k
k
e
kj
16
s in
4
s in
16
3
?
?
??
? k=0,1,…, 15
11
例 4.1 的图形显示
? 从图 4.2可见,
同一序列不同点
数的 DFT是不相
同的。
? 比较可以发现,
对原序列尾部 补
零后增加的谱线
只是有规律地插
在频谱的一个周
期内 。
12
4.2.2 DFT和 Z变换、序列的傅里叶变换的关系
设序列 x(n)的长度为 N,其 Z变换,DFT和傅里叶变换分别为
1
0
( ) [ ( ) ] ( )
N n
n
X z Z x n x n z
? ?
?
?? ?
?? ?
?
??
?
???
1
0
21
0
)()()]([)(
N
n
knNjN
n
kn
N enxWnxnxD F TkX
?0≤k≤ N-1
1
0
( ) [ ( ) ] ( )Nj w j w n
n
X e F x n x n e? ?
?
?? ?
13
三种变换的关系
NkjkN eWzzXkX /2)()( ??? ??
0≤k≤ N-1
NkwjweXkX /2)()( ???
0≤k≤ N-1
? 比较三式可得
? 式 (4.3)表明,序列 x(n)的 N点 DFT相当于是在 x(n)
的 z变换的单位圆上进行 N点等间隔取样,同时第
一个取样点应取在 z= 1处。
? 式 (4.4)说明,X(k)是 x(n)的傅里叶变换 X(ejω)在区
间 [0,2π]上的 N点等间隔取样。
14
DFT和 Z变换的关系
NkjkN eWzzXkX /2)()( ??? ??
0≤k≤ N-1
N= 8时,单位圆上的 8个等间隔取样点示意图。
15
DFT和序列的傅里叶变换的关系
物理意义,X(k)是 x(n)的傅里叶变换 X(ejω)在区间
[0,2π]上的 N点等间隔取样。
NkwjweXkX /2)()( ???
0≤k≤ N-1
16
4.2.3 DFT的隐含周期性
DFT变换对中,kn
NW
具有周期性,
)( mNkNkN WW ?? 其中 k,m,N均为整数
因此有
??
?
???
1
0
)()()(
N
n
nmNk
NWnxmNkX
)()(1
0
kXWnxN
n
kn
N ?? ?
?
?
结论, X(k)具有隐含周期性,且周期均为 N。
同理可得 。 )()( nxmNnx ??
17
周期序列与周期延拓序列
任何周期为 N的周期序列 都可以看作长度为 N的有
限长序列 x(n)的周期延拓序列,而 x(n)则是 的一个
周期,即
()xn%
()xn%
??
???
??
m
mNnxnx )()(~
)()(~)( nRnxnx N??
引入运算符 ((n))N,表示 n对 N求余数,即如果
n = MN + n1,0≤n1≤N-1,M为整数
则 ((n))
N = n1
18
例, 序列的周期延拓
例如,N=8,,则有
8))(()(~ nxnx ?
8( 1 ) ( ( 1 ) )xx? ? ? ?%
x(?) =x(7)
)1())9(()9(~ 8 xxx ??
( ) ( ) ( ( ) ) N
m
x n x n m N x n?
? ? ?
? ? ??%
于是
19
主值序列
如果 x(n)的长度为 N,且,则可写出
的离散傅里叶级数表达式
( ) ( ( ) ) Nx n x n?% ()xn%
??? ?
?
?
?
?
?
???
1
0
1
0
1
0
)())(()(~)(~
N
n
kn
N
N
n
kn
NN
N
n
kn
N WnxWnxWnxkX
?? ?
?
??
?
? ?? 1
0
1
0
)(1)(~1)(~ N
k
kn
N
N
k
kn
N WkXNWkXNnx式中
)()(~)( kRkXkX N??
结论,有限长序列 x(n)的离散傅里叶变换 X(k),正好
是 x(n)的周期延拓序列 x((n))N的离散傅里叶级数系数
的 主值序列 。
)(~ kX
20
4.3 离散傅里叶变换的基本性质
? 线性性质
? 循环移位性质
? 循环卷积定理
? 复共轭序列的 DFT
? DFT的共轭对称性
21
4.3.1 线性性质
设 x1(n)和 x2(n) 长度分别为 N1和 N2,且
)()()( 21 nbxnaxny ??
取 N= max[N1,N2],则 y(n)的 N点 DFT为
)()()]([)( 21 kbXkaXnyD F TkY ??? 0≤k≤ N- 1
注意,如果 N1和 N2不相等,则以 N为 DFT变换长度时,
其中相对较短的序列就通过补零增加到长度为 N。
22
4.3.2 循环移位性质
? 序列的循环移位
设 x(n) 长度为 N,则 x(n)的
循环移位定义为
)())(()( nRmnxny NN??
23
? 时域循环移位定理
设 x(n)是长度为 N的有限长序列,y(n)为 x(n)的循环移位,
即
)())(()( nRmnxny NN??
则
)()]([)( kXWnyD FTkY kmN???
其中,0≤k≤ N- 1,)]([)( nxDF TkX ?
时域循环移位定理
24
时域循环移位定理证明
? 证明
? ?
?
???
1
0
)())(()]([)(
N
n
kn
NNN WnRmnxnyD F TkY
??
?
??
1
0
))((
N
n
kn
NN Wmnx
令 n+m=n',则有
?? ??
?
??
??
?
??
mN
mn
kn
NN
km
N
mnk
NN
mN
mn
WnxWWnxkY
1
'
')'(
1
'
))'(())'(()(
1 '
'0
( ') ( )Nk m k n k mN N N
n
W x n W W X k???
?
???
25
频域循环移位定理
? 频域循环移位定理
如果 X(k)=DFT[x(n)],0≤k≤N-1,Y(k)=X((k+l))NRN(k),则
)()]([)( nxWkYI D FTny nlN??
证明方法与时域循环移位定理类似。
26
4.3.3 循环卷积定理
? 循环卷积定理
x1(n)和 x2(n)的长度分别为 N1和 N2,N=max[N1,N2]。
如果 X(k)= X1(k) · X2(k),则
)())(()()]([)( 21
1
0
nRmnxmxkXI D F Tnx NN
N
m
??? ?
?
?或
)())(()()]([)( 12
1
0
nRmnxmxkXI D F Tnx NN
N
m
??? ?
?
?
27
循环卷积定理证明
)]([)( nxDF TkX ?
kn
N
N
n
N
m
NN WnRmnxmx? ?
?
?
?
?
??
?
??
? ?? 1
0
1
0
21 )())(()(
kn
N
N
n
N
N
m
Wmnxmx ??
?
?
?
?
??
1
0
2
1
0
1 ))(()(
令 n- m=n',则有
)'(
1
'
2
1
0
1 ))'(()()(
mnk
N
mN
mn
N
N
m
WnxmxkX ?
??
??
?
?
???
'
1
'
2
1
0
1 ))'(()(
kn
N
mN
mn
N
km
N
N
m
WnxWmx ??
??
??
?
?
??
? 证明
28
'
1
'
2
1
0
1 ))'(()(
kn
N
mN
mn
N
km
N
N
m
WnxWmx ??
??
??
?
?
??
因为上式中 以 N为周期,所以对其在任
一周期上的求和结果不变,因此
'2 ))'(( knNN Wnx
'
2
1
0'
1
1
0
)'()()( knN
N
n
km
N
N
m
WnxWmxkX ??
?
?
?
?
??
)()( 21 kXkX ?? 0≤k≤N-1
上面讨论的为时域循环卷积定理。
时域循环移位定理讨论
29
频域循环移位定理讨论
x(n)= x1(n) ? x2(n)
)()(1)]([)( 21 kXkXNnxD F TkX ???
1
12
0
1 ( ) ( ( ) ) ( ) ( 4, 1 6 )N
NN
l
X l X k l R kN
?
?
???
则
或
)())(()(1)()(1)( 12
1
0
12 kRlkXlXNkXkXNkX NN
N
l
???? ?
?
?
30
4.3.4 复共轭序列的 DFT
? 复共轭序列的 DFT
设 x*(n)是 x(n)的复共轭序列,长度为 N,? ?)()( nxD F TkX ?
)()]([ ** kNXnxD F T ?? 0≤k≤N-1 (4.17)
则
且
)0()( XNX ?
31
4.4 频域取样
? 频域取样
? 指对序列的傅里叶变换或系统的频率特性进行取样。
? 由 时域取样 定理,在一定的条件下,可以通过
时域离散取样信号恢复原来的连续信号。
? 对有限长序列而言,由 DFT的讨论可知,DFT
是在频域内对序列傅里叶变换 X(jω)的等间隔
取样,即实现了 频域取样 。
? 还可以利用 内插公式 由 X(k)恢复原来的连续谱
信号,即 频率函数 X(jω)。
32
4.4.1 频域取样
设任意序列 x(n)存在 Z变换,且收敛域包括单位圆
??
???
??
n
nznxzX )()(
在单位圆上对 X(z)进行 N点等间隔取样,得到
nk
N
n
Wz WnxzXkX kN ?
?
???
? ?? ? )()()( 2( ) ( 4, 3 3 )
jw
wk N
Xe ?
?
?
问题,能否利用取样值 X(k)恢复原始的时域信号 x(n)?
33
将 X(k)看成是长度为 N的有限长序列 的 DFT,即 )(nx
N
? ?)()( kXI D F Tnx N ? 0≤n≤N-1
定义
NNN nxnx ))(()(~ ?
)](~[))(()(~ nxD F SkXkX NN ??
由于
)()(~)( kRkXkX N??所以
?? ?
?
??
?
? ??? 1
0
1
0
)(1)(~1)](~[)(~ N
k
kn
N
N
k
kn
NN WkXNWkXNkXI D F Snx
34
代入频率取样值,得
? ?? ? ?
???
?
?
???
?
?
???
????????
m
N
k
nmk
N
kn
N
N
K m
km
NN WNmxWWmxNnx
1
0
)(1
0
1)()(1)(~
式中,x(m)= x(n)。
由于
?
?
? ???? ?
?
?
m
rrNnmW
N
N
k
nmk
N,其他
为整数,
0
)(11 1
0
)(
所以
( ) ( ) ( 4, 3 4 )N
r
x n x n r N
?
? ? ?
???%
35
的意义 ??
???
??
r
N rNnxnx )()(
~
是原序列 x(n)以 N为周期的周期延拓序列。
时域的取样造成频域的周期延拓,频域上的取样,同样也
造成时域的周期延拓,这正是傅里叶变换时域和频域之间
对称关系的反映。
)(~ nxN
如果序列 x(n)的长度为 M,当 N<M, 产生时域混叠现象。
只有当频域取样点数 N≥M时
)()()()()(~)( nxnRrNnxnRnxnx
r
NNNN ???? ?
?
???
36
4.4.2 X(z)的内插公式
? X(z)的内插公式
即用频域取样 X(k)表示 X(z)的内插公式和内插函数 。
设序列 x(n)的长度为 N,在 X(z)单位圆上等间隔取样
N点,则可以从 X(k)无失真地恢复 x(n),因而这 N个 X(k)也
应该能完全表达整个 X(z)函数及频响 X(ejw)。
??
?
?? 1
0
)()( N
n
nznxzX
kNjezzXkX ?2)()( ??
k=0,1,…, N-1
把 x(n)代入 X(z)
kn
N
N
k
WkXNkXI D F Tnx ??
?
??? 1
0
)(1)]([)(
37
? ??
?
??
?
? ?
?
??
?
?? 1
0
1
0
)(1)( N
n
nN
k
kn
N zWkXNzX ? ?
?
?
?
?
??? 1
0
1
0
)(1 N
k
N
n
nkn
N zWkXN
??
?
??
??
?
?? 1
0
11
1)(1 N
k
k
N
NkN
N
zW
zWkX
N
1kNNW ? ?
??
?
??
?
?
?? 1
0
11
1)(1)( N
k
k
N
N
zW
zkX
NzX
由于
38
令
11
11)(
??
?
?
??
zW
z
Nz kN
N
k?
则
??
?
? 1
0
)()()( N
k
k zkXzX ?
? ?
?
??
?
?
?? 1
0
11
1)(1)( N
k
k
N
N
zW
zkX
NzX
内插公式
内插函数
39
4.5 离散傅里叶变换的应用
? 用 DFT计算线性卷积
? 用 DFT对连续信号进行谱分析
? 用 DFT对序列进行谱分析
40
4.5.1 用 DFT计算线性卷积
设 x1(n)和 x2(n)都是长度为 L的有限长因果
序列,它们的循环卷积为
??
?
???? 1
0
2121 )())(()()()()(
L
m
LL nRmnxmxnxnxny
且
)]([)( 11 nxD F TkX ? )]([)( 22 nxD F TkX ?
由时域循环卷积定理有
? ? )()()()( 21 kXkXnyD F TkY ??? 0≤k≤L-1
41
用 DFT计算循环卷积方框图
用 DFT计算循环卷积方框图
理由, DFT运算存在快速算法( FFT)。
42
循环卷积与线性卷积相等的条件
? 条件,
两个长度分别为 N和 M的序列,其线
性卷积可用长度为 L的循环卷积来代替,
但必满足条件
L≥N+M-1
43
卷积相等条件的讨论
假设 h(n)长度为 N,x(n)长度为 M,则线性卷积为
??
?
???? 1
0
1 )()()()()(
N
m
mnxmhnxnhny
循环卷积为
1
2
0
( ) ( ) ( ) ( ) ( ( ) ) ( )N LL
m
y n h n x n h m x n m R n?
?
? ? ? ??
其中,L≥max[N,M],??
???
??
r
L rLnxnx )())((
44
1
2
0
( ) ( ) ( ) ( )
N
L
mr
y n h m x n m r L R n
??
? ? ? ?
? ? ???
1
0
( ) ( ) ( )
N
L
rm
h m x n r L m R n
??
? ? ? ?
? ? ???
由上可得
??
?
????
1
0
1 )()()(
N
m
rLnymrLnxmh
上式中
因此
??
???
??
r
L nRrLnyny )()()( 12
45
??
???
??
r
L nRrLnyny )()()( 12
y2(n)是 y1(n)以 L为周期的周期延拓序列的主值序列。
由于卷积 y1(n)的长度为 N+M-1,因此当循环卷积的
长度 L≥N+M-1时,以为 L周期的周期延拓才不会出现混叠
现象,此时取主值序列显然满足 y2(n)= y1(n) 。
说明,
46
4.5.2 用 DFT对连续信号进行谱分析
? DFT是连续傅里叶变换的近似
分析连续时间信号的频谱,即求其傅里叶变换,
2( ) ( ) ( ) j f ta a ax t X f x t e d t?? ?
????? ? ?
F
借助计算机分析其频谱时,需要在时域和频域离
散化,即对 xa(t) 的取样序列求 DFT,这时,求出的
X(k) 是否能代表原信号的频谱?精度如何保证?
47
用 DFT计算信号频谱原理
f
)(fX
0
1
?
)1(
0
t
T
)(tp?
? ?)
1(T
f
)1(T )1(T?
0
)(fP?
T1? T1
t
0
)(tx1
)()( tptx ??
t0 ?? f
)()( fPfX ??
0
T1
T1
0 t
)(tw1
2/0T2/0T? f
)(fW0T
0
1T
0
1T?
? ?
48
t0
)()( tptx ??
??
f
)()( fPfX ??
0
T1
T1
0 t
)(tw1
2/0T2/0T? f
)(fW0T
0
1T
0
1T?
t0
)()()( twtptx ?? ?
??
f
)()()( fWfPfX ?? ?
0
TT0
T1
? ?
49
t0
)()()( twtptx ?? ?
??
f
)()( fPfX ??
0
TT0
T1
?
)1(
0
t
01TF?
?
)(fP?
?
t
)(0T?
)(tp?
0T00T?
t0 ?? f0
TT0
T1
? ?
N 点 DFT
??
50
时域 频域
( 1)取样(离散化) → 周期化
( 2)截取(有限长)
↓ ↓
→ 波皱
↓
取样 ←
↓
( 3)周期化
可见,DFT是对连续傅里叶变换的近似,误差 主要由
取样引起的频谱混叠及信号截取引起的频谱波皱所造成。
( 1)时域取样间隔 (T)应足够小;
( 2)频域取样间隔 (F)应足够小;
( 3)截取长度 (T0)应足够大。
∴ DFT的点数
T
TN 0? 应足够大。 或采取加权技术以
提高近似程度。
为提高近似精度,
51
谱分析的参数选择原则
( 1) fc:已知信号最高频率
定义如下参数,
( 2) fs:取样频率 fs ≥2 fc
( 4) F:谱分辨率,指频域取样中两相邻点的
频率间隔
( 3) T:取样周期
( 5) tp:信号的最小记录长度
( 6) N:一个记录长度中的取样点数
52
谱分析参数间的关系
参数间的关系,
NfF s /? 1pt NT
F??
fs ≥2 fc
分析,
( 1)如果保持取样点数 N不变,要提高谱的分辨率,
必须降低取样频率,取样频率的降低会引起谱
分析范围减少。
( 2)如维持 fs不变,为提高谱的分辨率可以增加取
样点数 N。
53
tp和 N可按照下式选择,
F
fN c2? pt ≥
F
1
总之,为了提高谱分辨率,同时又照顾到谱分析范围
不减少,必须增长记录时间,增加取样点数。应当注意,
这种提高谱分辨率的条件是时域取样必须满足取样定理,
甚至选取样速率 fs为信号最高频率 fc的 3-5倍更好。
54
4.6 Matlab实现
? DFT物理意义的 Matlab实现
? 用 DFT计算线性卷积的 Matlab实现
? 频域取样定理的 Matlab实现
? 高密度谱与高分辨率谱差异的 Matlab实现
55
4.6.1 DFT物理意义的 Matlab实现
? 序列的 N点 DFT的物理意义, 对 X(ejω)在 [0,2π]上进行
N点的等间隔取样。
? 函数 fft用于快速计算离散傅里叶变换,调用方式为
? >>y= fft(x);
? >>y= fft(x,N);
? y= fft(x)利用 FFT算法计算序列 x的离散傅里叶变换。
? 当 x为矩阵时,y为矩阵 x每一列的 FFT。
? 当 x长度为 2的整数次幂时,函数 fft采用基 -2的 FFT算法,否则采
用混合基算法。
? y= fft(x,N)采用 N点 FFT。
? 当序列 x长度小于 N时,函数 fft自动对序列尾部补零,构成 N点
数据;
? 当 x长度大于 N时,函数 fft自动截取序列前面 N点数据进行 FFT。
56
4.6.2 用 DFT计算线性卷积的 Matlab实现
? 函数 ifft用于快速计算向量或矩阵的离散
傅里叶逆变换,与函数 fft的调用规则基
本相同。
? 调用方式为
? >>y= ifft(x);
? >>y= ifft(x,N);
57
例:利用 FFT实现线性卷积
例 4.4 利用 FFT实现线性卷积。已知序列 x(n)= R4(n),
求,
( 1)用 conv函数求 x(n)与 x(n)的线性卷积 y(n),并绘
出图形;
( 2)用 FFT求 x(n)与 x(n)的 4点循环卷积 y1(n),并绘出
图形;
( 3)用 FFT求 x(n)与 x(n)的 8点循环卷积 y2(n),并将结
果与( 1)比较,说明线性卷积与循环卷积之间的关系。
解 程序如下,
58
>>N1= 4; N2= 8;
n1= 0:1:N1-1;n2= 0:1:N2-1;
x= [1,1,1,1]; % 构造序列 x(n)
x1= [1,1,1,1,0,0,0,0]; % 在序列 x(n)后补 4个零
figure(1)
subplot(2,2,1)
stem(n1,x),grid on;
title('序列 x(n)')
y1= conv(x,x); % y1为 x(n)与 x(n)的线性卷积
subplot(2,2,2)
stem(0:1:length(y1)-1,y1),grid on;
title('x(n)与 x(n)线性卷积 ')
59
X2= fft(x); % 计算 x(n)与 x(n)的 4点循环卷积
Y2= X2.*X2;
y2= ifft(Y2);
subplot(2,2,3)
stem(n1,y2),grid on;
title('x(n)与 x(n)的 4点循环卷积 ')
X3= fft(x1); % 计算 x(n)与 x(n)的 8点循环卷积
Y3= X3.*X3;
y3= ifft(Y3)
subplot(2,2,4)
stem(n2,y3),grid on;
title('x(n)与 x(n)的 8点循环卷积 ')
60
例 4.4 程序运行结果图
0 0, 5 1 1, 5 2 2, 5 3
0
0, 2
0, 4
0, 6
0, 8
1
序列 x ( n )
0 1 2 3 4 5 6
0
1
2
3
4
x ( n ) 与 x ( n ) 线性卷积
0 0, 5 1 1, 5 2 2, 5 3
0
1
2
3
4
x ( n ) 与 x ( n ) 的 4 点循环卷积
0 2 4 6 8
0
1
2
3
4
x ( n ) 与 x ( n ) 的 8 点循环卷积
61
4.6.3 频域取样定理的 Matlab实现
例 4.5 设 x(n)=(0.7)n·u(n),在单位圆上以 M=5和 M=20,
对其 Z变换取样,研究时域信号受 M变化的影响。
( 1)对 x(n)进行 Z变换 ;
( 2)对 X(z)进行等角取样,取样点数为 M,求 X(k);
( 3)对 X(k)进行 IDFT变化,得到 M点序列,请比较几
个序列,并作分析。
解 x(n)=(0.7)n·u(n)的 Z变换为
()
0,7
zXz
z
?
?
62
例 4.5 程序清单
>>n= 0:19;
x= 0.7.^n;
na= 0:4;
za= exp(j*2*pi*na/5);
% 在 z平面的单位圆上对其进行 5点的等角距取样
Xa= za./(za-0.7);
xa= abs(ifft(Xa));
nb= 0:19;
zb= exp(j*2*nb*pi/20);
% 在 z平面的单位圆上对其进行 20点的等角距取样
Xb= zb./(zb-0.7);
xb= abs(ifft(Xb));
63
figure(1)
subplot(2,2,1); % 画出原始时域信号
stem(n,x)
title('时域信号 x(n)')
subplot(2,2,2);
xa= [xa,xa,xa,xa];
stem(n,xa)
title('5点取样恢复的序列 ')
subplot(2,2,3);
stem(n,xb)
title('20点取样恢复的序列 ')
64
例 4.5 程序运行结果
0 5 10 15 20
0
0, 2
0, 4
0, 6
0, 8
1
时域信号 x ( n )
0 5 10 15 20
0
0, 5
1
1, 5
5 点采样恢复的序列
0 5 10 15 20
0
0, 5
1
1, 5
20 点采样恢复的序列
65
4.6.4 高密度谱与高分辨率谱差异的 Matlab实现
例 4.6 试通过计算说明高密度频谱和高分辨率频谱之间的
差异。
)52.0c o s ()48.0c o s ()( nnnx ?? ??
( 1)取 x(n)( 0≤n≤10)时,求其离散傅里叶变换 X1(k);
( 2)将( 1)中的 x(n)以补零的方式,使 x(n)加长到
0≤n≤100,求 X2(k);
( 3)取 x(n)( 0≤n≤100),求 X3(k);
( 4)比较分析 X1(k),X2(k),X3(k),说明高密度频谱和高
分辨率频谱之间的差异。
66
例 4.6的 Matlab程序清单
>>n1= 0:9;
x= cos(0.48*pi*n1)+sin(0.52*pi*n1);
X1= abs(fft(x));
% 对 10点的时域信号进行 FFT变换并取模
xc= [x,zeros(1,90)];
% 在序列后补 90个零,得到长度为 100的序列
X2= abs(fft(xc));
% 对补零后的时域信号进行 FFT变换并取模
n= 0:99;
xn= cos(0.48*pi*n)+sin(0.52*pi*n);
%建立 100个点的时域信号
X3= abs(fft(xn));
% 对 100点的时域信号进行 FFT变换并取模
67
figure(1);
subplot(3,1,1);
stem(n1,X1)
% 画出原始信号 10点的 DFT变换的图
title('取样 10点的 DFT')
subplot(3,1,2);
stem(n,X2)
% 画出补 90个零后的 DFT变换的图
title('补 0到 100点的 DFT')
subplot(3,1,3);
stem(n,X3)
% 画出取样点数为 100的 DFT变换的图
title('取样 100点的 DFT')
68
例 4.6 程序运行结果
0 1 2 3 4 5 6 7 8 9
0
5
10
采样 10 点的 D F T
0 10 20 30 40 50 60 70 80 90 100
0
5
10
补 0 到 100 点的 D F T
0 10 20 30 40 50 60 70 80 90 100
0
20
40
60
采样 100 点的 D F T