信号与系统实验报告
图四:f(t)及f(2-2t)的实验结果
实验三 用MATLAB实现连续系统的时域分析
一、实验目的 1、掌握用MATLAB实现连续系统的是与分析方法
二、实验原理 系统的响应一般包括两个部分,即由当前输入所产生的响应(零状 态响应)和由历史输入(零输入相应)。对于低阶系统,一般可以通过 解析的方法得到响应。但对于高阶系统,手工计算就比较困难,这时 MATLAB强大的计算功能就能比较容易的确定系统的各种响应,如冲 激响应、阶跃响应、零输入响应、零状态响应、全响应等。 三、程序设计 【例一】求系统y″(t)+6y′(t)+8y(t)=3x′(t)+9x(t)的冲激响应和阶跃响 应。 解:(1)系统的冲激响应 h(0-)=h’(0+)=0 h”(t)=αδ(t)+βδ(t)+ ɑ=3 b=-9 h(0+)+h(0-)=ɑ (0+)=3 h′(0+)+h′(0-)=b h′(0+)=-9 h″(t)+6h′(t)+8h(t)=0 MATLAB程序: b=[3,9];a=[1,6,8]; sys=tf(b,a); t=0:0.1:10; y=impulse(sys,t); plot(t,y)
信号与系统实验报告
姓名: 学号: 专业: 班级: 实验二 信号的MATLAB表示
1、 实验目的 1、 掌握基本信号的MATLAB表示方法 2、 熟练使用MATLAB软件 2、 实验原理 信号时随时间变化的物理量。时域信号是指将信号表示成时间的函 数f(t),信号的时间特性是指信号的波形出现的先后、持续时间的长 短、随时间变化的快慢等。离散信号是指在某些不连续的时间上有信号 值,而在其它时间点上信号没有定义的一类信号。离散信号一般可以利
图1 f3=f1+f2实验结果
(2) 信号的反褶、位移、尺度变换 【例 已知f(t)=sin(t)/t。试通过反褶、位移、尺度变换由f(t)的 1】 波形得到f(-2t+3)的波形。 MATLAB程序: syms t; f=sym('sin(t)/t'); f1=subs(f,t,t+2); f2=subs(f1,t,2*t); f3=subs(f2,t,-t); subplot(2,2,1);ezplot(f,[-8,8]);grid on; subplot(2,2,2);ezplot(f1,[-8,8]);grid on; subplot(2,2,3);ezplot(f2,[-8,8]);grid on; subplot(2,2,4);ezplot(f3,[-8,8]);grid on;
图3 f(t)=cos3t+sin2t实验结果
(3) 设计程序,选择一个信号f(t),完成f(t)到f(2-2t)的 转化 MATLAB程序: clc clear close all t=-2:0.01:6; y=f(t); y1=f(2-2*t); subplot(2,1,1);plot(t,y) subplot(2,1,2);plot(t,y1)
图5 阶跃响应
实验四 用MATLAB实现连续系统的频域分析
一、实验目的 1、掌握连续时间信号的傅里叶变换和傅里叶逆变换的实现方法 2、掌握傅里叶变换的数值计算方法和绘制信号频谱的方法 二、实验原理 1、周期信号的分解 根据傅里叶级数的原理,任何周期信号都可以分解为三角级数
的组合,称为f(t)的傅里叶级数。例如一个方波信号可以分解为: 合成波形所包含的谐波分量越多,除间断点附近外,他越接近于原 波形,在间断点附近,即使合成的波形所含谐波次数足够多,也仍 存在约9%的偏差,这就是吉布斯现象。 2、傅里叶变换和傅里叶逆变换 傅里叶变换: 傅里叶逆变换: 求解傅里叶变换,可以调用fourier函数,调用格式为 F=fourier(f,u,v),是关于u的函数f的傅里叶变化,返回函数F是关于 v的函数。 求解傅里叶逆变换,可以调用ifourier函数,调用格式为 f=ifourier(F,u,v),是关于v的函数F的傅里叶变化,返回函数f是关于 u的函数。 傅里叶变换在物理学、电子类学科、数论、组合数学、信号 处理、概率论、统计学、密码学、声学、光学、海洋学、结构动 力学等领域都有着广泛的应用(例如在信号处理中,傅里叶变换 的典型用途是将信号分解成幅值谱——显示与频率对应的幅值大 小)。 三、程序设计及思考 1、周期信号的分解 【例一】用正弦信号的叠加近似合成一个频率为50Hz,幅度为3 的方波。 MATLAB程序: clear all fs=10000; t=0:1/fs:0.1; f0=50;sum=0; subplot(2,1,1) for n=1:2:9 plot(t,4/pi*1/n*sin(2*pi*n*f0*t),'k'); hold on; end title('信号叠加前'); subplot(2,1,2) for n=1:2:9 sum=sum+4/pi*1/n*sin(2*pi*n*f0*t); end plot(t,sum,'k');
图3
3、(1)编写程序,画出信号的傅里叶变换。 MATLAB程序: syms t; f=heaviside(t+1)-heaviside(t-1); ezplot(f); F=fourier(f); ezplot(F);
图4
(2)利用符号计算验证傅里叶变换的对称性。 MATLAB程序: clear clc close all syms w1 w2 ft=sym('f(t)'); Fw1=fourier(ft,w1) Fw2=fourier(Fw1,w1,w2)
图3 零状态响应
ห้องสมุดไป่ตู้
2.求系统的冲激响应和阶越响应。 解:(1)系统的冲激响应 MATLAB程序: b=[1,2];a=[1,5,3]; sys=tf(b,a); t=0:0.01:6; y=impulse(sys,t); plot(t,y);
图4 冲激响应
(2)系统的阶跃响应 MATLAB程序: b=[1,2];a=[1,5,3]; sys=tf(b,a); t=0:0.1:10; y=step(sys,t); plot(t,y)
用模数转换由连续信号来得到,计算机所能处理的只是离散信号。 常用的连续信号有直流信号、正弦信号、单位阶跃信号、单位冲击 信号、抽样信号等。常用的离散信号有正弦信号序列、单位阶跃序列、 单位冲激序列等。 信号的运算包括:信号的基本运算,信号的时域变换等。 3、 程序设计及思考题 1、 连续时间信号的基本运算: (1) 加法运算(两个时间序列长度相同的信号相加) MATLAB程序: t=0:0.01:2; f1=exp(-3*t); f2=0.2*sin(4*pi*t); f3=f1+f2; subplot(3,1,1);plot(t,f1);title('f1'); subplot(3,1,2);plot(t,f2);title('f2'); subplot(3,1,3);plot(t,f3);title('f3');
p= -2 -1 k= 1 2
实验六
用MATLAB实现连续系统的S域分析 (二)
一、实验目的 1、掌握连续时间系统的系统函数。 2、学会用MATLAB求解系统函数的零极点。 3、学会用MATLAB分析系统函数的极点分布与系统稳定性的关 系 二、实验原理 系统零状态响应的拉普拉斯变换与激励的拉普拉斯变换之 比称为系统函数H(s)。根据系统函数H(s)零极点的分布来分析 连续系统的稳定性是零极点分析的重要应用,由系统稳定性的 复频域条件可知,当系统函数H(s)的所有极点均位于S平面的 左半平面时,系统稳定。对于高阶系统,求解极点比较困难, 所以可以用MATLAB来实现。 系统函数H(s)通常是一个有理分式,其分子和分母均为可 分解因子形式的多项式,各项因子表明了H(s)零点和极点的位 置,从零极点的分布情况可确定系统的性质。H(s)零极点的计 算可应用MATLAB中的roots函数,分别求出分子和分母多项 式的根即可。也可应用pzmap函数,画出系统函数的零极点分 布图。 三、程序设计 【例一】已知系统函数为,试用MATLAB命令画出其零极点 分布图,并判断该系统是否稳定。 MATLAB程序: b=[1,-2]; a=[1,4,5]; sys=tf(b,a); pzmap(sys) axis([-3,3,-2,2])
L=laplace(f) 程序显示结果 L= a/((s+1)^2+a^2) 【例二】试用MATLAB的ilaplace函数求的拉普拉斯变换。 MATLAB程序: F=sym('s^2/(s^2+1)'); ft=ilaplace(F) 程序显示结果 ft = dirac(t)-sin(t) 【例三】利用MATLAB部分分式展开法求 的反变换。 MATLAB程序: format rat; B=[1,2]; A=[1,4,3,0]; [r,p]=residue(B,A) 程序显示结果: r= -1/6 -1/2 2/3 p= -3 -1 0 4、求的反变换。 MATLAB程序: format rat; B=[1,5,9,7]; A=[1,3,2]; [r,p,k]=residue(B,A) 程序显示结果: r= -1 2
程序显示结果: Fw1 = fourier(f(t),t,w1) Fw2 =
2*p
实验五
用MATLAB实现连续系统的S域分析 (一)
一、实验目的 1、掌握连续信号的拉氏变换和逆变换 2、学会用MATLAB求拉普拉斯变换 3、学会用MATLAB求拉普拉斯逆变换 二、实验原理 拉普拉斯变换是分析连续信号与系统的重要方法。运用拉氏变 换可以将连续时间LTI系统的时域模型简便地进行变换,经求解在还 原为时域解。从数学角度来看,拉氏变换是求解常系数线性微分方 程的工具。由拉氏变换导出的系统函数对系统特性分析也具有重要 意义。 连续时间信号f(t)的拉普拉斯变换定义为 拉普拉斯逆变换定义为 考虑到实际问题,人们用物理手段和实验方法所能记录和处理 的一切信号都是有起始时刻的,对于这类单边信号或因果信号,我 们引入单边拉普拉斯变换,定义为。 如果连续时间信号可以用符号表达式表达,则可利用MATLAB 的符号数学工具箱中laplace函数来实现其单边拉普拉斯变换,其语 句格式为 L=laplace(f) 式中L返回的是默认符号为自变量s的符号表达式;f则为时域符 号表达式,可通过sym的函数来定义。 如果连续时间信号f(t)可用符号表达式表达,则可利用MATLAB 的符号数学工具箱中ilaplace函数来实现其单边拉普拉斯变换,其语 句格式为 L=ilaplace(f) 式中f返回的是默认符号为自变量t的符号表达式;L则为时域符 号表达式,可通过sym的函数来定义。 用MATLAB函数residue可得到复杂有理分式F(s)的部分分式展 开式,其语句格式为[e,p,k]=residue(B,A)其中,B,A分别表示F(S)的分 子和分母多项式的系数向量;r为部分分式的系数;k为F(s)中整式部 分的系数。若F(s)为有理真分式,则k为0。 三、程序设计 【例一】使用MATLAB的laplace函数求的拉普拉斯变换。 MATLAB程序: f=sym('exp(-t)*sin(a*t)');