信号与系统课程设计(MATLAB)
更新时间:2024-01-15 05:00:01 阅读量: 教育文库 文档下载
《信号与系统课程设计》开设方案
信号与系统课程设计是一门实践环节必修课。其目的是培养学生正确的设计思想,理论联系实际的科学态度,严肃认真、实事求是的科学态度和勇于探索的创新精神。培养学生综合运用所学信号与系统及数字信号处理的知识、分析和解决工程技术问题的能力,为毕业设计打下基础。 一、课程基本要求
课程设计对象:电子信息工程专业本科班 课程设计学时:24 二、时间安排 开设时间 任务目标 指导老师给学生布置课程设计的任务及要求。 第8周星期日 学生完成组队,选题工作。 学生根据设计任务及要求,查阅资料,熟悉相关的理第9周星期日 论知识。 第10周星期日 学生设计并确定方案 第11周星期日 学生编写并调试程序 第12周星期日 学生撰写课程设计报告 第13周星期日 课程设计答辩,评分 三、设计题目、任务及要求
课程设计可参考以下6个题目,学生可在此范围内选择。 设计题目一、连续信号卷积积分的MATLAB实现 设计题目二、连续信号频域分析的MATLAB实现
设计题目三、基于MATLAB的系统零极点及频率响应分析 设计题目四、LTI系统零状态响应的MATLAB仿真
设计题目五、在MATLAB环境下实现连续信号复频域分析 设计题目六、基于MATLAB的离散信号与系统的Z域分析 设计题目七 信号的产生与时域运算 设计题目八 信号频谱分析
设计题目九 线性连续时间系统的分析 设计题目十 离散时间信号与系统 (详见:课程设计指导书) 四、设计报告及书写内容要求
课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下四个部分: (1)设计题目,要求。
(2)软件设计调试过程及仿真结果。
(3)总结:包括课程设计过程中的学习体会与收获。 五、考核方式
指导老师负责验收设计结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:
(1)平时出勤(占10%)。 (2)程序设计调试(占30%)。 (3)设计报告(占30%)。 (4)答辩效果(占30%)。
课程设计指导书
设计题目一 连续信号卷积积分的MATLAB实现
一、 设计目的
1. 熟悉卷积积分的定义和性质
2. 了解卷积积分在系统分析中的应用 3. 熟悉用MATLAB实现卷积的方法
二、 基本原理
信号的卷积是数学上的一种积分运算,两个信号的卷积定义为:
信号的卷积运算在系统分析中主要用于求解系统的零状态响应。一般情况,卷积积分的运算比较困难,但在MATLAB中则变得十分简单,MATLAB中是利用conv函数来实现卷积的。 conv
功能:实现二个函数 格式: 说明:
和
表示二个函数,
的卷积。
表示两个函数的卷积结果。 例题:已知两信号
求卷积
MATLAB程序如下: t1=1:0.01:2;
f1=ones(size(t1)); %高度为一的门函数,时间从t=1到t=2
t2=2:0.01:3;
f2=ones(size(t2)); %高度为一的门函数,时间从t=2到t=3
g=conv(f1,f2); %对f1和f2进行卷积 t3=3:0.01:5;
subplot(3,1,1);plot(t1,f1);grid; %画f1的波形 subplot(3,1,2),plot(t2,f2);grid %画f2的波形 subplot(3,1,3),plot(t3,g);grid %画g的波形
三、设计内容
1. 已知两信号
求卷积 2. 已知两信号
比较此题与例题。
求卷积
四、 设计报告要求
1. 简述设计目的和原理。
2. 理论上计算信号的卷积积分。 3. 记录程序运行结果。 4. 收获与建议。
设计题目二 连续信号频域分析的MATLAB实现
一、设计目的
1. 熟悉傅里叶变换的性质 2. 熟悉常见信号的傅里叶变换
3. 了解傅里叶变换的MATLAB实现方法
二、 基本原理
傅里叶变换是信号分析的最重要的内容之一。从已知信号f (t)求出相应的频谱函数F(jω)的数学表示为:
f (t)的傅里叶变换存在的充分条件是f (t)在无限区间内绝对可积,即f (t)满足下式:
但上式并非傅里叶变换存在的必要条件。在引入广义函数概念之后,使一些不满足绝对可积条件的函数也能进行傅里叶变换。 傅里叶反变换的定义为:
在这一部分的学习中,大家都体会到了这种数学运算的麻烦。在MATLAB语言中有专门对信号进行正反傅里叶变换的语句,使得傅里叶变换很容易在MATLAB中实现。 在MATLAB中实现傅里叶变换的方法有两种,一种是利用MATLAB中的Symbolic Math Toolbox提供的专用函数直接求解函数的傅里叶变换和傅里叶反变换,另一种是傅里叶变换的数值计算实现法。下面分别介绍这两种实现方法的原理。 1、直接调用专用函数法
①在MATLAB中实现傅里叶变换的函数为:
? F=fourier( f ) 对f(t)进行傅里叶变换,其结果为F(w) ? F=fourier(f,v) 对f(t)进行傅里叶变换,其结果为F(v) ? F=fourier( f,u,v ) 对f(u)进行傅里叶变换,其结果为F(v) ②傅里叶反变换
? f=ifourier( F ) 对F(w)进行傅里叶反变换,其结果为f(x) ? f=ifourier(F,U) 对F(w)进行傅里叶反变换,其结果为f(u) ? f=ifourier( F,v,u ) 对F(v)进行傅里叶反变换,其结果为f(u) 由于MATLAB中函数类型非常丰富,要想了解函数的意义和用法,可以用mhelp命令。如在命令窗口键入:mhelp fourier回车,则会得到fourier的意义和用法。 注意: ⑴.在调用函数fourier( )及ifourier( )之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。对fourier( )中的f及ifourier( )中的F也要用符号定义符sym将其说明为符号表达式。具体方法参见第一部分第四章第三节
⑵.采用fourier( )及fourier( )得到的返回函数,仍然为符号表达式。在对其作图时要用ezplot( )函数,而不能用plot()函数。
⑶.fourier( )及fourier( )函数的应用有很多局限性,如果在返回函数中含有δ(ω)等函数,则ezplot( )函数也无法作出图来。另外,在用fourier( )函数对某些信号进行变换时,其返回函数如果包含一些不能直接表达的式子,则此时当然也就无法作图了。这是fourier( )函数的一个局限。另一个局限是在很多场合,尽管原时间信号f(t)是连续的,但却不能表示成符号表达式,此时只能应用下面介绍的数值计算法来进行傅氏变换了,当然,大多数情况下,用数值计算法所求的频谱函数只是一种近似值。
例①:求门函数f(t)=ε(t+1)-ε(t-1)的傅里叶变换,并画出幅度频谱图 MATLAB程序如下:
syms t w %定义两个符号变量t,w
Gt=sym('Heaviside(t+1)-Heaviside(t-1)'); %产生门宽为2的门函数 Fw=fourier(Gt,t,w); %对门函数作傅氏变换求FFw=maple('convert',Fw,'piecewise'); %数据类型转换 FFP=abs(FFw); %求振幅频谱
ezplot(FFP,[-10*pi 10*pi]);grid; %绘制函数图形,并加网格 axis([-10*pi 10*pi 0 2.2]) %限定坐标轴范围 运行结果:
例②:求函数的傅里叶反变换f(t)
MATLAB程序如下:
syms t w %定义两个符号变量t,w Fw=sym('1/(1+w^2)'); %定义频谱函数ft=ifourier(Fw,w,t); %对频谱函数运行结果:
ft =
1/2*exp(-t)*Heaviside(t)+1/2*exp(t)*Heaviside(-t) 2、傅里叶变换的数值计算实现法
严格说来,如果不使用symbolic工具箱,是不能分析连续时间信号的。采用数值计算方法实现连续时间信号的傅里叶变换,实质上只是借助于MATLAB的强大数值计算功能,特别是其强大的矩阵运算能力而进行的一种近似计算。傅里叶变换的数值计算实现法的原理如下:
对于连续时间信号f(t),其傅里叶变换为:
进行傅氏反变换
其中η为取样间隔,如果f(t)是时限信号,或者当
大于某个给定值时,f(t)的值已经衰
减得很厉害,可以近似地看成是时限信号,则上式
中的n取值就是有限的,假定为N,有:
若对频率变量ω进行取样,得:
三、 设计内容
1. 已知下列系统函数H (s)或状态方程,求其零极点,并画出零极点图。
①
②
③状态方程:
输出方程: y = [4 5 1]X
2. 已知下列系统函数H (s),求其频率特性。
①
②
3. 已知系统函数H (s),求其频率特性和零极图。
四、 设计报告要求
1. 简述设计目的及基本原理
2. 计算系统的零极点并与设计结果进行比较 3. 记录频率特性曲线
4. 收获与建议
设计题目四 LTI系统零状态响应的MATLAB仿真
一、
设计目的
1、 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法 2、 熟悉离散时间系统的单位冲激响应、阶跃响应的意义及求解方法 3、 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法 4、 熟悉应用MATLAB实现求解系统响应的方法
二、
基本原理
1、连续时间系统
对于连续的LTI系统,当系统输入为e(t),输出为r(t),则输入与输出之间满足如下的线性常系数微分方程:
当系统输入为单位冲激信号δ(t)时产生的零状态响应称为系统的单位冲激响应,用h(t)表示。若输入为单位阶跃信号ε(t)时,系统产生的零状态响应则称为系统的单位阶跃响应,记为g(t),如下图所示。
系统的单位冲激响应h(t)包含了系统的固有特性,它是由系统本身的结构及参数所决定的,与系统的输入无关。我们只要知道了系统的冲激响应,即可求得系统在不同激励下产生的响应。因此,求解系统的冲激响应h(t)对我们进行连续系统的分析具有非常重要的意义。
在MATLAB中有专门用于求解连续系统冲激响应和阶跃响应, 并绘制其时域波形的函数impulse( ) 和step( )。
如果系统输入为e(t),冲激响应为h(t),系统的零状态响应为r(t),则有:
若已知系统的输入信号及初始状态,我们便可以用微分方程的经典时域求解方法,求出系统的响应。但是对于高阶系统,手工计算这一问题的过程非常困难和繁琐。
在MATLAB中,应用lsim( )函数很容易就能对上述微分方程所描述的系统的响应进行仿真,求出系统在任意激励信号作用下的响应。lsim( )函数不仅能够求出连续系统在指定的任意时间范围内系统响应的数值解,而且还能同时绘制出系统响应的时域波形图。 以上各函数的调用格式如下: ⑴. impulse( ) 函数
函数impulse( )将绘制出由向量a和b所表示的连续系统在指定时间范围内的单位冲激响应h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。
? impulse(b,a) 以默认方式绘出由向量a和b所定义的连续系统的冲激响应的时域波形。
? impulse(b,a ,t0) 绘出由向量a和b所定义的连续系统在0 ~ t0时间范围内冲激响应的时域波形。
? impulse(b,a,t1:p:t2) 绘出由向量a和b所定义的连续系统在t1 ~ t2时间范围内,并且以时间间隔p均匀取样的冲激响应的时域波形。
? y=impulse(b,a,t1:p:t2) 只求出由向量a和b所定义的连续系统在t1 ~ t2时间范围内,并且以时间间隔p均匀取样的冲激响应的数值解,但不绘出其相应波形。 ⑵. step( ) 函数
函数step( )将绘制出由向量a和b所表示的连续系统的阶跃响应,在指定的时间范围内的波形图,并且求出数值解。和impulse( )函数一样,step( )也有如下四种调用格式: step( b,a) step(b,a,t0)
step(b,a,t1:p:t2)
y=step(b,a,t1:p:t2)
上述调用格式的功能和impulse( )函数完全相同,所不同只是所绘制(求解)的是系统的阶跃响应g(t),而不是冲激响应h(t)。 ⑶. lsim( )函数
根据系统有无初始状态,lsim( )函数有如下两种调用格式:
①系统无初态时,调用lsim( )函数可求出系统的零状态响应,其格式如下:
? lsim(b,a,x,t) 绘出由向量a和b所定义的连续系统在输入为x和t所定义的信号时,系统零状态响应的时域仿真波形,且时间范围与输入信号相同。其中x和t是表示输入信号的行向量,t为表示输入信号时间范围的向量,x则是输入信号对应于向量t所定义的时间点上的取样值。
? y=lsim(b,a,x,t) 与前面的impulse 和step函数类似,该调用格式并不绘制出系统的零状态响应曲线,而只是求出与向量t定义的时间范围相一致的系统零状态响应的数值解。
②系统有初始状态时,调用lsim( )函数可求出系统的全响应,格式如下:
? lsim(A,B,C,D,e,t,X0) 绘出由系数矩阵A,B,C,D所定义的连续时间系统在输入为e和t所定义的信号时,系统输出函数的全响应的时域仿真波形。t为表示输入信号时间范围的向量,e则是输入信号e(t)对应于向量t所定义的时间点上的取样值,X0表示系统状态变量X=[x1,x2,…..xn]'在t=0时刻的初值。
? [Y,X]= lsim(A,B,C,D,e,t,X0) 不绘出全响应波形,而只是求出与向量t定义的时间范围相一致的系统输出向量Y的全响应以及状态变量X的数值解。
显然,函数lsim( )对系统响应进行仿真的效果取决于向量t的时间间隔的密集程度,t的取样时间间隔越小则响应曲线越光滑,仿真效果也越好。 说明:
(1)当系统有初始状态时,若使用lsim( )函数求系统的全响应,就要使用系统的状态空间描述法,即首先要根据系统给定的方式,写出描述系统的状态方程和输出方程。假如系统原来给定的是微分方程或系统函数,则可用相变量法或对角线变量等方法写出系统的状态方程和输出方程。其转换原理如前面设计四所述。
(2)显然利用lsim( )函数不仅可以分析单输入单输出系统,还可以分析复杂的多输入多输出系统。
例题1: 若某连续系统的输入为e(t),输出为r(t),系统的微分方程为:
①求该系统的单位冲激响应h(t)及其单位阶跃响应g(t)。
②若
求出系统的零状态响应r(t)
① 求冲激响应及阶跃响应的MATLAB程序:
a=[1 5 6]; b=[3 2];
subplot(2,1,1), impulse(b,a,4) subplot(2,1,2), step(b,a,4) 运行结果如下:
② 求零状态响应的MATLAB程序:
a=[1 5 6]; b=[3 2];
p1=0.01; %定义取样时间间隔为0.01
t1=0:p1:5; %定义时间范围
x1=exp(-2*t1); %定义输入信号
lsim(b,a,x1,t1), %对取样间隔为0.01时系统响应进行仿真 hold on; %保持图形窗口以便能在同一窗口中绘制多条曲线 p2=0.5; %定义取样间隔为0.5 t2=0:p2:5; %定义时间范围 x2=exp(-2*t2); %定义输入信号
lsim(b,a,x2,t2), hold off %对取样间隔为0.5时系统响应进行仿真并解除保持 运行结果如下:
例题2 已知一个过阻尼二阶系统的状态方程和输出方程分别为:
始状态为X(0)=[4 -5]T 求系统在求全响应程序如下:
A=[0 1 ; -2 -3] ; B=[0 2]'; C=[0 1]; D=[0];
X0=[4 -5]'; %定义系统初始状态
r(t)=[0 1]X(t) 若系统初作用下的全响应。
t=0: 0.01:10;
E=[3*exp(-4*t).*ones(size(t))]'; %定义系统激励信号
? F=ztrans( f ) 对f(n)进行Z变换,其结果为F(z) ? F=ztrans(f,v) 对f(n)进行Z变换,其结果为F(v) ? F=ztrans(f,u,v) 对f(u)进行Z变换,其结果为F(v) ? f=itrans ( F ) 对F(z)进行Z反变换,其结果为f(n) ? f=itrans(F,u) 对F(z)进行Z反变换,其结果为f(u) ? f=itrans(F,v,u ) 对F(v)进行Z反变换,其结果为f(u)
注意: 在调用函数ztran( )及iztran( )之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。 例①.用MATLAB求出离散序列MATLAB程序如下:
syms k z
f=0.5^k; %定义离散信号
Fz=ztrans(f) %对离散信号进行Z变换 运行结果如下: Fz =
2*z/(2*z-1)
例②.已知一离散信号的Z变换式为MATLAB程序如下:
syms k z
Fz=2* z/(2*z-1); %定义Z变换表达式 fk=iztrans(Fz,k) %求反Z变换 运行结果如下;
fk = (1/2)^k
2、离散系统的频率特性
同连续系统的系统函数H(s)类似,离散系统的系统函数H(z)也反映了系统本身固有的特性。对于离散系统来说,如果把其系统函数H(z)中的复变量z换成函数
,那么所得的
,求出它所对应的离散信号f(k)
的Z变换
就是此离散系统的频率响应特性,即离散时间系统的频率响应为:
其中,
称为离散系统的幅频特性,
称为系统的相频特性。同连续系统
一样,离散时间系统的幅频特性也是频率的偶函数,相频特性也是频率的齐函数。 由于
是频率?的周期函数,所以离散系统的频率响应特性也是频率?的周期函数,其
周期为,或者频率周期为。实际上,这就是抽样系统的抽样频率,而其
中的T则是系统的抽样周期。频率响应呈现周期性是离散系统特性区别于连续系统特性的
重要特点。因此,只要分析个频率特性。
在范围内的情况,便可分析出系统的整
鉴于离散系统频率响应特性的特点,为了表示方便起见,我们通常将其中的量?来代替,即令响应特性。相应地,用
代入系统函数H(z)中,用
用一个变
函数来表示离散系统的频率
来表示。应该特
表示幅频特性,而相频特性仍用
别注意的是,虽然这里的变量?仍然称为频率变量,但是它已经不是原来意义上的角频率概念,而实际上是表示角度的概念。我们称之为数字角频率。它与原来角频率的关系为:
也就是说,根据离散系统的系统函数H(z),令其中的
,并且代入
范围内
不同的频率值(实际上是角度值),就可以逐个计算出不同频率时的响应,求出离散系统的频率响应特性。再利用离散系统频率特性的周期性特点(周期为2?),求出系统的整个频率特性。
离散系统的幅频特性曲线和相频特性曲线能够直观地反映出系统对不同频率的输入序列的处理情况。 在函数
随?的变换关系中,在?=0附近,反映了系统对输入信号低频部分的处
理情况,而
在?=?附近,则反映了系统对输入信号高频部分的处理情况。
一般来说,分析离散系统频率响应特性就要绘制频率响应曲线,而这是相当麻烦的。虽然可以通过几何
矢量法来定性画出频率响应特性曲线,但一般来说这也是很麻烦的。值得庆幸的是,MATLAB为我们提
供了专门用于求解离散系统频率响应的函数fregz() ,其调用格式如下:
? [H,w]=fregz(B,A,N) 其中,B和A分别是表示待分析的离散系统的系统函数的分子,分
母多项式的向量,N为正整数,返回向量H则包含了离散系统频率响应函数
范围内
的N个频率等分点的值。向量?则包含
范围内的N个频率等分点。在默认情况下
在
N=512。 ? [H,w]=fregz(B,A,N,'whole') 其中,B,A和N的意义同上,而返回向量H
包含了频率
响应函数
在
范围内N个频率等分点的值。
由于调用fregz()函数只能求出离散系统频率响应的数值,不能直接绘制曲线图,因此,我们可以先用
fregz()函数求出系统频率响应的值,然后再利用MATLAB的abs()和angle()函数以及plot()命令, 即可绘制出系统在
或
范围内的幅频特性和相频特性曲线。
例①. 若离散系统的系统函数为
10个等分点 的频率响应
的样值。
,请用MATLAB计算频率范围内
MATLAB程序如下:
A=[1 0]; %分母多项式系数向量 B=[1 -0.5]; %分子多项式系数向量 [H,w]=freqz(B,A,10) %求出对应运行结果如下: H =
0.5000 0.5245 + 0.1545i 0.5955 + 0.2939i 0.7061 + 0.4045i 0.8455 + 0.4755i 1.0000 + 0.5000i 1.1545 + 0.4755i 1.2939 + 0.4045i 1.4045 + 0.2939i 1.4755 + 0.1545i w = 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274
例②. 用MATLAB计算前面离散系统在值,并绘出相
应的幅频特性和相频特性曲线。 MATLAB程序如下: A=[1 0]; B=[1 -0.5];
频率范围内200个频率等分点的频率响应范围内10个频率点的频率响应样值
[H,w]=freqz(B,A,200);
[H,w]=freqz(B,A,200,'whole'); %求出对应
范围内200个频率点的频率
响%应样值
HF=abs(H); %求出幅频特性值 HX=angle(H); %求出相频特性值
subplot(2,1,1);plot(w,HF) %画出幅频特性曲线 subplot(2,1,2);plot(w,HX) %画出相频特性曲线 运行结果如下:
运行结果分析:从该系统的幅频特性曲线可以看出,该系统呈高通特性,是一阶高通滤波器。
三、 设计内容
1. 求出下列离散序列的Z变换
①
② ③ ④
2. 已知下列单边离散序列的z变换表达式,求其对应的原离散序列。
①
②
③
④
3. 已知离散系统的系统函数H (z)如下,请绘出系统的幅频和相频特性曲线,并说明系统的作用
①
②
4.已知描述离散系统的差分方程为:
请绘出系统的幅频和相频特性曲线,并说明系统的作用
四、基本要求
1、 熟悉正反z变换的意义及用MATLAB软件实现的方法
2、 熟悉离散系统的频率响应特性及用MATLAB软件实现的方法 3、 编写MATLAB程序 五、 设计报告要求
1、 简述设计目的及设计原理
2、 计算相应z变换或反z变换的理论值,并与设计结果进行比较 3、 记录离散系统的频率响应特性曲线,分析系统作用 4、 写出程序清单 5、 收获与建议
设计题目七 信号的产生与时域运算
一、设计目的
1. 掌握用matlab软件产生基本信号的方法.
2.应用matlab软件实现信号的加、减、乘、反褶、移位、尺度变换及卷积运算。
二、基本原理
(一)产生信号波形的方法
利用Matlab软件的信号处理工具箱(Signal Processing Toolbox)中的专用函数产生信号并绘出波形。 a.产生正弦波
t=0:0.01:3*pi; y=sin(2*t); plot(t,y)
b.产生叠加随机噪声的正弦波
t=0:0.01:3*pi; y=10*sin(2*t); s=y+randn(size(t)); plot(t,s)
c. 产生周期方波
t=0:0.01:1;
y=square(4*pi*t); plot(t,y)
d. 产生周期锯齿波
t=(0:0.001:2.5);
y=sawtooth(2*pi*30*t); plot(t,y),axis([0 0.2 -1 1])
e.产生Sinc函数
x=linspace(-5,5); y=sinc(x); plot(x,y)
f.产生指数函数波形
x=linspace(0,1,100); (或x=0:0.01:1;) y=exp(-x); plot(x,y)
(二)信号的运算 1.加(减)、乘运算
要求二个信号序列长度相同.例 t=0:0.01:2; f1=exp(-3*t);
f2=0.2*sin(4*pi*t); f3=f1+f2; f4=f1.*f2;
subplot(2,2,1);plot(t,f1);title('f1(t)'); subplot(2,2,2);plot(t,f2);title('f2(t)'); subplot(2,2,3);plot(t,f3);title('f1+f2'); subplot(2,2,4);plot(t,f4);title('f1*f2');
2.用matlab的符号函数实现信号的反褶、移位、尺度变换. 由f(t)到f(-at+b)(a>0)步骤:
f(t)?移位???f(t?b)?尺度???f(at?b)?反褶???f(?at?b)
例:已知f(t)=sin(t)/t,试通过反褶、移位、尺度变换由f(t)的波形得到f(-2t+3) 的波形. syms t;
f=sym('sin(t)/t'); %定义符号函数f(t)=sin(t)/t f1=subs(f,t,t+3); %对f进行移位
f2=subs(f1,t,2*t); %对f1进行尺度变换 f3=subs(f2,t,-t); %对f2进行反褶 subplot(2,2,1);ezplot(f,[-8,8]);grid on; % ezplot是符号函数绘图命令
subplot(2,2,2);ezplot(f1,[-8,8]);grid on; subplot(2,2,3);ezplot(f2,[-8,8]);grid on; subplot(2,2,4);ezplot(f3,[-8,8]);grid on;
(注:也可用一条指令:subs(f,t,-2*t+3)实现f(t)到f(-2t+3)的变换)
(三) 卷积运算 Y=conv(x,h)
实现x,h二个序列的卷积,假定都是从n=0开始.Y序列的长度为x,h序列的长度之和再减1.
例1:二个方波信号的卷积. y1=[ones(1,20),zeros(1,20)]; y2=[ones(1,10),zeros(1,20)]; y=conv(y1,y2); n1=1:length(y1); n2=1:length(y2); L=length(y)
subplot(3,1,1);plot(n1,y1);axis([1,L,0,2]); subplot(3,1,2);plot(n2,y2);axis([1,L,0,2]); n=1:L;
subplot(3,1,3);plot(n,y);axis([1,L,0,20]);
例2:二个指数信号的卷积. t=0:0.01:1; y1=exp(-6*t); y2=exp(-3*t); y=conv(y1,y2); l1=length(y1) l2=length(y2) l=length(y)
subplot(3,1,1);plot(t,y1); subplot(3,1,2);plot(t,y2); t1=0:0.01:2;
subplot(3,1,3);plot(t1,y);
三、设计内容
1. 自选二个简单的信号,进行加、乘、卷积运算.
2. 自选一个简单的信号进行反褶、平移、尺度变换运算.
四、设计要求
1.预习设计原理;
2.对设计内容编写程序(M文件),上机运行; 3.绘出运算或变换后信号的波形.
五、 设计报告要求
1、 简述设计目的及设计原理
2、 进行信号相应运算的理论计算,并与设计结果进行比较 3、 写出程序清单 5、 收获与建议
设计题目八 信号频谱分析
一、设计目的
1.掌握用matlab软件绘制信号频谱的方法; 2.进一步理解抽样定理;
3.理解傅里叶变换的性质(频移特性).
二、基本原理
(一)fft函数的调用
matlab提供fft函数来计算信号x(n)的快速离散傅里叶变换 (FFT). ? 格式:y=fft(x)
计算信号x的快速离散傅里叶变换y.若x的数据长度为2的整数次幂时,用基-2算法,运算速度较快,否则采用较慢的分裂算法. ? 格式:y=fft(x,N)
计算信号x的N点快速离散傅里叶变换,若x的数据长度大于N,截断x,若x的数据实际长度小于N,则自动补一些零,使之长度等于N. 快速离散傅里叶反变换(IFFT). ? x=ifft(Y)
注意:
1.频率计算.若N点序列x(n)(n=0,1,…,N-1)是在采样频率fs(Hz)下获得,它的快速离散傅里叶变换(FFT)也是N点序列. 即X(k)(k=0,1,…,N-1),则第k点所对应的实际频率f=k×fs/N. 2.作快速离散傅里叶变换时,幅值大小与选择点数N有关,但不影响分析结果.
(二)频谱分析
例:用FFT分析信号频率成分
一被噪声污染的信号,很难看出它所包含的频率分量,如一个由50Hz和150Hz正弦信号构成的信号,受到均值为零、均方差为0.5的高斯随机信号的于扰,数据采样率fs=500Hz.通过FFT来分析其信号频率成分,用matlab实现如下:
fs=500; %采样频率fs=500Hz. t=0:1/fs:1; %采样周期为1/fs.
f=sin(2*pi*50*t)+sin(2*pi*150*t); % 产生信号f(t) subplot(3,1,1);plot(t,f);title('原始信号'); y=f+0.5*randn(1,length(t)); %加噪
subplot(3,1,2);plot(t,y);title('受噪声污染的信号'); N=256;
Y=fft(y,N); %对加噪信号进行FFT k=0:N-1; f=fs*k/N;
subplot(3,1,3);plot(f,abs(Y));title('FFT(幅度谱)');
(由频谱图可见,在50Hz和150Hz各出现很长的谱线,表明含噪信号y中含有这二个频率的信号.在350Hz和450Hz处也出现很长的谱线,这并不是说y中也含350Hz和450Hz的信号,这是由于采样信号的频谱是以采样频率fs为间隔周期出现而造成的)
注意: 当采样频率fs>2fm=2*150=300 Hz时,满足奈奎斯特抽样定理条件,不会产生频谱混迭现象.当fs<300 Hz时则会产生频谱混迭现象.
(三)傅里叶变换的频移特性 若F(f(t)]=F(ω),则
例:设f(t)=sin(400? t),ω0=200?.
fs=1000; %采样频率fs=1000Hz. t=0:1/fs:1;
y1=sin(400*pi*t);
y2=sin(400*pi*t).*exp(j*200*pi*t); N=512;
Y1=fft(y1,N);
F[f(t)ej?0t]?F(ω-?0)Y2=fft(y2,N);
subplot(3,1,1);plot(t,y1); k=0:N-1; f=fs*k/N;
subplot(3,1,2);plot(f,abs(Y1)); subplot(3,1,3);plot(f,abs(Y2));
三、设计内容
设f(t)= 5sin(2*pi*30*t)+2sin(2*pi*60*t)+0.5sin(2*pi*90*t).
1. 对f(t)分别以fs1=300 Hz和fs2=150 Hz进行采样,然后将二个采样信号进行快速离散傅里叶变换(FFT),观察频谱图,指出是否产生频谱混迭现象. 2. 将f(t)的频谱右移100Hz.
四、设计要求
1.预习基本原理;
2.对设计内容编写程序(M文件),上机运行; 3.绘出频谱图.
五、 设计报告要求
1、 简述设计目的及设计原理
2、进行傅立叶变换的理论计算,并与设计结果相比较 3、 绘出频谱图 4、 写出程序清单 5、 收获与建议
设计题目九 线性连续时间系统的分析
一、设计目的
1.掌握用matlab分析系统时间响应的方法 2.掌握用matlab分析系统频率响应的方法 3.掌握系统零、极点分布与系统稳定性关系
二、设计原理
1. 系统函数H(s)
系统函数:系统零状态响应的拉氏变换与激励的拉氏变换之比. H(s)=R(s)/E(s)
在matlab中可采用多种方法描述系统,本文采用传递函数(系统函数)描述法. 在matlab中, 传递函数描述法是通过传递函数分子和分母关于s降幂排列的多项式系数来表示的.例如,某系统传递函数如下
H(s)?s?1s2?1.3s?0.8(1)
则可用如下二个向量num和den来表示: num=[1,1]
den=[1,1.3,0.8]
2. 用matlab分析系统时间响应
1)脉冲响应
y=impulse(num,den,T)
T:为等间隔的时间向量,指明要计算响应的时间点.
2)阶跃响应
y=setp(num,den,T) T同上.
3)对任意输入的响应 y=lsim(num,den,U,T) U:任意输入信号. T同上.
例:对式(1)系统,分别求脉冲响应、阶跃响应及对输入u(t)=sin(t)的响应. num=[1,1];
den=[1,1.3,0.8]; T=0:0.1:3;
y1=impulse(num,den,T); y2=step(num,den,T); U=sin(T);
y3=lsim(num,den,U,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('输入为u=sint的响应')
3.用matlab分析系统频率响应特性
频响特性: 系统在正弦激励下稳态响应随信号频率变化的特性.
H(j?)?H(s)s?j??H(j?)ej?(?)
|H(j?)|:幅频响应特性.
?(?):相频响应特性(或相移特性).
Matlab求系统频响特性函数freqs的调用格式: h=freqs(num,den,?)
?:为等间隔的角频率向量,指明要计算响应的频率点. 例:求式(1)系统的频响特性.
num=[1,1];
den=[1,1.3,0.8]; W=0:0.1:100;
h=freqs(num,den,W);
subplot(1,2,1);plot(W,abs(h));title('幅频特性') axis([0,20,0,1.5]);
set(gca,'xtick',[0,10,20]);set(gca,'ytick',[0,1/sqrt(2),1.25]);grid on; subplot(1,2,2);plot(W,angle(h));title('相频特性') axis([0,20,-pi/2,0.2]);
set(gca,'xtick',[0,10,20]);set(gca,'ytick',[-pi/2,-pi/4,0]);grid on;
4.系统零、极点分布与系统稳定性关系
系统函数H(s)集中表现了系统的性能,研究H(s)在S平面中极点分布的位置,可很方面地判断系统稳定性.
1) 稳定系统: H(s)全部极点落于S左半平面(不包括虚轴),则可以满足
[h(t)]?0lim
t??系统是稳定的.
2)不稳定系统: H(s)极点落于S右半平面,或在虚轴上具有二阶以上极点,则在足够长时间后,h(t)仍继续增长, 系统是不稳定的. 3)临界稳定系统: H(s)极点落于S平面虚轴上,且只有一阶,则在足够长时间后,h(t)趋于一个非零数值或形成一个等幅振荡.
系统函数H(s)的零、极点可用matlab的多项式求根函数roots()求得. 极点:p=roots(den) 零点:z=roots(num)
根据p和z用plot()命令即可画出系统零、极点分布图,进而分析判断系统稳定性. 例: 系统函数H(s)如下,画出系统零、极点分布图, 判断该系统稳定性.
s2?4H(s)?4s?2s3?3s2?2s?1num=[1,0,-4]; den=[1,2,-3,2,1]; p=roots(den);
(2)
z=roots(num);
plot(real(p),imag(p),'*');hold on; plot(real(z),imag(z),'o');grid on
极点: p = -3.1300、 0.7247 + 0.6890i 、0.7247 - 0.6890i 、-0.3195 零点: z = 2.0000、 -2.0000
由系统零、极点分布图可知,该系统有一极点位于s右半平面,故系统是不稳定的.
三、设计内容
H(s)?设 设①p1=-2,p2=-30; ②p1=-2,p2=3 1. 针对极点参数①②, 画出系统零、极点分布图, 判断该系统稳定性. 2. 针对极点参数①②,绘出系统的脉冲响应曲线,并观察t→∞时, 脉冲响应变化趋势. 3. 针对极点参数①, 绘出系统的频响曲线.
s(s?p1)(s?p2)四、设计要求
1.预习设计原理;
2. 对设计内容编写程序(M文件),上机运行;
3.绘出设计内容的各相应曲线或图,回答相应问题.
五、 设计报告要求
1、 写出系统零、极点分布与系统稳定性关系 2、 写出相关的程序清单 3、 记录设计波形 4、 收获与建议
设计题目十 离散时间信号与系统
一、设计目的
1.掌握用matlab软件产生离散时间信号的方法; 2.进一步理解离散时间信号常见运算的方法; 3. 掌握求离散时间系统冲激响应的方法.
二、设计原理
(一)离散时间信号的产生与运算 1.离散时间信号的产生
(1)单位抽样序列
先定义delta函数,并保存. function[x,n]=delta(n0,n1,n2) n=[n1:n2]; x=[(n-n0)==0];
然后执行下面程序.(以δ(n-3)为例) [x,n]=delta(3,-1,10); stem(n,x);
(2)单位阶跃序列
?1,n?n0u(n-n0)???0,n?n0
先定义step-seq函数,并保存.
function[x,n]=step-seq(n0,n1,n2) n=[n1:n2]; x=[(n-n0)>=0];
然后执行下面程序.(以u(n-3)为例)
[x,n]=step-seq (3,-1,10); stem(n,x);
(3)矩形序列
?1,(0?n?N?1)RN(n)???0,(n?0,n?N)
先定义aaa函数,并保存.
function[x,n]=aaa(N,n1,n2) n=[n1:n2];
x=[(N
然后执行下面程序.(以R3)为例)
[x,n]=aaa (3,-1,10); stem(n,x);
(4)单位斜坡序列
先定义ramp函数,并保存.
function[x,n]=ramp(n1,n2) n=[n1:n2]; x=n;
然后执行下面程序 [x,n]=ramp (0,10); Stem(n,x);
(5)正弦序列
例:X(n)=5sin(0.5πn+ π/4) n=-pi:0.1:pi;
x=5*sin(0.5*pi*n+pi/4); stem(n,x)
(6)指数序列
例:X(n)=exp(-0.5n). n=-1:0.1:1;
x=5*exp(-0.5*n); stem(n,x)
(7)任意序列 例:
x=[1,5,-4,2,5,-1,5]; n=1:length(x); stem(n,x)
2.离散时间信号的运算
(1)二序列相加、乘 例:
x1=[1,5,-4,2,5,-1,5]; x2=[1,2,3,4,5,6,7]; n=1:length(x);
subplot(2,2,1);stem(n,x1); subplot(2,2,2);stem(n,x2); subplot(2,2,3);stem(n,x1+x2); subplot(2,2,4);stem(n,x1.*x2);
(2)二序列卷积 例:
x1=[1,1,1,1,0,0,0]; x2=[0,0,1,1,1,0,0]; Y=conv (x1,x2), n1=1:length(x1); n2=1:length(x2); n=1:length(Y);
subplot(3,1,1);stem(n1,x1); subplot(3,1,2);stem(n1,x2); subplot(3,1,3);stem(n,Y);
(3) 序列的离散傅里叶变换 例:
x=[1,5,-4,2,5,-1,5]; N=length(x); Y=fft(x,N), n=1:N;
subplot(2,1,1);stem(n,x1); subplot(2,1,2);stem(n,abs(Y));
(二)离散时间系统的冲激响应
N阶差分方程:
Matlab中,filter子程序可用来在给定输入和差分方程系数时求差分方程的数值解,调用格式
r?0k?0y(n)??brx(n?r)??aky(n?k)MN
为:
Y=filter(B,A,X)
其中,B=[b0,b1,…,bm];A=[a0,a1,…,an];X为输入信号序列,注意必须保证系数a0不为零. 例:有如下系统:
y(n)-0.7y(n-1)-0.6y(n-2)+y(n-3)=x(n) 求该系统的单位冲激响应(x(n)=?(n)) A=[1,-0.7,-0.6,1]; B=[1];
n=[-20:100]; X=[n= =0]; y=filter(B,A,X); stem(n,y);
title('冲激响应'); grid
三、设计内容
1.先产生二个序列信号,然后进行相加、乘及卷积运算. 2.利用filter命令求下面系统的冲激响应
y(n)-0.7y(n-1)-0.6y(n-2)+y(n-3)=x(n)+0.5x(n-1)
四、设计要求
1.预习设计原理;
2. 对设计内容编写程序(M文件),上机运行; 3.绘出设计内容的各相应曲线.
五、 设计报告要求
1、 写出离散时间系统冲激响应的方法. 2、 写出相关的程序清单 3、 记录设计波形 4、 收获与建议
正在阅读:
信号与系统课程设计(MATLAB)01-15
江伟《民事诉讼法》笔记和考研真题详解-民事诉讼中的裁判【圣才04-11
初中寒假日记500字作文600字02-04
K3 BOS开发百问百答05-14
七年级数学上册第2章有理数2.2数轴2.2.1数轴同步练习无答案新版华东师大版word格式12-28
年产1000吨全蛋粉、蛋黄粉、蛋清粉和功能食品加工厂谋划建议书10-21
广东省揭阳市08-09学年高一下学期期末考试(政治理)05-20
关于端午节的传说故事经典故事大全04-03
园艺论文:设施园艺工程与我国农业现代化03-24
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 信号
- 课程
- MATLAB
- 设计
- 系统
- 在师德师风建设暨治理教师有偿补课动员会上的讲话
- 农村小学数学有效预习方法的研究 中期报告
- 对城乡居民大病保险基金可持续性的思考
- 2016年春季中小学幼儿园开学工作督导检查方案
- 高考生物选择题专项训练(6)
- 浅谈建筑业基层农民工维稳工作的几点认识
- 浅谈中药治疗骨性关节炎
- 集团公司总经理在工作会上的讲话
- 人教版2018-2019学年三年级数学上册全套单元测试卷(题)及答案
- 市级机关应急用车使用范围
- 2015届《创新设计》高考英语(北师大版)一轮活页训练(基础版):7.19 Unit 19 Language
- 猪场常用十大类药物用药介绍
- 高考数学第一轮复习 等差数列学案
- 过程控制综述报告
- 成都浣花溪公园调查报告 - 图文
- 2017关联交易管理专项审计方案定
- 中英文推广项目 合同
- “收入分配与社会公平”教学设计
- 国家动漫NACG考证—Autocad考试练习题
- 三社 刘海莉 三年级上册第一、二单元