数字信号处理实验报告_2(离散傅里叶变换与快速傅里叶变换)..doc
文本预览下载声明
西华大学实验报告(理工类)
开课学院及实验室: 电气信息学院 6A-205 实验时间 : 年 月 日 学 生 姓 名 学号 成 绩 学生所在学院 电气信息学院 年级/专业/班 课 程 名 称 数字信号处理 课 程 代 码 实验项目名称 离散傅里叶变换与快速傅里叶变换 项 目 代 码 指 导 教 师 项 目 学 分 一、实验目的
1、练习M文件(函数)的编写;
2、学习DFT、FFT的初步应用;
3、学习用simulink建模仿真信号的抽样
二、实验原理
DFT、IDFT、FFT、IFFT
三、实验设备、仪器及材料
计算机、Matlab软件
四、实验步骤(按照实际操作过程)
1、编写自己的离散傅里叶变换式:说明:离散傅里叶变对表达式如下
DFT.m程序
程序说明
function [Xk]=dft(xn)
定义函数dft,xn为参数
xn为需要进行DFT的序列
if nargin1 error(need x(n)!); end
dft需要参数
N=length(xn);
取序列的点数
n=0:N-1;
k=0:N-1;
WN=exp(-j*2*pi/N);
计算
nk=n*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
编写M文件(函数)的具体步骤
(1)用鼠标点击Matlab主界面工具条上的New M-File图标,打开M文件编辑窗口;
(2)在编辑框中输入以下程序后以文件名“dft.m”存盘(请不要改变路径设置);
(3)重复步骤(1),在编辑框中输入以下程序后以文件名“idft.m”存盘;
IDFT.m程序代码
程序说明
function [xn]=idft(Xk)
定义函数dft,xn为参数
xn为需要进行DFT的序列
if nargin1 error(need X(k)!); end
dft需要参数
N=length(Xk);
取序列的点数
n=0:N-1;
k=0:N-1;
WN=exp(-j*2*pi/N);
计算
nk=n*k;
WNnk=WN.^(-nk);
xn=Xk*WNnk/N;
2、自编函数dft、idft与工具函数fft、ifft的比较:
(1)在命令窗口中建立一序列x(6点); x=[5 2 1 组号 ?]
(2)分别用dft和fft对x进行离散傅立叶变换(X1=dft(x); X2=fft(x);),比较结果;
(3)分别用idft和ifft进行逆离散傅立叶变换(x1=idft(X1); x2=ifft(X2);),比较结果(x1、x2与原序列x进行比较,x1和x2相互比较);
3、DFT的应用:
(1)在Matlab主界面中,用鼠标点击菜单File / Import Data…;
(2)在文件对话框中选择数据文件dsp01.mat,导入信号x;(x为512点的序列)
(3)对信号进行fft变换,作出幅度谱和相位谱。
程序代码
程序说明
N=length(x);
取得信号点数
n=0:N-1;
X=fft(x);
进行DFT
mX=abs(X);
取模
aX=angle(X);
取幅角
w=2*pi*n/N;
计算各点频率
subplot(2,1,1);
plot (w(1:256),mX(1:256));
作幅度谱(线图)
subplot(2,1,2);
plot (w(1:256),aX(1:256));
作相位谱(线图)
五、实验报告要求
1、对于实验内容1要给出程序;
2、对于实验内容2要给出对比数据和相关结论;
3、对于实验内容3要给出相关谱线;
4、实验报告按规定格式填写,要求如下:
(1)实验步骤根据自己实际操作填写;
(2)各小组实验数据不能完全相同,否则以缺席论处;
5、实验结束,实验数据交指导教师检查,得到允许后可以离开,否则以缺席论处。
六、实验过程记录(数据、图表、计算等)
n=-2:3;x=[1 3 5 7 9 11]
X1=dft(x)
X2=fft(x)
X1 =
36.0000 -6.0000 +10.3923i -6.0000 + 3.4641i -6.0000 - 0.0000i -6.0000 - 3.4641i -6.0000 -10.3923i
X2 =
36.0000 -6.0000 +10.3923i -6.0000 + 3.4641i -6.0000
显示全部