信号语系统实验指导书.docx
- 文档编号:25831402
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:20
- 大小:169.74KB
信号语系统实验指导书.docx
《信号语系统实验指导书.docx》由会员分享,可在线阅读,更多相关《信号语系统实验指导书.docx(20页珍藏版)》请在冰豆网上搜索。
信号语系统实验指导书
《信号与系统》实验指导书
赵林军编
电子与信息工程教研室
2003年6月2日
序论
Matlab是Mathworks公司于1984年正式推出的一套集数值计算、符号运算、图形处理等于一身的科学计算语言。
目前,国内绝大多数院校的电子与信息课程的4门主要课程:
电路、信号与系统、数字信号处理、自动控制原理的课堂教学、实验均与之关联。
其优点在于:
克服了物理器件的自身制约;克服了实验室规模的限制等。
在我院电子与信息工程专业的教学及实践环节中,我们引入Matlab这个语言工具,可以使信息课程的教学更加直观,可以加深同学门对课本中的理论的深层次理解。
同时,同学们在实验过程中,可以掌握一门新的工具、新的语言、新的思考问题解决问题的方法。
为你们将来的工作奠定一定的基础。
实验一、Matlab在电路分析中的应用
一、实验的内容
正弦激励的一阶电路(如图1所示)。
已知R=2Ω,UC(0+)=4V,激励的正弦电压US(t)=Umcos(ωt),其中Um=10V,ω=2rad/s。
当t=0时,开关S闭合,求电容电压的全响应,区分其暂态响应和稳态响应,并画出波形图。
二、Matlab环境下,编程实现。
三、分析解决问题
(1)建模电容电压的微分方程为:
令T=RC,利用电路的三要素法,其解为:
UC(t)=UCP(t)+[UC(0+)-UCP(0+)]e-t/T,(t≥0)
其中:
UC(0+)为电容的初始电压;
UCP(t)为方程的特解;当激励为US(t)=Umcos(ωt),则特解UCP(t)=Ucmcos(ωt+φ),其中:
Ucm=
;φ=900-arctan(ωCR)-1.
UCP(0+)=Ucmcos(φ)
最后得出的电容电压的全响应为:
UC(t)=Ucmcos(ωt+φ)+[UC(0+)-UCP(0+)]e-t/T
暂态响应(固态响应):
Uuctr(t)=[UC(0+)-UCP(0+)]e-t/T,(t≥0)
稳态相应(强迫响应):
Uucsr(t)=Ucmcos(ωt+φ)
(2)Matlab程序
r=2;c=0.5;T=r*c;%输入参数
uc0=4;
um=10;%给定数据
w=2;
zc=1/j/w/c;
t=0:
0.1:
10;%设定时间数组
us=um*cos(w*t);%激励信号
ucst=us*zc/(r+zc);%稳态计算
ucp0=ucst
(1);%稳态初值
uctr=(uc0-ucp0)*exp(-t/T);%暂态
uc=uctr+ucst;%全响应
plot(t,uc,'-',t,uctr,':
',t,ucst,'.'),%绘图
legend('nc','uctr','ucst')%图例标注
结果:
图2电容电压波形
实验二、连续LTI系统的零输入响应
一、实验内容
n阶线性时不变系统的微分方程为:
式中:
n≥m。
已知y及其各阶导数的初始值y(0)、y
(1)(0)、y
(2)(0)、y(3)(0)、…、y(n-1)(0),求零输入响应
二、Matlab环境下,编程实现。
三、分析解决问题
(1)建模
零输入响应为微分方程的奇次解。
其解的形式为(设特征根均为单根):
y(t)=C1ep1t+C2ep2t+…+Cnepnt
特征根可以用Matlab中的roots(a)语句求得。
各系数Ci由y的初值确定。
因此有:
C1+C2+…+Cn=y(0)
C1P1+C2P2+…+CnPn=Dy0=y
(1)(0)
┆┆
写成矩阵形式为:
即:
VC=Y0;C=V\Y0;
V为范德蒙矩阵,在Matlab中有vander函数调用。
(2)Matlab程序设计:
a=input('请输入微分方程的系数a=[a1a2...]=');
n=length(a)-1;%计算微分方程的阶数
y0=input('请输入初始条件y=[y0,dy0d2y0,...]=');
p=roots(a);
v=rot90(vander(p));
c=v\y0';
dt=input('时间步长dt=');
tf=input('时间终值tf=');
t=0:
dt:
tf;
y=zeros(1,length(t));
fork=1:
n
y=y+c(k)*exp(p(k)*t);
end
plot(t,y)
grid
(3)程序运行结果:
请输入微分方程的系数a=[a1a2...]=[3,5,7,1];
请输入初始条件y=[y0,dy0d2y0,...]=[0,1,0]
时间步长dt=0.2
时间终值tf=8
输出图像:
图3n阶线性时不变系统的零输入响应
实验三、卷积积分求LTI系统的零状态全响应
一、实验内容:
Matlab编程实现矩形脉冲的卷积
二、程序设计实现
1)程序
i=0;%生成矩形脉冲,脉宽为0.25
fort=0:
0.001:
1
i=i+1;
ift<0.25|t>0.5
y(i)=0;
x(i)=0;
else
y(i)=1;
x(i)=1;
end
end
end
t=0:
0.001:
1;%作矩形脉宽的图象
figure
(1);
plot(t,y);
axis([0101.1])
figure
(2);
plot(t,x);
axis([0101.1])
z=conv(x,y)*0.001;%作卷积极分
t=0.001:
0.001:
2.001
figure(3);%作卷积积分后图象
plot(t,z)
axis([01.50.3])
2)仿真
实验三、周期信号的普分析
一、
实验内容
对图所示的周期为4的信号进行分析
二、实验要求
在Matlab环境下,编程实现图1所示的连续周期信号f(t)的傅立叶级数,并进行普分析。
三、程序及运行结果
(一)对图1进行傅立叶级数展开
(1).由于在一个T内,f(t)为奇函数,所以其傅立叶级数展开式仅含有sin()项;并且f(t)为奇谐函数,因而含有正弦函数的奇次分量。
则不难求得:
n=1,3,5…
(详见课本P123)
任何周期函数的傅立叶级数展式,是其最小误差近似式。
在合成波的间断点,存在9%偏差,称之为吉布斯(Gibbs)现象。
(2).根据上式,编程验证如下:
Ts=4
t=-10:
0.01:
10;
xt1=0;
forn=1:
2:
10
xt1=((sin(n*2*pi*t/Ts))/n)*4/pi+xt1;
end
%subplot(1,2,1)
plot(t,xt1)
xlabel('t');
ylabel('cos(2*pi*t)+cos(pi*t)');
grid
运行结果:
(a)当for语句为forn=1:
2:
5时,程序运行结果为:
n=5图像
(b)当for语句为forn=1:
2:
10时,程序运行结果为:
n=10图像
(c)当for语句为forn=1:
2:
20时,程序运行结果为:
n=20图像
(二)对图2所示的周期矩形脉冲信号进行频谱分析
(3)
(1)编程验证如下:
T=4
t=0.5;
n=-40:
1:
40
%k=n.^-1
fn=sin(2*pi/T*n*t/2)./(n*pi)
i=find(isnan(fn))
fn(i)=t./T
stem(n,fn);
说明:
a)、T为举行脉冲的周期;
b)、
=t;
c)、i=find(isnan(fn)),fn(i)=t./T为寻找N=0项,并使之为
2)程序运行结果
当T=4
时,(T=4;t=0.5)周期性矩形脉冲的频谱为:
T=4
时,(T=4;t=0.5)周期性矩形脉冲的频谱
结论1:
周期函数的频谱是离散的。
当T=8
时,(T=4;t=0.25)周期性矩形脉冲的频谱为:
T=8
时,(T=4;t=0.25)周期性矩形脉冲的频谱为:
结论2:
周期相同时,相邻普线的间隔相同;脉宽愈窄,其频谱包络线的第一个零点的频率愈高,频带内的分量愈多。
可见:
信号的频带宽度与脉冲的宽度成正比。
△F=
。
(2)双边功率普
程序设计:
T=4
t=0.5;
N=20;
n=-N:
1:
N;
fn=sin(2*pi/T*n*t/2)./(n*pi);
i=find(isnan(fn));
fn(i)=t./T;
k=-N:
1:
N;
kn=abs(fn).^2;
stem(k,kn);
运行结果:
双边功率普
实验四、系统的稳定性分析
由控制理论的一般规律知:
一个连续线性系统的所有极点均位于S平面的左半平面时,该系统稳定;一个离散的线性系统的所有极点位于Z平面的单位圆内时,则该系统稳定。
一般采用间接的方法来判断系统的稳定性。
方法主要有构造Routh表和July表。
但是随计算机的应用,直接求取系统方程的根,然后判断系统的稳定性就具有了更大的优势。
只要我们知道系统的模型,采用Matlab求系统的零极点,从而判断系统的稳定性机系统是否为最小相位系统,这一点对于工程实践是十分重要的。
一、实验内容
判断系统模型如下式所示的稳定性,是否为最小相移系统。
(1)
(2)
二、实验要求
在Matlab环境中编程求解
(1)、
(2)两式的系统的零极点,然后做出正确的判断。
三、实验程序及运行结果
(1)
n=[316028];
d=[1-14110-528149421170];
[z,p,k]=tf2zp(n,d)
ii=find(real(z)>0);
n1=length(ii);
jj=find(real(p)>0);
n2=length(jj);
if(n1)>0
disp('thesystemisanonminimalphaseone.');
else
disp('thesystemisaminimalphaseone.');
end
if(n2)>0
disp('thesystemisunstable.');
else
disp('thesystemisstable.');
end
结果为:
z=-5.6280
0.1473+1.2793i
0.1473-1.2793i
p=0
6.2114+3.5306i
6.2114-3.5306i
1.2835+6.3446i
1.2835-6.3446i
-0.9898
k=3
thesystemisanonminimalphaseone.
thesystemisunstable.
(2)
n=[164002];
d=[103000];
[z,p]=tf2zp(n,d)
ii=find(abs(z)>1);
n1=length(ii);
jj=find(abs(p)>0);
n2=length(jj);
if(n1)>0
disp('thesystemisanonminimalphaseone.');
else
disp('thesystemisaminimalphaseone.');
end
if(n2)>0
disp('thesystemisunstable.');
else
disp('thesystemisstable.');
%显示出不稳定极点
disp(p(jj))
end
%绘制零极点图
pzmap(p,z);
title('thepoleandzreomapofadiscratesystem');
holdon
%绘制单位圆
x=-1:
0.001:
1;
y1=(1-x.^2).^0.5;
y2=-(1-x.^2).^0.5;
plot(x,y1,x,y2);
结果为:
z=-5.2392
-0.7935+0.5215i
-0.7935-0.5215i
0.4131+0.5028i
0.4131-0.5028i
p=0
0
0
0+1.7321i
0-1.7321i
thesystemisanonminimalphaseone.
thesystemisunstable.
四、程序说明
1.ii=find(条件)该函数的功能在于求取满足条件的向量的下标;
例如:
ii=find(real(z)>0);求出矩阵P中实部大于零的所有元素的下标,并将结果返回到ii总数组中。
对于连续域系统,如果找到实部大于零的极点,则系统一定是不稳定的。
2.tf2zp()函数在Matlab中是用来求解传递函数的零点、极点及增益的。
例如:
[z,p,k]=tf2zp(n,d)求取的零点、极点及传机函数的增益存于Z、P、K数组中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 语系 实验 指导书