成都理工大学信号与系统实验报告资料.docx
《成都理工大学信号与系统实验报告资料.docx》由会员分享,可在线阅读,更多相关《成都理工大学信号与系统实验报告资料.docx(25页珍藏版)》请在冰豆网上搜索。
![成都理工大学信号与系统实验报告资料.docx](https://file1.bdocx.com/fileroot1/2022-10/9/12fd376d-44df-4724-a731-8762787c8b76/12fd376d-44df-4724-a731-8762787c8b761.gif)
成都理工大学信号与系统实验报告资料
信号运算及系统分析实验
摘要
实验的内容:
1、MATLAB应用基础
2、常用信号的表示与计算
3、系统时域分析及MATLAB实现
4、连续系统的频域分析方法
5、连续系统的复频域分析方法
6、离散系统的Z域分析方法
采用的方法:
MATLAB
实验的目标:
让学生具备扎实的信号分析的基本方法和理论。
关键字:
信号的运算;傅里叶变换;拉普拉斯变换;Z变换;Matlab。
第1章信号的时域分析
1.1自定义函数
1.1.1第1个自定义函数
利用MATLAB绘出下列信号的时域波形。
解:
symstk
f1=sym('(t*t-1)*(heaviside(t+1)-heaviside(t-1))')
subplot(2,2,1)
ezplot(f1)
title('f1')
1.1.2
解:
f2=sym('exp(-t)*cos(10*pi*t)*(heaviside(t-1)-heaviside(t-2))')
subplot(2,2,2)
ezplot(f2)
title('f2')
1.1.3
解:
k=-5:
0.5:
5
f3=sin(pi*k/4).*heaviside(k)
subplot(2,2,3)
stem(f3,’filled’)
title('f3')
1.1.4
解:
f4=k.*heaviside(-k+2)
subplot(2,2,4)
stem(f4,’filled’)
title('f4')
1.2.1第2个自定义函数
已知信号波形,利用MATLAB绘出满足下列需求的信号波形。
解:
symst
f1=sym('t*heaviside(t)-t*heaviside(t-1)+heaviside(t-1)-heaviside(t-3)')
subplot(2,3,1),ezplot(f1)
title('f(t)')
f2=subs(f1,t,2-t)
subplot(2,3,2)
ezplot(f2)
title('f(2-t)')
1.2.2
解:
f3=subs(f1,t,2*t-2)
f4=-f3
subplot(2,3,3)
ezplot(f4)
title('f-(2t-2)')
1.2.3
解:
f5=subs(f1,t,t/3)*heaviside(3-t)
subplot(2,3,4)
ezplot(f5)
title('f(t/3)u(3-t)')
1.2.4
解:
f6=int(f1)
subplot(2,3,5)
ezplot(f6)
title('积分')
1.3.1第3个自定义函数
已知离散序列波形,试用MATLAB绘出满足下列需求的序列波形。
解:
symsk
k=-2:
3
f1=(k+3).*(heaviside(k+3)-heaviside(k))+3*(heaviside(k)-heaviside(k-4))
subplot(2,3,1)
stem(f1,'filled')
title('f(k)')
f2=subs(f1,k,k-2).*heaviside(k)
subplot(2,3,2)
stem(f2,'filled')
title('f(k-2)*u(k)')
1.3.2
解:
f3=subs(f1,k,-k)
subplot(2,3,3)
stem(f3,'filled')
title('f(-k)')
1.3.3
解:
f4=subs(f1,k,-k+2)
subplot(2,3,4)
stem(f4,'filled')
title('f(-k+2)')
1.3.4
解:
f5=subs(f1,k,k-2).*heaviside(k-2)
subplot(2,3,5)
stem(f5,'filled')
title('f(k-2)u(k-2)')
第2章系统时域分析及MATLAB实现
2.1自定义函数
2.1.1第1个自定义函数
已知连续信号f1(t)与f2(t),试利用MATLAB绘出f1(t)*f2(t)的时域波形。
解:
function[f,k]=sconv(f1,f2,k1,k2,p)
f=conv(f1,f2);
f=f*p;
k0=k1
(1)+k2
(2);
k3=length(f1)+length(f2)-2;
k=k0:
p:
k0+k3*p;
subplot(2,2,1)
plot(k1,f1)
title('f1(t)')
xlabel('t')
ylabel('f1(t)')
subplot(2,2,2)
plot(k2,f2)
title('f2(t)')
xlabel('t')
ylabel('f2(t)')
subplot(2,2,3)
plot(k,f);
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h)
title('f(t)=f1(t)*f2(t)')
xlabel('t')
ylabel('f(t)')
p=0.01;
k1=0:
p:
2;
f1=k1;
k2=k1;
f2=0.5*k2;
[f,k]=sconv(f1,f2,k1,k2,p)
2.1.2
已知序列f1(k)、f2(k),编写M文件求离散卷积和f1(k)*f2(k),并绘出其波形。
解:
function[f,k]=dconv(f1,f2,k1,k2)
f=conv(f1,f2);
k0=k1
(1)+k2
(1);
k3=length(f1)+length(f2)-2;
k=k0:
k0+k3;
subplot(2,2,1)
stem(k1,f1)
title('f1(k)')
xlabel('k')
ylabel('f1(k)')
subplot(2,2,2)
stem(k2,f2)
title('f2(k)')
xlabel('k')
ylabel('f2(k)')
subplot(2,2,3)
stem(k,f);
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h)
title('f(k)=f1(k)*f2(k)')
xlabel('k')
ylabel('f(k)')
f1=[0,1,2,3,3,3,3,0,0];
k1=-3:
5;
f2=[0,1,2,3,2,1,0];
k2=-3:
3;
[f,k]=dconv(f1,f2,k1,k2)
2.1.3
已知离散系统激励函数x(n)=δ(n+2)+2δ(n+1)+δ(n)+δ(n-1)+2δn-2),h(n)=δ(n+2),是利用MATLAB绘出该系统的零状态响应时域波形。
解:
function[f,k]=dconv(f1,f2,k1,k2)
f=conv(f1,f2);
k0=k1
(1)+k2
(1);
k3=length(f1)+length(f2)-2;
k=k0:
k0+k3;
subplot(2,2,1)
stem(k1,f1)
title('f1(k)')
xlabel('k')
ylabel('f1(k)')
subplot(2,2,2)
stem(k2,f2)
title('f2(k)')
xlabel('k')
ylabel('f2(k)')
subplot(2,2,3)
stem(k,f);
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h)
title('f(k)=f1(k)*f2(k)')
xlabel('k')
ylabel('f(k)')
f1=[1,2,1,1,2];
k1=-2:
2;
f2=[1];
k2=-2;
[f,k]=dconv(f1,f2,k1,k2)
2.1.4
已知系统的微分方程为:
y’’(t)+4y’(t)+3y(t)=x’(t)+2x(t),试用MATLAB完成下列各题;
(1)绘出该系统的单位冲击响应h(t);
(2)绘出该系统的单位阶跃响应g(t);
(3)若该系统输入输入信号x(t)=e-3tu(t),绘出此时系统的零状态响应波形。
解:
a=[143];
b=[012];
subplot(2,2,1)
impulse(b,a)
subplot(2,2,2)
step(b,a)
clf;
a=[143];
b=[012];
p1=0.6;
t1=0:
p1:
5;
p2=0.3;
t2=0:
p2:
5;
p3=0.005;
t3=0:
p3:
5;
x1=exp(-3*t1);
x2=exp(-3*t2);
x3=exp(-3*t3);
lsim(b,a,x1,t1)
text(0.5,-0.2,'p=0.6','color',[001])
holdon
lsim(b,a,x2,t2)
text(1.5,-0.02,'p=0.3','color',[00.70])
lsim(b,a,x3,t3)
text(0.01,-0.08,'p=0.01','color',[100])
holdoff
gridon
2.1.5
已知描述某离散系统的差分方程如下:
y(k)-3y(k-1)+2y(k-3)=x(k-1)+2x(k-2)
且知该系统的的输入序列为x(k)=(1/4)ku(k),试用MATLAB分析在0~20时间内的下列过程:
(1)绘出输入序列的时域波形;
(2)求出该系统输入序列为x(k)时的零状态响应样值;
(3)绘出该系统输入序列为x(k)时的零状态响应时域波形。
解:
a=[1-302];
b=[0120];
k=0:
20;
x=(1/4).^k;
dk=zeros(1,length(k));
dk
(1)=1;
uk=ones(1,length(k));
subplot(4,1,1)
stem(k,x)
title('输入序列x(k)')
ydk=filter(b,a,dk);
subplot(4,1,2)
stem(k,ydk)
title('单位冲击响应')
yuk=filter(b,a,uk);
subplot(4,1,3)
stem(k,yuk)
title('单位阶跃响应')
y=filter(b,a,x);
subplot(4,1,4)
stem(k,y)
title('激励信号为x(k)的零状态响应')
第3章连续系统的频域分析方法
3.1自定义函数
3.1.1第1个自定义函数
利用MATLAB实现f(t)=te-2tu(t)傅里叶变换,绘出其振幅谱和相位谱。
解:
symstwf
f=t*exp(-2*t)*sym('Heaviside(t)');
F=fourier(f)
omiga=-10:
10;
subplot(2,1,1);
ezplot(abs(F),[-10:
10]);
title('振幅谱')
subplot(2,1,2);
plot(omiga,angle(subs(F,'w',omiga)))
title('相位谱')
3.1.2
利用MATLAB实现F(jw)=-j*2w/(42+w2)的傅里叶变换并绘出其波形。
解:
symstw
F=-j*2*w/(4^2