武汉工程大学信号分析与处理实验文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(t )dt 1 (t ) 0,
t0
1.1
1, u (t ) 0,
t0 t0
1.2
下面给出产生单位冲激信号和单位阶跃信号的两个函数,供参考。 产生单位冲激信号的程序为:
function x=delta(t1,t2,t0) dt=0.01; t=t1:dt:t2; n=length(t); %信号的时间间隔 %信号时Leabharlann Baidu样本点向量 %时间样本点向量长度
实验一
一、实验目的:
连续时间信号的时域表示
1、掌握连续时间信号的 MATLAB 表示方法; 2、掌握用 MATLAB 描绘二维图像的方法。 二、实验原理: 信号是消息的载体,是消息的一种表现形式。信号可以是多种多样的,通常表现 为随时间变化的某些物理量,一般用 x(t)或 x(n)来表示。信号按照自变量的取值是否连 续可分为连续时间信号和离散时间信号。 连续时间信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了 有若干不连续点以外,信号都有确定的值与之对应。严格来说,MATLAB 并不能处理 连续信号,而是用等时间间隔点的样值来近似地表示连续信号。当取样时间间隔足够 小时,这些离散的样值就能较好地近似连续信号。在 MATLAB 中通常用向量来表示 连续时间信号,向量需要与时间变量相对应。 对于连续时间信号 x(t),可用 x、t 两个行向量来表示。其中向量 t 是形如 t = t1:p:t2 的 MATLAB 命令定义的时间范围向量,t1 为信号起始时间,t2 为终止时间,p 为时间 间隔。向量 x 为连续信号 x(t)在向量 t 所定义的时间点上的样值。如产生连续信号
x(t ) Sa (t ) sin(t ) 可用如下命令实现: t
t =-10:1.5:10; x=sin(t)./ t;
在命令窗口(Command Window)中可得到程序执行的结果即 x、t 的具体值。注 意:在 MATLAB 程序调试过程中,有时程序执行不出结果或虽然出结果但存在一些 问题,MATLAB 都会在 Command 窗口中给出错误说明,掌握利用 Command 窗口中
f (t ) f1 (t ) * f 2 (t ) f1 ( ) f 2 (t )d


