西安邮电大学通信与信息工程学院实验报告(2016/2017学年第2学期)实验名称:数字信号处理实验学生姓名:石龙飞专业:通信工程学号:03151307指导教师:常虹2017年06月01日西安邮电大学通院《数字信号处理实验》独立设课实验过程考核表学生姓名石龙飞班级/学号通工1510/03151307承担任务实验室(单位)三号实验楼423所在部门电科实验室实施时间2017年5月11日—2017年6月1日具体内容第一次熟悉MATLAB的使用第二次信号的表示第三次FFT频谱分析及应用第四次信号的运算——卷积第五次线性卷积的快熟处理办法——重叠相加法第六次线性卷积的快熟处理办法——重叠保留法第七次IIR数字滤波器的设计第八次FIR数字滤波器的设计指导教师姓名常虹职务或职称指导教师对学生的评价学习态度□认真□一般□不认真学习纪律□全勤□偶尔缺勤□经常缺勤实践能力□很强□一般□较差指导教师评语指导教师(师傅)签字年月日西安邮电大学通院《数字信号处理实验》独立设课实验成绩鉴定表学生姓名石龙飞专业班级/学号通工1510/03151307315进行时间2017年5月11日—2017年6月1日考核内容标准平时成绩(30分)课堂出勤情况、课堂纪律及学习态度(25分)遵守实验室的规章制度情况(5分)实验能力(40分)分析、解决实际问题能力(10分)文件检索或软硬件设计能力(10分)实验完成情况(20分)实习报告(30分)语言及文字表达力(10分)实验报告结构(10分)书写格式规范(10分)总评成绩1熟悉MATLAB1.1实验目的1、了解MATLAB程序设计语言的基本特点,熟悉MATLAB软件的运行环境。2、掌握各种信号的建模方式。3、掌握各种信号的托兴表示方法。4、掌握变量等有关概念,具备初步的将一般数学模型转化为对应的计机模型并进行处理的能力。1.2实验原理1、图形保持holdon/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。2、绘图修饰命令title(图形名称)xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)legend1.3实验内容以及步骤单位采样序列代码:x=-5:5;y1=[zeros(1,5),1,zeros(1,5)];stem(x,y1,'r')axis([-5,5,0,2]);单位阶跃序列代码:x=-5:5;y1=[zeros(1,5),1,ones(1,5)];stem(x,y1,'r')axis([-5,5,0,2]);矩形序列代码:x=-5:10;y1=[zeros(1,5),ones(1,5),zeros(1,6)];plot(x,y1)stem(x,y1,'r')axis([-5,10,0,2]);三角波代码:fs=10000;t=-1:1/fs:1;w=0.4;x=tripuls(t,w);plot(t,x)方波代码:t=-2*pi:0.001:2*pi;x=square(t);plot(t,x);xlabel('t'),ylabel('z=square(t)')锯齿波代码:x=0:0.01:5;y=1-mod(x,1);plot(x,y)Sinc函数代码:clearn=-5:0.5:10y=sin(0.5*pi*n);stem(n,y,'g')1.4实验结果分析学习使用MATLAB7.0软件;学习信号的图形表示方法,掌握各种各种信号的的建模方式;实现单位采样序列、单位阶跃序列、举行序列、三角波、方波、锯齿波、Sinc函数。1.5实验总结以及体会构成经过本次试验,我对于用MATLAB来作出一些数字信号中的一些基本波形的图像有了深刻的认识,可以熟练而又准确地以MATLAB为工具做出诸如单位阶跃序列,矩形序列等多种序列的图形,不仅如此,在作图中,我对于MATLAB的一些作图的基本指令,以及需要作出的序列有了深刻的认识与见解;本节课做出这些图形并不是重点,重点是了解MATLAB程序设计语言的基本特点,掌握这一个重要的工具,并且可以将数学模型熟练地转化为计算机模型,并进行处理,这才是本次实验真正的作用与意义,也是作为当代大学生的我们所必须具备的基本能力。1.6指导老师评语2信号的表示2.1实验目的1、了解MATLAB程序设计语言的基本特点,熟悉MATLAB软件运行环境。2、掌握各种信号的建模方式。3、掌握各种信号的图形表示方法。4、掌握变量等有关概念,具备初步的将一般数学模型转化为对应的计算机模型并进行处理的能力2.2实验原理常用的MATLAB绘图语句有figure、plot、subplot、stem等,图形修饰语具有title、axis、text等。2.2.1figure语句figure有两种用法。当只有一句figure命令时,程序会创建一个新的图形窗口,并返回一个整数型的窗口编号。当采用figure(n)时,表示将第n个图形窗口作为当前的图形窗口,将其显示在所有窗口的最前面。如果该图形窗口不存在,则新建一个窗口,并赋以编号n。2.2.2plot语句线形绘图函数。用法为plot(x,y,’s’)。参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细等,通常可以省略,常用方法如表1-1所示。表1-1plot命令的参数及其含义参数含义参数含义参数含义Y黄色.点-实线M紫色O圆;虚线C青色X打叉-.点划线R红色+加号-破折线G绿色*星号^向上三角形B蓝色S正方形向左三角形W白色D菱形向右三角形K黑色v向下三角形P五角星形表1-12.2.3subplot语句subplot(m,n,i)是分割显示图形窗口命令,它把一个图形窗口分为m行n列共m×n个小窗口,并指定第i个小窗口为当前窗口。2.2.4二维统计分析图在MATLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:bar(x,y,选项)stairs(x,y,选项)stem(x,y,选项)fill(x1,y1,选项1,x2,y2,选项2,…)2.2.5图形保持holdon/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。2.2.6绘图修饰命令title(图形名称)xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)legend(图例1,图例2,…)2.2.7MATLAB常用信号生成函数(1)ZEROS•功能:产生全零阵列•调用格式:X=ZEROS(N)%产生N行N列的全零矩阵•X=ZEROS(M,N)%产生M行N列的全零矩阵(2)ONES•功能:产生全1阵列•调用格式:X=ONES(N)%产生N行N列的全1矩阵•X=ONES(M,N)%产生M行N列的全1矩阵(3)SINC•功能:辛格函数•调用格式:Y=SINC(X)%(4)RECTPULS•功能:产生矩形脉冲信号•调用格式:Y=RECTPULS(T)%产生高度为1、宽度为1、关于T=0对称的矩形脉冲•Y=RECTPULS(T,W)%产生高度为1、宽度为W、关于T=0对称的矩形脉冲(5)RAND•功能:产生伪随机序列•调用格式:Y=RAND(1,N)%产生[0,1]上均匀分布的随机序列•Y=RANDN(1,N)%产生均值为0,方差为1的白噪声序列(6)SAWTOOTH•功能:产生周期锯齿波或三角波•调用格式:Y=SAWTOOTH(T)%产生幅值为+1,-1,以2为周期的方波•Y=SAWTOOTH(T,WIDTH)%产生幅值为+1,-1,以WIDTH*2为周期的方波(7)SQUARE•功能:产生方波•调用格式:Y=SQUARE(T)%产生幅值为+1,-1,以2为周期的锯齿波•Y=SQUARE(T,DUTY)%产生幅值为+1,-1,以占空比为DUTY的方波•例:t=0:.0001:.0625;•y=SQUARE(2*pi*30*t,80);plot(t,y)%产生一个占空比为80%的方波(8)FLIPLR•功能:序列左右翻转•调用格式:Y=FLIPLR(X)•%X=123翻转后321456654(9)CUMSUM、SUM•功能:计算序列累加•调用格式:Y=CUMSUM(X)%向量X元素累加,记录每一次的累加结果,而SUM只记录最后的结果。2.3:实验内容以及步骤1、分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。程序如下:x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,'g');title('bar(x,y,''g'')');axis([0,7,-2,2]);subplot(2,2,2);stairs(x,y,'b');title('stairs(x,y,''b'')');axis([0,7,-2,2]);subplot(2,2,3);stem(x,y,'k');title('stem(x,y,''k'')');axis([0,7,-2,2]);subplot(2,2,4);fill(x,y,'y');title('fill(x,y,''y'')');axis([0,7,-2,2]);2、采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。程序如下:x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);plot(x,y1)holdony2=2*exp(-0.5*x).*cos(pi*x);plot(x,y2);holdoff3、在0≤x≤2π区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注。程序如下:x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x);plot(x,y1,x,y2)title('xfrom0to2{\pi}');%加图形标题xlabel('VariableX');%加X轴说明ylabel('VariableY');%加Y轴说明text(0.8,1.5,'曲线y1=2e^{-0.5x}');%在指定位置添加图形说明text(2.5,1.1,'曲线y2=cos(4{\pi}x)');legend(‘y1’,‘y2’)%加图例4、实现单位采样序列δ(n)、单位阶跃序列u(n)、矩形序列()NRn,并用图形显示。写出程序及输出图形%单位采样序列δ(n)n=-5:10;y=[zeros(1,5),1,zeros(1,10)];stem(n,y);%单位阶跃序列u(n)axis([-5,10,0,2]);n=-5:10;y=[zeros(1,5),ones(1,11)];stem(n,y,'r')axis([-5,10,0,2]);%矩形序列()NRnn=-5:10;y=[zeros(1,5),ones(1,5),zeros(1,6)];plot(n,y)stem(n,y)axis([-5,10,0,2]);title('矩形序列');5、实现三角波、方波、锯齿波、Sinc函数,并用图形显示。写出程序及输出图形%三角波fs=10000;t=-1:1/fs:1;w=0.4;x=tripuls(t,w);plot(t,x)title('三角波');%方波t=-2*pi:0.001:2*pi;x=square(t);plot(t,x);xlabel('t'),ylabel('x=square(t)');%锯齿波x=0:0.01:5;y=1-mod(x,1);plot(x,y)title('锯齿波')%Sinc函数n=-5:0.5:10;y=sin(0.5*pi*n);stem(n,y,'g')title('正弦序列');2.4:实验结果分析1、分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。2、采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。3、在0≤x≤2π区间内,绘制曲线y1=2e-0.5x和y2=