信号与系统实验1报告.docx
《信号与系统实验1报告.docx》由会员分享,可在线阅读,更多相关《信号与系统实验1报告.docx(15页珍藏版)》请在冰点文库上搜索。
信号与系统实验1报告
一、实验目的
1.熟悉常见信号的意义、特性及波形
2.学会使用MATLAB表示信号的方法并绘制信号波形
3.掌握使用MATLAB进行信号基本运算的指令
4. 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法
5. 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法
6. 熟悉应用MATLAB实现求解系统响应的方法
二、实验原理
信号一般是随时间而变化的某些物理量。
按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用
和
来表示。
若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。
MATLAB强大的图形处理功能及符号运算功能,为实现信号的可视化及其时域分析提供了强有力的工具。
1.连续时间系统
对于连续的LTI系统,当系统输入为f(t),输出为y(t),则输入与输出之间满足如下的线性常系数微分方程:
,当系统输入为单位冲激信号δ(t)时产生的零状态响应称为系统的单位冲激响应,用h(t)表示。
若输入为单位阶跃信号ε(t)时,系统产生的零状态响应则称为系统的单位阶跃响应,记为g(t)。
系统的单位冲激响应h(t)包含了系统的固有特性,它是由系统本身的结构及参数所决定的,与系统的输入无关。
我们只要知道了系统的冲激响应,即可求得系统在不同激励下产生的响应。
2.离散时间系统
LTI离散系统中,其输入和输出的关系由差分方程描述:
(前向差分方程)
(后向差分方程)
当系统的输入为单位序列δ(k)时产生的零状态响应称为系统的单位函数响应,用h(k)表示。
当输入为ε(k)时产生的零状态响应称为系统的单位阶跃应,记为g(k)。
如果系统输入为e(k),冲激响应为h(k),系统的零状态响应为y(k),则有:
。
与连续系统的单位冲激响应h(t)相类似,离散系统的单位函数响应h(k)也包含了系统的固有特性,与输入序列无关。
我们只要知道了系统的单位函数响应,即可求得系统在不同激励信号作用下产生的响应。
三、实验内容、步骤及原始记录
指数信号:
A=1;a=-0.4;
t=0:
0.01:
10;
ft=A*exp(a*t);
plot(t,ft)
正弦信号:
A=1;w0=2*pi;
phi=pi/6;
t=0:
0.001:
8;
ft=A*sin(w0*t+phi);
plot(t,ft)
ylim([-1.51.5])
抽样函数:
t=-3*pi:
pi/100:
3*pi;
ft=sinc(t/pi);plot(t,ft)
ylim([-0.41.2])
矩形脉冲:
t=0:
0.001:
4;
T=1;
ft=rectpuls(t-2*T,2*T);
plot(t,ft)
ylim([01.5])
三角波脉冲:
t=-3:
0.001:
3;
ft=tripuls(t,4,0.5);
plot(t,ft)
指数序列:
k=0:
10;A=1;a=-0.6;
fk=A*a.^k;
stem(k,fk)
正弦序列:
k=0:
39;
fk=sin(pi/6*k);
stem(k,fk)
单位脉冲序列:
k=-50:
50;
delta=[zeros(1,50),1,zeros(1,50)];
stem(k,delta)
ylim([01.2])
单位阶跃序列:
k=-50:
50;
uk=[zeros(1,50),ones(1,51)];
stem(k,uk)
ylim([01.2])
Example2-13
t=-3:
0.001:
3;
ft1=tripuls(2*t,4,0.5);
subplot(2,1,1)
plot(t,ft1)
title('f(2t)')
t=-3:
0.001:
3;
ft2=tripuls((2-2*t),4,0.5);
subplot(2,1,2)
plot(t,ft2)
title('f(2-2t)')
Example2-14
k=0:
10;
A=1;a=-0.6;
fk=A*a.^k;
W=sum(abs(fk).^2)
W=
1.5625
Example2-15
定义函数:
functionyt=f2_2(t)
yt=tripuls(t,4,0.5);
h=0.001;t=-3:
h:
3;
y1=diff(f2_2(t))*1/h;
figure
(1);plot(t(1:
length(t)-1),y1)
title('df(t)/dt')
t=-3:
0.1:
3;
forx=1:
length(t)
y2(x)=quad('f2_2',-3,t(x));
end
figure
(2);plot(t,y2)
title('integraloff(t)')
Example3-34
ts=0;te=5;dt=0.01;
sys=tf([1],[12100]);
t=ts:
dt:
te;
f=10*sin(2*pi*t);
y=lsim(sys,f,t);
plot(t,y);
xlabel('Time(sec)')
ylabel('y(t)')
Example3-35
ts=0;te=5;dt=0.01;
sys=tf([10],[12100]);
t=ts:
dt:
te;
y=impulse(sys,t);
plot(t,y);
xlabel('Time(sec)')
ylabel('y(t)')
Example3-36
R=51;d=rand(1,R)-0.5;
k=0:
R-1;
s=2*k.*(0.9.^k);
f=s+d;
figure
(1);plot(k,d,'r-.',k,s,'b--',k,f,'g-');、
xlabel('Timeindexk');legend('d[k]','s[k]','f[k]');
M=5;b=ones(M,1)/M;a=1;
y=filter(b,a,f);
figure
(2);plot(k,s,'b--',k,y,'r--');
xlabel('Timeindexk');
legend('s[k]','y[k]');
Example3-37
k=0:
10;
a=[132];
b=[1];
h=impz(b,a,k);
subplot(2,1,1)
stem(k,h)
title('近似值');
hk=-(-1).^k+2*(-2).^k;
subplot(2,1,2)
stem(k,hk)
title('理论值');
Example3-38
x=[1,2,3,4];
y=[1,1,1,1,1];
z=conv(x,y);
N=length(z);
stem(0:
N-1,z);
z
z=
1361010974
四、实验总结
通过这次实验,不仅体会到matlab这款软件的强大功能,还让我知道即使是发杂的序列的卷积和也可以用matlab编程实现,并且实现的方法比较简单。
此外matlab本身有丰富的函数库,画图、求卷积和时只要调用相应的函数即可。
需要注意的是,在实验之前应该做好预习准备,熟悉matlab的基本操作,熟悉matlab相应函数的用法,这样在实验中才能比较快速的完成实验的要求。