(二)线性时不变(LTI)系统的单位冲激响应 给定一个连续时间 LTI 系统,在系统的初始条件为零时,用单位冲激信号(t)作用 于系统,此时系统的响应信号称为系统的单位冲激响应(Unit impulse response) ,一般 用 h(t)来表示。需要强调的是,系统的单位冲激响应是在激励信号为 (t)时的零状态响 应(Zero-state response) 。 系统的单位冲激响应是一个非常重要的概念,如果已知一个系统的单位冲激响 应,那么,该系统对任意输入信号的响应信号都可以求得。 (三)卷积的意义 对于 LTI 系统,根据系统的线性和时不变性以及信号可以分解成单位冲激函数可 得,任意 LTI 系统可以完全由它的单位冲激响应 h(t)来确定,系统的输入信号 x(t)和输 出信号 y(t)之间的关系可以用卷积运算来描述,即:
plot(t1,x1) 注:函数左移时,t0<0,即 t-|t0|;函数右移时,t0>0。
4、反折:y(t) = x(-t) 在 MATLAB 中有多种方法可以实现信号的反折运算。 (1)修改绘图函数 plot(t,x)中的时间变量 t,即用-t 代替原来的 t。 (2)直接利用原信号与其反折信号的数学关系式来实现。这种方法最符合信号反 折运算的实际意义。 (3)使用 MATLAB 内部函数 fliplr( )来实现信号的反褶运算。其用法为: y=
的说明检查程序的方法。 用上述向量对连续信号进行表示后,就可以用 plot 命令绘制信号的时域波形。命 令如下:
plot(t,x) title(‘x(t)=Sa(t)’) xlabel(‘t’)
axis([-10,10,-0.2,1.2])
绘制的信号波形如图一所示,当把 t 改为:t =-10:0.5:10;则可得到图二。因为 plot 命令将点与点之间用直线连接,当点与点之间距离很小时,绘出的图形就成了光滑的 曲线。但图二在 t=0 时,曲线是间断的。
fliplr(x),其中 x 为原信号,而 y 则为 x 的时域反折。需要说明的是,函数 fliplr()对信 号作时域反折,仅仅将信号中各个元素的次序作了一个反转,这种反转处理是独立于 时间变量 t 的。因此,还需要对时间变量 t 进行反折,即 t= -fliplr(x)。 5、展缩:y(t) = x(at) 其中 a 为任意常数。根据 a 的不同取值,尺度变换对信号 x(t)具有不同的影响。当 a > 1 时,y(t) = x(at),y(t)是将 x(t)在时间轴上压缩得到;当 0 < a < 1 时,y(t) = x(at), y(t)是将 x(t)在时间轴上扩展得到。在 MATLAB 中,按照数学上的常规方法即能实 现。 (二)周期信号 周期信号是一类非常重要的信号。给定一个信号 x(t),如果满足 x(t) = x(t+kT),则 该信号叫做周期信号。其中,k 为任意整数,T 为常数,通常称为信号的基本周期或最
图一
图二
应用 plot 函数时应确保自变量 t 和函数值 x 的个数相等;函数 axis([x1,x2,y1,y2]) 用来对横纵坐标进行限定,以完善图形,其中 x1 和 x2 分别为横坐标的起始和截止位 置,y1 和 y2 分别为纵坐标的起始和截止位置; xlabel(‘’)、ylabel(‘’)和 title(‘’)用于为
信号与系统实验指导书
小周期。周期信号可以看作是一个有限长非周期信号经过周期延拓之后形成的。 周期信号可用如下表达式定义: x(t )
k
x (t kT )
1

