数字信号处理实验报告 实验名称: 离散傅里叶变换及其特性验证 学号: 姓名: 评语: 成绩: 一、实验目的 1、掌握离散时间傅立叶变换(DTFT)的计算方法和编程技术。 2、掌握离散傅立叶变换(DFT)的计算方法和编程技术。 3、理解离散傅立叶变换(DFT)的性质并用 MATLAB 进行验证。 二、实验原理与计算方法 1、离散时间傅立叶变换 如果序列 x(n)满足绝对可和的条件,即nnx|)(|,则其离散时间傅立叶变换定义为: nnjjenxnxFeX)()]([)( (1) 如果 x(n)是无限长的,则不能直接用 MATLAB 由 x(n)计算 X(ej),但可以用它来估计X(ej)表达式在[0,π]频率区间的值并绘制它的幅频和相频(或实部和虚部)曲线。 如果 x(n)是有限长的,则可以用 MATLAB 对任意频率处的 X(ej)进行数值计算。如果要在[0,π]间按等间隔频点估计 X(ej),则(1)式可以用矩阵-向量相乘的运算来实现。假设序列 x(n)在Nnnn1(即不一定在[0, N-1])有 N 个样本,要估计下列各点上的 X(ej): MkkMk...,2,1,0, 它们是[0,π]之间的(M+1)个等间隔频点,则(1)式可写成: MknxeeXNllknMjjl...,2,1,0)()(1 , (2) 将{x(nl)} 和{X(ejk)} 分别排列成向量 x 和 X,则有: X=Wx (3) 其中W 是一个(M+1)×N 维矩阵: MknnneNknMj...,2,1,0;1, W 将{k} 和{n} 排成列向量,则nkWTMj exp 在 MATLAB 中,把序列和下标排成行向量,对(3)式取转置得: knxXTTTMj exp 其中nTk 是一个N×(M+1)维矩阵。用 MATLAB 实现如下: k=[0:M]; n=[n1:n2]; X=x*(exp(-j*pi/M)).^(n’*k); 2、离散傅立叶变换 一个有限长序列的离散傅立叶变换对定义为: 10,)()(10 NkWnxkXNnnkN (4) 10,)(1)(10NnWkXNnxNkknN (5) 以列向量 x 和 X 形式排列 x(n)和 X(k),则式(4)、(5)可写成: X=WNx XWx*1NN 其中矩阵 WN 由下式给出: 2)(1 1111,011111NNNNNNNnNnkknNNWWWWkWW 可由下面的 MATLAB 函数 dft 和 idft 实现离散傅立叶变换运算。 function [Xk] = dft(xn,N) % Computes Discrete Fourier Transform % -----...