1、数字信号处理实验一 实验报告数字信号处理实验一1.完成本文档内容的自学阅读和其中各例题后子问题;Q1.1运行程序P1.1,以产生单位样本序列un并显示它。答: clf;n=-10:20;u=zeros(1,10) 1 zeros(1,20);stem(n,u);xlabel(时间序号n);ylabel(振幅);title(单位样本序列); axis(-10 20 0 1.2)Q1.2命令clf,axis,title,xlabel和ylabel的作用是什么?答:clf清除图对象,axis 控制轴刻度和风格的高层指令,title 设置图名,xlabel和ylabel设置横纵坐标轴名称。Q1.3修改
2、程序P1.1以产生带有延时11个单位样本的延迟单位样本序列udn。运行修改的程序并显示产生的序列。答:clf;n=0:30;ud=zeros(1,11) 1 zeros(1,19);stem(n,ud);xlabel(时间序号n);ylabel(振幅);title(单位样本序列); axis(0 30 0 1.2)Q1.4修改程序P1.1以产生单位步长序列sn.运行修改后程序并显示产生的序列。答:clf; n = 0:30; u = 1.*n; stem(n,u); title(Unit Sample Sequence); axis(0 30 0 30)Q1.5修改程序P1.1,以产生带有超前
3、7个样本的延时单位阶跃序列sdn。运行修改后的程序并显示产生的序列。答:clf; n = -15:30; s=zeros(1,8) ones(1,38); stem(n,s); xlabel(Time index n);ylabel(Amplitude); title(Unit Sample Sequence); axis(-15 30 0 1.2);Q1.6 运行程序P1.2,以产生复数值的指数序列。答:clf; c = -(1/12)+(pi/6)*i; K = 2; n = 0:40; x = K*exp(c*n); subplot(2,1,1); stem(n,real(x); xla
4、bel(时间序号 n);ylabel(振幅); title(实部); subplot(2,1,2); stem(n,imag(x); xlabel(时间序号 n);ylabel(振幅); title(虚部);Q1.7 哪个参数控制该序列的增长或衰减率?那个参数控制该序列的振幅?答:参数c控制该序列的增长或衰减率;参数K控制该序列的振幅。Q1.8 若参数c改为(1/12)+(pi/6)*i,将会发生什么情况?Q1.9 运算符real和imag的作用是什么?答:运算符real和imag的作用分别是提取运算数值x的“实部”和“虚部”,以便于接下来分别将“实部”和“虚部”成像。Q1.10命令subpl
5、ot的作用是什么?答:命令subplot的作用是使“实部”和“虚部”用两张图像呈现出来,subplot(a,b,c),其中a代表图像分两行呈现,b代表图像分一列呈现,a代表第a行的第b列图像。Q1.11 运行程序P1.3,以产生实数值的指数序列。答:clf; n = 0:35; a = 1.2; K = 0.2; x = K*a.n; stem(n,x); xlabel(时间序号 n);ylabel(振幅);Q1.12 哪个参数控制该序列的增长或者衰减率?哪个参数控制该序列的振幅? 答:参数a控制该序列的增长或者衰减率;参数K控制该序列的振幅。Q1.13 算数运算符和.之间的区别是什么?答:运
6、算符“”表示a的指数是n这个序列;运算符“.”表示a的指数分别是n这个序列中的每一个数字,即对应的每一个元素。Q1.14 若参数a小于1,会发生什么情况?将参数a改为0.9,将参数K改为20,再次运行程序P1.3.答:(1)若参数a小于1,指数序列在“n=0:35”上是衰减的序列; (2)将k改为20后的图像如图所示:Q1.15 该序列的长度是多少?怎么样才能改变它?答:该序列的长度是35;通过改变“n=0:35”中的“35”这个数字可以改变序列的长度。Q1.16 使用MATLAB命令sum(s.*s)可计算用向量s表示的实数序列sn的能量。试求在习题Q1.11和习题Q1.14中产生的实数值指
7、数序列xn的能量。答:Q1.11中:ans=4.5673e+004; Q1.14中:ans=2.1042e+003Q1.17 运行程序P1.4以产生正弦序列并显示它。 答:n = 0:40; f = 0.1; phase = 0; A = 1.5; arg = 2*pi*f*n - phase; x = A*cos(arg);clf; stem(n,x); axis(0 40 -2 2);grid; title(正弦序列);xlabel(时间序号 n);ylabel(振幅);axis; Q1.18 该序列的频率是多少?怎样可以改变它?哪个参数控制该序列的相位?哪个参数控制该序列的振幅?该序列的
8、周期是多少?答:该序列的频率是0.1Hz;通过改变f的值可以此正弦序列的频率;参数phase控制该序列的初相位;参数A控制该序列的振幅;该序列的周期是10s。Q1.19 该序列的长度是多少?怎么样可以改变它?答:该序列的长度是41个时间单位,通过改变n的参数可以改变该序列的长度。Q1.21 axis和grid命令的作用是什么?答:axis的作用是规定图像显示的横纵坐标的范围;grid的作用是显示图像上面的“网格”。Q1.22 修改程序P1.4,以产生一个,频率为0.9的正弦序列并显示它。把此序列和习题Q1.17所产生的序列相比较。修改程序P1.4以产生一个频率为1.1的正弦序列并显示它。把此序
9、列与Q1.17中产生的序列相比较,评价你的结果。答:修改正弦序列的频率只需要改变程序中“f”的值即可,第一个改为f=0.9,结果如下图:第二个改为f=1.1,结果图像如下:结论:该图像与f=0.1时的图像一样,因为该正弦序列的最小周期是2pi的,而当f=0.9与f=1.1时正好是2pi的整数倍。Q1.23 修改上述程序,以产生长度为50、频率为0.08、振幅为2.5、相移为90度的一个正弦序列并显示它。该序列的周期是多少?程序:n = 0:49; f = 0.08; phase =1.57; A = 2.5; arg = 2*pi*f*n - phase; x = A*cos(arg);clf
10、; stem(n,x); axis(0 49 -2.5 2.5);grid; title(正弦序列);xlabel(时间序号 n);ylabel(振幅);axis; 本序列周期为12.5s。Q1.24 在程序P1.4中用plot命令代替stem命令,运行新程序。新图形与习题Q1.17中产生的图形有什么区别?答:答:原图像是离散的,新图像是连续的,说明plot命令是用平滑的线将各点连接起来产生连续波,而stem命令则是用各点来产生离散波。Q1.25 在程序P1.4中用stairs命令代替stem命令,运行新程序。新图形与习题Q1.17和习题Q1.24中产生的图形有什么区别?答:Stairs函数是
11、用直线将相应的点连接起来,类似于阶梯状。Q1.26 编写一个MATLAB程序,以产生并显示一个长度为100的随机信号,该信号在区间-2,2中均匀分布。 答:clf;x=(rand(1,100)*4-2;plot(x);Q1.27 编写一个MATLAB程序,以产生并显示一个长度为75的高斯随机信号,该信号正态分布且均值为0,方差为3.答:clf; x=0+3*randn(1,75); stem(x);Q1.28 编写一个MATLAB程序,以产生并显示五个长度为31的随机信号。Xn=A其中振幅A和相位是统计独立的随机变量,振幅在区间0相位区间在0内均匀分布。答:clear,clcn=0:31; B
12、=0; A=0; f=100A=4.*rand(1,length(n); B=2.*pi*rand(1,length(n); x=A.*cos(2*pi*f.*n+B); subplot(5,1,1)plot(n,x)axis(0 31 -4 4);grid;title(随机正弦信号一);xlabel(n);ylabel(幅值A);A=4.*rand(1,length(n); B=2.*pi*rand(1,length(n); x=A.*cos(2*pi*f.*n+B); subplot(5,1,2)plot(n,x)axis(0 31 -4 4);grid;title(随机正弦信号二);xl
13、abel(n);ylabel(幅值A);A=4.*rand(1,length(n); B=2.*pi*rand(1,length(n); x=A.*cos(2*pi*f.*n+B); subplot(5,1,3)plot(n,x)axis(0 31 -4 4);grid;title(随机正弦信号三);xlabel(n);ylabel(幅值A);A=4.*rand(1,length(n); B=2.*pi*rand(1,length(n); x=A.*cos(2*pi*f.*n+B); subplot(5,1,4)plot(n,x)axis(0 31 -4 4);grid;title(随机正弦信
14、号四);xlabel(n);ylabel(幅值A);A=4.*rand(1,length(n); B=2.*pi*rand(1,length(n); x=A.*cos(2*pi*f.*n+B); subplot(5,1,5)plot(n,x)axis(0 31 -4 4);grid;title(随机正弦信号五);xlabel(n);ylabel(幅值A);Q1.29 运行程序P 1.5, 以产生所有相关的信号。答:clf; R=51; d=0.8*(rand(R,1)-0.5); m=0:R-1; s=2*m.*(0.9.m); x=s+d; subplot(2,1,1); plot(m,d,
15、r-,m,s,g-,m,x,b-.); xlabel(时间序号n); ylabel(振幅); legend(dn,sn,xn); x1=0 0 x; x2=0 x 0; x3=x 0 0; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),r-,m,s,g-); legend(yn,sn); xlabel(时间序号n); ylabel(振幅);Q 1.30 未污染的信号sn是什么样的形式?加性噪声dn 是什么样的形式?答:未污染的信号的形式应该为Sn=2*m。*(0.9.m); 表达式所表示的图形,不过自变量的取值为0-50的整数,因此图形应该为一
16、系列离散的点; 加性噪声dn=0.8*(rand(R,1)-0.5)的形式应该为在区间(-0.4,0.4)中均匀分布长度为51的随机信号,且为列向量51*1。Q 1.31使用语句x=s+d 能产生被噪声污染的信号吗?若不能,为什么? 答:不能,因为s和d均是矩阵,d与s要想相加必须匹配,而矩阵d本身与矩阵s不匹配,必须把d转置变为d才能与s进行相加。 Q 1.32 信号x1,x2 和x3与信号x 之间的关系是什么? 答:x1是x的延时,x2和x相等,x3超前于x。 Q 1.33 legend 命令的作用是什么? 答:legend 命令使得对MATLAB所画的图形进行注释Q1.34:在载波信号x
17、Hn和调制信号xLn采用不同频率、不同调制指数m的情况下,运行程序P1.6,以产生振幅调制信号yn。答:n=0:100;m=0.4;fH=0.1;fL=0.01;xH=sin(2*pi*fH*n);xL=sin(2*pi*fL*n);y=(1+m*xL).*xHstem(n,y);grid;xlabel(时间序号n);ylabel(振幅);Q1.35:算术运算符*和.*之间的区别是什么?答:“*”是进行两个标量的相乘,所得结果仍为一个标量;“.*”是长度相同的行向量(或者列向量相乘),所得结果仍为长度不变的行向量(或者列向量)。Q1.36:运行程序P 1.7, 以产生扫频正弦序列xn。答:n=
18、0:100;a=pi/2/100;b=0;arg=a*n.*n+b*n;x=cos(arg);clf;stem(n,x);axis(0,100.-1.5,1.5);title(扫频正弦信号);xlabel(时间序号n);ylabel(振幅);grid;axis;Q1.37:该信号最小频率和最大频率是多少?答:最小频率是4HZ,最大频率是400HZ。Q1.38:如何修改以上程序才能产生一个最小频率为0.1最大频率为0.3的扫频正弦信号?答:n=0:100;a=0.1;b=0.3;arg=a*n.*n+b*n;x=cos(arg);clf;stem(n,x);axis(0,100,-1.5,1.5
19、);title(扫频正弦信号);xlabel(时间序号 n);Q1.39:在命令窗口键入who。此时窗口会显示什么信息?答:Q1.40:在命令窗口键入whos。此时窗口会显示什么信息?Q1.41:编写MATLAB程序,以产生图1.1和图1.2中所示的方波和锯齿波序列,并将序列绘制出来。答:产生方波程序:T=6; n=-5:0.1:2*T; duty=50; x=2*square(n,duty); stem(n,x,*k); grid on; 产生锯齿波程序:t=-6*pi:0.0001:6*pi;y=sawtooth(t);plot(t,y);2. 给出如下函数的帮助英文说明和翻译(不局限于如
20、下函数,多翻译其他函数并翻译正确者可有加分)Square stem stairs zeros ones sawtoothFliplr方式:首先在matlab 命令窗中输入“doc stem”(这里以stem 为例, 其他函数类似) , 在跳出帮助窗口中“Description”内容即为翻译内容。答:Description(Square)x=square(t) generates a square wave with period 2 for the elements of time vector t. square(t) is similar to sin(t), but creates a
21、square wave with peaks of 1 instead of a sine wave.x=square(t,duty) generates a square wave with specified duty cycle, duty, which is a number between 0 and 100. The duty cycle is the percent of the period in which the signal is positive. 翻译:x=square(t)生成一个基于时间向量t的周期为2的方波。Square(t)类似于sin(t),但是产生一个峰值
22、为1的方波而不是正弦波。 X=square(t,duty)生成一个具有指定的工作周期的方波,工作,是从0到100的数字。工作周期是正向信号的周期的百分比。Description(stem)A two-dimensional stem plot displays data as lines extending from a baseline along the x-axis. A circle (the default) or other marker whose y-position represents the data value terminates each stem.stem(Y)
23、plots the data sequence Y as stems that extend from equally spaced and automatically generated values along the x-axis. When Y is a matrix, stem plots all elements in a row against the same x value.stem(X,Y) plots X versus the columns of Y. X and Y must be vectors or matrices of the same size. Addit
24、ionally, X can be a row or a column vector and Y a matrix with length(X) rows.stem(.,fill) specifies whether to color the circle at the end of the stem.stem(.,LineSpec) specifies the line style, marker symbol, and color for the stem and top marker (the baseline is not affected). See LineSpec for mor
25、e information.stem(.,PropertyName,PropertyValue,.) specifies property name and property value pairs for the stemseries objects the function creates.stem(axes_handle,.) plots into the axes object with the handle axes_handle instead of into the current axes object (gca).h = stem(.) returns a vector of
26、 stemseries object handles in h, one handle per column of data in Y.翻译:一个二维离散数据的火柴杆图展示了从一个基础线沿着X轴作为线性延伸的数据。一个循环(默认)或者其他标记了Y的坐标代表了每一茎的数值。在二维离散数据的火柴杆图(Y)中数据顺序Y作为茎来从相等的空间和沿着x轴的自动迁移数据延伸。当Y是矩阵时,茎叶图所有元素在与相同x数值的相反一行中。二维离散数据的火柴杆图(X,Y)中X与Y列相对。X和Y必须是向量或者相同尺寸的矩阵。另外,X可以使一行或者一列向量,Y是一个长度等于X的列。二维离散数据的火柴杆图(.,fill)指
27、定在二维离散数据的火柴杆图循环终点是否改变颜色。二维离散数据的火柴杆图(.,LineSpec)指定线性类型,标记符号,和二维离散数据的火柴杆图的颜色和顶端标记(基线不受影响)。查看LineSpec获得更多信息。二维离散数据的火柴杆图(.,PropertyName,PropertyValue,.)指定特定的名字和特定的数值对作为stemseries项目的功能产生。二维离散数据的火柴杆图(axes_handle,.)运用axes_handle绘制进入坐标轴的目标取代进入的最近的坐标轴目标。h=stem(.)返回一个stemseries目标用h运行的矢量,一个运行处理Y上的每一列数据。Descrip
28、tion(stairs)Stairstep graphs are useful for drawing time-history graphs of digitally sampled data.stairs(Y) draws a stairstep graph of the elements of Y, drawing one line per column for matrices. The axes ColorOrder property determines the color of the lines.When Y is a vector, the x-axis scale rang
29、es from 1 to length(Y). When Y is a matrix, the x-axis scale ranges from 1 to the number of rows in Y.stairs(X,Y) plots the elements in Y at the locations specified in X.X must be the same size as Y or, if Y is a matrix, X can be a row or a column vector such that length(X) = size(Y,1)stairs(.,LineS
30、pec) specifies a line style, marker symbol, and color for the graph. (See LineSpec for more information.)stairs(.,PropertyName,propertyvalue) creates the stairstep graph, applying the specified property settings. See Stairseries properties for a description of properties.stairs(axes_handle,.) plots into the axes with
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1