2.1
三、实验内容: 1、已知 x(t ) e 长值设为 0.01。 2、根据符号函数和单位阶跃函数的关系,利用符号函数 sign 实现单位阶跃函数。 要求图形窗口的横坐标范围为-5~5,纵坐标范围为-1.5~1.5。 3、任意定义一个有限长时间信号 x1(t),根据式 2.1 产生一个周期信号,绘制 x1(t) 和 x(t)的图形。 四、思考: 1、代数运算符号*和.*的区别是?
若信号的自变量的范围和 t 的范围相同,则不能用上述方法,如将 x = exp(-0.5*t) 进行左移得到 x1 = exp(-0.5*(t+2))后,还需要对 x1 的时间变量重新定义。由于函数的 平移可看作是函数时间向量的平移,而对应的样值不变,当函数左移时,所有时间序 号都减小|t0|个单位,反之,则增加 t0 个单位。因此可用如下方式实现: t1=t+t0; x1=x;
function [y,t] = sigadd(x1,t1,x2,t2) t = min(min(t1),min(t2)):max(max(t1),max(t2)); y1 = zeros(1,length(t)); y2 = y1; y1(find((t>=min(t1))&(t<=max(t1))==1))=x1; y2(find((t>=min(t2))&(t<=max(t2))==1))=x2; y = y1+y2; %结果的时间向量 %初始化 %在公共区间定义 y1 %在公共区间定义 y2
x=zeros(1,n); x(1,(t0-t1)/dt+1)=1/dt; stairs(t,x);
%各样本点函数值赋值为零 %在时间 t=-t0 处,样本点赋值为 1/dt
产生单位阶跃信号的程序为:
function x=ut(t) x=(t>0); %t>0 时 x 为 1,否则为 0
在调用该函数表示信号时,需要先定义向量 t,如 t=-1:0.01:3。 对于其他常用信号,可以直接调用 MATLAB 中的内部函数进行定义,例如:正 弦信号:sin( ),余弦信号:cos( ),指数信号:exp( ),符号函数:sign( );周期方波: square( ),周期锯齿波:sawtooth( )。复指数信号是时间 t 的复函数,需要用模和相角或 实部和虚部来表示复指数信号随时间变化的规律,对应的函数分别为 abs( ),angle( ), real( ),imag( )。 各函数的参数及定义方法可参考 MATLAB 的帮助文件。 三、实验内容: 1、参考示例程序,绘制信号 e 2t cos 3t[u (t ) u (t 3)] 的图形,t 取-1 到 4,步长 值设为 0.01。 2、产生一个指数为 [0.1 ( / 4) * i ] * t 的复指数函数,绘出函数的实部、虚部、幅 度和相位的波形,t 取 0 到 20,步长值设为 0.1。 四、思考: 1、为什么图二中 t=0 处曲线是间断的,如何使其成为连续的曲线?
clear; t = -5:0.01:5; x = exp(-0.5*t).*ut(t); x1 = exp(-0.5*(t+2)).*ut(t+2); subplot(211)
信号与系统实验指导书
plot(t,x) title ('原信号 x(t)') subplot (212) plot (t,x1) title (' x(t)左移 2') xlabel (' t (sec)')
该图添加横、纵坐标说明和标题;有时在一个程序中需要将几个图形绘制在一个窗 口,利用 subplot(m,n,k)函数可以将当前窗口分成 m 行 n 列个子窗口,并在第 k 个子窗 口绘图,窗口的排列顺序为从左至右,从上至下分别为 1,2,…m*n。 以上为几个常用绘图函数的基本用法,有关各函数的其他参数可参考 MATLAB 的帮助文件。 单位冲激信号(t) 和单位阶跃信号 u(t)是信号处理中两个最基本的信号,它们的定 义如下:
其中 x1 和 x2 为参与加法运算的两信号,t1 和 t2 分别为 x1 和 x2 的时间向量。 2、乘法:x1(t)·x2(t) 序列的乘法运算为对应位置处量值的相乘,在 MATLAB 中由数组运算符“.*”实 现,也受到“+”运算符同样的限制。 3、时移:y(t) = x(t - t0) 其中,t0 为位移量,当 t0>0 时,y(t)为 x(t)右移 t0 时刻之后的结果,当 t0<0 时, y(t)为 x(t)左移|t0|时刻之后的结果。 在 MATLAB 中,时移运算与数学上习惯表达方法完全相同。例:
y (t ) x( )h(t )d


由于系统的单位冲激响应是零状态响应,故按照上式求得的系统响应也是零状态 响应。它是描述连续时间系统输入输出关系的一个重要表达式。 (四)函数说明 利用 MATLAB 的内部函数 conv( 其语法为:y = )可以很容易地完成两个信号的卷积积分运算。
0.5t
u (t ) , y (t ) x(1.5t 3) ,绘制 x(t)和 y(t)的图形,t 取-3 到 5,步
信号与系统实验指导书
实验三
一、实验目的:
连续时间信号的卷积
1、掌握两个连续时间信号卷积的计算方法和编程技术。 2、进一步熟悉用 MATLAB 描绘二维图像的方法。 二、实验原理: 卷积积分在信号与线性系统分析中具有非常重要的意义,是信号与系统分析的基 本方法之一。 (一)卷积的定义 连续时间信号 f1(t)和 f2(t)的卷积积分(简称为卷积)f(t)定义为:
信号与系统实验指导书
实验二
一、实验目的:
连续时间信号的时域分析
1、掌握用 MATLAB 对连续信号进行基本运算和时域变换的方法; 2、掌握用 MATLAB 表示周期信号的方法。 二、实验原理: (一)连续时间信号的基本运算和时域变换 1、加法:x1(t)+x2(t) 信号的加法运算为对应位置处量值的相加,在 MATLAB 中可用运算符“+”实 现,但要求参与运算的两信号向量的长度必须相等。如果长度不等或者长度相等但采 样位置不同,则不能直接应用该运算符,此时需要先给定参数使序列具有相同的位置 向量和长度。下面给出 sigadd 函数实现任意两信号的加法运算。
相关文档
最新文档