收藏 分享(赏)

数字信号处理实验一2014.doc

上传人:dreamzhangning 文档编号:2607446 上传时间:2018-09-23 格式:DOC 页数:7 大小:83.50KB
下载 相关 举报
数字信号处理实验一2014.doc_第1页
第1页 / 共7页
数字信号处理实验一2014.doc_第2页
第2页 / 共7页
数字信号处理实验一2014.doc_第3页
第3页 / 共7页
数字信号处理实验一2014.doc_第4页
第4页 / 共7页
数字信号处理实验一2014.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、实验一、熟悉 MATLAB 环境和离散时间信号的基本运算一、实验目的1.熟悉 MATLAB 的运行环境及基本操作命令;2.掌握 MATLAB 中离散时间信号的表示方法;3.掌握 MATLAB 中离散时间信号的卷积和相关运算; 二、实验器材计算机、MATLAB 软件三、实验原理1、 MATLAB 简介MATLAB 的名称源于 Matrix Laboratory,是 1984 年 Mathworks 公司推出数学类可以应用软件。MATLAB 既是一种高级计算机语言,又是一个编程环境。MATLAB 语言是以矩阵计算为基础,语法规则简单易学,并将高性能的数值计算和可视化结合,而且有着功能强大、丰富的函

2、数工具箱,可扩展性强,使它深受工程技术人员及科技专家的欢迎,并很快成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。在整个数字信号处理实验过程中,是要利用 MATLAB 语言来实现信号描述,信号的计算。所以,对 MATLAB 语言中的简单常用的函数命令必须有一个好的了解。MATLAB 的计算单元MATLAB 的基本计算单元是矩阵与向量,其中向量是矩阵的特例。对于较小简单的矩阵,可以从键盘上直接输入一系列元素生成矩阵,其中矩阵的每一行中的数字要用空格或逗号隔开,矩阵行结束的标志为分号或回车键。还有,MATLAB 为用户提供了能够产生基本矩阵的几个重要的函数如下: zeros:

3、生成零矩阵。调用格式:zeros(n)或者 zeros(4,3) ones:生成全部元素均为 1 的矩阵。 eye:生成单位矩阵。 rand:生成均匀分布的随机矩阵。 randn:生成正态分布的随机矩阵。说明: 矩阵和向量的元素可以为复数,其中用 i、j 来表示虚数单元,如 2+3*i。 MATLAB 中分号“;”的三个作用:一是作为矩阵或向量的分行符;二是作为指令和指令间的分隔符;三是当它放在赋值指令后时,该指令执行后的赋值结果将不显示在屏幕上。 MATLAB 中冒号“:”的可以对向量进行赋值。如:a=1:5;MATLAB 语言中的运算符MATLAB 语言中的运算符包括算术运算符、关系运算符

4、、逻辑运算符和操作符。其运算符大部分与 c 语言中相同,在这不多做说明。需要注意的是,在 MATLAB 中矩阵和数组的基本计算是不相同的,例如:两个矩阵 A 和 B,其 A*B 和 A.*B 的运算结果是不一样的,大家可以上机试一下。另外它们的基本运算,除非一个为标量,否则 A 和 B 必须具有相同的大小。MATLAB 的基本绘图功能stem 命令:此命令专门用来绘制离散序列的波形。调用格式为:stem(k,f) 调用此命令可以绘制出离散序列的点状图。plot 命令:plot 命令是 MATLAB 中用来绘制用连续信号的波形。它的功能是将向量点用直线依次连接起来。调用格式:plot(f) ,其

5、中向量 f 的值为纵坐标的值,相应的元素小标为横坐标的值;plot(t,f),t 和 f 为同维向量,t 值为横坐标,f 为纵坐标;plot(t1,f1,t2,f2),此命令可以在同一图形下绘出两个信号波形;plot3(x,y,z):用向量x,y,z 的相应点绘制有序的三维图形,向量 x,y,z 必须具有相同的长度。title 命令:在绘图命令中,可以用此命令来对绘制出来的波形做一些注释。调用格式为:title( ) 中间部分是对图形任意注释的描述。xlabel、ylabel 命令:这两个也是来对绘制出来的波形做标注用的,可以标注出两个坐标轴的未知数的意义,增加图形中的信息量。调用格式:xla

