数字信号处理实验一 实验报告.docx
《数字信号处理实验一 实验报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验一 实验报告.docx(28页珍藏版)》请在冰豆网上搜索。
数字信号处理实验一实验报告
数字信号处理实验一
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+003
Q1.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,clc
n=0:
31;
B=0;
A=0;
f=100
A=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).*xH stem(n,y);
grid;
xlabel('时间序号 n');
ylabel('振幅');
Q1.35:
算术运算符*和.*之间的区别是什么?
答:
“*”是进行两个标量的相乘,所得结果仍为一个标量;“.*”是长度相同的行向量(或者列向量相乘),所得结果仍为长度不变的行向量(或者列向量)。
Q1.36:
运行程序P1.7,以产生扫频正弦序列x[n]。
答:
n=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]);
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');
gridon;
产生锯齿波程序:
t=-6*pi:
0.0001:
6*pi;
y=sawtooth(t);
plot(t,y);
2.给出如下函数的帮助英文说明和翻译(不局限于如下函
数,多翻译其他函数并翻译正确者可有加分)
Squarestemstairszerosonessawtooth
Fliplr
方式:
首先在matlab命令窗中输入“docstem”(这里以
stem为例,其他函数类似),在跳出帮助窗口中
“Description”内容即为翻译内容。
答:
Description(Square)
x = square(t)generatesasquarewavewithperiod2πfortheelementsoftimevectort.square(t)issimilartosin(t),butcreatesasquarewavewithpeaksof±1insteadofasinewave.
x = square(t,duty)generatesasquarewavewithspecifieddutycycle,duty,whichisanumberbetween0and100.Thedutycycleisthepercentoftheperiodinwhichthesignalispositive.
翻译:
x=square(t)生成一个基于时间向量t的周期为2π的方波。
Square(t)类似于sin(t),但是产生一个峰值为±1的方波而不是正弦波。
X=square(t,duty)生成一个具有指定的工作周期的方波,工作,是从0到100的数字。
工作周期是正向信号的周期的百分比。
Description(stem)
Atwo-dimensionalstemplotdisplaysdataaslinesextendingfromabaselinealongthex-axis.Acircle(thedefault)orothermarkerwhosey-positionrepresentsthedatavalueterminateseachstem.
stem(Y)plotsthedatasequenceYasstemsthatextendfromequallyspacedandautomaticallygeneratedvaluesalongthex-axis.WhenYisamatrix,stemplotsallelementsinarowagainstthesamexvalue.
stem(X,Y)plotsXversusthecolumnsofY.XandYmustbevectorsormatricesofthesamesize.Additionally,XcanbearoworacolumnvectorandYamatrixwithlength(X)rows.
stem(...,'fill')specifieswhethertocolorthecircleattheendofthestem.
stem(...,LineSpec)specifiesthelinestyle,markersymbol,andcolorforthestemandtopmarker(thebaselineisnotaffected).SeeLineSpecformoreinformation.
stem(...,'PropertyName',PropertyValue,...)specifiespropertynameandpropertyvaluepairsforthestemseriesobjectsthefunctioncreates.
stem(axes_handle,...)plotsintotheaxesobjectwiththehandleaxes_handleinsteadofintothecurrentaxesobject(gca).
h=stem(...)returnsavectorofstemseriesobjecthandlesinh,onehandlepercolumnofdatainY.
翻译:
一个二维离散数据的火柴杆图展示了从一个基础线沿着X轴作为线性延伸的数据。
一个循环(默认)或者其他标记了Y的坐标代表了每一茎的数值。
在二维离散数据的火柴杆图(Y)中数据顺序Y作为茎来从相等的空间和沿着x轴的自动迁移数据延伸。
当Y是矩阵时,茎叶图所有元素在与相同x数值的相反一行中。
二维离散数据的火柴杆图(X,Y)中X与Y列相对。
X和Y必须是向量或者相同尺寸的矩阵。
另外,X可以使一行或者一列向量,Y是一个长度等于X的列。
二维离散数据的火柴杆图(...,'fill')指定在二维离散数据的火柴杆图循环终点是否改变颜色。
二维离散数据的火柴杆图(...,LineSpec)指定线性类型,标记符号,,和二维离散数据的火柴杆图的颜色和顶端标记(基线不受影响)。
查看LineSpec获得更多信息。
二维离散数据的火柴杆图(...,'PropertyName',PropertyValue,...)指定特定的名字和特定的数值对作为stemseries项目的功能产生。
二维离散数据的火柴杆图(axes_handle,...)运用axes_handle绘制进入坐标轴的目标取代进入的最近的坐标轴目标。
h=stem(...)返回一个stemseries目标用h运行的矢量,一个运行处理Y上的每一列数据。
Description(stairs)
Stairstepgraphsareusefulfordrawingtime-historygraphsofdigitallysampleddata.
stairs(Y)drawsastairstepgraphoftheelementsofY,drawingonelinepercolumnformatrices.TheaxesColorOrderpropertydeterminesthecolorofthelines.
WhenYisavector,thex-axisscalerangesfrom1tolength(Y).WhenYisamatrix,thex-axisscalerangesfrom1tothenumberofrowsinY.
stairs(X,Y)plotstheelementsinYatthelocationsspecifiedinX.
XmustbethesamesizeasYor,ifYisamatrix,Xcanbearoworacolumnvectorsuchthatlength(X)=size(Y,1)
stairs(...,LineSpec)specifiesalinestyle,markersymbol,andcolorforthegraph.(SeeLineSpecformoreinformation.)
stairs(...,'PropertyName',propertyvalue)createsthestairstepgraph,applyingthespecifiedpropertysettings.SeeStairseriespropertiesforadescriptionofproperties.
stairs(axes_handle,...)plotsintotheaxeswith