资源描述:
《信号与系统实验一》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一Matlab中信号的描述一、实验目的:1.熟悉MATLAB软件的使用2.学会信号的多种表示形式和信号的可视化;二、实验时数:2学时三、实验相关知识:信号按照自变量的取值是否连续可分为连续时间信号和离散时间信号。对一维时间信号进行时域分析,首先需要将信号随时间变化的规律用二维曲线表示出来。对于简单信号可以通过手工绘制其波形,但对于复杂的信号,手工绘制信号波形显得十分困难,且难以绘制精确的曲线。1、连续时间信号的描述在MATLAB中通常用三种方法来产生并表示连续时间信号,即采用符号运算工具箱来描述信号;采用向量表示法来描述信号;采用
2、Simulink工具来描述并产生信号。(1)采用MATLAB软件符号运算工具箱来描述信号方法一:符号函数图形计算器在MATLAB环境下输入命令funtool,则会产生三个视窗,如Error!Referencesourcenotfound.所示。图1符号函数图形计算器lfigureNo.1:可轮流激活,显示f函数的计算结果。lfigureNo.2:可轮流激活,显示g函数的计算结果。lfigureNo.3:函数运算器,其功能有:f,g可输入函数表达式;x是自变量,在缺省时绘制在[-2pi,2pi]的范围内的函数图形,在figureNo.1
3、或figureNo.2产生相应的波形。方法二:符号运算表示法如果信号可以用一个表达式来表示它,则我们可用ezplot命令(缺省的区间为[-2*pi,2*pi])绘制出信号的波形,例如对于连续信号f(t)=sin(πt/4),我们可以用符号表达式表示为:f=sym('sin(pi/4*t)');然后用ezplot命令绘制其波形:ezplot(f,[-16,16]);该命令绘制的信号波形如Error!Referencesourcenotfound.所示。图1符号运算表示法表示信号(2)采用向量表示法来描述信号用适当的MATLAB中的向量来
4、表示信号,该信号可以利用MATLAB的绘图命令绘制出直观的信号波形。对于连续时间信号f(t),可以用两个行向量f和t来表示,其中向量t是形如t=t1:dt:t2的MATLAB命令定义的时间范围向量,t1为信号起始时间,t2为信号终止时间,dt为时间间隔。向量f为连续信号f(t)在向量t所定义的时间点上的样值。下面分析连续时间信号f(t)=e-0.3tsin(t),可用如下的两个变量表示:t=-10:0.5:10;f=exp(-0.3*t).*sin(t);用上述向量对连续信号进行表示后,就可以用plot命令来绘制出信号的时域波形。pl
5、ot命令可将点与点间用直线连接,当点与点间的距离很小时,绘出的波形就成了光滑的曲线。MATLAB命令如下:plot(t,f);title('f(t)=exp(-0.3*t).*sin(t)');gridon(添加网格线)xlabel('t');绘出的信号波形Error!Referencesourcenotfound.所示。当把时间间隔dt取得较小(例如为0.01)时,就可得到f(t)较好的近似波形,如Error!Referencesourcenotfound.所示。图2dt=0.5时的波形图3dt=0.01时的波形常见连续信号的向量表
6、示法描述正弦波y(t)=Asin(2πft+φ):t=0:0.001:2;A=0.5 ;f=3;phi=pi/3%生成3Hz的正弦波y=A*sin(2*pi*f*t+phi);plot(t,y);周期方波:t=0:0.001:2.5;f=2 ;y=square(2*pi*f*t);plot(t,y);ylim([-1.1,1.1]);(显示纵坐标的范围)周期锯齿波:t=0:0.001:2.5;f=2y=sawtooth(2*pi*f*t);plot(t,y);ylim([-1.1,1.1]);sinc函数sinc(t)=(sinπt)
7、/(πt)t=-5:0.01:5;y=sinc(t);plot(t,y);钟形函数t=-3:0.01:3;E=1;tau=0.5;y=E*exp(-(t/tau).^2);plot(t,y);实指数函数t=-2:0.001:2;a=2 ;y=exp(a*t);plot(t,y);虚指数函数:t=0:0.001:5;w0=2;y=exp(j*w0*t);subplot(211)plot(t,real(y)) ;ylabel('Real(y)')subplot(212)plot(t,imag(y));ylabel('Imag(y)')复指
8、数函数:t=0:0.001:5;sigma=-0.5;w0=10;y=exp((sigma+j*w0)*t);subplot(211)plot(t,real(y)) ;ylabel('Real(y)')subplot(2