《信号与系统及MATLAB实现新修订》由会员分享,可在线阅读,更多相关《信号与系统及MATLAB实现新修订(26页珍藏版)》请在金锄头文库上搜索。
1、信号与系统实验指导书 1 信号与系统及信号与系统及 MATLAB 实现实现 实验指导书实验指导书 信号与系统实验指导书 2 前前 言言 长期以来, 信号与系统课程一直采用单一理论教学方式,同学们依靠做习题来巩固 和理解教学内容, 虽然手工演算训练了计算能力和思维方法, 但是由于本课程数学公式推导 较多,概念抽象,常需画各种波形,作题时难免花费很多时间,现在,我们给同学们介绍一 种国际上公认的优秀科技应用软件 MATLAB,借助它我们可以在电脑上轻松地完成许多习 题的演算和波形的绘制。 MATLAB 的功能非常强大, 我们此处仅用到它的一部分, 在后续课程中我们还会用到 它, 在未来地科学研究和
2、工程设计中有可能继续用它, 所以有兴趣的同学, 可以对 MATLAB 再多了解一些。 MATLAB 究竟有那些特点呢? 1高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来; 2完备的图形处理功能,实现计算结果和编程的可视化; 3友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握; 4功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具; MATLAB 的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做 为本科生必须掌握的一种软件。正是基于这些背景,我们编写了这本信号与系统及 MATLAB 实现指导书,内容包括信号的 MATLAB 表示、基本运算、系
3、统的时域分析、 频域分析、S 域分析、状态变量分析等。通过这些练习,同学们在学习信号与系统的同 时,掌握 MATLAB 的基本应用,学会应用 MATLAB 的数值计算和符号计算功能,摆脱烦 琐的数学运算, 从而更注重于信号与系统的基本分析方法和应用的理解与思考, 将课程的重 点、难点及部分习题用 MATLAB 进行形象、直观的可视化计算机模拟与仿真实现,加深对 信号与系统的基本原理、方法及应用的理解,为学习后续课程打好基础。另外同学们在进行 实验时,最好事先预习一些 MATLAB 的有关知识,以便更好地完成实验,同时实验中也可 利用 MATLAB 的 help 命令了解具体语句以及指令的使用方
4、法。 信号与系统实验指导书 3 实验一实验一 基本信号在基本信号在 MATLAB 中的表示和运算中的表示和运算 一、实验目的一、实验目的 1 学会用 MATLAB 表示常用连续信号的方法; 2 学会用 MATLAB 进行信号基本运算的方法; 二、实验原理二、实验原理 1 连续信号的 连续信号的 MATLAB 表示表示 MATLAB 提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。 表示连续时间信号有两种方法,一是数值法,二是符号法。数值法是定义某一时间 范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用 绘图语句画出其波形;符号法是利用 MATLAB 的符号
5、运算功能,需定义符号变量和符 号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。 例 1-1 指数信号 指数信号在 MATLAB 中用 exp 函数表示。 如,调用格式为 ft=A*exp(a*t) 程序是 at Aetf)( A=1; a=-0.4; t=0:0.01:10; %定义时间点 ft=A*exp(a*t); %计算这些点的函数值 plot(t,ft); %画图命令,用直线段连接函数值表示曲线 grid on; %在图上画方格 例 1-2 正弦信号 正弦信号在 MATLAB 中用 sin 函数表示。 调用格式为 ft=A*sin(w*t+phi) A=1; w=2*p
6、i; phi=pi/6; t=0:0.01:8; %定义时间点 ft=A*sin(w*t+phi); %计算这些点的函数值 plot(t,ft); %画图命令 grid on; %在图上画方格 例 1-3 抽样信号 抽样信号 Sa(t)=sin(t)/t 在 MATLAB 中用 sinc 函数表示。 定义为 )/(sin)(tctSa t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft); grid on; axis(-10,10,-0.5,1.2); %定义画图范围,横轴,纵轴 title(抽样信号) %定义图的标题名字 例 1-4 三角信号 三角信号
7、在 MATLAB 中用 tripuls 函数表示。 信号与系统实验指导书 4 调用格式为 ft=tripuls(t,width,skew),产生幅度为 1,宽度为 width,且以 0 为中心左右各 展开 width/2 大小,斜度为 skew 的三角波。width 的默认值是 1,skew 的取值范围是-1+1 之间。一般最大幅度 1 出现在 t=(width/2)*skew 的横坐标位置。 t=-3:0.01:3; ft=tripuls(t,4,0.5); plot(t,ft); grid on; axis(-3,3,-0.5,1.5); 例1-5虚指数信号 调用格式是 f=exp(j*w
8、)*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,ma
9、x(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 列画图窗口,并指定画图位置 i 例1-6复指数信号 调用格式是 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)
10、,plot(t,abs(f),title(模) subplot(2,2,4),plot(t,angle(f),title(相角) 例 1-7 矩形脉冲信号 矩形脉冲信号可用 rectpuls 函数产生, 调用格式为 y=rectpuls(t,width),幅度是 1,宽度是 width,以 t=0 为对称中心。 t=-2:0.01:2; width=1; ft=2*rectpuls(t,width); plot(t,ft) grid on; 例 1-8 单位阶跃信号 单位阶跃信号 u(t)用“t=0”产生,调用格式为 ft=(t=0) t=-1:0.01:5; ft=(t=0); plot(t
11、,ft); grid on; 信号与系统实验指导书 5 axis(-1,5,-0.5,1.5); 例 1-9 正弦信号符号算法 syms t %定义符号变量 t y=sin(pi/4*t) %符号函数表达式 ezplot(y,-16,16) %符号函数画图命令 或者 f=sym(sin(pi/4*t) %定义符号函数表达式 ezplot(f,-16,16) 例1-10 单位阶跃信号 MATTLAB 符号数学函数 Heaviside 表示阶跃信号, 但要画图需在工 作目录创建 Heaviside 的 M 文件 function f=Heaviside(t) f=(t0); 保存,文件名是 Hea
12、viside ,调用该函数即可画图,例 t=-1:0.01:3; f=heaviside(t); plot(t,f) axis(-1,3,-0.2,1.2) 或者 y=sym(Heaviside(t); ezplot(y,-1,5);grid on 2 信号基本运算的 信号基本运算的 MATLAB 实现实现 信号基本运算是乘法、加法、尺度、反转、平移、微分、积分,实现方法有数值法 和符号法 例 1-11 以 f(t)为三角信号为例,求 f(2t) , f(2-2t) t=-3:0.001:3; ft=tripuls(t,4,0.5); subplot(3,1,1); plot(t,ft); g
13、rid on; title (f(t); ft1= tripuls(2*t,4,0.5); subplot(3,1,2); plot(t,ft1); grid on; title (f(2t); ft2= tripuls(2-2*t,4,0.5); subplot(3,1,3); plot(t,ft2); grid on; title (f(2-2t); 例 1-12 已知 f1(t)=sinwt , f2(t)=sin8wt , w=2pi , 求 f1(t)+f2(t)和 f1(t)f2(t) 的波形图 w=2*pi; t=0:0.01:3; 信号与系统实验指导书 6 f1=sin(w*t
14、); f2=sin(8*w*t); subplot(211) plot(t,f1+1,:,t,f1-1,:,t,f1+f2) grid on,title(f1(t)+f2(t) subplot(212) plot(t,f1,:,t,-f1,:,t,f1.*f2) grid on,title(f1(t)*f2(t) 符号算法也可实现上述运算,以信号的微积分运算为例说明符号算法应用 微分的调用格式为 diff(function,variable,n) 积分的调用格式为 int(function,variable,a,b) 式中 function 表示要微分或积分的函数,variable 表示运算变
15、量,n 表示求导阶数,默认 值是求一阶导数,a 是积分下限,b 是积分上限,a b 默认是求不定积分。 例 1-13 求一阶导数的例题,已知,)sin( 2 1 axy xxxylnsin 2 clear syms a x y1 y2 %定义符号变量 a, x ,y1, y2 y1=sin(a*x2); %符号函数 y1 y2=x*sin(x)*log(x); %符号函数 y2 dy1=diff(y1,x) %无分号直接显示结果 dy2=diff(y2) %无分号直接显示结果 例 1-14 求积分的例题,dx x axx) 2 ( 5 1 0 2 )1 ( dx x xe x clear syms a x y3 y4 y3=x5-a*x2+sqrt(x)/2; y4=(x*exp(x)/(1+x)2; iy3=int(y3,x) iy4=int(y4,0,1) 三、上机实验内容三、上机实验内容 1 验证实验原理中程序 2 画出信号波形 (1) (2))()2()( 2 tuetf t )2()()cos1 ()(tutut