信号与线性系统实验指导书.docx
《信号与线性系统实验指导书.docx》由会员分享,可在线阅读,更多相关《信号与线性系统实验指导书.docx(36页珍藏版)》请在冰豆网上搜索。
信号与线性系统实验指导书
实验一基本信号的产生
一、实验学时:
3学时
二、实验类型:
验证性
三、开出要求:
必修
四、实验目的
学习使用MATLAB产生基本信号、绘制信号波形、实现信号的基本运算,为信号分析和系统设计奠定基础。
五、实验原理及内容
MATLAB提供了许多函数用于产生常用的基本信号:
如阶跃信号、脉冲信号、指数信号、正弦信号和周期矩形波信号等。
这些基本信号是信号处理的基础。
1.连续阶跃信号的产生
产生阶跃信号的MATLAB程序如下:
t=-2:
0.02:
6;
x=(t>=0);
plot(t,x);
axis([-2,6,0,1.2]);
图一连续阶跃信号
2.连续指数信号的产生
产生随时间衰减的指数信号的MATLAB程序如下:
t=0:
0.001:
5;
x=2*exp(-1*t);
plot(t,x);
图二连续指数信号
3.连续正弦信号的产生
利用MATLAB提供的函数cos和sin可产生正弦和余弦信号。
产生一个幅度为2,频率为4Hz,相位为p/6的正弦信号的MATLAB程序如下:
f0=4;
w0=2*pi*f0;
t=0:
0.001:
1;
x=2*sin(w0*t+pi/6);
plot(t,x);图三连续正弦信号
4.连续矩形脉冲信号的产生
函数rectpulse(t,w)可产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号。
产生高度为1、宽度为4、延时2秒的矩形脉冲信号的MATLAB程序如下:
t=-2:
0.02:
6;
x=rectpuls(t-2,4);
plot(t,x);图四连续矩形脉冲信号
5.连续周期矩形波信号的产生
函数square(w0*t)产生基本频率为w0(周期T=2p/w0)的周期矩形波信号。
函数square(w0*t,DUTY)产生基本频率为w0(周期T=2p/w0)、占空比DUTY=t/T*100的周期矩形波。
τ为一个周期中信号为正的时间长度。
τ=T/2,DUTY=50,square(w0*t,50)等同于square(w0*t)。
产生一个幅度为1,基频为2Hz,占空比为50%的周期方波的MATLAB程序如下:
图五连续周期矩形波信号
f0=2;
t=0:
.0001:
2.5;
w0=2*pi*f0;
y=square(w0*t,50);%dutycycle=50%
plot(t,y);axis([0,2.5,-1.5,1.5]);
6.连续抽样信号的产生
可使用函数sinc(x)计算抽样信号。
产生信号的MATLAB程序如下:
t=-10:
1/500:
10;
x=sinc(t/pi);图六连续抽样信号
plot(t,x);
7.单位脉冲序列的产生
函数zeros(1,n)可以生成单位脉冲序列。
函数zeros(1,n)产生1行n列的由0组成的矩阵。
产生成单位脉冲序列的MATLAB程序如下:
k=-4:
20;
x=[zeros(1,7),1,zeros(1,17)];
stem(k,x)图七单位脉冲序列
8.
单位阶跃序列的产生
函数ones(1,n)可以生成单位阶跃序列。
函数ones(1,n)产生1行n列的由1组成的矩阵。
产生单位阶跃序列的MATLAB程序如下:
k=-4:
20;
x=[zeros(1,7),ones(1,18)];
stem(k,x)图八单位阶跃序列
9.指数序列的产生
产生离散序列的MATLAB程序如下:
k=-5:
15;
x=0.3*(1/2).^k;
stem(k,x);
图九指数序列
10.正弦序列的产生
产生正弦序列的MATLAB程序如下:
k=-10:
10;
omega=pi/3;
x=0.5*sin(omega*k+pi/5);
stem(k,x);图十一正弦序列
11.离散周期矩形波序列的产生
产生幅度为1、基频rad、占空比为50%的周期方波的MATLAB程序如下:
omega=pi/4;
k=-10:
10;
x=square(omega*k,50);
stem(k,x);图十二离散周期矩形波序列
12.白噪声序列的产生
白噪声序列在信号处理中是常用的序列。
函数rand可产生在[0,1]区间均匀分布的白噪声序列,函数randn可产生均值为0,方差为1的高斯分布白噪声。
N=20;
k=0:
N-1;
x=rand(1,N);stem(k,x);图十三白噪声序列
六、实验条件:
Matlab软件。
七、实验成绩评定办法:
主要评分点:
实验原理是否清楚,实验结果是否正确。
实验三MATLAB的编程与应用
一、实验学时:
3学时
二、实验类型:
验证性
三、开出要求:
必修
四、实验目的:
学习MATLAB的命令窗口与编程的使用方法,学会信号与系统中的相关计算与绘图的基本方法。
五、实验内容:
在MATLAB中,以复数矩阵为基本编程单元,编程语句书写简单而功能强大,具有丰富的绘图功能,有许多面向问题求解的工具箱,有很好的扩展性,界面友好,操作简便。
主要的组成有;MATLAB语言;MATLAB工作环境;图形处理;数学函数库;MATLAB应用程序接口(API);另外还有Simulink和Toolbox(工具箱)
1.
2.对数字滤波器
进行运算
1.启动MATLAB,在命令窗口中完成以下操作:
>>a=[123-21]
>>b=[3-21-1]
>>c=conv(a,b)
2.对数字滤波器
,在命令窗口中完成以下操作:
>>b=[0.20.31]
>>a=[10.41]
>>freqz(b,a,128)幅频特性
>>y=tf(b,a)transferfunction传递函数
>>impulse(y)脉冲响应
观看绘图窗口,并复制图形于下面作为实验结果:
3.离散余弦变换DCT与其反变换IDCT;在M文件编辑器中输入程序:
,
并复制图形于下面作为实验结果。
方法一:
js.m文件
function[out1]=js(t)
t=(0:
1/9999:
1);
x1=sin(10*pi*t);
x2=sin(16*pi*t);
x3=sin(34*pi*t);
js=x1.*x2.*x3;
subplot(4,1,1);
plot(t,x1);
xlabel't'
ylabel'x1'
title'x1=sin(10*pi*t)';
subplot(4,1,2);
plot(t,x2);
subplot(4,1,3);
plot(t,x3);
subplot(4,1,4);
plot(t,js)
方法二:
>>t=(0:
1/9999:
1);
>>y=sin(10*pi*t).*sin(16*pi*t).*sin(34*pi*t);
>>plot(t,y)
4.利用simulink进行绘制单位负反馈闭环系统的单位阶跃响应曲线.
六、实验条件:
Matlab软件。
七、实验成绩评定办法:
主要评分点:
实验原理是否清楚,实验结果是否正确。
实验二信号的卷积运算
一、实验学时:
3学时
二、实验类型:
设计性
三、开出要求:
必修
四、实验目的:
学习Matlab基本用法,对给定信号进行卷积运算.
五、实验内容:
信号的卷积运算:
卷积积分可用信号的分段求和来实现,即
如果只求当(n为整数)时f(t)的值,则由上式可得
上式中的实际上就是连续信号和经等时间隔均匀抽样的离散序列和的卷积和。
当足够小时,就是卷积积分的结果,即连续时间信号的数值近似。
MATLAB具有一个作离散卷积的函数,对矩阵(序列)和做卷积运算。
这是一个适合做离散卷积的函数,矩阵中元素的步长(间隔)默认为1。
处理连续信号的卷积时,和取相同的卷积步长(间隔),结果再乘以实际步长(对连续信号取样间隔),例如下面的0.001。
六、实验方法及步骤:
1.打开matlab软件,执行File/New/M-File
2.输入参考程序,实现信号的卷积运算
(1)已知两个连续信号如图所示,求解f1(t)*f2(t).
参考程序:
•t11=0
•t12=1
•t21=0
•t22=2
•
t1=t11:
0.001:
t12
•ft1=2*rectpuls(t1-0.5,1)
•t2=t21:
0.001:
t22
•ft2=t2
•t3=t11+t21:
0.001:
t12+t22
•ft3=conv(ft1,ft2)
•ft3=ft3*0.001
•plot(t3,ft3)
•title('ft1(t)*ft2(t)')
(2)已知信号及信号
用Matlab绘出f1(t)卷积f2(t)的信号波形:
参考程序:
t11=0
t12=3
t21=0
t22=10
t1=t11:
0.001:
t12
ft1=-sign(t1-2)
t2=t21:
0.001:
t22
ft2=exp(-2*t2)
t=t11+t21:
0.001:
t12+t22
ft=conv(ft1,ft2)
ft=ft*0.001
subplot(2,2,1)
plot(t1,ft1)
title('f1(t)')
subplot(2,2,2)
plot(t2,ft2)
title('f2(t)')
subplot(2,2,3)
plot(t,ft)
h=get(gca,'position')
h(3)=2*h(3)
set(gca,'position',h)
title('f1(t)*f2(t)')
3.序列的基本运算
表一序列基本运算表
离散序列:
(1)计算离散卷积和:
x=[1,2,1,1,0,-3];
h=[1,-1,1];
%计算离散卷积和
y=conv(x,h);
subplot(2,1,1);
stem([0:
length(y)-1],y);
title('y[k]');
xlabel('k');
subplot(2,1,2);
r=xcorr(x,x);
stem([-5:
1:
5],r);
title('Rxx[n]');
xlabel('r');
4已知信号及信号
用Matlab绘出f1(t)卷积f2(t)的信号波形:
参考实验
(1)、
(2)及步骤2,自己编写程序实现.
t11=-5;
t12=+5;
t21=0;
t22=10;
t1=t11:
0.001:
t12;
ft1=sin(t1*pi./2+pi./3);
t2=t21:
0.001:
t22;
ft2=exp(-2*t2);
t=t11+t21:
0.001:
t12+t22;
ft=conv(ft1,ft2);
ft=ft*0.001;
subplot(2,2,1);
plot(t1,ft1)
title('ft1');
subplot(2,2,2);
plot(t2,ft2)
title('ft2');
subplot(2,2,3);
plot(t,ft)
title('ft1*ft2');
六、思考问题:
1、信号卷积的图解机理是什么?
。
2、解释每一句程序的含义。
七、实验条件:
Matlab软件。
八、实验成绩评定办法:
主要评分点:
实验原理是否清楚,实验结果是否正确,程序运行是否无误?
实验四时域抽样与频域抽样
一、实验学时:
3学时
二、实验类型:
设计性
三、开出要求:
必修
四、实验目的
1.加深理解连续时间信号的离散化过程中的数学概念和物理概念,掌握时域抽样定理的基本内容。
2.掌握由抽样序列重建原连续信号的基本原理与实现方法,理解其工程概念。
3.加深理解频谱离散化过程中的数学概念和物理概念,掌握频域抽样定理的基本内容。
五、实验原理及内容
时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:
对于基带信号,信号抽样频率fsam大于等于2倍的信号最高频率fm,即fsam≥2fm。
时域抽样是把连续信号x(t)变成适于数字系统处理的离散信号x[k];信号重建是将离散信号x[k]转换为连续时间信号x(t)。
非周期离散信号的频谱是连续的周期谱。
计算机在分析离散信号的频谱时,必须将其连续频谱离散化。
频域抽样定理给出了连续频谱抽样过程中信号不失真的约束条件。
信号的时域抽样
对连续信号x(t)以间隔T抽样,得到的离散序列x[k]=x(kT)|t=kT
图一连续信号抽样的离散序列
若x[k]=x(kT)|t=kT,则信号x(t)与x[k]的频谱之间存在:
其中:
x(t)的频谱为X(j),x[k]的频谱为X(ej)
可见,信号时域抽样导致信号频谱的周期化。
wsam=2p/T(rad/s)为抽样角频率,fsam=1/T为抽样频率。
数字角频率W与模拟角频率w的关系为:
Ω=ωT
其中:
x(t)的频谱为X(jw),x[k]的频谱为X(ejW)
用MATLAB实现对信号的抽样。
t0=0:
0.001:
0.1;
x0=cos(2*pi*20*t0);
plot(t0,x0,'r')
holdon%信号最高频率fm为20Hz,%按100Hz抽样得到序列。
Fs=100;
t=0:
1/Fs:
0.1;
x=cos(2*pi*20*t);
stem(t,x);
holdoff
title('连续信号及其抽样信号')图二的抽样图形
2.信号的频域抽样
非周期离散序列x[k]的频谱X(ejω)是以2ω为周期的连续函数。
频域抽样是将X(ejω)离散化以便于数值计算。
频域抽样与时域抽样形成对偶关系。
在[0,2]内对X(ejω)进行N点均匀抽样,引起时域序列x[k]以N点为周期进行周期延拓。
频域抽样定理给出了频域抽样过程中时域不发生混叠的约束条件:
若序列x[k]的长度L,则应有NL。
已知序列,对其频谱X(ej)进行抽样,
分别取N=2,3,10,观察频域抽样造成的混叠现象。
x=[1,1,1];
L=3;
N=256;
omega=[0:
N-1]*2*pi/N;
X0=1+exp(-j*omega)+exp(-2*j*omega);
plot(omega./pi,abs(X0));
xlabel('Omega/PI');holdon
N=2;omegam=[0:
N-1]*2*pi/N;
Xk=1+exp(-j*omegam)+exp(-2*j*omegam);
stem(omegam./pi,abs(Xk),'r','o');holdoff
六、思考问题:
1.将语音信号转换为数字信号时,抽样频率一般应是多少?
2.在时域抽样过程中,会出现哪些误差?
如何克服或改善?
3.在实际应用中,为何一般选取抽样频率fsam(3~5)fm?
七、实验条件:
Matlab软件。
八、实验成绩评定办法:
主要评分点:
实验原理是否清楚,实验结果是否正确,程序运行是否无误?
实验五连续系统特性分析
一、实验学时:
3学时
二、实验类型:
设计性
三、开出要求:
必修
四、实验目的
1.深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性中的重要作用及意义,掌握根据系统函数的零极点设计简单的滤波器的方法。
2.掌握利用MATLAB分析连续系统的时域响应、频响特性和零极点的基本方法。
五、实验原理及内容
MATLAB提供了许多可用于分析线性时不变连续系统的函数,主要包含有系统函数、系统时域响应、系统频域响应等分析函数。
1.连续系统的时域响应
连续时间LTI系统可用如下的线性常系数微分方程来描述:
已知输入信号x(t)以及系统初始状态
,就可以求出系统的响应。
MATLAB提供了微分方程的数值计算的函数,可以计算上述n阶微分方程描述的连续系统的响应,包括系统的单位冲激响应、单位阶跃响应、零输入响应、零状态响应和完全响应。
在调用MATLAB函数时,需要利用连续系统对应的系数函数。
对微分方程进行Laplace变换即可得系统函数:
在MATLAB中可使用向量和向量分别保存分母多项式和分子多项式的系数:
这些系数均按s的降幂直至s0排列。
●连续系统的单位冲激响应h(t)的计算
impulse(sys)计算并画出系统的冲激响应。
参数:
sys可由函数tf(b,a)获得。
其中:
h=impulse(sys,t)计算并画出系统在向量t定义的区间上的冲激响应,向量h保存对应区间的系统冲激响应的输出值。
已知描述某连续系统的微分方程:
计算该系统的单位冲激响应h(t)。
a=[1,5,6];b=[2,8];
sys=tf(b,a);
t=0:
0.1:
10;
h=impulse(sys,t);
plot(h);
xlabel('t');title('h(t)')
程序运行结果如图图一程序运行结果:
●连续系统的单位阶跃响应g(t)的计算
step(sys)计算并画出系统的阶跃响应。
参数:
sys可由函数tf(b,a)获得。
其中:
g=step(sys,t)
计算并画出系统在向量t定义的区间上的阶跃响应,向量g保存对应区间的系统阶跃响应的输出值。
●连续系统的零状态响应y(t)的计算
lsim(sys,x,t)计算并画出系统的零状态响应。
参数:
sys可由函数tf(b,a)获得
x为输入信号
t为定义的时间向量。
已知描述某连续系统的微分方程:
计算在输入
为时系统的零状态响应。
a=[1,5,6];b=[2,8];sys=tf(b,a);
t=0:
10/300:
10;
x=exp(-t);
y=lsim(sys,x,t);
plot(t,y);
图二程序运行结果:
2.连续系统的系统函数零极点分析
连续LTI系统的系统函数H(s)可以表示为部分分式形式:
设
,且H(s)的极点pi全部为单极点,则:
系统函数H(s)的极点pi决定了冲激响应h(t)的基本形式,而零点和极点共同确定了冲激响应h(t)的幅值ki。
MATLAB中提供了roots函数计算系统的零极点,提供了pzmap函数绘制连续系统的零极点分布图。
已知某连续系统的系统函数为:
计算其零极点,画出分布图。
b=[2,3,1];a=[1,2,2,1];
z=roots(b)
p=roots(a)
sys=tf(b,a);
pzmap(sys)图三系统函数零极点分布图
3.连续系统的频率响应
若连续因果LTI连续系统的系统函数H(s)的极点全部位于S左半平面,则系统的频率响应可由H(s)求出,即
MATLAB中freqs函数可以分析连续系统的频响,格式如下:
H=freqs(b,a,w):
计算系统在指定频率点向量w上的频响H;w为频率点向量。
[H,w]=freqs(b,a):
自动选取200个频率点计算频率响应。
已知某连续系统的系统函数为:
分析系统的幅频率特性。
b=[1];a=conv([1,1],[1,1,1]);
[H,w]=freqs(b,a);
plot(w,abs(H));
xlabel('Frequency(rad/s)');
ylabel('Amplitude');
title('Magnituderesponse');图四系统函数幅频特性
六、实验思考题
1.系统函数的零极点对系统频率特性有何影响?
2.对于因果稳定、实系数的低通、高通、带通、带阻滤波器,零极点分布有何特点?
3.系统函数的零极点对系统冲激响应有何影响?
七、实验条件:
Matlab软件。
八、实验成绩评定办法:
主要评分点:
实验原理是否清楚,实验结果是否正确,程序运行是否无误?
实验七二阶系统的时域响应
一、实验学时:
3学时
二、实验类型:
设计性
三、开出要求:
必修
四、实验目的:
1.掌握用电子模拟二阶系统的实验方法
2.通过实验,进一步了解二阶系统的动态性能与系统阻尼比ξ之间的关系。
五、实验内容:
为了至于理论研究,一般把二阶系统的传递函数写成如下的标准形式:
(1)
式中:
ξ——系统的阻尼比
ωn——系统的无阻尼自然频率
图4-1二阶系统方块图
与式
(1)对应的系统方块图如图4-1所示。
任何形式二阶系统的闭环传递函数都可以为式
(1)所示的标准形式,但其参数ξ和ωn所包含的内容是不相同的。
理论证明,对应于不同ξ值系统的单位阶跃响应是不相同的,图4-2中分别示出了:
1)0<ξ<1(欠阻尼),2)ξ=1(临界阻尼),3)ξ>1(过阻尼)三种响应曲线。
图7-1为本实验系统的方块图,其闭环传递函数为
由上式得ωn=
,ξ=
图4-2不同ξ值时的阶跃响应曲线
若令T1=0.2S,T2=0.5S,则ωn=
,ξ=
显然,只要改变K值,就能同时改变ξ和ωn的值,从而可得到欠阻尼(0<ξ<1)、临界阻尼(ξ=1)、和过阻尼(ξ>1)三种情况下的阶跃响应曲线。
图4-3二阶系统
六、实验方法及步骤:
1.根据开环传递函数G(s)=K/0.5s(0.2s+1),设计相应的实验电路图(如:
附录参考实验电路)并用导线连接起来(注:
所选用的积分单元最好有锁零控制功能);
2.将“阶跃信号发生器”的输出调到“正输出”,按下“阶跃信号发生器”的按钮,调节“阶跃信号发生器”的可调电位器RP1,使之输出电压幅值为1V,并将“阶跃信号发生器”的“输出端1”与电路的输入端“Ur”相连,电路的输出端“Uc”接到“数据采集接口单元”的“AD1”输入端,同时按下锁零单元的“锁零”按钮使其处于“锁零”状态;
3.实验时应先松开锁零单元的“锁零”按钮,再按下阶跃信号发生器单元的“阶跃按键”;
4.在虚拟示波器上观察不同K值:
如K=5(Rx=50K)、0.625(Rx=6.25K)、0.5(Rx=5K)时对应的阶跃响应曲线,据此求得相应的σp、tp和ts的值。
5.调节K(Rx=12.5K)值,使该二阶系统的阻尼比ξ=
,观察并记录对应的阶跃响应曲线。
七、思考问题:
1.如果阶跃输入信号的幅值过大,会在实验中产生什么后果?
2.在电子模拟系统中,如何实现负反馈和单位反馈?
八、实验条件:
1.THBCC-1型信号与系统·控制理论及计算机控制技术实验平台
2.PC机(安装THBCC-1”软件)
九、实验成绩评定办法: