MATLAB实验二(修改)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验二信号的表示及其基本运算一、实验目的1、掌握连续信号及其MATLAB实现方法;2、掌握离散信号及其MATLAB实现方法3、掌握离散信号的基本运算方法,以及MATLAB实现4熟悉应用MATLAB实现求解系统响应的方法4、了解离散傅里叶变换的MATLAB实现5、了解IIR数字滤波器设计6、了解FIR数字滤波器设计1二、实验设备计算机,Matlab软件三、实验内容(一)、连续信号及其MATLAB实现1、单位冲激信号()0,0()1,0tttdt例1.1:单位冲击信号的MATLAB实现程序如下:t1=-4;t2=4;t0=0;dt=0.01;t=t1:dt:t2;n=length(t);x=zeros(1,n);x(1,(-t0-t1)/dt+1)=1/dt;stairs(t,x);axis([t1,t2,0,1.2/dt]);2、任意函数()()()ftftd例1.2:用MATLAB画出如下表达式的脉冲序列()0.4(2)0.8(1)1.2()1.5(1)1.0(2)0.7(3)fnnnnnnn3单位阶跃函数1,0()0,0tutt例1.3:用MATLAB实现单位阶跃函数clearall;t=-0.5:0.001:1;t0=0;u=stepfun(t,t0);plot(t,u)axis([-0.51-0.21.2])4斜坡函数0()()gtBtt例1.4:用MATLAB实现g(t)=3(t-1)clearall;t=0:0.01:3;B=3;t0=1;u=stepfun(t,t0);n=length(t);fori=1:nu(i)=B*u(i)*(t(i)-t0);endplot(t,u)axis([-0.23.1-0.26.2])5抽样信号抽样信号Sa(t)=sin(t)/t在MATLAB中用sinc函数表示。定义为)/(sin)(tctSat=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);gridon;axis([-10,10,-0.5,1.2]);%定义画图范围,横轴,纵轴title('抽样信号')%定义图的标题名字6指数函数()atftAe例1.5:用MATLAB实现0.5()3tfte7正弦函数02()cos()tftAT例1.6:用MATLAB实现正弦函数f(t)=3cos(10πt+1)8虚指数信号例虚指数信号调用格式是f=exp((j*w)*t)t=0:0.01:15;w=pi/4;X=exp(j*w*t);Xr=real(X);%取实部Xi=imag(X);%取虚部Xa=abs(X);%取模Xn=angle(X);%取相位subplot(2,2,1),plot(t,Xr),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),title('实部');subplot(2,2,3),plot(t,Xi),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),title('虚部');subplot(2,2,2),plot(t,Xa),axis([0,15,0,max(Xa)+1]),title('模');subplot(2,2,4),plot(t,Xn),axis([0,15,-(max(Xn)+1),max(Xn)+1]),title('相角');%subplot(m,n,i)命令是建立m行n列画图窗口,并指定画图位置i9复指数信号例复指数信号调用格式是f=exp((a+j*b)*t)t=0:0.01:3;a=-1;b=10;f=exp((a+j*b)*t);subplot(2,2,1),plot(t,real(f)),title('实部')subplot(2,2,3),plot(t,imag(f)),title('虚部')subplot(2,2,2),plot(t,abs(f)),title('模')subplot(2,2,4),plot(t,angle(f)),title('相角')(二)、离散信号及其MATLAB实现1、单位冲激序列1,0()0,0nnn例2.1:用MATLAB产生64点的单位冲激序列clearall;N=64;x=zeros(1,N);x(1)=1;xn=0:N-1;stem(xn,x)axis([-16501.1])2、任意序列()()()mfnfmnm例2.2:用MATLAB画出如下表达式的脉冲序列()8.0()3.4(1)1.8()5.6(3)2.9(4)0.7(5)fnnnnnnn3、单位阶跃序列1,0()0,0nunn例2.3:用MATLAB实现单位阶跃函数4、斜坡序列0()()gnBnn例2.4:用MATLAB实现g(n)=3(n-4)点数为32的斜坡序列clearall;N=32;k=4B=3;t0=1;x=[zeros(1,k)ones(1,N-k)];fori=1:Nx(i)=B*x(i)*(i-k);endxn=0:N-1;stem(xn,x)axis([-132090])5、正弦序列()sin(2)xnAfn例2.5:用MATLAB实现幅度A=3,频率f=100,初始相位Φ=1.2,点数为32的正弦信号6、实指数序列()nxnAa例2.6:用MATLAB实现0.7()3xne,点数为32的实指数序列clearall;N=32;A=3;a=0.7;xn=0:N-1;x=A*a.^xn;stem(xn,x)7、复指数序列()(),ajnxnAen例2.7:用MATLAB实现幅度A=3,a=0.7,角频率ω=314,点数为32的实指数序列clearall;N=32;A=3;a=0.7;w=314;xn=0:N-1;x=A*exp((a+j*w)*xn);stem(xn,x)8、随机序列利用MATLAB产生两种随机信号:rand(1,N)在区间上产生N点均匀分布的随机序列randn(1,N)产生均值为0,方差为1的高斯随机序列,即白噪声序列例2.8:用MATLAB产生点数为32的均匀分布的随机序列与高斯随机序列clearall;N=32;x_rand=rand(1,N);x_randn=randn(1,N);xn=0:N-1;figure(1);stem(xn,x_rand)figure(2);stem(xn,x_randn)(三)、离散信号的基本运算1、信号的延迟给定离散信号x(n),若信号y(n)定义为:y(n)=x(n-k),那么y(n)是信号x(n)在时间轴上右移k个抽样周期得到的新序列。例3.1:正弦序列y(n)=sin(100n)右移3个抽样周期后所得的序列,MATLAB程序如下:clearall;N=32;w=100;k=3;x1=zeros(1,k);xn=0:N-1;x2=sin(100*xn);figure(1)stem(xn,x2)x=[x1x2];axis([-1N-1.11.1])N=N+k;xn=0:N-1;figure(2)stem(xn,x)axis([-1N-1.11.1])利用for循环语句实现周期延迟.2、信号相加若信号12()()()xnxnxn,值得注意的是当序列1()xn和2()xn的长度不相等或者位置不对应时,首先应该使两者的位置对齐,然后通过zeros函数左右补零使其长度相等后再相加例3.2:用MATLAB实现两序列相加clearall;n1=0:3x1=[20.50.91];figure(1)stem(n1,x1)axis([-1802.1])n2=0:7x2=[00.10.20.30.40.50.60.7];figure(2)stem(n2,x2)axis([-1800.8])n=0:7;x1=[x1zeros(1,8-length(n1))];x2=[zeros(1,8-length(n2)),x2];x=x1+x2;figure(3)stem(n,x)axis([-1802.1])已知f1(t)=sinwt,f2(t)=sin8wt,w=2pi,求f1(t)+f2(t)和f1(t)f2(t)的波形图3、信号相乘信号序列1()xn和2()xn相乘所得信号()xn的表达式为:12()()()xnxnxn这是样本与样本之间的点乘运算,在MATLAB中可采用“.*”来实现,但是在信号序列相乘之前,应对其做与相加运算一样的操作。例3.3:用MATLAB实现上例中两序列相乘clearall;n1=0:3x1=[20.50.91];figure(1)stem(n1,x1)axis([-1802.1])n2=0:7x2=[00.10.20.30.40.50.60.7];figure(2)stem(n2,x2)axis([-1800.8])n=0:7;x1=[x1zeros(1,8-length(n1))];x2=[zeros(1,8-length(n2)),x2];x=x1.*x2;figure(3)stem(n,x)axis([-1800.35])4、信号翻转信号翻转的表达式为:y(n)=x(-n),在MATLAB中可以用fliplr函数实现此操作例3.4:用MATLAB实现“信号相加”中的1()xn序列翻转clearall;n=0:3x1=[20.50.91];x=fliplr(x1);stem(n,x)axis([-1402.1])5、信号和对于N点信号()xn,其和的定义为:1()Nnyxn例3.5:用MATLAB实现“信号相加”中的1()xn序列和clearall;n=0:3x1=[20.50.91];x=sum(x1)6、信号积对于N点信号()xn,其积的定义为:1()Nnyxn例3.5:用MATLAB实现“信号相加”中的1()xn序列积clearall;n=0:3x1=[20.50.91];x=prod(x1)7卷积1、完成)(1tf与)(2tf两函数的卷积运算其中:)4()()(),()(221tututftuetft在一个图形窗口中,画出)(1tf、)(2tf以及卷积结果。要求每个坐标系有标题、坐标轴名称。p=0.1;t=0:p:10;f1=exp(-2*t).*u(t);f2=u(t)-u(t-4);f=conv(f1,f2);subplot(1,3,1);plot(t,f1,'r');title('f1(t)=e^-2*t*u(t)');xlabel('t(sec)');ylabel('f1(t)');subplot(1,3,2);plot(t,f2,'g');title('f2(t)=u(t)-u(t-4)');xlabel('t(sec)');ylabel('f2(t)');subplot(1,3,3);plot(f);title('f(t)=f1(t)*f2(t)');xlabel('t(sec)');ylabel('f(t)');四MATLAB在信号与系统中的应用该实验用MATLAB中库函数,如tf2zp(b,a),ss2zp(A,B,C,D),zplane(z,p),freqz(b,a)等。例如:1.传递函数为14.025.0)(22sssssH,求其零极点图。程序如下:num=[10.52];分子系数,按降幂顺序排列den=[10.41];分母系数,按降幂顺序排列[z,p]=tf2zp(num,den);用tf2zp函数求出其零点z和极点pzplane(z,p)作出零极点图2.若给出的是滤波器的输入与输出的状态方程,如:uxx013101,uxy0141,求其零极点图。程序如下:A=[1,0;1,-3];B=[1;0];C=[-41,1];D=0;[z,p]=ss2zp(A,B,

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功