信号与系统实验指导书.docx
《信号与系统实验指导书.docx》由会员分享,可在线阅读,更多相关《信号与系统实验指导书.docx(41页珍藏版)》请在冰点文库上搜索。
![信号与系统实验指导书.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/48b31d87-2b79-4486-a388-da417c7a963f/48b31d87-2b79-4486-a388-da417c7a963f1.gif)
信号与系统实验指导书
信号与系统
实验指导书
武汉理工大学教材中心
2009年7月
实验一常用连续时间信号的产生
一、实验目的
1、了解常用连续时间信号的产生方法;
2、掌握MATLAB程序的编程方法;
3、熟悉MATLAB函数的调用方法。
二、实验原理
在时间轴上连续取值的信号,称为连续时间信号。
常用的时域连续信号主要有单位冲激信号、单位阶跃信号、实指信号、复指信号、正(余)弦信号、方波信号、锯齿波信号、抽样信号等。
1、单位冲激信号
2、单位阶跃信号
3、实指信号
4、复指信号
5、正(余)弦信号
6、抽样信号
三、实验用函数
1、plot
功能:
绘制二维图形。
调用格式:
plot(t,y);t为横轴,y为纵轴的线性图形。
2、length
功能:
计算某一变量的长度或采样点数。
调用格式:
N=length(t);计算时间向量t的个数并赋给变量N。
3、axis
功能:
限定图形坐标的范围。
调用格式:
axis([x1,x2,y1,y2]);横坐标从x1—x2,纵坐标从y1—y2。
4、real
功能:
取某一复数的实部。
调用格式:
x=real(h);取复数h的实部赋给x。
5、imag
功能:
取某一复数的虚部。
调用格式:
y=imag(h);取复数h的实部赋给y。
6、abs
功能:
求幅值或绝对值。
调用格式:
x=abs(h);取复数h的幅值x。
7、angel
功能:
求相位。
调用格式:
y=angel(h);取复数h的相位赋给y。
8、square
功能:
产生矩形波。
调用格式:
x=square(t);产生周期是
,幅值从-1~1的方波。
x=square(t,duty);产生指定周期的矩形波,其中,duty用于指定脉冲宽度与整个周期的比例。
9、sawtooth
功能:
产生锯齿波或三角波。
调用格式:
x=sawtooth(t);产生周期是
,幅值从-1~1的锯齿波。
x=sawtooth(t,width);用于产生三角波,当width=0.5时,可产生对称的标准三角波;当width=1时,就产生锯齿波。
四、参考实例
例1.1用Matlab产生一个单位阶跃信号。
在
的区间里,在t=1处跃变。
%先建立函数stepseq(t,t0)
functiony=stepseq(t,t0)
y=(t-t0>=0);
%编写主程序调用该函数
t=-3:
0.01:
5;
t0=1;
y=stepseq(t,t0);
plot(t,y)
axis([-3,5,-0.2,1.2])
程序运行结果如图1-1所示:
图1-1阶跃波形
例1.2产生A=2,a=-0.3或a=0.3的实指信号,并在
的范围内显示波形。
Matlab程序如下:
A=2;a1=-0.3;a2=0.3;
t=-5:
0.01:
5;
y1=A*exp(a1*t);
y2=A*exp(a2*t);
subplot(2,1,1);plot(t,y1)
subplot(2,1,2);plot(t,y2)
程序运行结果如图1-2所示
图1-2实指信号波形
例1.3绘制信号
的波形。
Matlab程序如下:
t=0:
0.01:
3;
a=-3;b=4;
f=exp((a+j*b)*t);
subplot(2,2,1);plot(t,real(f));title('实部');
subplot(2,2,2);plot(t,imag(f));title('虚部');
subplot(2,2,3);plot(t,abs(f));title('幅值');
subplot(2,2,4);plot(t,angle(f));title('相位');
程序运行结果如图1-3所示
图1-3复指信号波形
例1.4周期矩形信号。
一连续周期矩形信号频率为10Hz,信号幅度在-1~1之间,脉冲宽度与周期的比例是1:
2,用128点采样,显示三个周期的信号波形。
Matlab程序如下:
f1=10;Um=1;N=128;
T=1/f1;nt=3;dt=T/N;
t=0:
dt:
nt*T;
xt=Um*square(2*pi*f1*t);
plot(t,xt)
axis([0,nt*T,-1.1,1.1])
程序运行结果如图1-4所示
图1-4周期矩形信号波形
例1.5锯齿波信号。
试绘制频率为10Hz,采样频率为100Hz,幅度在-1~1之间,两个周期的三角波和锯齿波。
Matlab程序如下:
f1=10;Um=1;nt=2;
fs=100;N=fs/f1;
T=1/f1;dt=T/N;
t=0:
dt:
nt*T;
x1=Um*sawtooth(2*pi*f1*t);
x2=Um*sawtooth(2*pi*f1*t,0.5);
subplot(2,1,1);plot(t,x1)
subplot(2,1,2);plot(t,x2)
程序运行的结果如图1-5所示
图1-5周期锯齿波波形
五、实验任务
1、调试部分例题程序,掌握Matlab基本操作方法。
2、编写程序,完成下列函数波形:
1}
2}
3)
六、实验报告
1、简述实验目的、原理。
2、写出上机调试通过的实验任务的程序并描述其图形曲线。
3、思考题:
使用Matlab时需注意的问题。
实验二连续系统的响应求解
一、实验目的
1、加深对LTI系统的频率基本概念的理解。
2、了解利用MATLAB进行连续时间系统研究的基本方法。
3、熟悉相关函数的使用方法,并能编写简单的程序实现响应求解。
二、实验原理
由连续时间系统的时域和频域分析方法可知,线性时不变系统的微分方程式为:
对于复杂信号激励下的线性系统,可以将激励信号在时域中分解为单位脉冲信号或单位阶跃信号,把这些单位激励信号分别加在系统中求其响应,然后把这些响应叠加,即可得到复杂信号加在系统中的零状态响应。
三、实验用函数
1、impulse
功能:
求解连续系统的冲激响应。
调用格式:
impulse(b,a):
计算并显示出连续系统的冲激响应h(t)的波形。
impulse(b,a,t):
当用户指定t值时,t为实数,将显示连续时间系统在0~t秒间的冲激响应波形,t为向量(t1:
dt:
t2),则显示指定时间范围内的冲激响应波形。
2、step
功能:
求解连续系统的阶跃响应。
调用格式:
step(b,a):
计算并显示出连续系统的阶跃响应g(t)的波形。
step(b,a,t):
当用户指定t值时,t为实数,将显示连续时间系统在0~t秒间的阶跃响应波形,t为向量(t1:
dt:
t2),则显示指定时间范围内的阶跃响应波形。
3、lsim
功能:
求解连续系统的零状态响应。
调用格式:
lsim(b,a,x,t):
计算并显示出连续系统的零状态响应的波形。
四、实例
1、已知一个RLC串联振荡电路系统函数为
其中L=22mH,C=2000pF,R=100
,求其时域的冲激响应和阶跃响应。
MATLAB程序如下:
L=22e-3;C=2e-9;R=100;
a=[L*C,R*C,1];b=[1];
t=0:
1e-6:
8e-4;
ht=impulse(b,a,t);
gt=step(b,a,t);
subplot(1,2,1)
plot(t,ht);title('冲激响应')
subplot(1,2,2)
plot(t,gt);title('阶跃响应')
程序运行结果如图2-1:
图2-1冲激响应和阶跃响应
2、用仿真函数lsim计算连续系统的零状态响应。
例2.3已知系统的微分方程为:
系统的输入信号为:
,求其零状态响应。
Matlab程序如下:
ts=0;te=5;dt=0.01;t=ts:
dt:
te;
b=[1];a=[1,2,100];
f=10*sin(2*pi*t);
y=lsim(b,a,f,t);
plot(t,y)
程序执行结果如图3-3所示
图2-2
五、实验任务
1、输入并运行例题程序,熟悉基本指令的使用。
2、已知某连续时间系统的微分方程为:
,求当输入信号为
,该系统的零状态响应r(t)。
六、实验报告
1、简述实验目的和原理。
2、列写上机调试通过的程序,并描绘其波形曲线。
实验三连续系统的卷积应用
一、实验目的
1、熟悉Matlab卷积函数的调用方法;
2、掌握应用卷积求解连续时间系统响应的方法,通过实验加深对卷积定理的认识。
二、实验原理
卷积是信号与系统分析中一个重要的工具,它反映了求解系统响应的物理过程。
1、卷积的定义式:
2、卷积的图解法:
卷积的图解法能直观地理解卷积的计算过程,特别是对只有波形而不易写出其函数表达式的函数进行卷积运算时。
其运算步骤:
1)自变量t变换为
:
将函数f1(t),f2(t)换成
;
2)反褶:
将函数
以纵轴为对称轴反折,得到
;
3)平移:
将反褶后的信号
沿横轴平移t(t>0右移,t<0左移);
4)相乘:
将函数
和
的重叠部分相乘;
5)积分:
沿
轴对乘积函数积分。
3、卷积性质
交换律、分配律、结合律、时移、卷积的微分与积分等。
三、实验用函数
1、卷积函数conv
功能:
进行两个序列的卷积运算。
调用格式:
y=conv(x,h);用于求解两有限长序列的卷积。
2、lsim
功能:
对连续系统的响应进行仿真。
调用格式:
y=lsim(b,a,x,t);将输入信号x加在由b,a定义的连续时间系统,将求出的数值解存入变量y中,如果单独调用函数lsim(b,a,x,t),则直接在图形区域显示零状态响应的时域仿真波形。
四、参考实例
1、在利用Matlab提供的卷积函数进行卷积运算时,主要是确定卷积结果的时间区间。
conv函数默认两信号的时间序列从n=0开始,卷积结果对应的时间序列也从n=0开始。
例2.1已知两信号分别为:
求两信号的卷积和并画出卷积波形。
Matlab程序如下:
t1=0:
0.1:
10;
f1=exp(-0.6*t1);
t2=0:
0.1:
15;
f2=ones(1,length(t2));
y=conv(f1,f2);
subplot(3,1,1);plot(f1)
subplot(3,1,2);plot(f2)
subplot(3,1,3);plot(y)
程序运行结果如图3-1所示
图3-1
2、任意信号的卷积运算。
由于conv函数默认信号的时间从0开始,如果有信号不是从0开始,则需要编程用两个向量来确定一个信号,一个是信号波形的非零幅度样值,一个是其对应的时间向量。
通过编写函数实现上述功能。
扩展函数为conv_m,其代码如下:
function[y,ny]=conv_m(x1,x2,t1,t2,dt)
y=conv(x1,x2);
ny1=t1
(1)+t2
(1);
ny2=t1(length(x1))+t2(length(x2));
ny=ny1:
dt:
ny2;
例2.1已知两信号分别为:
f1(t)=0.5t(0f2(4)=2t(-1计算两信号的卷积并画出卷积波形。
Matlab程序如下:
p=0.01;
t1=0:
p:
2;f1=0.5*t1;
t2=-1:
p:
3;f2=2*t2;
[f,k]=sconv(f1,f2,t1,t2,p);
subplot(3,1,1);plot(t1,f1)
subplot(3,1,2);plot(t2,f2)
subplot(3,1,3);plot(k,f)
程序运行结果如图3-2所示
图3-2
五、实验任务
1、调试运行参考程序,理解其基本意义。
2、设h[n]=(0.9)nu[n],输入x[n]=u[n]-u[n-10],求系统输出y[n]=x[n]*h[n](其中-5<=n<=50)
六、实验报告
1、简述实验目的、原理。
2、写出上机调试通过的实验任务的程序并描述其图形曲线。
3、思考题:
运用卷积函数conv时需要注意什么问题。
实验四连续时间信号的傅立叶分析
一、实验目的
1、熟悉傅立叶的基本概念。
2、掌握MATLAB中连续时间信号频谱的分析方法。
3、熟悉相关函数的使用方法。
二、实验原理
任一周期性连续时间信号如果满足狄利赫莱条件,可通过傅立叶级数求得其频谱
其逆变换表达式为
而非周期信号不能直接由傅立叶级数表示。
但可以借助傅立叶分析方法导出非周期信号的傅立叶变换。
一个非周期连续时间信号,其频谱可由傅立叶变换得
其逆变换表达式为
对连续时间信号进行处理时,首先要将其离散化,才能利用MATALB进行频谱分析。
处理时一般把周期信号的一个周期作为窗口的显示内容,对非周期信号则将信号的非零部分作为窗口显示的内容。
然后将窗口长度根据需要分成N份。
三、实验用函数
1、linspace
功能:
对向量进行线性分割。
调用格式:
linspace(a,b,n):
在a和b之间均匀产生n个值。
2、grid
功能:
在指定的图形坐标上绘制分割线。
调用格式:
grid
3、mesh
功能:
绘制三维网格图。
调用格式:
mesh(x,y,z):
绘制三维网格图。
四、实例
1、非周期信号的频谱
有一非周期方波信号x(t)的脉冲宽度为1ms,信号持续时间为2ms,在0~2ms区间外信号为0。
试求其含有20次谐波的信号的频谱特性。
求其逆变换并与原时间信号的波形进行比较。
解:
取窗口长度为0~2ms,信号的傅立叶变换为
按MATLAB作数值计算的要求,将时间t分成N份,用相加来代替积分,
求和问题转换为用x(t)行向量乘以
列向量来实现。
X=x*exp(-j*t’*w)*dt
MATLAB程序:
T=2;f1=1/T;N=256;
t=linspace(0,T,N);
dt=T/(N-1);
x=[ones(1,N/2),zeros(1,N/2)];
f=linspace(-(20*f1),(20*f1),N);
w=2*pi*f;
X=x*exp(-j*t'*w)*dt;
subplot(1,2,1);plot(f,abs(X));grid;title('非周期信号的幅度谱')
dw=(20*2*pi*f1)/(N-1);
x2=X*exp(j*w'*t)/pi*dw;
subplot(1,2,2);plot(t,x,'r',t,x2);title('原信号与傅立叶逆变换比较')
程序运行结果如图4-1
图4-1
2、周期信号的频谱
设有一周期方波信号,幅度E=1.5V,周期T=100
,脉冲宽度与周期之比为
,时间轴上采样点数取1000点。
试求其含有20次谐波的信号的频谱特性;求其傅立叶逆变换波形并与原时间波形进行比较。
解:
取窗口长度为0~T,由题意信号的傅立叶级数为
其傅立叶级数逆变换为
MATLAB程序:
T=100;f1=1/T;N=1000;
t=linspace(0,T,N);
dt=T/(N-1);
x=1.5*[ones(1,N/2),zeros(1,N/2)];
n=[-20:
20];
w1=2*pi*f1;
X=x*exp(-j*t'*n*w1)*dt/T;
subplot(1,2,1);stem(n,abs(X));grid;title('周期信号的幅度谱')
x2=X*exp(j*n'*w1*t);
subplot(1,2,2);plot(t,x,'r',t,x2);title('原信号与傅立叶逆变换比较')
程序运行结果如图4-2
图4-2
五、实验任务
1、输入并运行例题程序,熟悉基本指令的使用。
2、用MATLAB图形观察吉布斯效应。
(提示:
任意周期信号表示为傅立叶级数时,需要无限多项才能逼近原信号,但在实际应用中经常采用有限项级数来代替无限项级数。
所选项数越多越接近原信号。
当原信号是脉冲信号时,其高频分量主要影响脉冲的跳变沿,低频分量主要影响脉冲的顶部,因此,输出信号波形总是要发生失真,该现象称为吉布斯现象。
)
一个以原点为中心奇对称的周期性方波,可以用奇次正弦波的叠加来逼近,即
,假定方波的脉冲宽度为400
,周期为800
,观察正弦波分别取不同次谐波的逼近情况。
六、实验报告
1、简述实验目的、原理。
2、写出上机调试通过的实验任务的程序并描述其图形曲线。
实验五连续系统的零极点分析
一、实验目的
1、观察连续系统的零极点对系统冲激响应的影响。
2、了解连续系统的零极点与系统因果性、稳定性的关系。
3、熟悉相关函数的使用方法。
二、实验原理
线性系统的稳定性
一个连续系统的稳定性由其自身的性质决定,与激励信号无关。
系统的特性可以用系统函数H(s)和系统的冲激响应h(t)来表征。
因果系统可划分为三种情况:
1)稳定系统。
当H(s)全部极点落在s左半平面,则系统是稳定的。
2)不稳定系统。
当H(s)极点落在s右半平面,或在虚轴上具有二阶以上的极点,则经过足够长的时间后,h(t)在继续增大,则系统是不稳定的。
3)临界稳定系统。
当H(s)极点落在虚轴上,且只有一阶,则经过足够长的时间后,h(t)趋于一个非零的数值或形成一个等幅振荡,则系统处于临界稳定。
三、实验用函数
1、roots
功能:
求多项式的根。
调用格式:
r=roots(a):
由多项式的分子和分母系数向量求根向量。
其中,多项式的分子或分母系数向量按降幂排列,得到的根向量为列向量。
2、
3、tf2zp
功能:
将系统传递函数模型转换为系统零—极点增益模型。
调用格式:
[z,p,k]=tf2zp(num,den):
输入传递函数分子、分母的系数向量,求得零—极点增益模型中零点向量、极点向量及增益系数。
且均为列向量。
4、zp2tf
功能:
将系统零—极点增益模型转换为传递函数模型。
调用格式:
[num,den]=zp2tf(z,p,k):
输入零—极点增益模型的零点向量、极点向量及增益系数,求得传递函数分子、分母系数向量。
5、pzmap
功能:
显示LTI系统的零极点分布图
调用格式:
pzmap(b,a):
绘制由行向量b和a构成的系统函数所确定的零极点分布图。
pzmap(p,z):
绘制由零点和极点构成的零极点分布图。
[p,z]=pzmap(b,a):
由行向量b和a构成的系统函数确定零极点。
四、实例
1、已知系统函数分别为:
求这些系统的零极点分布图及系统的冲激响应,并判断系统的稳定性。
解:
由已知条件可得:
该系统函数的系数向量分别为:
b=[1];a=[1,1]
该系统函数的系数向量分别为:
b=[1];a=[1,2,17]
MATLAB程序:
b1=[1];a1=[1,1];
subplot(2,2,1);pzmap(b1,a1);
axis([-2,2,-1,1]);
subplot(2,2,2);impulse(b1,a1);
axis([0,5,0,1.2]);
b2=[1];a2=[1,2,17];
subplot(2,2,3);pzmap(b2,a2);
axis([-2,2,-6,6]);
subplot(2,2,4);impulse(b2,a2);
axis([0,5,-0.1,0.2]);
程序运行结果如图5-1:
图5-1
由上图可看出,以上两个系统的极点均落在S的左半平面,且系统的冲激响应的曲线随着时间增长而收敛,所以可以判定该系统是稳定的。
五、实验任务
1、输入并运行例题程序,熟悉基本指令的使用。
2、已知系统函数分别为
求以上系统的零极点分布图以及系统的冲激响应,并判断系统的稳定性。
3、已知系统函数为
求以上系统的零极点分布图以及系统的冲激响应,并判断系统的稳定性。
六、实验报告
1、简述实验目的、原理。
2、写出上机调试通过的实验任务的程序并描述其图形曲线。
3、思考题:
研究S平面上多重极点对系统响应的影响。
实验六连续系统的频率响应
一、实验目的
1、加深对连续系统的频率响应特性概念的理解。
2、掌握连续系统的零极点与频响特性之间的关系。
3、熟悉相关函数的使用方法。
二、实验原理
已知系统函数H(s)的零—极点增益模型的表达式为
取
,即在S平面中s沿虚轴移动,得到系统的频响函数为
其中,系统的幅度频响特性为
系统的相位频响特性为
由此可见,系统函数和频率响应有着密切的联系。
频率特性取决于零极点的分布,适当地控制系统函数的极点、零点的位置,可以改变系统的频率响应特性。
三、实验用函数
1、freqs
功能:
连续时间系统的频率响应。
调用格式:
h=freqs(b,a,w):
用于计算连续时间系统的复频域响应,其中,w用于指定频率值。
[h,w]=freqs(b,a):
自动设定200个频率点来计算频率响应,将200个频率值记录在w中。
[h,w]=freqs(b,a,n):
设定n个频率点计算频率响应。
freqs(b,a):
不带输出变量的freqs函数,将在当前图形窗口中描绘幅频和相频曲线。
2、abs
功能:
求幅值。
调用格式:
m=abs(h):
用于求取h的幅值。
3、angle
功能:
求相角。
调用格式:
p=angle(h):
用于求取h的相角(以弧度为单位),相角介于
之间。
四、实例
已知RC一阶高通电路图的系统函数H(s)为
其中:
R=200
,C=0.47
。
求其幅度频率响应与相位频率响应。
MATLAB程序
r=200;c=0.47e-6;
b=[r*c,0];
a=[r*c,1];
w=0:
40000;
h=freqs(b,a,w);
subplot(2,1,1);plot(w,abs(h));grid;ylabel('幅度')
subplot(2,1,2);plot(w,angle(h)/pi*180);grid;ylabel('相位')
程序执行结果如图6-1:
图6-1
五、实验任务
1、输入并运行例题程序,熟悉基本指令的使用。
2、已知二阶RLC并联电路如图所示,其中R=200
C=0.47
L=22mH。
列写出该电路的系统函数,并求该系统的幅度频率响应、相位频率响应以及零极点分布图。
(提示:
系统函数
)
二阶RLC并联电路
六、实验报告
1、简述实验目的、原理。
2、写出上机调试通过的实验任务的程序并描述其图形曲线。
3、思考题:
连续系统的零极点对系统幅频响应有何影响?
实验七信号的时域抽样与重建
一、实验目的
1、加深对对信号时域抽样与重建基本原理的理解。
2、了解用MATLAB语言进行信号时域抽样与重建的方法。
3、观察信号抽样与重建的图形。
二、实验原理
离散时间信号大多数由连续时间信号进行抽样获的。
在信号进行处理的过程中,要使有限带宽信号被抽样后能够不失真地还原出原模拟信号,抽样信号的周期Ts及抽样频率Fs的取值必须符合奈奎斯特定理。
如果Fs的