信号与线性系统实验指导书v02.docx
《信号与线性系统实验指导书v02.docx》由会员分享,可在线阅读,更多相关《信号与线性系统实验指导书v02.docx(19页珍藏版)》请在冰豆网上搜索。
信号与线性系统实验指导书v02
信号与线性系统实验指导书v0.2
《信号与线性系统》
实验指导书
东华大学信息学院
通信与电子信息工程系
实验要求及说明
一、实验报告内容
实验报告包括原理分析、源程序、执行结果分析及实验总结,其中原理分析和实验总结需要手写,其他可打印。
二、实验成绩
实验成绩包括出勤(10%)、实验表现(10%)、编程(30%)和实验报告(50%)几部分。
三、其他说明
缺席3次及以上取消考试成绩。
实验一连续信号的时域分析1
实验二连续时间系统的时域分析3
实验三连续信号的频域分析9
实验四连续系统的频域分析12
实验五信号采样与重建15
实验六离散时间信号和系统分析17
附录MATLAB主要命令函数表20
2、此外也可以利用MATLAB的ezplot函数对连续信号画图。
例题:
绘出t从-10到10的sin(t)的波形。
clc
clearall
closeall
symst
f=sin(t)
ezplot(f,[-1010]);
xlabel('t');
title('f(t)=sin(t)');
gridon
图2
一、实验内容
1、用MATLAB表示连续信号:
,
,
。
2、用MATLAB表示抽样信号(sinc(t))、矩形脉冲信号(rectpuls(t,width))及三角脉冲信号(tripuls(t,width,skew))。
3、编写如图3的函数并用MATLAB绘出满足下面要求的图形。
图3
实验二连续时间系统的时域分析
一、实验目的
1、掌握卷积计算方法。
2、掌握函数lsim,impulse,step的用法,lsim为求取零状态响应,impulse为求取单位脉冲响应,step为求取单位阶跃响应。
3、运用课堂上学到的理论知识,从RC、RL一阶电路的响应中正确区分零输入响应、零状态响应、自由响应与受迫响应。
二、实验设备
安装有matlab6.5以上版本的PC机一台。
三、MATLAB使用说明
1、MATLAB求取系统响应的方法
MATLAB的内部函数impulse(),step(),initial(),lsim()可以用来计算并绘制连续时间LTI系统的单位冲激响应,单位阶跃响应,零输入响应和任意信号作用于系统的零状态响应。
在调用这些函数时,需要用向量来对连续系统进行表示,设描述连续系统的微分方程为:
,则可以用向量a和b来表示该系统,即:
例如对微分方程
,则用MATLAB表示该系统的对应向量应为:
a=[236];b=[1]。
这些函数的用法描述如下:
1)impulse()函数
函数impulse()将绘出由向量a和b表示的连续系统在指定时间内的冲激响应h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。
impulse()函数有如下几种调用格式:
①impulse(b,a)
该调用格式以默认方式绘出向量a和b定义的连续系统的冲激响应的时域波形。
例题,求
冲击响应的时域波形
运行如下Matalb命令:
a=[132];
b=[101];
impulse(b,a);
则绘出系统的冲激响应波形,如图4所示。
图4
②impulse(b,a,t)
该调用格式绘出向量a和b定义的连续系统在0~t时间范围内冲激响应的时域波形。
对上例,运行如下命令:
impulse(b,a,10)
则绘出系统在0~10秒范围内冲激响应的时域波形。
③impulse(b,a,t1:
p:
t2)
该调用格式绘出向量a和b定义的连续系统在t1~t2时间范围内,且以时间间隔p均匀取样的冲激响应的时域波形。
对上例,运行如下命令:
impulse(b,a,1:
0.1:
2)
则绘出系统在1~2秒范围内,且以时间间隔0.1秒均匀取样的冲激响应的时域波形。
④y=impulse(b,a,t1:
p:
t2)
该调用格式并不绘出系统的冲激响应波形,而是求出向量a和b定义的连续系统在t1~t2时间范围内,且以时间间隔p均匀取样的冲激响应的数值解。
如下命令:
y=impulse(b,a,0:
0.2:
2)
则计算出系统在0~2秒范围内,且以时间间隔0.2秒均匀取样的冲激响应的数值解。
2)step()函数
函数step()将绘出由向量a和b定义的连续系统的阶跃响应g(t)在指定时间范围内的波形图,并能求出其数值解。
和impulse()函数一样,step()函数也有四种调用格式:
step(b,a)
step(b,a,t)
step(b,a,t1:
p:
t2)
y=step(b,a,t1:
p:
t2)
上述调用格式的功能与impulse()函数完全相同。
3)Lsim()函数
Lsim(b,a,x,t),用来计算由b和a表示的LTI系统在输入信号x作用下的零状态响应。
其中t为指定的时间变化范围,x为输入信号,它们的长度应该是相同的。
例题:
%系统方程为
,
的零状态响应。
ts=0;te=5;dt=0.01;
t=ts:
dt:
te;
f=10*sin(2*pi*t);
a=[12100];b=[1];
y=lsim(b,a,f,t);%求取零状态响应
plot(t,y);%画图
xlabel('Time(sec)')%横坐标定义
ylabel('y(t)')%纵坐标定义
则绘出系统的零状态响应波形,如图5所示。
图5
2、MATLAB中int函数用于卷积计算
求积指令int的具体使用格式如下:
inf=int(f,v):
给出符号表达式f对指定变量v的(不带积分常数的)不定积分。
intf=int(f,v,a,b):
给出符号表达式f对指定变量v的定积分:
例题:
已知
试用int函数计算
clear
symstx
e=exp(-3.*(x));
h=exp(-2.*(t-x));
i=int(e.*h,x,0,t);
ezplot(i,[06]);
xlabel('Time(sec)');
ylabel('y(t)');
title('exp(-3t)*exp(-2t)');
gridon
运行程序,f(t)的结果如图6所示。
图6
四、实验内容
1.分别用函数lsim和卷积积分两种方法求如图7所示系统的零状态响应。
其中L=1,R=2,
,
。
图7
2.求上述系统的冲激响应与阶跃响应。
五、思考题
1.为什么连续时间系统的零状态响应为激励与冲击响应的卷积?
2.利用卷积积分法计算系统响应应从几个方面进行?
实验三连续信号的频域分析
一、实验目的
1.掌握周期信号的频谱——Fourier级数的分析方法。
2.深入理解信号频谱的概念,掌握典型信号的频谱以及Fourier变换的主要性质。
3.掌握调制与解调的基本原理及滤波器的使用。
二、实验设备
安装有matlab6.5以上版本的PC机一台。
三、MATLAB使用说明
1、MATLAB的符号积分函数int()可以帮助我们求出连续时间周期信号的截断傅立叶级数及傅立叶表示,此外subs()函数可以为符号变量赋值,例如subs(a+b,a,2)就是把a+b里面的a用2替换,subs(x/y,y,3)就是把x/y里面的y用3替换。
2、MATLAB的傅立叶变换求取
MATLAB提供了能直接求解傅立叶变换及逆变换的函数fourier()及ifourier()。
两者的调用格式如下。
(1)Fourier变换
①F=fourier(f)是符号函数f的Fourier变换,默认返回是关于ω的函数。
即:
。
②F=fourier(f,v)返回函数F是关于符号对象v的函数,而不是默认的ω,即
。
③F=fouier(f,u,v)对关于u的函数f进行变换,返回函数F是关于v的函数,即
。
(2)Fourier逆变换
①f=ifourier(F)是符号函数F的Fourier变换,默认的独立变量为ω,默认返回是关于x的函数。
②f=ifourier(F,u)返回函数f是关于符号对象u的函数,而不是默认的x。
③f=ifouier(F,v,u)对关于v的函数F进行变换,返回关于u的函数f
例题:
求
的傅里叶变换
symstx;
x=fourier(exp(-2*abs(t)));
ezplot(x);%符号函数作图函数
xlabel('Time(sec)');
ylabel('f(t)');
gridon
运行结果如图8所示。
图8
四、实验内容
1、求如图9所示周期矩形脉冲信号的Fourier级数表达式,画出频谱图,并用前N次谐波合成的信号近似。
图9
2、试用fourier()函数求下列信号的傅里叶变换
并画出
(1)
(2)
3、调制信号为一取样信号,利用MATLAB分析幅度调制(AM)产生的信号频谱,比较信号调制前后的频谱并解调已调信号。
设载波信号的频率为100Hz。
五、思考题
1、根据试验1的结果,解释Gibbs现象。
2、比较周期信号与非周期信号的频谱。
3、调制与解调的基本原理是什么?
为什么要进行调制?
实验四连续系统的频域分析
一、实验目的
1、掌握连续时间系统变换域分析的基本方法。
2、掌握系统无失真传输的基本条件。
二、实验设备
安装有matlab6.5以上版本的PC机一台。
三、MATLAB使用说明
MATLAB提供了专门对连续系统频谱响应H(jω)进行分析的函数freqs()。
该函数可以求出系统频率响应的数值解,并可绘出系统的频率响应的数值解,并可绘出系统的幅频及相频响应曲线。
假定系统函数的表达式为:
Freqs()函数有如下四种调用格式:
1、h=freqs(b,a,w)
该调用格式中,b为对应于H(jω)表达式中的向量[b1,b2,b3,…,bm],a为对应于式中的向量[a1,a2,a3,…an],w为形如w1:
p:
w2的冒号运算定义的系统频率响应的频率范围,w1为频率起始值,w2为频率中止值,p为频率取样间隔。
向量h则返回在向量w所定义的频率点上,系统频率响应的样值。
例如,运行如下命令:
a=[121];
b=[01];
h=freqs(b,a,0:
0.5:
2*pi);%计算0~2Π频率范围内以间隔0.5取样的系统响应的样值。
2、[h,w]=freqs(b,a)
该调用格式将计算默认频率范围内200个频率点的系统频率响应的样值,并赋值给返回变量h,200个频率点记录在w中。
3、[h,w]=freqs(b,a,n)
该调用格式将计算默认频率范围内n个频率点上的系统频率响应的样值,并赋值给返回变量h,n个频率点记录在w中。
4、freqs(b,a)
改革是并不返回系统频率响应的样值,而是以对数坐标的方式绘出系统的幅频响应和相频响应曲线。
四、实验内容
1、如图10所示系统:
图10
(a)对不同的RC值,用freqs函数画出系统的幅频曲线。
(b)信号
包含了一个低频分量和一个高频分量,确定适当的RC值,滤除信号中的高频分量并画出信号
和
在
s范围内的波形。
提示:
为最大值的
处对应的频率为通带截止频率
,首先求取
并找到
和RC关系,然后根据题意选定
即可确定RC值。
2、信号任选,分析以下几种情况下信号的频谱和波形变化:
(1)系统满足线性不失真条件时;
(2)系统只满足恒定幅值条件时;
(3)系统只满足相位条件时;
(4)系统两个条件均不满足时。
提示:
利用fourier求取信号的傅立叶变换E(jω),然后设计
使之满足不同条件,计算R(jω)=E(jω)H(jω)并画频谱图。
五、思考题
1、连续系统频域与复频域分析的基本方法是什么?
2、若信号经过系统不发生失真,则对系统频响有何要求?
实验五信号采样与重建
一、实验目的
1、深刻理解采样定理的内容。
2、掌握信号采样后的频谱。
二、实验设备
安装有matlab6.5以上版本的PC机一台。
三、MATLAB使用说明
利用fft计算频谱或者根据采样后所得的频谱公式构建采样后频谱。
例题:
以
取样信号为例来分析采样后信号的频谱。
symstw;
f=sin(2*t)/(2*t);
subplot(3,2,1);
ezplot(f,[-5,5]);
title('时域信号');
ff=fourier(f);
subplot(3,2,2);
ezplot(ff,[-5,5]);
title('频谱信号');
fs=1;fc=0;
forn=-3:
3
fc=fc+(pi/2)*fs*(-heaviside(w-2-n*2*pi*fs)+heaviside(w+2-n*2*pi*fs));
end
subplot(3,2,3);
ezplot(fc,[-30,30]);
title('采样信号频谱,采样频率1');
四、实验内容:
1、已知
,以
为采样频率,对
进行采样得到
,观察随着
由小变大,
频谱的变化,最后得出
与
两者频谱之间的关系。
2、由实验1中采样得到的离散信号重建对应的连续时间信号:
情况一、
;情况二、
。
提示根据内插公式重建连续时间信号,或者根据采样后频谱通过低通滤波器的形式重建连续时间信号。
五、思考题
1、随着采样频率
从小到大变化,
的频谱发生怎样的变化,与
频谱之间的关系如何?
与理论计算结果之间是否完全一致?
如果不一致,请分析可能是什么原因导致的?
2、采样频率
分别满足情况一与情况二时,由
重建的
与原信号
是否完全相同?
如果不相同,试分析原因。
实验六离散时间信号和系统分析
一、实验目的
1.掌握常用离散信号的MATLAB表示方法。
2、掌握用MATLAB计算卷积和及零状态响应的方法。
二、实验设备
安装有matlab6.5以上版本的PC机一台。
三、实验说明
1、离散信号的表示
在MATLAB可视化绘图中,而对n为自变量的离散序列,在绘图时统一用stem函数。
例如:
在MATLAB中应该表示为:
k=[-3,-2,-10,1,2,3]或是k=-3:
3;f=[1,2,-1,3,2,4,-1];stem(k,f,’filled’);axis([-4,4,-1.5,4.5]);
2、离散序列卷积的计算
MATLAB的conv()函数可以帮助我们快速求出两个离散序列的卷积和。
conv函数的调用格式为:
f=conv(f1,f2)。
其中f1为包含序列f1(k)的非零样值点的行向量,f2为包含序列f2(k)的非零样值点的行向量,向量f则返回序列f(k)=f1(k)*f2(k)的所有非零样值点行向量。
3、用离散信号的卷积计算连续时间信号的卷积
卷积积分运算实际上可用信号的分段求和来实现,即
如果我们只求当t=n(n为整数)时f(t)的值f(n),则由上式可得:
当
足够小时,
就是卷积积分的结果——连续时间信号f(t)的较好的数值近似。
由于MATLAB运算的特点,两个连续信号的卷积f(t)=f1(t)*f2(t),用MATLAB实现的过程应为:
(1)将连续信号f1(t)、f2(t)以时间间隔Δ进行取样,得到离散序列f1(k)、f2(k);
(2)构造f1(k)、f2(k)与相对应的时间向量k1和k2;
(3)调用conv()函数计算离散卷积和f1(k),再计算f(k)=f1(k)*Δ;
(4)构造f(k)对应的时间向量k。
四、实验内容
1、用MATLAB表示离散信号:
,
。
2、有两离散序列
,用MATLAB绘出它们的波形及f1(k)+f2(k)及f1(k)*f2(k)的波形。
3、已知离散序列波形如图11所示,试用MATLAB绘出满足下列要求的序列波形。
图11
(1)f(k-2)ε(k)
(2)f(-k)(3)f(-k+2)(4)f(k-2)ε(k-2)
4、试用MATLAB的conv()函数计算实验2中第1题的结果。
5、假设某系统的单位函数响应
,系统激励信号
,求系统的零状态响应。