学生实验报告
开课学院及实验室: 2012年 月 日
学院 机械与电气年级、专业、工程学院 班 电信101 姓名 学号 实验课程名称 信号与系统 成绩 实验项目名称 实验1 连续、离散LTI系统的时域分析 指导老师 一、实验目的 1、 熟悉和掌握常用的用于信号与系统时域仿真分析的MATLAB函数; 2、 掌握连续时间和离散时间信号的MATLAB产生,掌握用周期延拓的方法将一个非周期信号进行周期信号延拓形成一个周期信号的MATLAB编程; 3、 牢固掌握系统的单位冲激响应的概念,掌握LTI系统的卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质; 4、 掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用基本性质。 二、实验设备 1、硬件:计算机 2、软件:Matlab 三、实验要求 实验前必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。 实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。 1.修改程序Program1_1,将dt改为0.2,再执行该程序,保存图形,看看所得图形的效果如何? [1] dt = 0.01时的信号波形 [2] dt = 0.2时的信号波形 [3] 这两幅图形有什么区别,哪一幅图形看起来与实际信号波形更像? 2.修改程序Program1_1,并存盘,产生实指数信号x(t)=e-2t。 要求在图形中加上网格线,并使用函数axis()控制图形的时间范围在0~2秒之间。然后执行该程序,保存所的图形。 [1] 修改Program1_1后得到的程序 [2] 信号x(t)=e-0.5t的波形图 3.修改程序Program1_1,并存盘,使之能够仿真从键盘上任意输入的一个连续时间信号,并利用该程序仿真信号x(t)=e-2t。 [1] 修改Program1_1后得到的程序 [2] 信号x(t)=e-2t的波形图 4.将实验原理中所给的单位冲激信号和单位阶跃信号的函数文件在MATLAB文件编辑器中编写好,并分别以文件名delta和u存入work文件夹中以便于使用。 [1] 抄写函数文件delta [2] 抄写函数文件u 5.修改程序Program1_4,并存盘,利用axis()函数,将图形窗口的横坐标范围改为-2≤n≤5,纵坐标范围改为-1.5≤ x ≤1.5。 [1] 修改Program1_4后得到的程序 [2] 信号的波形图 6.仿照前面的示例程序的编写方法,编写一个MATLAB程序,并存盘,使之能够在同一个图形窗口中的两个子图中分别绘制信号x[n]=0.5|n| 和x(t)=cos(2πt)[u(t)-u(t-3)]。要求选择的时间窗能够表现出信号的主要部分(或特征)。 [1] 编写的程序 [2] 信号x[n]=0.5|n| 的波形图和信号x(t)=cos(2πt)[u(t)-u(t-3)]的波形图 7.根据示例程序的编程方法,编写一个MATLAB程序,并存盘,由给定信号 x(t) = e-0.5tu(t),求信号y(t) = x(1.5t+3),并绘制出x(t) 和y(t)的图形。 [1] 编写的程序 [2] 信号x(t)的波形图 和 信号y(t) = x(1.5t+3) 的波形图 8.给定一个离散时间信号x[n] = u[n] – u[n-8],仿照示例程序Program1_5,编写程序,产生x[n]的左移序列x1[n] = x[n+6]和右移序列x2[n] = x[n-6],并在同一个图形窗口的三个子图中分别绘制这三个序列的图形。 [1] 编写的程序 [2] 信号波形图 9.编写程序,使之能够接受以键盘方式输入的定义在不同时间段的两个不同连续时间信号并完成卷积运算,分别绘制这两个信号及其卷积的结果的图形,图形按照22分割成四个子图。 [1] 编写的程序 [2] 信号x (t)、h(t)和x (t)*h(t)的波形图 10.给定两个离散时间序列 x[n] = 0.5n{u[n]-u[n-8]} h[n] = u[n]-u[n-8] 编写程序,计算它们的卷积,并分别绘制x[n]、h[n]和它们的卷积y[n]的图形。 [1] 编写的程序 [2] 信号x[n]、h[n]和y[n]的波形图 11.已知一个序列为 编写MATLAB程序,能够将x[n]以N = 8为周期进行周期延拓得到一个周期为N =8的周期序列y[n],并分别绘制x[n]和y[n]图形。 编写的程序 [1] 信号x[n]的波形图 [2] 信号y[n]的波形图
12. 仿照范例程序Program1_7,编写程序,计算并绘制由如下微分方程表示的系统在输入信号为x(t) = (e-2t - e-3t)u(t)时的零状态响应和你手工计算得到的系统零状态响应曲线。 手工计算得到的系统零状态响应的数学表达式是: [1] 编写的程序 [2] 用MATLAB绘制的手工计算的系统响应 [3] 执行程序得到的系统响应 13.利用9题程序,验证卷积的相关性质。 (a) 验证性质: 选择信号x(t)的数学表达式为:x(t)、δ(t)和x(t)*δ(t)的波形 验证所得结论是: (b) 验证性质: 选择信号x(t)的数学表达式为:x(t)、δ(t-t0) 和 的波形 验证所得结论是: (c) 验证性质: [1] 选择信号x(t)的数学表达式 [2] 选择的t1 = 秒,t2 = 秒。 [3] 执行9题程序,输入信号x(t-t1) 和δ(t-t2) 的数学表达式,得到的信号及其卷积的波形图 [4] 执行9题程序,输入信号x(t-t2) 和δ(t-t1) 的数学表达式,得到的信号及其卷积的波形图 [5] 验证所得结论 (d) 验证性质: 选择信号x(t)(建议选择一个时限信号)的数学表达式为: 的数学表达式为: 手工绘制的 波形 执行9题程序,输入信号x(t) 和u(t) 的数学表达式,得到的信号及其卷积的波形图 验证所得结论是: (e) 验证性质: 选择信号x(t)的数学表达式为: 选择信号h(t)的数学表达式为: 执行9题程序,输入信号x(t) 和h(t-t0) 的数学表达式,得到的信号及其卷积的波形图 执行9题程序,输入信号x(t-t0) 和h(t) 的数学表达式,得到的信号及其卷积的波形图 验证所得结论是: 四、实验过程与结果 1.[1] % Program1_1 % This program is used to generate a sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure windows dt = 0.01; % Specify the step of time variable t = -2:dt:2; % Specify the interval of time x = sin(2*pi*t); % Generate the signal plot(t,x) % Open a figure window and draw the plot of x(t) title('Sinusoidal signal x(t)') xlabel('Time t (sec)') [2] % Program1_1_2 % This program is used to generate a sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure windows dt = 0.2; % Specify the step of time variable t = -2:dt:2; % Specify the interval of time x = sin(2*pi*t); % Generate the signal plot(t,x) % Open a figure window and draw the plot of x(t) title('Sinusoidal signal x(t)') xlabel('Time t (sec)') 结论:dt=0.01的波形为每隔0.01s取点,dt=0.2的波形为每隔0.2s取点,dt=0.01的波形相对的比较圆滑,dt=0.01的波形与实际波形更像。 2. % Program1_2 % This program is used to generate a sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure windows dt = 0.01; % Specify the step of time variable t = -2:dt:2; % Specify the interval of time x = exp(-2*t); % Generate the signal
plot(t,x) % Open a figure window and draw the plot of x(t) grid on axis equal axis([0,2,0,2]) title('Sinusoidal signal x(t)') xlabel('Time t (sec)') 3. % Program1_3 % This program is used to generate a sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure windows dt = 0.01; % Specify the step of time variable t = -2:dt:2; x = input('Type in signal x(t) in closed form:')% Specify the interval of time plot(t,x) % Open a figure window and draw the plot of x(t) title('Sinusoidal signal x(t)') xlabel('Time t (sec)'); grid on axis([0,2,0,1]) 4. 产生单位冲激信号的扩展函数为: function y = delta(t) dt = 0.01; y = (u(t)-u(t-dt))/dt; 产生单位阶跃信号的扩展函数为: % Unit step function function y = u(t) y = (t>=0); % y = 1 for t > 0, else y = 0 5.[1] % Program1_5 % This program is used to generate a discrete-time sinusoidal signal % and draw its plot clear, % Clear all variables close all, % Close all figure windows n = -5:5; % Specify the interval of time x = [zeros(1,4), 0.1, 1.1, -1.2, 0, 1.3, zeros(1,2)]; % Generate the sequence stem (n,x,'.') % Open a figure window and draw the plot of x[n] grid on axis([-2,5,-1.5,1.5]) title ('A discrete-time sequence x[n]') xlabel ('Time index n') [2] 6.[1] % Program1_6 % This program is used to generate a sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure windows
dt = 0.01; % Specify the step of time variable t = -2:dt:2; % Specify the interval of time x = cos(2*pi*t).*[u(t)-u(t-3)]; % Generate the signal subplot(211) plot(t,x) % Open a figure window and draw the plot of x(t) title('Sinusoidal signal x(t)') xlabel('Time t (sec)') n = -10:10; % Specify the interval of time x = pow2(-abs(n)); % Generate the signal subplot(212) stem (n,x) % Open a figure window and draw the plot of x[n] title ('Sinusoidal signal x[n]') xlabel ('Time index n') [2] 7.[1] %Program 1_7 clear, close all, t=0:0.01:10; x=exp(-0.5*t).*u(t); y=exp(-0.5*(1.5*t+3)).*u(1.5*t+3); subplot(211) plot(t,x) grid on, title('Original signal x(t)') subplot(212) plot(t,y) grid on, title('y(t)') xlabel('Time t(sec)') [2] 8.[1] %Program 1_8 clear, close all, n=-10:20; x=u(n)-u(n-8); x1=u(n+6)-u((n+6)-8); x2=u(n-6)-u((n-6)-8); subplot(311) stem(n,x) grid on, title('Original signal x(n)') subplot(312) stem(n,x1) grid on, title('Left shifted version of x(n)') subplot(313) stem(n,x2) grid on, title('Right shifted version of x(n)') xlabel('Time index n') [2]
9. [1] %Program 1_9 clear;close all; a=-2; b=8; c=-3; d=5; dt=0.01; t1=a:dt:b; t2=c:dt:d; f1=input('Type in signal f1(t) in closed form:') f2=input('Type in signal f2(t) in closed form:') y=dt*conv(f1,f2); subplot(221) plot(t1,f1),grid on,title('Signal f1(t)'),axis([a,b,-0.2,1.2]) subplot(222) plot(t2,f2),grid on,title('Signal f2(t)'),axis([c,d,-0.2,1.2]) subplot(212) t=(a+c):dt:(b+d); plot(t,y),grid on,title('The convolution of f1(t) and f2(t)'), axis([a+c,b+d,-0.2,9]), xlabel('Time t(sec)') [2] 10. [1] % Program1_10 % This program is used to implement the time-shift operation % on a continuous-time signal and to obtain its time-shifted versions % and to draw their plots. clc,clear;close all; n = 0:15; x = pow2(n).* (u(n)-u(n-8)); h = u(n)-u(n-8); y =conv(x,h); % Compute the convolution of x(n) and h(n) subplot(221) stem(n,x) %Plot x(n) axis([0,15,-5,80]) grid on, title('Signal x(n)'), subplot(222) stem(n,h) %Plot h(n) axis([0,15,-2,2]) grid on, title('Signal h(n)'), subplot(212) n =0:30; stem(n,y) %Plot x(n) axis([0,30,-5,280]); grid on, title('y=conv(x,h)') [2]
11. [1] % program 1_11 clc,clear,close all; n=0:30;T=8;x=0 x1=n.*(u(n)-u(n-5)); for k= -3:3; x=x+(n-k*T).*(u(n-k*T)-u(n-5-k*T)); end subplot(211) n=0:30; stem(n,x1) % Plot x(n) grid on, title('Original signal x(n)') subplot (212) n=0:30; stem(n,x) %Plot x(n) grid on, title ('The period extension of signal x(n)') [2] 12. [1] % Program1_12 clc,clear,close all; num=[8,0]; den=[1,3,2,0]; t=0:0.1:3; y1=impulse(num,den,t); y2=step(num,den,t); x=(exp(-2*t)-exp(-3*t)).*u(t); y3=lsim(num,den,x,t); subplot(2,2,1);plot(t,y1);title('Âö³åÏìÓ¦£º') subplot(2,2,2);plot(t,y2);title('½×Ô¾ÏìÓ¦£º') subplot(2,2,3);plot(t,y3);title('ÊäÈëÏìӦΪx=(exp(-2*t)-exp(-3*t)).*u(t)µÄÏìÓ¦£º') [3] 13. (a) 验证性质:x(t)*(t)x(t)
选择信号x(t)的数学表达式为:x(t)、δ(t)和x(t)*δ(t)的波形,输入:x(t)= u(t)-u(t-3) Signal x(t)Signal h(t)11000.8800.6600.4400.2200-20240-1-0.500.51The convolution of x(t) and h(t)10.80.60.40.20-2-1012345Time t(sec) (b) 验证性质:x(t)*(tt0)x(tt0) 选择信号x(t)的数学表达式为:x(t)、δ(t-t0) 和x(t)*(tt0)的波形 输入:x(t)=u(t)-u(t-3) δ(t-2) Signal x(t)Signal h(t)11000.8800.6600.4400.2200-1-0.500.511.522.533.54011.21.41.61.822.22.42.62.83The convolution of x(t) and h(t)21.510.5001234567Time t(sec) (c) 验证性质:x(tt1)*(tt2)x(tt2)*(tt1)x(tt1t2) [1]选择信号x(t)的数学表达式:x(t)=u(t)-u(t-2) [2]选择的t1=2秒,t2=3秒。 [3]执行9题程序,输入信号x(t-t1) 和δ(t-t2) 的数学表达式,得到的信号及其卷积的波形图 Signal x(t)Signal h(t)11000.8800.6600.4400.220011.522.533.544.55022.22.42.62.833.23.43.63.84The convolution of x(t) and h(t)21.510.503456789Time t(sec) [4]执行9题程序,输入信号x(t-t2) 和δ(t-t1) 的数学表达式,得到的信号及其卷积的波形图 Signal x(t)Signal h(t)11000.550023456011.522.53The convolution of x(t) and h(t)21.510.503456789Time t(sec) (d) 验证性质:x(t)*u(t)tx(t)dt [1]选择信号x(t)的数学表达式为:x(t)=t(u(t)-u(t-1)) [2]选择信号h(t)的数学表达式为:h(t)=u(t+1)-u(t-1);t0=2 [3]执行9题程序,输入信号x(t) 和h(t-t0) 的数学表达式,得到的信号及其卷积的波形图
Signal x(t)Signal h(t)110.50.50-1012001234The convolution of x(t) and h(t)0.50.40.30.20.10-10123456Time t(sec) [4]执行9题程序,输入信号x(t-t0) 和h(t) 的数学表达式,得到的信号及其卷积的波形图 Signal x(t)Signal h(t)110.50.5012340-2-1012The convolution of x(t) and h(t)0.50.40.30.20.10-10123456Time t(sec) [5]验证所得结论是:x(t)*h(tt0)x(tt0)*h(t)成立 五、调试过程与结果分析 1.信号与系统分析,就是基于信号的分解,在时域中,根据冲激信号的定义,为了方便信号与系统的时域分析,一般常采用将任意连续信号分解为无穷多连续冲激信号之和。 2.卷积的计算通常可按下面五个步骤进行 ①该换两个信号波形图中的横坐标,由t改为T,T变成函数的自变量; ②把其中一个信号反摺,如把h(t)变成h(-T); ③把反摺的信号做移位,移变量是t,这样t是一个参变量。在T坐标系中,t>0时图形右移,t<0时图形左移; ④计算两个信号重叠部分的乘积x(T)h(t-T); ⑤完成相乘后图形的积分。 3.在时域中,描述一个连续时间LTI系统的数学模型有:1.R.L.C上的e(t)~i(t);2.LTI连续系统的状态空间模型;3.LTI系统的微分方程模型。 4.MATLAB 控制系统工具箱提供 lsim 函数及conv函数来求解连续时间系统的零状态响应。
因篇幅问题不能全部显示,请点此查看更多更全内容