1.68k likes | 1.9k Views
第五章 有限长离散变换 Finite-Length discrete Transforms. 本章主要内容. 离散傅立叶变换 定义 离散傅立叶变换 性质 (与 DTFT 的关系,圆周移位和圆周卷积, DFT 的对称性, DFT 定理) DFT 的 应用 (实序列的 DFT 计算,用 DFT 计算线性卷积) 离散余弦变换. 设 是 基本序列 ,长度为 N 。则其满足:. 称 为 正交序列 。. 5.1 正交变换.
E N D
第五章有限长离散变换Finite-Length discrete Transforms
本章主要内容 • 离散傅立叶变换定义 • 离散傅立叶变换性质 (与DTFT的关系,圆周移位和圆周卷积,DFT的对称性,DFT定理) • DFT的应用(实序列的DFT计算,用DFT计算线性卷积) • 离散余弦变换
设 是基本序列,长度为N。则其满足: 称 为正交序列。 5.1 正交变换 • 对信号的分析思路是:找一个正交的函数集,从而将任意信号分解为该函数集上各个元素的线性组合。
5.1 正交变换 正交变换对的一般形式: 综合式 分析式 将要讨论的离散傅立叶变换是正交变换的一种。
5.2 离散傅里叶变换Discrete Fourier Transform (DFT) • DTFT是离散时间信号的傅里叶变换,时域离散,频域连续,周期为2。 • 由于计算机只能处理数字信号,而不能处理连续信号,所以必须把信号连续的频谱离散化。
5.2 离散傅里叶变换Discrete Fourier Transform (DFT) 时域频域 连续,非周期 FT 连续,非周期 连续,周期 FST 离散,非周期 离散,非周期 DTFT 周期,连续 离散周期 DFS 离散周期 补充DFS内容
δT(t) ω0δω0(ω) -2ω0 -2T -T - ω0 0 0 T 2T ω0 2ω0 t ω 已知周期冲激函数的傅立叶变换: ω0 = 2π/T
x(t) x[nT] P(t) Q(jω) q(t) Q(jω) X(jω) X(jω) P(jω) … … … … … … Ω0=2π/T Ω0=2π/T ω0=2π/Ts Ts Ω0 Ω0 T ω0 周期化,离散化信号 FT DTFT DFS
5.2 离散傅里叶变换Discrete Fourier Transform (DFT) DFT的定义 时域中N点的序列x[n]的DFT
5.2 离散傅里叶变换Discrete Fourier Transform (DFT) DFT定义中引入一个常用的符号 证明IDFT表达式: 证明:在两边同乘以 WNln,从 n = 0到n=N-1作
5.2 离散傅里叶变换Discrete Fourier Transform (DFT) 例 5.1有限长单点非零样本的DFT计算 其N点的 DFT :
5.2 离散傅里叶变换Discrete Fourier Transform (DFT) 例 5.1有限长单点非零样本的DFT计算 其N点 DFT 为:
5.2 离散傅里叶变换Discrete Fourier Transform (DFT) 例 5.2有限长正弦序列的DFT计算 解:
5.2 离散傅里叶变换Discrete Fourier Transform (DFT) 例 5.2有限长正弦序列的DFT计算
DFT的定义 5.2 离散傅里叶变换Discrete Fourier Transform (DFT) DFT的矩阵关系 可以重写为:
5.2 离散傅里叶变换Discrete Fourier Transform (DFT) DFT的矩阵关系 类似的, IDFT 关系也可以表示为:
5.2.3 用Matlab计算DFTDFT Computation Using MATLAB 在matlab中有四个用来计算DFT和IDFT的内置函数: fft(x), fft(x,M), ifft(X), ifft(X,M) 在matlab信号处理工具箱中的函数dftmtx(N)用来计算NN阶DFT矩阵DN 例 5.3用matlab计算如下N点序列的M点DFT
% Program 5_1 % Illustration of DFT Computation %Read in the length N of sequence and the % desired length M of the DFT N = input('Type in the length of the sequence = '); M = input('Type in the length of the DFT = '); % Generate the length-N time-domain sequence u = [ones(1,N)]; % Compute its M-point DFT U = fft(u,M); % Plot the time-domain sequence and its DFT t = 0:1:N-1; stem(t,u)
title('Original time-domain sequence') xlabel('Time index n'); ylabel('Amplitude') pause subplot(2,1,1) k = 0:1:M-1; stem(k,abs(U)) title('Magnitude of the DFT samples') xlabel('Frequency index k'); ylabel('Magnitude') subplot(2,1,2) stem(k,angle(U)) title('Phase of the DFT samples') xlabel('Frequency index k'); ylabel('Phase')
例 5.4用matlab计算IDFT % Program 5_2 % Illustration of IDFT Computation % Read in the length K of the DFT and the desired % length N of the IDFT K = input('Type in the length of the DFT = '); N = input('Type in the length of the IDFT = '); % Generate the length-K DFT sequence k = 0:K-1; V = k/K; % Compute its N-point IDFT v = ifft(V,N);
% Plot the DFT and its IDFT stem(k,V) xlabel('Frequency index k'); ylabel('Amplitude') title('Original DFT samples') pause subplot(2,1,1) n = 0:N-1; stem(n,real(v)) title('Real part of the time-domain samples') xlabel('Time index n'); ylabel('Amplitude') subplot(2,1,2) stem(n,imag(v)) title('Imaginary part of the time-domain samples') xlabel('Time index n'); ylabel('Amplitude')
长度为N的序列 的DTFT为: 5. 3 FT与DFT之间的关系 一. DFT与DTFT之间的关系 在= [0,2]对X(ej)进行的N点等间隔采样:
说明: • x(n)的N点DFT是x(n)的Z变换在单位圆 上的N点等间隔采样。 • X(k)为x(n)的傅立叶变换X(ej )在区间 [0,2]上的N点等间隔采样。
已知 ,其傅立叶变换为 希望以频率间隔 来估计 ,其中 5. 3 FT与DFT之间的关系 二. 使用DFT进行傅立叶变换的数值计算 解: 定义新序列
5. 3 FT与DFT之间的关系 二. 使用DFT进行傅立叶变换的数值计算 则: 上式是M点序列xe[n]的M点DFT序列Xe[k]
5. 3 FT与DFT之间的关系 二. 使用DFT进行傅立叶变换的数值计算 例 5.5使用matlab计算DTFT 程序5_3.m % Program 5_3 % Numerical Computation of Fourier transform Using DFT k = 0:15; w = 0:511; x = cos(2*pi*k*3/16); % Generate the length-16 sinusoidal sequence
例 5.5使用matlab计算DTFT 程序5_3.m % Compute its 16-point DFT X = fft(x); % Compute its 512-point DFT XE = fft(x,512); % Plot the frequency response and the 16-%point DFT samples plot(k/16,abs(X),'o', w/512,abs(XE)) xlabel('\omega/\pi'); ylabel('Magnitude')
5. 3 FT与DFT之间的关系 二. 使用DFT进行傅立叶变换的数值计算 • 例 - 5_3.m 如下所示:
,其N点DFT序列 给定 通过 唯一地确定 5. 3 FT与DFT之间的关系 三. 通过插值由DFT获得傅立叶变换
0 5. 3 FT与DFT之间的关系 四. 傅立叶变换的抽样——频域采样定理 • 为了便于计算机计算,一般采取在频率域采样 的方法,来计算有限长序列的傅立叶变换。 • 那么,是否任何一个序列的频谱(或任何一个 频率 特性)都能用频率抽样的方法去逼近呢? 其限制条件是什么?
对 在 上的N个均分点采样,则得到 频域采样定理 推导过程: 设任意序列 x[n]存在傅立叶变换 问题在于这样采样以后是否能恢复出原序列x[n]
说明: 在的N点等间隔采样X[k] 的 IDFT 为:原序列x[n]以N为周期的周期延拓序列的主值序列. 频域抽样造成时域信号的周期延拓,其延拓周期为采样点数N. 若x[n]不是有限长的,则延拓后必然造成混迭现象,若x[n]是有限长的, 长度为M, 当抽样点数不够密时(N<M),也会造成混迭现象. 经推导得
频域抽样定理 如果序列x[n]的长度为M,则只有当频域抽样点数N满足 才有 即可由X[k]恢复出原序列x[n]
时域抽样与频域抽样的比较 造成频域函数的周期延拓,周期为 • 时域抽样 造成时域函数的周期延拓,周期为 • 频域抽样
n 0 n 0 n 0 n 0 长为M序列x[n]的周期延拓: 当N>=M
n n 0 n -8 0 n 0 8 n 0 n 当N<=M 0
若希望对 移位 ,该序 • 列仍在区间0≤n≤N-1内。这种移位称为圆 • 周移位(或循环移位)。 • 圆周移位可以通过模运算实现。 若令 则 其中 使 在[0,N-1]之间 5. 4 有限长序列的运算 5.4.1 序列的圆周移位
5.4.1 序列的圆周移位 Circular Shift of a Sequence 圆周移位定义为: 当n0>0 (则它是一个右圆周移位), 上式可以写为:
5.4.1 序列的圆周移位 Circular Shift of a Sequence • 一个有限长序列的圆周移位图示 • 向右圆周移位 n0个抽样周期等效于向左圆周移位N-n0个抽样周期
x[n] x[n-1] 5.4.1 序列的圆周移位 Circular Shift of a Sequence 没圆周移位 圆周移位
n n n n n 循环移位的过程示意图
5.4.2 圆周卷积 Circular Convolution 圆周卷积与线性卷积: • 考虑两个长度N的序列 g[n] 和h[n]它们的线性卷积是长度为(2N-1)的序列 yL[n] : g[n] 和h[n]的圆周卷积是长度为N的序列yc[n]
N 5.4.2 圆周卷积 Circular Convolution • 上面的运算通常称之为N 点圆周卷积,表示为:
N 5.4.2 圆周卷积 Circular Convolution 计算圆周卷积
m m m m 圆周卷积的计算