数字信号处理实验指导书思考题答案实验图

更新时间:2024-01-11 23:38:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

实验一 Matlab与数字信号处理基础?????????????????????? 2 实验二 离散傅里叶变换与快速傅里叶变换??????????????????? 4 实验三 数字滤波器结构??????????????????????????? 6 注释 ?????????????????????????????????? 9 主要参考文献 ???????????????????????????????? 9

实验一 Matlab与数字信号处理基础

一、实验目的和任务

1、 熟悉Matlab的操作环境 2、学习用Matlab建立基本序列的方法; 3、学习用仿真界面进行信号抽样的方法。

二、实验内容

1、基本序列的产生:

单位抽样序列、单位阶跃序列、矩形序列、实指数序列和复指数序列的产生 2、用仿真界面进行信号抽样练习: 用simulink建模仿真信号的抽样

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

计算机、Matlab软件

四、实验原理

序列的运算、抽样定理

五、主要技术重点、难点

Matlab的各种命令与函数、建模仿真抽样定理

六、实验步骤

1、 基本序列的产生:

单位抽样序列δ(n): n=-2:2; x=[0 0 1 0 0]; stem(n,x); 单位阶跃序列u(n): n=-10:10;

x=[zeros(1,10) ones(1,11)]; stem(n,x); 矩形序列RN(n): n=-2:10;

x=[0 0 ones(1,5) zeros(1,6)];

stem(n,x);

实指数序列0.5n: n=0:30; x=0.5.^n

stem(n,x);

复指数序列e(-0.2+j0. 3)n:n=0:30;

x=exp((-0.2+j*0.3)*n); 模:stem(n,abs(x)); 幅角:stem(n,angle(x));

2、用仿真界面进行信号抽样练习:

(1)在Matlab命令窗口中输入 simulink 并回车,以打开仿真模块库; (2)按CTRL+N,以新建一仿真窗口;

在仿真模块库中用鼠标点击Sources(输入源模块库),从中选择sine wave(正弦波模块)并

- 1 -

将其拖至仿真窗口;

(3)在仿真模块库中用鼠标点击Discrete(离散模块库),从中选择Zero-Order Hold(零阶保持器模块)并将其拖至仿真窗口;

(4)在仿真模块库中用鼠标点击Sinks(显示模块库),从中选择Scope(示波器模块)并将其拖至仿真窗口;

(5)在仿真窗口中把上述模块依次连接起来;

(6)用鼠标双击Scope模块,以打开示波器的显示界面;

(7)用鼠标点击仿真窗口工具条中的?图标开始仿真,结果显示在示波器中;

(8)用鼠标双击Zero-Order Hold模块,打开其参数设置窗口,改变sample time参数值,例如1、0.5、0.1、0.05…,用鼠标点击仿真窗口工具条中的?图标开始仿真,比较示波器显示结果(选三个参数值,得三个结果);

(9)在仿真模块库中用鼠标点击Sinks(显示模块库),从中选择To Workspace(输出到当前工作空间的变量模块)并将其拖至仿真窗口;

(10)用鼠标双击To Workspace模块,打开其参数设置窗口,改变variable name参数值为x ;同时把save format参数值设置为Array ;

(11)在仿真窗口中先用鼠标点击Zero-Order Hold模块与Scope模块的连线,然后按住CTRL键,从选中连线的中部引出一条线到To Workspace模块;

(12)用鼠标双击Zero-Order Hold模块,打开其参数设置窗口,改变sample time参数值,例如1、0.5、0.1、0.05…,用鼠标点击仿真窗口工具条中的?图标开始仿真,并返回命令窗口,用stem(x)作图,比较序列图显示结果(选三个参数值,得三个结果);

七、实验报告要求

1、实验步骤按实验内容指导进行;

2、对于实验内容1和2的数据必须给出的离散图,其相关参数应在图中注明; 3、具有关联性和比较性的图形最好用subplot()函数,把它们画在一起; 4、实验报告按规定格式填写,要求如下:

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

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

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

八、实验注意事项

1、Matlab编程、文件名、存盘目录均不能使用中文。Matlab要区分英文大小写。

- 2 -

2、实验结果要保存,打印后贴在实验报告上。 3、拷图技巧

stem(n,x)得到的Figure

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

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

(1)键盘上按Prt Screen键

(2)打开Windows附件->画图->编辑->粘贴

(3)选画图板左边工具栏虚线方框按钮,用鼠标在图中选定所需区域,按CTRL+c (4) 在Word文档中按CTRL+v

九、思考题

1、已知离散系统的输入x(n)和冲激响应h(n)如下,求相应的响应y(n),在计算前估算y(n)的长度。 x(n)=[1,4,3,5,1,2,3,5] h(n)=[4,2,4,0,4,2] 提示:卷积命令c=conv(f,h);

2、实验步骤2中的奈奎斯特频率是多少? 1/3Hz

实验二 离散傅里叶变换与快速傅里叶变换

一、实验目的和任务

1、练习M文件(函数)的编写; 2、学习DFT、FFT的初步应用;

二、实验内容

1、编写离散傅里叶变换式的M文件:

2、自编函数dft、idft与工具函数fft、ifft的比较: 用simulink建模仿真信号的抽样

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

计算机、Matlab软件

四、实验原理

DFT、IDFT、FFT、IFFT

五、主要技术重点、难点

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

- 3 -

六、实验步骤

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

DFTX(k)??x(n)en?0N?1?jnk2?N1IDFTx(n)?N?X(k)ek?0N?1jnk2?N

编写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);),比较结果; (3) 分别用idft和ifft进行逆离散傅立叶变换(x1=idft(X1); x2=ifft(X2);),比较结果(x1、x2与原序列x进行比较,x1和x2相互比较);

- 4 -

思考题

- 10 -

实验二实验三

x(n)¥?μ?DòáDó·?¨÷?y(n)1z2.5?·3¨÷?1zy¥?μ?DòáDx(n)y(n)y1??ê3á?1?±£′??±μ??á?D1z1.41z?ê?3á?1?±£′??μ?±á?D?¥?μ?ó?ê±÷?1z-0.31z-10.30.2x(n)¥?μ?DòáD1z-0.31zy(n)y2??ê3á?1?±£′??±μ??á?D1.40.20.3

- 11 -

本文来源:https://www.bwwdw.com/article/rvno.html

Top