哈工大信号与系统实验
电气学院
Company number:【0089WT-8898YT-W8CCB-BUUT-202108】
实验一 常用连续时间信号的实现
1 实验目的 (1) 了解连续时间信号的特点; (2) 掌握连续时间信号表示的方法; (3) 熟悉MATLAB基本绘图命令的应用。 2 实验原理 (1) 信号的定义:信号是带有信息的随时间变化的物理量或物理现象。 (2) 信号的描述:时域法和频域法。 (3) 信号的分类:信号的分类方法很多,可以从不同角度对信号进行分类。
在信号与系统分析中,根据信号与自变量的特性,信号可分为确定信号与随机信号,周期信号与非周期信号,连续时间信号与离散时间信号,能量信号与功率信号,时限与频限信号,物理可实现信号。 3 涉及的MATLAB函数 (1) 正弦信号; (2) 指数信号; (3) 单位冲激信号; (4) 单位阶跃信号; (5) 抽样信号。 4 实验内容与方法
参考给出的程序并观察产生的信号,并通过改变相关参数(例如频率,周期,幅值,相位,显示时间段等),进一步熟悉这些工程实际与理论研究中常用信号的特征。 5 实验要求 (1) 在MATLAB中输入程序,验证实验结果,并将实验结果存入指定存储
区。 (2) 要求通过对验证性实验的练习,自行编制完整的程序,实现以下几种
信号的模拟,并得出实验结果。
(1)f(t)(t),取t0~10 (2)f(t)t(t),取t0~10
(3)f(t)5et5e2t,取t0~10 (4)f(t)cos100tcos2000t,取t=0~0.2 (5)f(t)4e0.5tcost,取t=0~10
(3)在实验报告中写出完整的自编程序,并给出实验结果。 6 实验结果
(1)f(t)(t),取t0~10t=-1::10;
程序和输出如下
y=heaviside(t); plot(t,y);
axis([-1,10,,])
(3)f(t)5et5e2t,取t0~10
程序和输出如下
A=5;a=-1;b=-2; t=0::10;
ft=A*exp(a*t)-A*exp(b*t); plot(t,ft)
(4)f(t)cos100tcos2000t,取t=0~0.2
程序和输出如下
A=100;B=2000; t=0::;
ft=cos(A*t)+cos(B*t); plot(t,ft)
实验二 常用LTI系统的频域分析
1. 实验目的
(1) 掌握连续时间信号傅里叶变换和傅里叶反变换的实现方法以及傅里叶
变换的特性实现方法; (2) 了解傅立叶变换的特点及其应用; (3) 掌握MATLAB相关函数的调用格式及作用; (4) 掌握傅里叶变化的数值计算方法以及绘制信号频谱图的方法; (5) 能够应用MATLAB对系统进行频域分析。 2. 实验原理 (1) 傅里叶级数的三角函数形式 (2) 傅立叶级数的指数形式 (3) 非周期信号的傅里叶变换 3. 涉及的MATLAB函数
(1)fourier函数; (2)ifourier函数; (3)quad8函数; (4)quad1函数; (5)freds函数; 4. 实验内容与方法
周期信号的傅里叶级数MATLAB实现;
利用MATLAB画出下图所示的周期三角波信号的频谱。 5. 实验要求
(1)在MATLAB中输入程序,验证实验结果,并将实验结果存入指定存
储区。
(2)在实验报告中写出完整的自编程序,并给出实验结果。 6. 实验结果 实验程序如下
%三角波脉冲信号的傅里叶级数实现 N=10;
n1=-N:-1;c1=-4*j*sin(n1*pi/2)/pi^2./n1.^2; c0=0;
n2=1:N;c2=-4*j*sin(n2*pi/2)/pi^2./n2.^2; cn=[c1 c0 c2];n=-N:N;
subplot 211;stem(n,abs(cn));ylabel('Cn的幅度'); subplot 212;stem(n,angle(cn));ylabel('Cn的相位'); xlabel('\\omega/\\omega_0')
输出频谱如下
实验三 连续LTI系统的复频域分析
1. 实验目的
(1)掌握连续时间信号拉普拉斯变换和拉普拉斯反变换的实现方法以及拉
普拉斯变换的特性实现方法;
(2)了解拉普拉斯变换的特点及其应用;
(3)掌握MATLAB相关函数的调用格式及作用; (4)能够应用MATLAB对系统进行复频域分析。 2. 实验原理
(1)拉普拉斯变换 (2)拉普拉斯的收敛域
(3)拉普拉斯反变换计算方法 (4)微分方程的拉普拉斯变换解法 (5)系统函数H(s) 3. 涉及的MATLAB函数 (1)residue函数
(2)laplace 函数 (3)i laplace 函数 (4)ezplot函数 (5)roots函数 4. 实验内容与方法
已知连续时间信号f(t)sin(t)(t),求出该信号的拉普拉斯变换,并用MATLAB绘制拉普拉斯变换的曲面图。 5. 实验要求
(1)在MATLAB中输入程序,验证实验结果,并将实验结果存入指定存储区。
(2)在实验报告中写出完整的自编程序,并给出实验结果。 6. 实验结果 程序如下
%绘制单边正弦信号拉普拉斯变换曲面图程序 clf; a=::; b=::;
[a,b]=meshgrid(a,b); d=ones(size(a)); c=a+i*b; c=c.*c; c=c+d; c=1./c; c=abs(c); mesh(a,b,c); surf(a,b,c);
axis([,,-2,2,0,15]);
title('单边正弦信号拉普拉斯变换曲面图'); colormap(hsv);
输出结果如下
实验四 离散时间信号的卷积和
1 实验目的 (1) 熟悉离散时间信号卷积的定义和表示以及卷积的结果; (2) 掌握利用计算机进行离散时间信号卷积运算的原理和方法; (3) 熟悉离散时间信号的相关计算方法; (4) 熟悉离散时间信号卷积运算函数dconv的应用。 2 实验原理 (1) 卷积的定义; (2) 卷积计算的几何解法; (3) 卷积积分的应用。 3 涉及的MATLAB函数 (1) dconv函数; (2) conv函数。 4 实验内容与方法 (1) 用MATLAB计算两个离散序列的卷积和,并绘制它们的时域波形; (2)用MATLAB图解法计算两个离散序列的卷积和。 5 实验要求 (1) 在MATLAB中输入程序,验证实验结果,并将实验结果存入指定存储
区域。 (2) 要求通过对验证性实验的练习,自行编制完整的程序,实现以下几种
情况的模拟,并得出实验结果。
已知序列1为h[n]n, 0n51, 0n5,序列2为f[n],分别
0, 其他0, 其他计算和绘出下列信号的图形:
①y1[n]f[n]h[n];②y2[n]f[n]h[n5]
(3)在实验报告中写出完整的自编程序,并给出实验结果。 6. 实验结果
程序和输出如下
1.计算法 ①
f1 = [0 1 2 3 4 5]; k1= [0 1 2 3 4 5]; f2 = [1 1 1 1 1 1]; k2= [0 1 2 3 4 5]; f = conv(f1,f2) k0=k1(1)+k2(1);
k3=length(f1)+length(f2)-2; k=k0:k0+k3 subplot 221 stem(k1,f1) title('f1(k)') xlabel('k') ylabel('f1(k)') subplot 222 stem(k2,f2) title('f2(k)') xlabel('k') ylabel('f2(k)') subplot 223 stem(k,f)
title('f(k)=f1(k)*f2(k)') xlabel('k') ylabel('f(k)')
h=get(gca,'position'); h(3)=*h(3);
set(gca,'position',h) f =
0 1 3 6 10 15 15 14 12 9 5 k =
0 1 2 3 4 5 6 7 8 9 10 ②
f1 = [0 1 2 3 4 5]; k1= [-5 -4 -3 -2 -1 0]; f2 = [1 1 1 1 1 1]; k2= [0 1 2 3 4 5]; f = conv(f1,f2) k0=k1(1)+k2(1);
k3=length(f1)+length(f2)-2; k=k0:k0+k3 subplot 221 stem(k1,f1) title('f1(k)') xlabel('k') ylabel('f1(k)')
subplot 222 stem(k2,f2) title('f2(k)') xlabel('k') ylabel('f2(k)') subplot 223 stem(k,f)
title('f(k)=f1(k)*f2(k)') xlabel('k') ylabel('f(k)')
h=get(gca,'position'); h(3)=*h(3);
set(gca,'position',h) f =
0 1 3 6 10 15 15 14 12 9 5 k =
-5 -4 -3 -2 -1 0 1 2 3 4 5 2.图解法 ①
n=[-10:10];
x=[0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 0 0 0 0 0] h=[0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0] subplot 321;stem(n,x,' *k'); subplot 322;stem(n,h,'k'); n1=fliplr(-n);h1=fliplr(h);
subplot 323;stem(n,x,' *k');hold on;stem(n1,h1,'k'); h2=[0,h1];h2(length(h2)) = [];n2 = n1;
subplot 324;stem(n,x,' *k');hold on;stem(n2,h2,'k'); h3=[0,h2];h3(length(h3)) = [];n3 = n2;
subplot 325;stem(n,x,' *k');hold on;stem(n3,h3,'k');
n4=-n;nmin=min(n1)-max(n4);nmax=max(n1)-min(n4);n=nmin:nmax; y=conv(x,h)
subplot 326;stem(n,y,'.k'); ②
n=[-10:10];
x=[0 0 0 0 0 0 1 2 3 4 5 0 0 0 0 0 0 0 0 0 0] h=[0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0] subplot 321;stem(n,x,' *k'); subplot 322;stem(n,h,'k'); n1=fliplr(-n);h1=fliplr(h);
subplot 323;stem(n,x,' *k');hold on;stem(n1,h1,'k'); h2=[0,h1];h2(length(h2)) = [];n2 = n1;
subplot 324;stem(n,x,' *k');hold on;stem(n2,h2,'k'); h3=[0,h2];h3(length(h3)) = [];n3 = n2;
subplot 325;stem(n,x,' *k');hold on;stem(n3,h3,'k');
n4=-n;nmin=min(n1)-max(n4);nmax=max(n1)-min(n4);n=nmin:nmax; y=conv(x,h)
subplot 326;stem(n,y,'.k');
实验五 常用LTI系统的频域分析
1. 实验目的
(1) 熟悉离散LTI系统在典型激励信号下的响应及其特征; (2) 掌握用卷积法计算离散时间系统的零状态响应; (3) 掌握MATLAB相关函数的调用格式及其作用; (4) 通过该实验,掌握应用MATLAB对系统进行频域分析基本方法。 2. 实验原理
一般求解线性常系数差分方程有如下方法: (1) 迭代法 (2)经典法 (3)零输入响应和零状态响应 (4)卷积计算法
3.涉及的MATLAB函数
(1)impz函数;(系统的冲激响应)(2)filter函数.(求系统放入差分方程)
4.实验内容与方法
(1)已知离散时间系统差分方程,用MATLAB绘制单位响应波形; (2)已知离散时间系统差分方程和系统输入序列,用MATLAB绘制输入
序列的时域波形和系统的零状态响应波形;
(3)已知离散时间系统差分方程,用MATLAB绘制系统单位阶跃响应的
时域波形;
(4)已知某LTI离散系统的单位响应,求该系统在给定激励下的零状态响
应并绘制其时域波形图。 5. 实验要求
(1)在MATLAB中输入程序,验证实验结果,并存入指定存储区域。 (2)要求通过对验证性实验的练习,自行编制完整的实验程序,实现求解
以下系统要求,并得出实验结果。
①设h[n](0.9)n[n],输入f[n][n][n10],求系统输出
y[n]f[n]h[n]。
②设离散系统可由下列差分方程表示:
试计算n[20:100]时的系统冲激响应和阶跃响应。 (3) 在实验报告中写出完整的自编程序,并给出实验结果。
6. 实验结果 ①程序如下
k1= 0:30 f1 =.^k1; k2= k1;
f2=zeros(1,length(k2));
f2([find((k2>=0)&(k2<10))])=1; f = conv(f1,f2) k0=k1(1)+k2(1);
k3=length(f1)+length(f2)-2; k=k0:k0+k3 subplot 221 stem(k1,f1) title('h(n)') xlabel('k') ylabel('f1(k)') subplot 222 stem(k2,f2) title('f(n)') xlabel('k') ylabel('f2(k)') subplot 223 stem(k,f)
title('y(n)=f(n)*h(n)') xlabel('k') ylabel('f(k)')
h=get(gca,'position'); h(3)=*h(3);
set(gca,'position',h)
②程序如下
(1)冲击响应 程序如下
a=[1 -1 ]; b=[1]; k=-20:100;
x=[zeros(1,20),1, zeros(1,100)]; stem(k,x) y=filter(b,a,x) subplot 211 stem(k,x) title('输入序列') xlabel('k')
ylabel('y(k)') subplot 212 stem(k,y) title('响应序列') xlabel('k') ylabel('y(k)')
结果如下
(2)阶跃响应
a=[1 -1 ]; b=[1]; k=-20:101;
x=[zeros(1,20),1,ones(1,101)]; stem(k,x) y=filter(b,a,x) subplot 211 stem(k,x) title('输入序列') xlabel('k') ylabel('y(k)') subplot 212 stem(k,y) title('响应序列') xlabel('k') ylabel('y(k)')
输出如下
实验六 离散LTI系的Z域分析
1.实验目的
(1)掌握离散时间信号Z变换和Z反变换的实现方法及编程思想;
(2)掌握系统频率响应函数幅频特性、相频特性和系统函数的零极点图绘
制方法;
(3)掌握用系统函数计算离散时间系统的响应; (4)掌握MATLAB相关函数的调用格式及作用;
(5)通过该实验,了解利用零极图判断系统稳定性的原理。 2.实验原理
(1)Z变换的定义及其收敛域;
(2)Z反变换;
(3)利用Z变换求解差分方程; (4)离散系统函数
3. 涉及的MATLAB函数
(1)ztrans函数 (2)iztrans函数 (3)freqz函数 (4)residuez函数 (5)zplane函数 4.实验内容与方法
(1)利用MATLAB实现Z变换和Z反变换; (2)利用MATLAB绘制离散系统的零极图;
(3)利用MATLAB分析离散系统的零极图分布于系统单位响应时域特性
的关系;
(4)利用MATLAB实现Z域的部分分时展开式。 5. 实验要求
(1)在MATLAB中输入程序,验证实验结果,并将实验结果存入指定存
储区域。
(2)要求通过对验证性实验的练习,自行编制完整的实验程序,实现求解
以下系统要求,并得出实验结果:
①用MATLAB的residuez函数,求出下列各式的部分分时展开式和f[n]。 ②已知离散时间系统的差分方程为
f[n]0.5n[n],y[1]1,y[2]3,试用filter函数求系统的 1 零状态输入响应 2 零状态响应 3 全响应
③已知离散系统的系统函数分别为
z+1z22z1, H(z)H(z)332z1z1z3z2+2,H(z)3 H(z)322z0.2z0.3z0.4z2z4z1试用MATLAB实现下列分析过程:求出系统的零极点位置;绘出系
统的零极点图,根据零极点图判断系统的稳定性;绘出系统单位响应的时域波形,并分析系统稳定性与系统单位响应时域特性的关系。 ④已知描述离散系统的差分方程为
试用MATLAB绘出该系统的零极点分布图,并绘出系统的幅频和相频特性曲线,分析系统的作用。
⑤已知因果(单边)离散序列的Z变换分别如下所示,试用MATLAB求出其Z反变换。
2z2z1z2z1, F(z) F(z)21zz2z3z2z2z32z2z1z2 , F(z)4 F(z)2323z2z3z2z1z2z1(3)在实验报告中写出完整的自编程序,并给出实验结果。 6. 实验结果
① 程序如下
num=[2 16 44 56 32]; den=[3 3 -15 18 -12]; [r,p,k]=residuez(num,den)
结果如下
r = + - p = + - k =
程序如下
num=[4 ];
den=[1 -2 10 6 65];
[r,p,k]=residuez(num,den)
结果如下
r = + - - + p = + - + - k =
② 零输入响应 程序如下
num=[2 -1 -3]; den=[2 -1]; y0=[1,3]; N=50; n=[0;N-1]'; x=0;
zi=filtic(num,den,y0);
[y,zf]=filter(num,den,x,zi); plot(n,x,n,y,'b--'); title('零输入响应'); xlabel('n');ylabel('x(n)-y(n)'); legend('输入x','输出y',1); grid;
结果如下 零状态响应 程序如下
num=[2 -1 -3]; den=[2 -1]; y0=[0,0]; N=50; n=[0;N-1]'; x=.^n;
zi=filtic(num,den,y0);
[y,zf]=filter(num,den,x,zi); plot(n,x,n,y,'b--'); title('零状态响应'); xlabel('n');ylabel('x(n)-y(n)'); legend('输入x','输出y',1); grid
结果如下 全响应 程序如下
num=[2 -1 -3]; den=[2 -1]; y0=[1,3]; N=50; n=[0;N-1]'; x=.^n;
zi=filtic(num,den,y0);
[y,zf]=filter(num,den,x,zi); plot(n,x,n,y,'b--'); title('全响应');
xlable('n');ylable('x(n)-y(n)'); xlabel('n');ylabel('x(n)-y(n)'); legend('输入x','输出y',1); grid
结果如下 ③ 程序如下
a=[2 0 0 -1]; b=[1 -2 -1]; p=roots(a); q=roots(b); p=p' q=q';
x=max(abs([p q 1])); x=x+;
y=x; clf hold on
axis([-x x -y y]); axis([-x x -y y]); w=0:pi/300:2*pi; t=exp(i*w) plot(t)
axis('square'); plot([-x,x],[0,0]); plot([0,0],[-y,y]); text,x,'jim[z]'); text(y,,'Re[z]');
plot(real(p),imag(p),'x'); plot(real(q),imag(q),'o');
title('pole-zero diagram for discrete system') hold off
结果和输出如下
p =
- + q =
num=[1 -2 -1]; den=[2 0 0 -1];
[H,w]=freqz(num,den) plot(w,H,'*')
输出如下 ④ 程序如下
a=[4 -1 -1]; b=[1 -1 -1]; p=roots(a); q=roots(b); p=p' q=q';
x=max(abs([p q 1])); x=x+; y=x; clf hold on
axis([-x x -y y]);
w=0:pi/300:2*pi; t=exp(i*w) plot(t)
axis('square'); plot([-x,x],[0,0]); plot([0,0],[-y,y]); text,x,'jim[z]'); text(y,,'Re[z]');
plot(real(p),imag(p),'x'); plot(real(q),imag(q),'o');
title('pole-zero diagram for discrete system') hold off
结果和输出如下
p =
q =
den=[4 -1 -1]; num=[1 -1 -1]
[H,w]=freqz(num,den) plot(w,H,'*')
输出如下 ⑤ (1) 程序如下
F=sym('(z^2+z+1)/(z^2+z-2)'); f=iztrans(F); f
结果如下
f =
(-2)^n/2 - kroneckerDelta(n, 0)/2 + 1
(2) 程序如下
F=sym('(2*z^2-z+1)/(z^3+z^2+*z)'); f=iztrans(F); f
结果如下
f =
(- + *i)^(n - 1)**i + *kroneckerDelta(n - 1, 0) - (- - *i)^(n - 1)**i - *kroneckerDelta(n, 0)
因篇幅问题不能全部显示,请点此查看更多更全内容