1北京信息科技大学2009~2010学年第1学期《数字信号处理软件方法》随堂测试课程所在学院:光电信息与通信工程学院适用专业班级:信号与信息处理研09班级:姓名:学号:MATLAB部分(50分)一、填空题(本题满分14分)1.MATLAB采用了面向对象的技术,以矩阵作为基本数据结构,以矩阵运算为基础,集科学计算和图形可视化为一体。但M语言由于采用了解释性型语言,所以执行效率低于编译型语言。2.启动MATLAB后,缺省操作界面一般包括工作空间窗口、命令窗口、命令历史窗口、及当前目录窗口4个窗口。当脚本文件运行出现语法错误时,错误信息显示在命令窗口窗口。3.M语言文件(脚本和函数)的扩展名为.m,其编写与调试在M文件编辑/调试器中完成。4.从下列10个MATLAB指令及函数中选取合适的指令或函数填入题空中clc,clear,clf,ones(M,N),zeros(M,N),subplot(m,n,p),stem(x,y),plot(Y),help清空命令窗口clc,创建8×8全1矩阵ones(8,8),关闭图形窗口clf,将图形窗口分成2×3个小图形区域,并在第2个区域绘图subplot(2,3,2),查看指令title的帮助信息help。二、简答题(本题满分9分,共含3道小题,每小题3分)1.Workspace工作空间窗口的作用是什么?在命令窗中运用什么指令可以查阅现存于基本空间的变量?运用什么指令可以清空工作空间?作用:列出数据的变量信息,包括变量名、变量数组大小(尺寸)、变量字节大小和变量类型。有绘图功能,还可修改变量在指令窗中运用who,whos查阅MATLAB内存变量。who命令:查看现存于基本空间的变量,whos命令:详细查看现存于基本空间的变量在指令窗中运用clear指令可以删除内存(工作空间内)的某一或所有变量如:clearA,clearall22.在MATLAB指令表达式中,标点符号“空格”和“逗号”各有什么作用?在哪些情况下,两者的作用相同?在哪些情况下,两者的作用不同?举例说明。空格用作数组元素分隔符号逗号用作要显示计算结果的指令与其后指令的分隔;用作输入量与输入量之间的分隔符;用作数组元素分隔符号当用作数组元素分隔符号时是相通的。如X=fft(x,50);中,就必须使用逗号作为输入量与输入量之间的分隔符3.M函数文件和脚本文件有什么不同?举例说明函数文件的基本结构。MATLAB中有一种文件叫M文件,他就是一系列代码组成的一个扩展名为.m的文件,虽然M文件是简单的ASCII型的文本文件,但是和其语法和高级语言一样,是一种程序化的编程语言。M文件可分为脚本文件(MATLABscripts)和函数文件(MATLABfunctions)。脚本文件是包含多条MATLAB命令的文件;函数文件可以包含输入变量,并把结果传送给输出变量,两者的简要区别如下:脚本文件1.多条命令的综合体2.没有输入、输出变量3.使用MATLAB基本工作空间4.没有函数声明行函数文件1.常用于扩充MATLAB函数库2.可以包含输入、输出变量3.运算中生成的所有变量都存放在函数工作空间4.包含函数声明行脚本文件可以理解为简单的M文件,脚本文件中的变量都是全局变量。函数文件是在脚本文件的基础之上多添加了一行函数定义行,其代码组织结构和调用方式与对应的脚本文件截然不同。函数文件是以函数声明行“function...”作为开始的,其实质就是用户往MATLAB函数库里边添加了子函数,函数文件中的变量都是局部变量,除非使用了特别声明。函数运行完毕之后,其定义的变量将从工作区间中清除。而脚本文件只是将一系列相关的代码结合封装,没有输入参数和输出参数,即不自带参数,也不一定要返回结果。而多数函数文件一般都有输入和输出变量,并见有返回结果。3例如一个文件名为Untitled的函数文件,它首先要在函数定义行定义函数的结构如下以便调用,它的函数名要与文件名相同。function[output_args]=Untitled(input_args)下面最好写上在线帮助。最后还要使用return命令进行返回值。三、编程题(本题满分12分,共含2道小题,每小题6分)1.编写程序,实现序列)()(5nRnx的10点DFT计算,即)]([)(nxDFTkX,并将)(kX的幅度谱、相位谱以离散图的方式画在figure(2)上。x=ones(1,5);X=fft(x,50);figure(2);subplot(1,2,1);stem(abs(X));subplot(1,2,2);stem(imag(X));2.一个数字滤波器系统函数为119.011)(zzzH,若输入序列)()(103.0nRenxn,编写程序求滤波输出)(ny,并在命令窗口显示)(nx和)(ny。b=[1,-1];a=[1,0.9];n=[1:10];x=exp(-0.3*n)y=filter(b,a,x)四、分析题(本题满分15分)41.在commandwindow键入下列指令,写出指令实现的功能是什么?并写出执行的结果。1)a=[1,2,3];b=[2,-4,6];c1=a.*b,c2=a*b’分别建立一行3列的a、b两个向量,分别赋值1,2,3和2,-4,6。C1等于a点乘b;c2等于a与b的转置的矩阵相乘。显示为:c1=2-818c2=122)A=angle(1+i)/pi,B=abs(cos(0.3*pi)+j*sin(0.3*pi))取复数1+i的相角除以∏赋给A,复数cos(0.3*∏)+j*sin(0.3*∏)取模值赋给B,其中i、j都是复数的表示符号。结果为:A=0.2500B=13)n=-1:2;h=(2).^n,y=conv(h,h)2.给下列M文件逐行加注释,其中b为数字滤波器的分子向量,a为数字滤波器的分母向量。b=[1];a=[1,-0.9];%令b=1,a是一行两列的向量{1,-0.9}[H,w]=freqz(b,a);%球数字滤波器的频响赋给H,w是频率,b是分子,a是分母。magH=abs(H);angH=angle(H);%H的模值赋给magH做幅频响应,相位赋给angH做相频响应subplot(311),zplane(b,a);%画图分三行一列,取第一个画零极点图,b决定零点,a决定极点5subplot(312),plot(w/pi,magH);%在第二个图位置画以w/pi为横坐标,magH为纵坐标的图,即幅频subplot(313),plot(w/pi,angH);%在第三个图位置画以w/pi为横坐标,angH为纵坐标的图,即相频LabVIEW部分(50分)一、填空题(本题满分18分)1.LabVIEW程序又称虚拟仪器即VI,由数据采集和控制、分析和显示三部分构成。2.LabVIEW采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序。调试时,可以单击高亮按钮可查看程序框图的动态执行过程。3.LabVIEW有三个选板:控件选板、函数选板和工具选板。4.LabVIEW提供了上下文帮助、联机帮助和范例查找器等多种获取帮助信息的方法。5.数组和簇均可将数据分组。数组将同一类型的数据归为一组;簇将不同类型的数据归为一组。6.在很多情况下,需要通过局部变量实现在同一VI的不同位置访问同一个控件对象;当需要在不同的VI中访问同一个控件对象时,要使用全局变量。7.运行按钮在VI程序正常运行情况下变为;在VI程序不可执行(出现错误或必要的参数还没有设定时)情况下变为。二、判断题,正确的在括号内写“T”不正确的在括号内写“F”(本题满分8分)1.LabVIEW中当一个VI处于运行模式时,所有菜单选项都是可用的。(f)2.公式节点是一个大小可变的方框,可以利用它直接在流程图中输入公式。(t)3.LabVIEW中数组的索引号从1开始。(f)4.移位寄存器的作用是将数据从一个循环周期传递到另外一个周期。()5.函数和函数都可以用于指定循环运算的执行速度,完全相同。(f)6.While循环至少执行一次。(t)7.查找VI错误原因的方法是单击断开的运行按钮或选择查看»错误列表。(t)68.时域信号可以通过快速傅立叶变换(FFT)作频域分析与显示。()三、简答题(本题满分9分,共含3道小题,每小题3分)1.Chart波形图表与Graph波形图的异同是什么?Chart波形图表与Graph波形图的面板不同,Chart波形图表的x轴只有在其实位置和结束位置有刻度,它的输入是一个双精度浮点变量,但是Graph波形图输入是一个双精度浮点数组区别在于图表是一次性将现有数据绘图,在绘图之前先自动清空图表,而不会将新数据添加到曲线的尾端。Graph控件一些常用的自定义属性和自带工具对趋势图chart也适用。2.虚拟仪器编程中,为什么要引入子VI?如何将普通VI变成子VI?引入子VI是因为若不使用,就好比在文本编程语言中不使用函数一样,根本不可能构建大的程序,大程序需要把程序分割为一个个小模块来实现。变为子VI步骤为:新建一个BLANKVI、编辑VI图标、建立连接端子、保存VI。3.文本文件和二进制文件的主要区别是什么?二进制文件在读出时必经给定参考,参考必须和写入时数据格式完全一致,否则它不知道如何将读上来的数据“翻译”为写入时格式。而文本文件直接输出与输入格式相同的类型数据。四、程序分析题(本题满分15分,共3道小题,每小题5分)1.分析图示程序功能,给出运行结果。For循环4次。在累加1前后的值相乘再取倒数,与上次循环中所得的结果相加产出新结果。其功能是n/(n+1)。结果:0.872.分析图示程序功能,给出运行结果。该程序的功能是控制LED等移位,移位间隔时间是0.5s,按停止键可以停止移位。3.分析图示程序,请问前面板控件个数是多少?程序功能是什么?前面板控件个数是5个,该程序的功能是产生一个5行3列的数值范围是[0,100]数组的整数数组并显示,求出这个数组的最大值和最小值,并输出最大值和最小值的索引。