数字信号处理实验指导书(3)

2018-12-17 16:34

《数字信号处理》实验指导书

Matlab的各种命令与函数、分别绘出DFT、IDFT的实部和虚部

六、实验步骤

1、编写自己的离散傅里叶变换式: 说明:离散傅里叶变对表达式如下

N?1DFTX(k)??n?0?jnk2?Nx(n)eIDFTx(n)?1NN?1?k?0jnk2?NX(k)e

编写M文件(函数)的具体步骤

(1) 用鼠标点击Matlab主界面工具条上的New M-File图标,打开M文件编辑窗口; (2) 在编辑框中输入以下程序后以文件名“dft.m”存盘(请不要改变路径设置); DFT.m程序 程序说明 function [Xk]=dft(xn) 定义函数dft,xn为参数 xn为需要进行DFT的序列 if nargin<1 error('need x(n)!'); end dft需要参数

N=length(xn); 取序列的点数

n=0:N-1;

k=0:N-1;

2?WN=exp(-j*2*pi/N); ?j计算eN nk=n'*k; WNnk=WN.^nk; Xk=xn*WNnk;

(3) 重复步骤(1),在编辑框中输入以下程序后以文件名“idft.m”存盘; IDFT.m程序代码 程序说明 function [xn]=idft(Xk) 定义函数dft,xn为参数 xn为需要进行DFT的序列 if nargin<1 error('need X(k)!'); end dft需要参数

N=length(Xk); 取序列的点数

n=0:N-1;

k=0:N-1;

2?WN=exp(-j*2*pi/N); ?j计算eN 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);),比较结果; x=[5 2 1 2 1 1]

- 10 -

《数字信号处理》实验指导书

x =

5 2 1 2 1 1 >> X1=dft(x); >> X1=dft(x) X1 =

12.0000 3.5000 - 0.8660i 4.5000 - 0.8660i 2.0000 - 0.0000i 4.5000 + 0.8660i 3.5000 + 0.8660i >> x=[5 2 1 2 1 1] x =

5 2 1 2 1 1 >> X2=fft(x) X2 =

12.0000 3.5000 - 0.8660i 4.5000 - 0.8660i 2.0000 4.5000 + 0.8660i 3.5000 + 0.8660i >>

(3) 分别用idft和ifft进行逆离散傅立叶变换(x1=idft(X1); x2=ifft(X2);),比较结果(x1、x2与原序列x进行比较,x1和x2相互比较); x=[5 2 1 2 1 1] x =

5 2 1 2 1 1 >> x1=idft(X1) x1 =

5.0000 - 0.0000i 2.0000 - 0.0000i 1.0000 + 0.0000i 2.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i >> x=[5 2 1 2 1 1] x =

5 2 1 2 1 1 >> x2=ifft(X2) x2 =

5 2 1 2 1 1

- 11 -

《数字信号处理》实验指导书

>>

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); 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));

程序说明 取得信号点数

进行DFT 取模 取幅角

计算各点频率

作幅度谱(线图)

作相位谱(线图)

七、实验报告要求

1、实验步骤按实验内容指导进行; 2、对于实验内容1要给出程序;

3、对于实验内容2要给出对比数据和相关结论; 4、对于实验内容3要给出相关谱线;

- 12 -

《数字信号处理》实验指导书

5、实验报告按规定格式填写,要求如下:

(1)实验步骤根据自己实际操作填写;

(2)各小组实验数据不能完全相同,否则以缺席论处;

6、实验结束,实验数据交指导教师检查,得到允许后可以离开,否则以缺席论处。

八、实验注意事项

1、Matlab编程、文件名、存盘目录均不能使用中文。 2、实验结果要保存,打印后贴在实验报告上。 3、 拷图技巧

(1)在Figure界面下,先把整个窗口缩小;

(2)在Figure界面下,点击菜单Edit / Copy Figure ; (3)在Word界面下,用粘贴命令…

九、思考题

1、在离散幅度谱中本已分开的谱线,用线图表示时却没有分开,为什么? 提示:stem与plot命令的区别

实验三 数字滤波器结构

一、实验目的和任务

1、学习Matlab的离散仿真环境;

2、学习用Matlab建立离散系统的方法; 3、通过实验操作熟悉滤波器结构;

二、实验内容

1、用Matlab仿真离散系统: 2、用直接Ⅰ型结构实现滤波器: 3、用直接Ⅱ型结构实现滤波器: 4、用级联型结构实现滤波器(选作):

三、实验仪器、设备及材料

计算机、Matlab软件

四、实验原理

FIR滤波器、IIR滤波器的各种结构

五、主要技术重点、难点

用Matlab提供的模块组建各种滤波器。

六、实验步骤

1、用Matlab仿真离散系统:

已知某系统的差分方程为 y(n)=x(n)+2.5y(n-1)-y(n-2),

- 13 -

《数字信号处理》实验指导书

其冲激响应为 h(n)?[43?(2)n?13?(0.5)n] u(n),

试用Matlab仿真差分方程,求其冲激响应,并把结果与h(n)比较。 具体操作步骤:

(1) 在Matlab命令窗口中输入 simulink 并回车,以打开仿真模块库; (2) 在该窗口中选择File / Open… 菜单,打开IIR01.mdl文件; (3) 打开的窗口中已有所需模块,请按下图连接各模块; x(n)¥?μ?DòáDó·?¨÷?y(n)1z2.5?·3¨÷?1zy?ê?3á?1?±£′??μ±??á?D¥?μ??óê±÷?-1

(4) 用鼠标点击仿真窗口工具条中的?图标开始仿真;

(5) 回到Matlab命令窗口中,输入以下程序,比较结果:

程序代码 程序说明 n=0:10; h=(4/3)*2.^n-(1/3)*(0.5).^n; 求理论上的冲激序列 subplot(2,1,1); stem(n,h); 作出理论上的冲激序列 subplot(2,1,2); stem(n,y); 作出实验上的冲激序列

- 14 -


数字信号处理实验指导书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018-2024年中国褐煤市场深度调研及投资前景研究报告(目录)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: