数字信号处理实验 题 目: 离散傅里叶变换的性质及应用 学 院: 专 业: 学生姓名: 班级/学号 指导老师: 一、实验目的 1.了解 DFT的性质及其应用 2.熟悉 MATLAB 编程特点 二、实验仪器及材料 计算机,MATLAB 软件 三、实验内容及要求 1.用三种不同的 DFT 程序计算8( )( )x nRn的 256 点离散傅里叶变换( )X k ,并比较三种程序计算机运行时间。 (1)编制用 for loop语句的M函数文件dft1.m,用循环变量逐点计算( )X k ; (2)编写用 MATLAB 矩阵运算的 M 函数文件 dft2.m,完成下列矩阵运算: 00000121012 (1)(1)(1) (0)(0) (1)(1) (1)(1) NNNNNNNNNNNNNNNNNXxWWWWXxWWWWx NX NWWWW (3)调用 fft 库函数,直接计算( )X k ; (4)分别调用上述三种不同方式编写的 DFT 程序计算序列( )x n 的离散傅里叶变换( )X k ,并画出相应的幅频和相频特性,再比较各个程序的计算机运行时间。 M 函数文件如下: dft1.m: function[Am,pha]=dft1(x) N=length(x); w=exp(-j*2*pi/N); for k=1:N sum=0; for n=1:N sum=sum+x(n)*w^((k-1)*(n-1)); end Am(k)=abs(sum); pha(k)=angle(sum); end dft2.m: function[Am,pha]=dft2(x) N=length(x); n=[0:N-1]; k=[0:N-1]; w=exp(-j*2*pi/N); nk=n'*k; wnk=w.^(nk); Xk=x*wnk; Am=abs(Xk); pha=angle(Xk); dft3.m: function[Am,pha]=dft3(x) Xk=fft(x); Am=abs(Xk); pha=angle(Xk); 源程序、运行结果及结论 1、源程序 <1> function[Am,pha] = dft1(x) N = length(x); w = exp(-j*2*pi/N); for k=1:N sum = 0; for n = 1:N sum = sum+x(n)*w^((k-1)*(n-1)); end Am(k) = abs(sum); pha(k) = angle(sum); end end <2> function[Am,pha] = dft2(x) N = length(x); n = [0:N-1];k = [0:N-1]; w = exp(-j*2*pi/N);nk = n'*k; wnk = w.^(nk); Xk = x*wnk; Am = abs(Xk); pha = angle(Xk); end <3> function[Am,pha] = dft3(x) Xk = fft(x); Am = abs(Xk); pha = angle(Xk); end <4> clear all; clc; x = [ones(1,8),zeros(1,256-8)]; t = cputime; [Am1,pha1] = dft1(x); t1 = cputi...