第三章 离散傅里叶变换
即
X4 (k) {3, 2 j,5, 2 j}
n = 0:3; x = [1,0,3,-1];
% 序列x(n)
k = 0:999; w = (pi/500)*k;
% [0,2*pi]区间划分成1000个等分频点
X = x*exp(-j*pi/500*n'*k);
% 计算离散时间傅里叶变换
magX = abs(X); angX = angle(X);
MATLAB计算DFT和IDFT
设 x 和 X分别表示序列 x(n) 和 X(k) 的列向量, 则有:
X =WN x
x
=
1 N
W
* N
X
DFT的实现
function [Xk] = DFT(xn,N)
n = [0:1:N-1];
% n的行向量
k = [0:1:N-1];
% k的行向量
WN = exp(-j*2*pi/N); % WN因子
3.1 离散傅里叶变换的定义和性质
离散傅里叶变换的物理意义
第一种物理意义(离散傅里叶变换与傅里叶变换的关系)
由离散傅里叶变换的定义,可知长度为 M 的有限长序列 x(n) 的 N 点离散傅里叶变换为
N 1
X (k)
DFT[ x(n)]N
n0
x(n)WNkn =X (e j )
= 2 k N
3.1 离散傅里叶变换的定义和性质
幅度部分 5
4
3
2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 以 为 单 位 的 频 率 相位部分
4 2 0 -2
hold on;
plot(n*2/4,magXk,'o');grid
subplot(2,1,2);plot(w/pi,angX);grid
xlabel('以\pi为单位的频率');title('相位部分');ylabel('弧度')
hold on
plot(n*2/4,angXk,'o');grid
幅度
k 0,1,
, N 1
上式表明 X(k) 为 x(n) 的傅里叶变换 X (e j ) 在区间 [0, 2 ] 上
的 N 点等间隔采样。
3.1 离散傅里叶变换的定义和性质
离散傅里叶变换的物理意义
第二种物理意义(离散傅里叶变换与离散傅里叶级数的 关系)
x(n) x((n))N x(n) x(n)RN (n)
第三章 离散傅里叶变换
主要内容
离散傅里叶变换的定义和性质 频谱采样 循环卷积 快速傅里叶变换 快速傅里叶变换的计算误差 时频分析与多尺度几何分析
3.1 离散傅里叶变换的定义和性质
离散傅里叶变换的定义
设x(n)是一个长度为 M 的有限长序列,则定义x(n)的N 离散傅 里叶变换(Discrete Fourier Transform, DFT)为
xn = (Xk * IWNnk)/N; % 求出逆离散傅里叶变换系数的行向量
3.1 离散傅里叶变换的定义和性质
MATLAB计算DFT和IDFT
例:试求有限长序列 x(n) [1,0,3, 1] 的离散时间傅里叶变换 (Discrete time Fourier Transform, DTFT)和4点离散傅里叶变换, 并在图上将离散时间傅里叶变换与离散傅里叶变换进行比较。
周期延拓 加窗操作
X (k) X ((k))N X (k) X (k)RN (k)
有限长序列 x(n) 的离散傅里叶变换 X(k) 正好是 x(n) 的周期 延拓序列 x(n) 的离散傅里叶级数X (k) 的主值序列。X(k) 实 质上是 x(n) 的周期延拓序列 x(n) 的频谱特性。
3.1 离散傅里叶变换的定义和性质
X =WN x
x
=
1 N
W
* N
X
IDFT的实现
function [xn]= IDFT(Xk,N)
n = [0:1:N-1]; % n的行向量
k = [0:1:N-1]; % k的行向量
WN = exp(-j*2*pi/N); % WN因子
nk = n'*k;
% 生成一个N*N的含nk值的矩阵
IWNnk = WN.^(-nk); % 求出逆离散傅里叶变换矩阵
解:按定义 x(n) 的离散时间傅里叶变换为:
X (e jw ) x(n)e- jwn 1 3e-2 jw e-3 jw n-
而 x(n) 的离散傅里叶变换用MATLAB函数实现如下:
x = [1,0,3,-1]; N = 4;
Xk = DFT(x,N)
3.1 离散傅里叶变换的定义和性质
运行结果: Xk = 3.0000 -2.0000 - 1.0000i 5.0000 + 0.0000i -2.0000 + 1.0000i
式中,WN
j 2
e N
,
N
称为离散傅里叶变换的变换区间长度。
3.1 离散傅里叶变换的定义和性质
离散傅里叶变换的Байду номын сангаас义
例: 试求有限长序列
x(n)
cos(
n
6
)
0 n 11的12点离散
傅里叶变换。
0 其它
解:由题意知变换区域 N=12, 则
11
X (k) x(n)W1n2k , k 0,1, 2, ,11 n0 6 k 1,11 X (k) 0 其它k
% X的幅度和相位(DTFT)
Xk = DFT(x,4);
% 计算离散傅里叶变换
magXk = abs(Xk); angXk = angle(Xk); % Xk的幅度和相位(离散傅里叶变
换)
subplot(2,1,1);plot(w/pi,magX);grid
xlabel('以\pi为单位的频率');title('幅度部分');ylabel('幅度');
N 1
X (k) DFT[x(n)] x(n)WNkn k 0,1, , N 1 n0
X(k)的离散傅里叶逆变换(Inverse Discrete Fourier Transform,
IDFT)为
x(n)
IDFT[ X (k)]
1 N
N 1 k 0
X
(k )WNkn
n 0,1,
, N 1
nk = n'*k;
% 生成一个N*N的含nk值的矩阵
WNnk = WN.^nk;
% 求出离散傅里叶变换矩阵
Xk = xn*WNnk;
% 求出离散傅里叶变换系数的行向量
3.1 离散傅里叶变换的定义和性质
MATLAB计算DFT和IDFT
设 x 和 X分别表示序列 x(n) 和 X(k) 的列向量, 则有: