数字信号处理实验一1.完成本文档内容的自学阅读和其中各例题后子问题;Q1.1运行程序P1.1,以产生单位样本序列u[n]并显示它。答:clf;n=-10:20;u=[zeros(1,10)1zeros(1,20)];stem(n,u);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([-102001.2])Q1.2命令clf,axis,title,xlabel和ylabel的作用是什么?答:clf清除图对象,axis控制轴刻度和风格的高层指令,title设置图名,xlabel和ylabel设置横纵坐标轴名称。Q1.3修改程序P1.1以产生带有延时11个单位样本的延迟单位样本序列ud[n]。运行修改的程序并显示产生的序列。答:clf;n=0:30;ud=[zeros(1,11)1zeros(1,19)];stem(n,ud);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([03001.2])Q1.4修改程序P1.1以产生单位步长序列s[n].运行修改后程序并显示产生的序列。答:clf;n=0:30;u=[1.*n];stem(n,u);title('UnitSampleSequence');axis([030030])Q1.5修改程序P1.1,以产生带有超前7个样本的延时单位阶跃序列sd[n]。运行修改后的程序并显示产生的序列。答:clf;n=-15:30;s=[zeros(1,8)ones(1,38)];stem(n,s);xlabel('Timeindexn');ylabel('Amplitude');title('UnitSampleSequence');axis([-153001.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));xlabel('时间序号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命令subplot的作用是什么?答:命令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算数运算符^和.^之间的区别是什么?答:运算符“^”表示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表示的实数序列s[n]的能量。试求在习题Q1.11和习题Q1.14中产生的实数值指数序列x[n]的能量。答: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([040-22]);grid;title('正弦序列');xlabel('时间序号n');ylabel('振幅');axis;Q1.18该序列的频率是多少?怎样可以改变它?哪个参数控制该序列的相位?哪个参数控制该序列的振幅?该序列的周期是多少?答:该序列的频率是0.1Hz;通过改变f的值可以此正弦序列的频率;参数phase控制该序列的初相位;参数A控制该序列的振幅;该序列的周期是10s。Q1.19该序列的长度是多少?怎么样可以改变它?答:该序列的长度是41个时间单位,通过改变n的参数可以改变该序列的长度。Q1.21axis和grid命令的作用是什么?答:axis的作用是规定图像显示的横纵坐标的范围;grid的作用是显示图像上面的“网格”。Q1.22修改程序P1.4,以产生一个,频率为0.9的正弦序列并显示它。把此序列和习题Q1.17所产生的序列相比较。修改程序P1.4以产生一个频率为1.1的正弦序列并显示它。把此序列与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;stem(n,x);axis([049-2.52.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函数是用直线将相应的点连接起来,类似于阶梯状。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的随机信号。{X[n]}={A}其中振幅A和相位Φ是统计独立的随机变量,振幅在区间0相位区间在0内均匀分布。答:clear,clcn=0:31;B=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([031-44]);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([031-44]);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,3)plot(n,x)axis([031-44]);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([031-44]);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,5)plot(n,x)axis([031-44]);grid;title('随机正弦信号五');xlabel('n');ylabel('幅值A');Q1.29运行程序P1.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','r-',m,s,'g--',m,x,'b-.');xlabel('时间序号n');ylabel('振幅');legend('d[n]','s[n]','x[n]');x1=[00x];x2=[0x0];x3=[x00];y=(x1+x2+x3)/3;subplot(2,1,2);plot(m,y(2:R+1),'r-',m,s,'g--');legend('y[n]','s[n]');xlabel('时间序号n');ylabel('振幅');Q1.30未污染的信号s[n]是什么样的形式?加性噪声d[n]是什么样的形式?答:未污染的信号的形式应该为S[n]=2*m。*(0.9.^m);表达式所表示的图形,不过自变量的取值为0-50的整数,因此图形应该为一系列离散的点;加性噪声d[n]=0.8*(rand(R,1)-0.5)的形式应该为在区间(-0.4,0.4)中均匀分布长度为51的随机信号,且为列向量51*1。Q1.31使用语句x=s+d能产生被噪声污染的信号吗?若不能,为什么?答:不能,因为s和d均是矩阵,d与s要想相加必须匹配,而矩阵d本身与矩阵s不匹配,必须把d转置变为d'才能与s进行相加。Q1.32信号x1,x2和x3与信号x之间的关系是什么?答:x1是x的延时,x2和x相等,x3超前于x。Q1.33legend命令的作用是什么?答:legend命令使得对MATLAB所画的图形进行注释Q1.34:在载波信号xH[n]和调制信号xL[n]采用不同频率、不同调制指数m的情况下,运行程序P1.6,以产生振幅调制信号y[n]。答: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:算术运算符*和.*之间的区别是什么?答:“*”是进行两个标量的相乘,所得结果仍为一个标量;“.*”是长度相同的行向量(或者列向量相