信号与系统实验(晏密英).ppt_第1页
信号与系统实验(晏密英).ppt_第2页
信号与系统实验(晏密英).ppt_第3页
信号与系统实验(晏密英).ppt_第4页
信号与系统实验(晏密英).ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 信号的时域表示方法,一、实验目的 1、熟悉和掌握常用的用于信号与系统时域仿真分析的MATLAB函数; 2、掌握连续时间和离散时间信号的MATLAB产生及编程; 基本要求:掌握用MATLAB描述连续时间信号和离散时间信号的方法,能够编写MATLAB程序,并且以图形的方式表示各种信号的波形。,2.1 连续时间信号的仿真 编写Program1_1:用MATLAB对一个正弦信号进行仿真的程序. % Program1_1 % This program is used to generate a sinusoidal signal and draw its plot clear, % Clear

2、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) axis(xmin

3、,xmax,ymin,ymax):图型显示区域控制函数 xmin为横轴的显示起点,xmax为横轴的显示终点,ymin为纵轴的显示起点,ymax为纵轴的显示终点。,说明:,(1)MATLAB中的grid on/grid off可以实现在你的图形中加网格线。 grid on:在图形中加网格线。 grid off:取消图形中的网格线。 x = input(Type in signal x(t) in closed form:) (2)产生单位冲激信号的扩展函数为: function y = delta(t) dt = 0.01; y = (u(t)-u(t-dt)/dt; (3)产生单位阶跃信号的扩

4、展函数为: % Unit step function function y = u(t) y = (t=0); % y = 1 for t 0, else y = 0,2.2 离散时间信号的仿真 (1)程序Program1_2用来产生离散时间信号xn=sin(0.2n)。 % Program1_2 % This program is used to generate a discrete-time sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure wind

5、ows n = -10:10; % Specify the interval of time x = sin(0.2*pi*n); % Generate the signal stem (n,x) % Open a figure window and draw the plot of xn title (Sinusoidal signal xn) xlabel (Time index n),(2) 程序Program1_3用来仿真下面形式的离散时间信号: xn=., 0.1, 1.1, -1.2, 0, 1.3, . n=0 % Program1_3 % This program is use

6、d to generate a discrete-time sequence % and draw its plot clear, % Clear all variables close all, % Close all figure windows n = -5:5; % Specify the interval of time, the number of points of n is 11. x = 0, 0, 0, 0, 0.1, 1.1, -1.2, 0, 1.3, 0, 0; % Generate the signal stem(n,x,.) % Open a figure win

7、dow and draw the plot of xn grid on, title (A discrete-time sequence xn) xlabel (Time index n) 说明:由于在程序的stem(n,x,.) 语句中加有.选项,因此绘制的图形中每根棒条线的顶端是一个实心点。,三 实验内容 Q1-1:修改程序Program1_1,将dt改为0.2,再执行该程序,保存图形,看看所得图形的效果如何?这两幅图形有什么区别,哪一幅图形看起来与实际信号波形更像? Q1-2:修改程序Program1_1,并以Q1_2为文件名存盘,产生实指数信号x(t)=e-2t。 要求在图形中加上网格

8、线,并使用函数axis()控制图形的时间范围在02秒之间。然后执行该程序,保存图形。 Q1-3:修改程序Program1_3,并以Q1_3为文件名存盘,利用axis()函数,将图形窗口的横坐标范围改为-2n5,纵坐标范围改为-1.5 x 1.5。 四、实验报告要求 1、按要求完整书写你所编写的全部MATLAB程序 2、详细记录实验过程中的有关信号波形图(存于自建文件夹中),图形要有明确的标题。,实验二 信号的时域变换表示方法,一、实验目的 (1)掌握用MATLAB实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形; (2)掌握用周期延拓的方法将一个非周期信号进行周期信号延拓形成一

9、个周期信号的MATLAB编程。,实验原理:,2.1 信号的时移 y(t) = x(t - t0) 编写程序Program2_1: 对给定一个连续时间信号x(t) = e-0.5tu(t),对它分别左移2秒钟和右移2秒钟得到信号x1(t) = e-0.5(t+2)u(t+2)和x2(t) = e-0.5(t-2)u(t-2)。 % Program2_1 % This program is used to implement the time-shift operation % on a continuous-time signal and to obtain its time-shifted v

10、ersions % and to draw their plots. clear,close all, t = -5:0.01:5; x = exp(-0.5*t).*u(t); % Generate the original signal x(t),x1 = exp(-0.5*(t+2).*u(t+2); % Shift x(t) to the left by 2 second to get x1(t) x2 = exp(-0.5*(t-2).*u(t-2); % Shift x(t) to the right by 2 second to get x2(t) subplot(3,1,1)

11、plot(t,x) % Plot x(t) grid on, title (Original signal x(t) subplot (3,1,2) plot (t,x1) % Plot x1(t) grid on, title (Left shifted version of x(t) subplot (3,1,3) plot (t,x2) % Plot x2(t) grid on, title (Right shifted version of x(t) xlabel (Time t (sec),2.2 信号的时域反褶 对一个信号xn的反褶运算在数学上表示为 yn = x-n 方法一,修改

12、绘图函数plot(t,x)和stem(n,x)中的时间变量t和n,即用-t和-n替代原来的t和n,这样绘制出来的图形,看起来就是原信号经时域反褶后的版本。 方法二,直接利用原信号与其反褶信号的数学关系式来实现。这种方法最符合信号反褶运算的实际意义。 方法三,使用MATLAB内部函数fliplr()来实现信号的反褶运算。其用法如下: y = fliplr(x):其中x为原信号x(t)或xn,而y则为x的时域反褶。 函数fliplr()对信号作时域反褶,仅仅将信号中各个元素的次序作了一个反转,这种反转处理是独立于时间变量t和n的。因此,如果信号与其时间变量能够用一个数学函数来表达的话,那么建议将时

13、间变量t和n的范围指定在一个正负对称的时间区间即可。,2.3 信号的时域尺度变换 信号x(t)的时域尺度变换在数学描述为 y(t) = x(at), 其中a为任意常数。根据a的不同取值,这种时域尺度变换对信号x(t)具有非常不同的影响。 当a = 1时,y(t) = x(t); 当a = -1时,y(t) = x(-t),即y(t)可以通过将x(t)反褶运算而得到; 当a 1时,y(t) = x(at),y(t)是将x(t)在时间轴上的压缩而得到; 当0 a 1时,y(t) = x(at),y(t)是将x(t)在时间轴上的扩展而得到; 当 -1 a 0时,y(t) = x(at),y(t)是将

14、x(t)在时间轴上的扩展同时翻转而得到; 当 a -1时,y(t) = x(at),y(t)是将x(t)在时间轴上的压缩同时翻转而得到; 由此可见,信号的时域尺度变换,除了对信号进行时域压缩或扩展外,还可能包括对信号的时域反褶运算。实际上,MATLAB完成上式的运算,并不需要特殊的处理,按照数学上的常规方法即能完成。,2.4 周期信号 周期信号可以看作是一个时限的非周期信号经过周期延拓之后形成的。在数字信号处理中,周期延拓这一信号处理方法非常重要。 下面的程序段,就是将一个非周期信号x1(t) = e-2tu(t)-u(t-2)经过周期延拓之后而得到一个周期信号: clear, close a

15、ll; t = -4:0.001:4; T = 2; x = 0; for k = -2:2; x = x+exp(-2*(t-k*T).*(u(t-k*T)-u(t-(k+1)*T); end 仔细阅读该程序,可以发现其算法就是: 由于k无法计算到无穷,而是以有限值加以替代,反映到有限宽度图形窗口中得到的效果完全符合要求。,三 实验内容 Q2-1:根据示例程序的编程方法,编写一个MATLAB程序,以Q2_1为文件名存盘,由给定信号 x(t) = e-0.5t u(t) 求信号y(t) = x(1.5t+3),并绘制出x(t) 和y(t)的图形。 Q2-2:给定一个离散时间信号xn = un

16、un-8,仿照示例程序Program2_2,编写程序Q2_2,产生xn的左移序列x1n = xn+6和右移序列x2n = xn-6,并在同一个图形窗口的三个子图中分别绘制这三个序列的图形。 Q2-3 已知一个序列为 编写MATLAB程序Q2_3,能够将xn以N = 8为周期进行周期延拓得到一个周期为N =8的周期序列yn,并分别绘制xn和yn图形。 四、实验报告要求 1、按要求完整书写你所编写的全部MATLAB程序 2、详细记录实验过程中的有关信号波形图(存于自建文件夹中),图形要有明确的标题。,实验三 LTI系统的时域描述,一 实验目的 1、牢固掌握系统的单位冲激响应的概念,掌握LTI系统的

17、卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质; 2、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用基本性质; 3.掌握MATLAB描述LTI系统的常用方法及有关函数,并学会利用MATLAB求解LTI系统响应,绘制相应曲线。 基本要求:掌握线性时不变连续系统的时域数学模型用MATLAB描述的方法,掌握卷积运算、线性常系数微分方程的求解编程。,二 .实验原理 2.1卷积的计算 卷积的计算通常可按下面的五个步骤进行(以卷积积分为例): 1 改换两个信号波形图中的横坐标,由t改为,变成函数的自变量; 2 把其中一个信号反褶,如把h()变成h(-);

18、3 把反褶后的信号做移位,移位量是t,这样t是一个参变量。在坐标系中,t 0时图形右移, t 0时图形左移。 4 计算两个信号重叠部分的乘积x()h(t-); 5 完成相乘后图形的积分。 借助MATLAB的内部函数conv()可以很容易地完成两个信号的卷积积分运算。其语法为:y = conv(x,h)。其中x和h分别是两个作卷积运算的信号,y为卷积结果。 用MATLAB处理连续时间信号时,独立时间变量t的变化步长应该是很小 的,假定用符号dt表示时间变化步长,那么,用函数conv()作两个信号的 卷积积分时,应该在这个函数之前乘以时间步长方能得到正确的结果。也 就是说,正确的语句形式应为:y

19、= dt*conv(x,h),例:根据给定的两个连续时间信号x(t) = tu(t)-u(t-1)和h(t) = u(t)-u(t-1),编写程序,完成这两个信号的卷积运算,并绘制它们的波形图。范例程序如下: % Program3_1 % This program computes the convolution of two continuou-time signals clear;close all; t0 = -2; t1 = 4; dt = 0.01; t = t0:dt:t1; x = u(t)-u(t-1); h = t.*(u(t)-u(t-1); y = dt*conv(x,h

20、); % Compute the convolution of x(t) and h(t) subplot(2,2,1) plot(t,x), grid on, title(Signal x(t), axis(t0,t1,-0.2,1.2) subplot(2,2,2) plot(t,h), grid on, title(Signal h(t), axis(t0,t1,-0.2,1.2) subplot(2,1,2) t = 2*t0:dt:2*t1; % Again specify the time range to be suitable to the % convolution of x

21、 and h. plot(t,y), grid on, title(The convolution of x(t) and h(t), axis(2*t0,2*t1,-0.1,0.6), xlabel(Time t sec),2.2 用线性常系数微分方程描述LTI系统 MATLAB的内部函数impulse(),step(),initial(),lsim() 可以用来计算并绘制连续时间LTI系统的单位冲激响应,单位阶跃响应,零输入响应和任意信号作用于系统的零状态响应。这些函数的用法描述如下: h= impulse(num, den, T) 和 impulse(num, den, T) s = s

22、tep(num, den, T) 和 step(num, den, T) y = lsim(num, den, x, t) 和 lsim (num, den, x, t),实验内容: (1)编写程序Program3_2: 计算并绘制由下面的微分方程表示的系统的单位冲激响应h(t),单位阶跃响应s(t)。 MATLAB范例程序如下: % Program3_2 % This program is used to compute the impulse response h(t) and the step response s(t) of a % continuous-time LTI system

23、 clear, close all; num = input(Type in the right coefficient vector of differential equation:); den = input(Type in the left coefficient vector of differential equation:); t = 0:0.01:8; x = input(Type in the expression of the input signal x(t):); subplot(2,2,1), impulse(num,den,8); subplot(2,2,2), s

24、tep(num,den,8) subplot(2,2,3), plot(t,x); subplot(2,2,4), y=lsim(num,den,x,t);plot(t,y),(2)给定两个离散时间序列 xn = 0.5nun-un-8 hn = un-un-8 编写程序Q3_2,计算它们的卷积,并分别绘制xn、hn和它们的卷积yn的图形。 四、实验报告要求 1、按要求完整书写你所编写的全部MATLAB程序; 2、详细记录实验过程中的有关信号波形图(存于自建文件夹中),图形要有明确的标题。,实验四 连续时间信号及系统的频域分析,一 实验目的 1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法; 2、掌握连续时间傅里叶变换的分析方法及其物理意义; 3、掌握各种典型的连续时间非周期信号的频谱特征以及傅里叶变换的主要性质; 4、学习掌握利用MATLAB语言编写计算CTFS、CTFT和DTFT的仿真程序,并能利用这些程序对一些典型信号进行频谱分析; 5.掌握用MATLAB语言进行系统频响特性分析的方法。 基本要求:掌握并深刻理傅里叶变换的物理意义,掌握信号的傅里叶变换的计算方法,掌握利用MATLAB编程完成相关的傅里叶变换的计算。,实验原理 给定一个周期为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论