6、bel( ),ylabel( ) 中间可以是对坐标轴做注释的文字或字母。axis 命令:此命令可以来定义绘制波形中坐标的范围。调用格式为:axis(k1,k2,g1,g2),其中 k1,k2 表示横坐标的范围,g1,g2 表示纵坐标的范围。clc:清除命令窗口。grid:自动在坐标轴上显示虚线型网络。hold on:保持当前图形状态下绘制其他图形,即在同一图形窗口中绘制多幅图形。subplot(m,n,p):将图形窗口分成 m 行 n 列的子窗口,序号为 p 的子窗口为当前窗口。2. MATLAB 中离散时间信号的表示和运算在 MATLAB 中一般用向量来表示信号,由于 MATLAB 强大的图

7、形处理功能,为我们实现信号的可视化提供了强有力的工具,所以我们还可以利用 MATLAB 的绘图命令绘制出直观的离散时间信号波形。(1)离散时间信号离散时间信号一般用表达式 f(k)来表示,其中变量 k 为整数,代表离散的采样时间点。利用 MATLAB 表示离散序列 f(k)时,也是利用两个向量来表示,其中一个向量表示自变量k 的取值范围,另一个向量表示序列 f(k)的值。比如序列 f(k)=2,2,2,-1,3,0,2;k=-2,-2,0,1,2,3,4可用 MATLAB 表示为:k=-2:4;f=2,1,2,-1,3,0,2此离散时间序列的波形可利用 MATLAB 函数 stem(k,f)画

