当前位置:文档之家› 信号与系统实验报告实验一 信号与系统的时域分析

信号与系统实验报告实验一 信号与系统的时域分析

实验一信号与系统的时域分析一、实验目的1、熟悉与掌握常用的用于信号与系统时域仿真分析的MA TLAB函数;2、掌握连续时间与离散时间信号的MA TLAB产生,掌握用周期延拓的方法将一个非周期信号进行周期信号延拓形成一个周期信号的MA TLAB编程;3、牢固掌握系统的单位冲激响应的概念,掌握LTI系统的卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质;4、掌握利用MA TLAB计算卷积的编程方法,并利用所编写的MA TLAB程序验证卷积的常用基本性质;掌握MA TLAB描述LTI系统的常用方法及有关函数,并学会利用MATLAB求解LTI系统响应,绘制相应曲线。

基本要求:掌握用MA TLAB描述连续时间信号与离散时间信号的方法,能够编写MATLAB程序,实现各种信号的时域变换与运算,并且以图形的方式再现各种信号的波形。

掌握线性时不变连续系统的时域数学模型用MA TLAB描述的方法,掌握卷积运算、线性常系数微分方程的求解编程。

二、实验原理信号(Signal)一般都就是随某一个或某几个独立变量的变化而变化的,例如,温度、压力、声音,还有股票市场的日收盘指数等,这些信号都就是随时间的变化而变化的,还有一些信号,例如在研究地球结构时,地下某处的密度就就是随着海拔高度的变化而变化的。

一幅图片中的每一个象素点的位置取决于两个坐标轴,即横轴与纵轴,因此,图像信号具有两个或两个以上的独立变量。

在《信号与系统》课程中,我们只关注这种只有一个独立变量(Independent variable)的信号,并且把这个独立变量统称为时间变量(Time variable),不管这个独立变量就是否就是时间变量。

在自然界中,大多数信号的时间变量都就是连续变化的,因此这种信号被称为连续时间信号(Continuous-Time Signals)或模拟信号(Analog Signals),例如前面提到的温度、压力与声音信号就就是连续时间信号的例子。

但就是,还有一些信号的独立时间变量就是离散变化的,这种信号称为离散时间信号。

前面提到的股票市场的日收盘指数,由于相邻两个交易日的日收盘指数相隔24小时,这意味着日收盘指数的时间变量就是不连续的,因此日收盘指数就是离散时间信号。

而系统则用于对信号进行运算或处理,或者从信号中提取有用的信息,或者滤出信号中某些无用的成分,如滤波,从而产生人们所希望的新的信号。

系统通常就是由若干部件或单元组成的一个整体(Entity)。

系统可分为很多不同的类型,例如,根据系统所处理的信号的不同,系统可分为连续时间系统(Continuous-time system)与离散时间系统(Discrete-time system),根据系统所具有的不同性质,系统又可分为因果系统(Causal system)与非因果系统(Noncausal system)、稳定系统(Stable system)与不稳定系统(Unstable system)、线性系统(Linear system)与非线性系统(Nonlinear system)、时变系统(Time-variant system)与时不变系统(Time-invariant system)等等。

然而,在信号与系统与数字信号处理中,我们所分析的系统只就是所谓的线性时不变系统,这种系统同时满足两个重要的基本性质,那就就是线性性与时不变性,通常称为线性时不变(LTI)系统。

1、信号的时域表示方法1、1将信号表示成独立时间变量的函数例如x(t)=sin(ωt) 与x[n]=n(0、5)n u[n]分别表示一个连续时间信号与一个离散时间信号。

在MA TLAB中有许多内部函数,可以直接完成信号的这种表达,例如:sin():正弦信号cos():余弦信号exp():指数信号1、2用信号的波形图来描述信号用函数曲线表示一个信号,图1、1就就是一个连续时间信号与一个离散时间信号的波形图。

图1、1 连续时间信号与离散时间信号的波形图1、3将信号用一个数据序列来表示对于离散时间信号,还可以表示成一个数的序列,例如:x[n]={、、、、, 0、1, 1、1, -1、2, 0, 1、3, …、}↑n=0在《信号与系统》与《数字信号处理》课程中,上述三种信号的描述方法就是经常要使用的。

