1 / 21
文档名称:

中南大学-信号与系统matlab实验报告.pdf

格式:pdf   大小:2,660KB   页数:21页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

中南大学-信号与系统matlab实验报告.pdf

上传人:青山代下 2024/5/14 文件大小:2.60 MB

下载得到文件列表

中南大学-信号与系统matlab实验报告.pdf

相关文档

文档介绍

文档介绍:该【中南大学-信号与系统matlab实验报告 】是由【青山代下】上传分享,文档一共【21】页,该文档可以免费在线阅读,需要了解更多关于【中南大学-信号与系统matlab实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..;通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用信号的理解;熟悉MATLAE的基本操作,以及一些基本函数的使用,为以后的实验奠定基础。⑴运行以上九个例子程序,掌握一些常用基本信号的特点及其MATLA实现方法;改变有关参数,进一步观察信号波形的变化。⑵在k[10:10]范围内产生并画出以下信号:a)f[k][k];1b)f[k][k+2];2c)f[k][k-4];3d)f[k]2[k+2][k-4]。4源程序:k=-10:10;f1k=[zeros(1,10),1,zeros(1,10)];subplot(2,2,1)stem(k,f1k)title('f1[k]')f2k=[zeros(1,8),1,zeros(1,12)];subplot(2,2,2)stem(k,f2k)title('f2[k]')f3k=[zeros(1,14),1,zeros(1,6)];subplot(2,2,3)stem(k,f3k)title('f3[k]')f4k=2*f2k-f3k;subplot(2,2,4):..stem(k,f4k)title('f4[k]')1:103080604040202OCo1010纠町2nin巧」G(][0:31]范围内产生并画出以下信在k号a)f[k]sin子cos扌;QOOOOOOOOOOGOOOOOO!)f[k]cos;24c)f[k]sin¥cos#。3源程序:⑶k=0:31;f1k=sin(pi/4*k).*cos(pi/4*k);subplot(3,1,1)stem(k,f1k)title('f1[k]')f2k=(cos(pi/4*k)).A2;subplot(3,1,2)stem(k,f2k)title('f2[k]')f3k=sin(pi/4*k).*cos(pi/8*k);请问这三个信号的基波周期分别是多少?subplot(3,1,3):..stem(k,f3k)title('f3[k]')f1[k]凤k]其中f1[k]的基波周期是4,f2[k]的基波周期是4,f3[k];了解复杂信号由基本信号通过尺度变换、翻转、平移、相加、相乘、差分、求和、微分及积分等运算来表达的方法;进一步熟悉MATLAB的基本操作与编程,掌握其在信号分析中的运用特点与使用方式。⑴运行以上三个例题程序,掌握信号基本运算的MATLA实现方法;改变有关参数,考察相应信号运算结果的变化特点与规律。⑵已知信号f(t)如下图所示:给定信号f(t)2TI[III[:-------!1“--:..a)用MATLAB编程复现上图;%作业题2a:t=-6::6;ft1=tripuls(t,6,);subplot(2,1,1)plot(t,ft1)title('f(t)')fitjb)画出f(22t)的波形;%bt=-6::6;ft仁tripuls(2*(1-t),6,);%subplot(1,1,1)plot(t,ft1)title('f(2*(1-t)'):..c)画出晋的波形;%ch=;t=-6:h:6;yt=tripuls(t,6,);y1=diff(yt)*1/h;plot(t(1:length(t)-1),y1)title('df(t)/dt')td)画出f()d的波形。%dt=-6::6;forx=1:length(t)y2(x)=quad('tripuls(t,6,)',-3,t(x));endPlot(t,y2):..title('integraloff(t)')、冲激响应和阶跃响应的MATLAB求解方法;学****并掌握离散时间系统的零状态响应、冲激响应和阶跃响应的MATLAB求解方法;进一步深刻理解连续时间系统和离散时间系统的系统函数零极点对系统特性的影响;学****并掌握卷积的MATLA计算方法。⑴运行以上五个例题程序,掌握求解系统响应的MATLA分析方法;改变模型参数,考察系统响应的变化特点与规律。⑵设离散系统可由下列差分方程表示:y[k]-y[k-1]+[k-2]f[k]计算k[20:100]时的系统冲激响应:..源程序:k=-20:100;a=[1-];b=[1];h=impz(b,a,k);stem(k,h);xlabel('Time(sec)')ylabel('y(t)')⑶设h[k]()ku(k),输入f[k]u[k]u[k10],求系统输出y[k]f[k]h[k]。(取k[10:50])源程序:k=-10:50;uk=[zeros(1,10),ones(1,51)];u1k=[zeros(1,20),ones(1,41)];hk=.*uk;fk=uk-u1k;yk=conv(hk,fk);stem(0:length(yk)-1,yk);:..'计j⑷已知滤波器的传递函数:⑵(t),(t)为随机信号试绘出滤波器的输出信输入信号为f(t)2sin()号波形。(取t[0:100])源程序:R=101;d=rand(1,R)-;t=0:100;s=2*sin(*pi*t);f=s+d;subplot(2,1,1);plot(t,d,'g-.',t,s,'b--',t,f,'r-');xlabel('Timeindext');legend('d[t]','s[t]','f[t]');title('处理前的波形')b=[];a=[1-];y=filter(b,a,f);subplot(2,1,2);plot(t,s,'b--',t,y,'r-');xlabel('Timeindext');legend('s[t]','y[t]');title('滤波器输出波形'):..?实验内容1、仿照例程,实现下述周期信号的傅立叶级数分解与合成:要求:(a)首先,推导出求解a,a,b的公式,计算出前10次系数;。nn(b)利用MATLAB求解a,久,b的值,其中a,b求解前10次系数,并给出。。:..(a)设周期信号f(t)的周期为T,角频率2f1,且满足狄里赫利条件,则该周iTi期信号可以展开成傅立叶级数。(1)三角形式傅立叶级数f(t)acostbsin1acostbsintacostbsint1111??22nnnnaacos(nt)bsin(nt)0n1n1n1n11f(t)dt2f(t)cosntdtTiTiTibf(t)sinntdtn12)指数形式傅立叶级数T11f(t)ejn1tdtf(t)Fe1,n0,1,2,3,Fnnn2(b)求解a,a,b及合成信号波形所用程序:function[A_sym,B_sym]=CTFShchsymnn%采用符号计算求一个周期内连续时间函数f的三角级数展开系数,再用这些%%函数的输入输出都是数值量%Nf=6谐波的阶数%Nn输出数据的准确位数%A_sym第1元素是直流项,其后元素依次是1,2,3…次谐波cos项展开系数%B_sym第2,3,4,.??元素依次是1,2,3…次谐波sin项展开系数%tao=1tao/T==4;tao=T/4;a=-;ifnargin<4Nf=10;endifnargin<5Nn=32;endx=time_fun_x(t);A0=int(x,t,a,T+a)/T;%求出三角函数展开系数A0:..As=2/T*int(x*cos(2*pi*n*t/T),t,a,T+a);求出三角函数展开系数As%求出三角Bs=2/T*int(x*sin(2*pi*n*t/T),t,a,T+a);函数展开系数BsA_sym(1)=double(vpa(A0,Nn));%获取串数组A0所对应的ASC2码数值数组fork=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn));%获取串数组A所对应的ASC2码数值数组B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));%获取串数组B所对应的ASC2码数值数组end;ifnargout==0c=A_sym;disp(c);%输出c为三角级数展开系数:第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数d=B_sym;disp(d);%输出d为三角级数展开系数:第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数t=-3*T::3*T;f0=c(1);%直流f1=c(2).*cos(2*pi*1*t/T)+d(2).*sin(2*pi*1*t/T);%基波f2=c(3).*cos(2*pi*2*t/T)+d(3).*sin(2*pi*2*t/T);%2次谐波f3=c(4).*cos(2*pi*3*t/T)+d(4).*sin(2*pi*3*t/T);%3次谐波f4=c(5).*cos(2*pi*4*t/T)+d(5).*sin(2*pi*4*t/T);%4次谐波f5=c(6).*cos(2*pi*5*t/T)+d(6).*sin(2*pi*5*t/T);%5次谐波f6=c(7).*cos(2*pi*6*t/T)+d(7).*sin(2*pi*6*t/T);%6次谐波f7=c(8).*cos(2*pi*7*t/T)+d(8).*sin(2*pi*7*t/T);%7次谐波f8=c(9).*cos(2*pi*8*t/T)+d(9).*sin(2*pi*8*t/T);%8次谐波f9=c(10).*cos(2*pi*9*t/T)+d(10).*sin(2*pi*9*t/T);%9次谐波f10=c(11).*cos(2*pi*10*t/T)+d(11).*sin(2*pi*10*t/T);%10次谐波f11=f0+f1+f2;%直流+基波+2次谐波f12=f11+f3;%直流+基波+2次谐波+3次谐波f13=f12+f4+f5+f6;%直流+基波+2次谐波+3次谐波+4次谐波+5次谐波+6次谐波f14=f13+f7+f8+f9+f10;%0~10次subplot(2,2,1)plot(t,f0+f1),holdony=time_fun_e(t);%调用连续时间函数-周期矩形脉冲plot(t,y,'r:')title('直流+基波')axis([-8,8,-,])subplot(2,2,2)plot(t,f12),holdony=time_fun_e(t);plot(t,y,'r:')title('1-3次谐波+直流')axis([-8,8,-,])subplot(2,2,3)plot(t,f13),holdony=time_fun_e(t);plot(t,y,'r:')title('1-6次谐波+直流')axis([-8,8,-,])subplot(2,2,4)plot(t,f14),holdony=time_fun_e(t);plot(t,y,'r:')title('1-10次谐波+直流')axis([-8,8,-,])holdoffendfunctiony=time_fun_e(t)%=;T=4;h=1;tao=T/4;t=-3*T::3*T;e1=1/2+1/2.*sign(t-+tao/2);e2=1/2+1/2.*sign(t--tao/2);y=h.*(e1-e2);%连续时间函数-周期矩形脉冲:..%。它由符号变量和表达式写成。h=1;x1=sym('Heaviside(t)')*h;x=x1-sym('Heaviside(t-1)')*h;:..直流十基滅源程序修改:%采用符号计算求一个周期内连续时间函数f的三角级数展开系数再用这些%%函数的输入输出都是数值量%Nf=6谐波的阶数%Nn输出数据的准确位数%A_sym第1元素是直流项,其后元素依次是次谐波cos项展开系数%B_sym第2,3,4,.??元素依次是1,2,3…次谐波sin项展开系数%tao=1tao/T==5;tao=*T;a=;ifnargin<4Nf=6;endifnargin<5Nn=32;endx=time_fun_x(t);A0=int(x,t,-a,T-a)/T;%求出三角函数展开系数:..As=2/T*int(x*cos(2*pi*n*t/T),t,-a,T-a);%求出三角函数展开系数AsBs=2/T*int(x*sin(2*pi*n*t/T),t,-a,T-a);%求出三角函数展开系数BsA_sym(1)=double(vpa(A0,Nn));%获取串数组A0所对应的ASC2码数值数组fork=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn));%获取串数组A所对应的ASC2码数值数组B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));%获取串数组B所对应的ASC2码数值数组endifnargout==0c=A_sym;disp(c)%输出c为三角级数展开系数:第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数d=B_sym;disp(d)%输出d为三角级数展开系数:第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数t=-8*a::T-a;f0=c(1);%直流f1=c(2).*cos(2*pi*1*t/5)+d(2).*sin(2*pi*1*t/5);%基波f2=c(3).*cos(2*pi*2*t/5)+d(3).*sin(2*pi*2*t/5);%2次谐波f3=c(4).*cos(2*pi*3*t/5)+d(4).*sin(2*pi*3*t/5);%3次谐波f4=c(5).*cos(2*pi*4*t/5)+d(5).*sin(2*pi*4*t/5);%4次谐波f5=c(6).*cos(2*pi*5*t/5)+d(6).*sin(2*pi*5*t/5);%5次谐波f6=c(7).*cos(2*pi*6*t/5)+d(7).*sin(2*pi*6*t/5);%6次谐波f7=f0+f1+f2;%直流+基波+2次谐波f8=f7+f3;%直流+基波+2次谐波+3次谐波f9=f8+f4+f6;%直流+基波+2次谐波+3次谐波+4次谐波+6次谐波subplot(2,2,1)plot(t,f0+f1),holdony=time_fun_e(t);%调用连续时间函数-周期矩形脉冲plot(t,y,'r:')title('周期矩形波的形成—直流+基波')axis([-4,,-,])subplot(2,2,2)plot(t,f7),holdony=time_fun_e(t);plot(t,y,'r:')title('周期矩形波的形成一直流+基波+2次谐波')axis([-4,,-,])subplot(2,2,3)plot(t,f8),holdony=time_fun_e(t);plot(t,y,'r:')title('直流+基波+2次谐波+3次谐波')axis([-4,,-,])subplot(2,2,4)plot(t,f9),holdony=time_fun_e(t);plot(t,y,'r:')title('基波+2次谐波+3次谐波+4次谐波+6次谐波')axis([-4,,-,])endfunctiony=time_fun_e(t)%=;:..h=1;tao=*T;t=-8*a::T-a;e1=1/2+1/2.*sign(t+tao/2);e2=1/2+1/2.*sign(t-tao/2);y=h.*(e1-e2);%连续时间函数-周期矩形脉冲functionx=time_fun_x(t)%。它由符号变量和表达式写成。h=1;x1=sym('Heaviside(t+)')*h;x=x1-sym('Heaviside(t-)')*h;2、已知周期为T=4的三角波,在第一周期(-2<t<2)内表示成:x(t)1t,试用MATLAB求该信号的傅立叶级数,并绘制它的频谱图。将它的频谱与方波的频谱图做比较。function[A_sym,B_sym]=CTFSshbpsym(T,Nf)%采用符号计算求[0,T]内时间函数的三角级数展开系数。%函数的输入输出都是数值量%Nn输出数据的准确位数%A_sym第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数%B_sym第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数%TT=m*tao,信号周期%Nf谐波的阶数%m(m=T/tao)周期与脉冲宽度之比如m=4,8,16,100等%tao脉宽:tao=T/msymstny:..ifnargin<3Nf=input('pleaseInput所需展开的最高谐波次数:Nf=');endT=input('pleaseInput信号的周期T=');ifnargin<5Nn=32;endy=time_fun_s(t);A0=2/T*int(y,t,0,T/2);As=2/T*int(y*cos(2*pi*n*t/T),t,0,T/2);Bs=2/T*int(y*sin(2*pi*n*t/T),t,0,T/2);A_sym(1)=double(vpa(A0,Nn));fork=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn));B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));endifnargout==0An=fliplr(A_sym);%对A_sym阵左右对称交换%A_sym的1*k阵扩展为An(1,k+1)=A_sym(1);1*(k+1)阵%对扩展后的S1阵左右对称交换回原位置%对An=fliplr(An);B_sym阵左右对称交换%B_sym的1*k阵扩展为1*(k+1)阵%Bn=fliplr(B_sym);对扩展后的S3阵左右对称交换回原位置Bn(1,k+1)=0;%用三角函数展开系数A、B值合成付里叶指数系数Bn=fliplr(Bn);FnL=fliplr(FnR);FnR=An/2-i*Bn/2;N=Nf*2*pi/T;k2=-N:2*pi/T:N;Fn=[FnL,FnR(2:end)];%subplot(3,3,3)%x=time_fun_e(t);%调用连续时间函数-周期矩形脉冲subplot(2,1,1)stem(k2,abs(Fn));%画出周期矩形脉冲的频谱(T=M*tao)title('连续时间函数周期三角波脉冲的双边幅度谱')axis([-80,80,0,])line([-80,80],[0,0],'color','r')line([0,0],[0,],'color','r')endfunctionx=time_fun_e(t)%。它由符号变量和表达式写成。:..%t是时间数组%T是周期duty=tao/T==5;t=-2*T::2*T;tao=T/5;x=rectpuls(t,tao);%产生一个宽度tao=1的矩形脉冲subplot(2,2,2)plot(t,x)holdonx=rectpuls(t-5,tao);%产生一个宽度tao=1的矩形脉,中心位置在t=5处plot(t,x)holdonx=rectpuls(t+5,tao);%产生一个宽度tao=1的矩形脉,中心位置在t=-5处plot(t,x)title('周期为T=5,脉宽tao=1的矩形脉冲')axis([-10,10,0,])functiony=time_fun_s(t)symsty=1-abs(t);x1=sym('Heaviside(t+2)');x=x1-sym('Heaviside(t-2)');y=y*x;ezplot(t,y,[-10,10])grid连续时间国数周期三角'波脉冲的祝边幅度谱源程序修改:function[A_sym,B_sym]=CTFSshbpsym(T,Nf)%采用符号计算求[0,T]内时间函数的三角级数展开系数。%函数的输入输出都是数值量%Nn输出数据的准确位数:..%A_sym第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数%B_sym第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数%TT=m*tao,信号周期%Nf谐波的阶数%m(m=T/tao)周期与脉冲宽度之比,如m=4,8,16,100等%tao脉宽:tao=T/msymstnyifnargin<3Nf=input('pleaseInput所需展开的最高谐波次数:Nf=');endT=input('pleaseInput信号的周期T=');ifnargin<5Nn=32;endy=time_fun_s(t);A0=2/T*int(y,t,0,T);As=2/T*int(y*cos(2*pi*n*t/T),t,0,T);Bs=2/T*int(y*sin(2*pi*n*t/T),t,0,T);A_sym(1)=double(vpa(A0,Nn));fork=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn));B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));endifnargout==0An=fliplr(A_sym);%对A_symP车左右对称交换An(1,k+1)=A_sym(1);%A_sym的1*k阵扩展为1*(k+1)阵An=fliplr(An);%对扩展后的S1阵左右对称交换回原位置Bn=fliplr(B_sym);%对B_symf车左右对称交换Bn(1,k+1)=0;%B_sym的1*k阵扩展为1*(k+1)阵Bn=fliplr(Bn);%对扩展后的S3阵左右对称交换回原位置FnR=An/2-i*Bn/2;%用三角函数展开系数AB值合成付里叶指数系数FnL=fliplr(FnR);N=Nf*2*pi/T;k2=-N:2*pi/T:N;Fn=[FnL,FnR(2:end)];subplot(3,3,3)x=time_fun_e(t);%调用连续时间函数-周期矩形脉冲subplot(2,1,1)stem(k2,abs(Fn));%画出周期矩形脉冲的频谱(T=M*tao)title('连续时间函数周期矩形脉冲的双边幅度谱')axis([-80,80,0,])line([-80,80],[0,0]):..line([0,0],[0,])endfunctionx=time_fun_e(t)%。它由符号变量和表达式写成。%t是时间数组%T是周期duty=tao/T==5;t=-2*T::2*T;tao=T/5;x=rectpuls(t,tao);%产生一个宽度tao=1的矩形脉冲subplot(2,2,2)plot(t,x)holdonx=rectpuls(t-5,tao);%plot(t,x)holdon产生一个宽度tao=1的矩形脉,中心位置在t=5处x=rectpuls(t+5,tao);%产生一个宽度tao=1的矩形脉,中心位置在t=-5处plot(t,x)title('周期为T=5,脉宽tao=1的矩形脉冲')axis([-10,10,0,])functiony=time_fun_s(t)%。它由符号变量和表达式写成。symsaa1T=input('pleaseInput信号的周期T=');M=input('周期与脉冲宽度之比M=');A=1;tao=T/M;a=tao/2;y1=sym('Heaviside(t+a1)')*A;y=y1-sym('Heaviside(t-a1)')*A;y=subs(y,a1,a);y=simple(y);;掌握典型信号的幅度谱和相位谱;理解信号的调制特性;掌握傅里叶变换的性质:尺度变换、时移、频移、卷积定理、对称性、微分特性。、幅度为1的三角波信号在0~fmHz范围内信号的能量。取fm=~10Hz。symst;:..f=linspace(,10,256);N=length(f);w=zeros(1,N);fork=1:Nw(k)=quadl(@(t)2*sinc(t).*sinc(t).*sinc(t).*sinc(t),0,f(k));endy=0;fork=1:Ny=y+w(k);endyplot(f,w);xlabel('Hz');ylabel('E');y=:..~fmHz频谱范围内所包含的信-号能量。symst;f=linspace(0,5,256);N=length(f);w=zeros(1,N);fork=1:Nw(k)=quadl(@(t)2*sinc(t).*sinc(t),0,f(k));endplot(f,w);xlabel('Hz');