8、出,如图 1-1 所示。-2 -1 0 1 2 3 4-1-0.500.511.522.53图 1-1 f(k)的波形图(2)离散时间信号的卷积在 MATLAB 中,conv( )函数可以快速求出两个离散时间信号的卷积和。其调用格式为:y=conv(x,h)其中调用参数 x,h 分别为参与卷积运算的两个离散信号,x 为包含离散信号 的)(kx非零样值点的行向量,h 为包含离散信号 的非零样值点的行向量,向量 y 则返回离散)(th信号 的所有非零样值点行向量。)(*)(kxky由于 conv 是 MATLAB 中针对离散时间信号求卷积的函数,但它不适用于连续时间信号的卷积积分的形式。举例如下:

9、求离散时间信号 和 的线性卷积。2,10;4,321)(kkx 2,10;3,)(kh程序如下:x=1,2,3,4;h=2,1,3;y=conv(x,h)运行结果为:y =2 5 11 17 13 12画出信号的波形subplot(1,3,1);stem(x);title(x(k);subplot(1,3,2);stem(h); title(h(k);subplot(1,3,3);stem(y); title(y(k);其波形如图 1-1 所示。1 1.5 2 2.5 3 3.5 401234 x(k)1 1.5 2 2.5 300.511.522.53 h(k)1 2 3 4 5 60510

10、1520 y(k)图 1-1 离散时间信号卷积和时域波形由上面例子可以看出,函数 conv( )不考虑离散时间信号 和 的非零样值点的)(kxh时间序号,也不返回离散时间信号 的非零样值点的时间序号。为了完整)(*(khxky地表示离散时间信号,我们不仅需要知道卷积的值,还需要知道其值对应的时间序号。由于卷积信号 的时域宽带等于 和 的时域宽带之和减 2.其 MATLAB 生成时间序)(ky)(号的命令如下:k1=-1:2k2=0:2k=(k1(1)+k2(1):(k1(length(k1)+k2(length(k2)运行结果为k1 =-1 0 1 2k2 =0 1 2k =-1 0 1 2

11、3 4根据上面分析,则离散时间信号 、 以及他们的卷积信号 的时域波形如图 1-)(kxh)(ky2 所示。-1 -0.5 0 0.5 1 1.5 201234 x(k)0 0.5 1 1.5 200.511.522.53 h(k)-1 0 1 2 3 405101520 y(k)图 1-2 离散时间信号卷积和时域波形(3) 利用 MATLAB 函数 conv 计算连续时间信号的相关自相关和互相关序列可以直接调用 MATLAB 函数 xcorr 来计算。例:计算两个有限长序列xk=1,2,-2,1,2,-1,4,4,2,yk=2,-1,4,1,-2,3的互相关。程序如下:x = input(T

12、ype in the reference sequence = );y = input(Type in the second sequence = );% Compute the correlation sequencen1 = length(y)-1; n2 = length(x)-1;r = conv(x,fliplr(y);k = (-n1):n2;stem(k,r);xlabel(Lag index); ylabel(Amplitude);v = axis;axis(-n1 n2 v(3:end); -4 -2 0 2 4 6 8-15-10-5051015202530Lag inde

13、xAmplitude自相关和互相关序列可以直接调用 MATLAB 函数 xcorr 来计算。x = input(Type in the reference sequence = );y = input(Type in the second sequence = );% Compute the correlation sequencen1 = length(y)-1; n2 = length(x)-1;r = xcorr(x,y);k = (-n1):n2;stem(k,r(3:end);xlabel(Lag index); ylabel(Amplitude);-6 -4 -2 0 2 4 6

14、8-15-10-5051015202530(4)离散 LTI 系统的频率响应利用 MATLAB 提供的 freqz 函数可以计算离散信号的频谱或离散系统频率响应的抽样值。其调用格式为:X=freqz(b,a,w)其中,X 为系统频谱,w 是抽样的频率点,b 和 a 分别为离散 LTI 系统的系统函数的 H(z)的分子和分母多项式系数。说明:不带输入向量时 freqz 函数将自动绘出频率响应的幅频和相频特性曲线。(5)求有限长序列的 DTFT,并画出它的幅度谱,相位谱,实部和虚部。clear allx=1,2,3,4,5;k=-1:3;w=linspace(0,2*pi,512);H=x*exp

15、(-j*k*w);subplot(2,2,1);plot(w,abs(H);ylabel(幅度); %画幅度特征曲线subplot(2,2,2);plot(w,angle(H);ylabel(相角); %画相位特征曲线subplot(2,2,3);plot(w,real(H);ylabel(实部); %画幅度实 部特征曲线subplot(2,2,4);plot(w,imag(H);ylabel(虚部); %画幅度虚部特征曲线其程序运行结果如下:0 2 4 6 8051015实实0 2 4 6 8-4-2024实实0 2 4 6 8-5051015实实0 2 4 6 8-10-50510实实四、

16、实验内容了解所给的 MATLAB 相关函数, 并在计算机上运行这些范例程序,以及课本 44 页到 47页的范例程序,观察其运行结果。并结合范例程序所完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序的编程算法。根据范例程序,自己编写程序,完成下面的实验内容。1. 求离散序列的卷积。在MATLAB窗口下,打开一个空白编辑窗口,先将要卷积的两个离散信号表示出来,然后利用conv( )函数其卷积,利用stem( )函数来显示波形。把编辑好的程序存入到MATLAB根目录下的work文件夹中,按F5进行编译运行。观察输出序列并记录下来。xk=1,4,3,2;k=-1,0,1,2,yk=3,

17、5,2;k=0,1,2程序:x=1,4,3,2;y=3,5,2;h=conv(x,y);k1=-1:2;k2=0:2;k=(k1(1)+k2(1):(k1(length(k1)+k2(length(k2);subplot(1,3,1);stem(k1,x);title(x(k1);subplot(1,3,2);stem(k2,y);title(y(k2);subplot(1,3,3);stem(k,h);title(h(k); -2 0 200.511.522.533.54 x(k1)0 1 200.511.522.533.544.55 y(k2)-5 0 505101520253035 h(k)2. 课本52页MATLAB习题M1-4 、M1-5。 M1-4B1=;a=;M1-5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报