2 用MATLAB仿真连续时间信号与离散时间信号在MATLAB中,无论就是连续时间信号还就是离散时间信号,MATLAB都就是用一个数字序列来表示信号,这个数字序列在MATLAB 中叫做向量(vector)。

通常的情况下,需要与时间变量相对应。

如前所述,MA TLAB 有很多内部数学函数可以用来产生这样的数字序列,例如sin()、cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列。

2、1连续时间信号的仿真程序Program1_1就是用MATLAB 对一个正弦信号进行仿真的程序,请仔细阅读该程序,并在计算机上运行,观察所得图形。

% Program1_1% This program is used to generate a sinusoidal signal and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsdt = 0、01; % Specify the step of time variablet = -2:dt:2; % Specify the interval of timex = sin(2*pi*t); % Generate the signalplot(t,x) % Open a figure window and draw the plot of x(t)title('Sinusoidal signal x(t)')xlabel('Time t (sec)')常用的图形控制函数axis([xmin,xmax,ymin,ymax]):图型显示区域控制函数,其中xmin 为横轴的显示起点,xmax 为横轴的显示终点,ymin 为纵轴的显示起点,ymax 为纵轴的显示终点。

有时,为了使图形具有可读性,需要在所绘制的图形中,加上一些网格线来反映信号的幅度大小。

MATLAB 中的grid on/grid off 可以实现在您的图形中加网格线。

grid on:在图形中加网格线。

grid off:取消图形中的网格线。

x = input(‘Type in signal x(t) in closed form:’)在《信号与系统》课程中,单位阶跃信号u(t) 与单位冲激信号δ(t) 就是二个非常有用的信号。

它们的定义如下0,0)(1)(≠==⎰∞-∞=t t dt t t δδ 1、1(a) ⎩⎨⎧≤>=0,00,1)(t t t u 1、1(b)这里分别给出相应的简单的产生单位冲激信号与单位阶跃信号的扩展函数。

产生单位冲激信号的扩展函数为:function y = delta(t)dt = 0、01;y = (u(t)-u(t-dt))/dt;产生单位阶跃信号的扩展函数为:% Unit step functionfunction y = u(t)y = (t>=0); % y = 1 for t > 0, else y = 0请将这二个MATLAB函数分别以delta 与u为文件名保存在work文件夹中,以后,就可以像教材中的方法使用单位冲激信号δ(t) 与单位阶跃信号u(t)。

2、2离散时间信号的仿真程序Program1_2用来产生离散时间信号x[n]=sin(0、2πn)。

% Program1_2% This program is used to generate a discrete-time sinusoidal signal and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsn = -10:10; % Specify the interval of timex = sin(0、2*pi*n); % Generate the signalstem (n,x) % Open a figure window and draw the plot of x[n]title ('Sinusoidal signal x[n]')xlabel ('Time index n')请仔细阅读该程序,比较程序Program1_1与Program1_2中的不同之处,以便自己编程时能够正确使用这种方法方针连续时间信号与离散时间信号。

程序Program1_3用来仿真下面形式的离散时间信号:x[n]={、、、、, 0、1, 1、1, -1、2, 0, 1、3, …、}↑n=0% Program1_3% This program is used to generate a discrete-time sequence% and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsn = -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 signalstem(n,x,'、') % Open a figure window and draw the plot of x[n]grid on,title ('A discrete-time sequence x[n]')xlabel ('Time index n')由于在程序的stem(n,x,'、') 语句中加有'、'选项,因此绘制的图形中每根棒条线的顶端就是一个实心点。

如果需要在序列的前后补较多的零的话,可以利用函数zeros(),其语法为:zeros(1, N):圆括号中的1与N表示该函数将产生一个一行N列的矩阵,矩阵中的所有元素均为零。

利用这个矩阵与序列x[n]进行组合,从而得到一个长度与n相等的向量。

例如,当x[n]={ 0、1, 1、1, -1、2, 0, 1、3} 时,为了得到程序Program1_3中的序列,↑n=0可以用这个MATLAB语句x = [zeros(1,4) x zeros(1, 2)] 来实现。

相关主题