数字信号处理实验教程 - 1 - 实验一 离散傅里叶变换的性质及应用 一、实验目的 1、了解 DFT 的性质及应用
2、熟悉 MATLAB 编程的特点
二、实验内容 1、用三种不同的 DFT 程序计算 x(n)=R8(n)的傅里叶变换 X(ejw),并比较三种程序计算机运行时间
(1) 用 for loop 语句的 M 函数文件 dft1
m,用循环变量逐点计算 X(k); (2) 编写用 MATLAB 矩阵运算的 M 函数文件 dft2
m,完成上述运算; (3) 编写函数dft3
m,调用 FFT 库函数,直接计算 X(k); (4) 分别利用上述三种不同方式编写的 DFT 程序计算序列 x(n)的傅立叶变换 X(ejw),并画出相应的幅频和相频特性,再比较各个程序的计算机运行时间
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)); 数字信号处理实验教程 - 2 - 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) x=[ones(1,8),zeros(1,24