信号与系统实验指导书.docx
- 文档编号:30497347
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:43
- 大小:602.70KB
信号与系统实验指导书.docx
《信号与系统实验指导书.docx》由会员分享,可在线阅读,更多相关《信号与系统实验指导书.docx(43页珍藏版)》请在冰豆网上搜索。
信号与系统实验指导书
《信号与系统》实验指导书
武汉理工大学教材中心
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)的波形。
h=impulse(b,a)
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开始,则需要编程用两个向量来确定一个信号,一个是信号波形的非零幅度样值,一个是其对应的时间向量。
通过编写函数实现上述功能。
扩展函数为sconv,其代码如下:
function[y,ny]=sconv(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(0 f2(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[t]=(0.9)tu[t],输入x[t]=u[t]-u[t-10],求系统输出y[t]=x[t]*h[t](其中-5<=t<=10) 六、实验报告 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);%进行时间分割,在0~T之间均匀地产生N点 dt=T/(N-1); x=[ones(1,N/2),zeros(1,N/2)];%建立时间信号x(t) f=linspace(-(20*f1),(20*f1),N);%进行频率分割,在-20~20次谐波间均匀产生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 3、用MATLAB图形观察吉布斯效应。 (提示: 任意周期信号表示为傅立叶级数时,需要无限多项才能逼近原信号,但在实际应用中经常采用有限项级数来代替无限项级数。 所选项数越多越接近原信号。 当原信号是脉冲信号时,其高频分量主要影响脉冲的跳变沿,低频分量主要影响脉冲的顶部,因此,输出信号波形总是要发生失真,该现象称为吉布斯现象。 ) 一个以原点为中心奇对称的周期性方波,可以用奇次正弦波的叠加来逼近,即 ,假定方波的脉冲宽度为400 ,周期为800 ,观察正弦波分别取不同次谐波的逼近情况。 MATLAB程序: T1=800;nf=19; t=0: 1: T1/2; w1=2*pi/T1; N=round((nf+1)/2); y=zeros(N,max(size(t))); x=zeros(size(t)); fork=1: 2: nf x=x+sin(w1*k*t)/k; y((k+1)/2,: )=x; end mesh(y); axis([0,T1/2,0,N,0,1]) 五、实验任务 1、输入并运行例题程序,熟悉基本指令的使用。 2、已知一个脉冲信号,在窗口为100ms的范围内,脉冲宽度与信号的周期之比为1/4,进行256点的采样,显示原时域信号和0~20次谐波的频谱特性。 六、实验报告 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、tf2zp 功能: 将系统传递函数模型转换为系统零—极点增益模型。 调用格式: [z,p,k]=tf2zp(num,den): 输入传递函数分子、分母的系数向量,求得零—极点增益模型中零点向量、极点向量及增益系数。 且均为列向量。 3、zp2tf 功能: 将系统零—极点增益模型转换为传递函数模型。 调用格式: [num,den]=zp2tf(z,p,k): 输入零—极点增益模型的零点向量、极点向量及增益系数,求得传递函数分子、分母系数向量。 4、pzmap 功能: 显示LTI系统的零极点分布图 调用格式: pzmap(b,a): 绘制由行向量b和a构成的系统函数所确定的零极点分布图。 pzmap(p,z): 绘制由零点和极点构成的零极点分布图。 [p,z]=pzmap(b,a): 由行向量b和a构成的系统函数确定零极点。 四、实例 1、已知系统函数: 求出该系统的零极点,并画出其零极点分布图。 解: 由已知条件可得,其分子、分母的系数向量分别为: b=[1,-1]; a=[1,2,2]; MATLAB实现: b=[1,-1]; a=[1,2,2]; zs=roots(b); ps=roots(a); plot(real(zs),imag(zs),'o',real(ps),imag(ps),'kx','markersize',12) axis([-2,2,-2,2]); grid; legend('零点','极点'); 程序运行结果如图5-1: 图5-1 2、已知系统函数分别为: 求这些系统的零极点分布图及系统的冲激响应,并判断系统的稳定性。 解: 由已知条件可得: 该系统函数的系数向量分别为: 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-2: 图5-2 由上图可看出,以上两个系统的极点均落在S的左半平面,且系统的冲激响应的曲线随着时间增长而收敛,所以可以判定该系统是稳定的。 五、实验任务 1、输入并运行例题程序,熟悉基本指令的使用。 2、已知系统函数分别为 求以上系统的零极点分布图以及系统的冲激响应,并判断系统的稳定性。 3、已知系统函数为 求以上系统的零极点分布图以及系统的冲激响应,并判断系统的稳定性。 六、实验报告 1、简述实验目的、原理。 2、写出上机调试通过的实验任务的程序并描述其图形曲线。 3、思考题: 研究S平面上多重极点对系统响应的影响。 实验六连续系统的频率响应 一、实验目的 1、加深对连续系统的频率响应特性概念的理解。 2、掌握连续系统的零极点与频响特性之间的关系。 3、熟悉相关函数的使用方法。 二、实验原理 线性时不变系统的频域分析法是一种变换域分析法,它把时域中求解响应的问题通过傅立叶变换转换成频域中的问题。 整个过程在频域内进行,因此它主要是研究信号频谱通过系统后产生的变化,利用频域分析法可分析系统的频率响应、波形失真、物理可实现等实际问题。 在时域分析中我们知道,系统的零状态响应等于输入信号与系统单位冲激响应的卷积积分,即 若e(t)、h(t)的傅立叶变换均存在,由时域卷积定理可知 有 称为系统函数,由于它是频率的函数,故又称为频率响应函数。 一般为频率的复函数,又可写为幅值与相位的形式,即 式中 为 的幅值,其随频率变化关系称为幅频响应; 为其相位,其随频率变化关系称为相频响应。 三、实验用函数 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): 不带输出变量的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 系统 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)