(完整版)实验二、信号与系统时域分析的MATLAB实现
数字信号处理matlab实验2 离散系统的时域分析
实验2离散系统的时域分析实验目的:加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
实验原理:离散系统][n x ][n y Discrete-timesystme其输入、输出关系可用以下差分方程描述:∑∑==-=-Mk k Nk kk n x p k n y d][][输入信号分解为冲激信号,∑∞-∞=-=m m n m x n x ][][][δ。
记系统单位冲激响应][][n h n →δ,则系统响应为如下的卷积计算式:∑∞-∞=-=*=m m n h m x n h n x n y ][][][][][当N k d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。
在MATLAB 中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。
实验内容和要求:1、以下程序中分别使用conv 和filter 函数计算h 和x 的卷积y 和y1,运行程序,并分析y 和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i 个值,x[n]有j 个值,使用filter 完成卷积功能,需要如何补零? % Program P2_7 clf;h = [3 2 1 -2 1 0 -4 0 3]; % impulse response x = [1 -2 3 -4 3 2 1];% input sequencey = conv(h,x); n = 0:14; subplot(2,1,1); stem(n,y);xlabel('Time index n'); ylabel('Amplitude'); title('Output Obtained by Convolution'); grid; x1 = [x zeros(1,8)]; y1 = filter(h,1,x1); subplot(2,1,2); stem(n,y1);xlabel('Time index n'); ylabel('Amplitude'); title('Output Generated by Filtering'); grid; 程序运行结果:2468101214-20-1001020Time index nA m p l i t u d e Output Obtained by Convolution2468101214-20-1001020Time index nA m p l i t u d eOutput Generated by Filtering由图可看出,y 与y1并无差别。
信号与系统 信号的时域分析 及Matlab实现
信号与系统 课程实验报告实验四 实验名称信号的时域分析 及Matlab 实现 系 别 教师姓名实验地点 5309 实验日期 2011-06-20学生姓名学号 一、实验内容1.预习实验原理。
2.对实验内容编写程序(M 文件),上机运行。
3.记录并整理实验数据。
二、实验目的1.掌握用Matlab 分析系统时间响应的方法。
2.掌握用Matlab 分析连续、离散系统的冲激响应的方法。
3.理解系统零、极点分布与系统稳定性关系。
三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况)计算机一台(安装MATLAB6.5版本或以上版本)四、实验试做记录(含程序、数据记录及分析)1.设)2)(1()(p s p s s s H --= 设①p1=-2,p2=-30; ②p1=-2,p2=3(1)针对极点参数①②,画出系统零、极点分布图,判断该系统稳定性。
程序:clearnum=[1];den=[1,32,60];[r,poles,k]=residue(num,den);p=roots(den);z=roots(num);subplot(2,2,1);plot(real(p),imag(p),'*');hold on;plot(real(z),imag(z),'o');grid onT=0:0.1:10;y1=impulse(num,den,T);subplot(2,2,2);plot(T,y1);grid;title('脉冲响应')结果:位于s左半平面,稳定(2)针对极点参数①②,绘出系统的脉冲响应曲线,并观察t→∞时,脉冲响应变化趋势。
程序:clearnum=[1];den=[1,-1,-6];[r,poles,k]=residue(num,den);p=roots(den);z=roots(num);subplot(2,2,1);plot(real(p),imag(p),'*');hold on;plot(real(z),imag(z),'o');grid onT=0:0.1:10;y1=impulse(num,den,T);subplot(2,2,2);plot(T,y1);grid;title('脉冲响应')结果:由系统零、极点分布图可知,该系统有一极点位于s右半平面,故系统是不稳定的。
《信号与系统》课程实验报告
《信号与系统》课程实验报告《信号与系统》课程实验报告一图1-1 向量表示法仿真图形2.符号运算表示法若一个连续时间信号可用一个符号表达式来表示,则可用ezplot命令来画出该信号的时域波形。
上例可用下面的命令来实现(在命令窗口中输入,每行结束按回车键)。
t=-10:0.5:10;f=sym('sin((pi/4)*t)');ezplot(f,[-16,16]);仿真图形如下:图1-2 符号运算表示法仿真图形三、实验内容利用MATLAB实现信号的时域表示。
三、实验步骤该仿真提供了7种典型连续时间信号。
用鼠标点击图0-3目录界面中的“仿真一”按钮,进入图1-3。
图1-3 “信号的时域表示”仿真界面图1-3所示的是“信号的时域表示”仿真界面。
界面的主体分为两部分:1) 两个轴组成的坐标平面(横轴是时间,纵轴是信号值);2) 界面右侧的控制框。
控制框里主要有波形选择按钮和“返回目录”按钮,点击各波形选择按钮可选择波形,点击“返回目录”按钮可直接回到目录界面。
图1-4 峰值为8V,频率为0.5Hz,相位为180°的正弦信号图1-4所示的是正弦波的参数设置及显示界面。
在这个界面内提供了三个滑动条,改变滑块的位置,滑块上方实时显示滑块位置代表的数值,对应正弦波的三个参数:幅度、频率、相位;坐标平面内实时地显示随参数变化后的波形。
在七种信号中,除抽样函数信号外,对其它六种波形均提供了参数设置。
矩形波信号、指数函数信号、斜坡信号、阶跃信号、锯齿波信号和抽样函数信号的波形分别如图1-5~图1-10所示。
图1-5 峰值为8V,频率为1Hz,占空比为50%的矩形波信号图1-6 衰减指数为2的指数函数信号图1-7 斜率=1的斜坡信号图1-8 幅度为5V,滞后时间为5秒的阶跃信号图1-9 峰值为8V,频率为0.5Hz的锯齿波信号图1-10 抽样函数信号仿真途中,通过对滑动块的控制修改信号的幅度、频率、相位,观察波形的变化。
matlab信号与系统实验报告
matlab信号与系统实验报告Matlab信号与系统实验报告引言:信号与系统是电子工程、通信工程等领域中的重要基础课程,对于理解和应用各种信号处理技术具有重要意义。
本实验报告旨在通过使用Matlab软件,对信号与系统的基本概念和实验进行探讨和分析。
实验一:信号的基本特性分析在信号与系统的研究中,我们首先需要了解信号的基本特性。
通过Matlab软件,我们可以方便地对不同类型的信号进行分析和处理。
在本实验中,我们选择了常见的正弦信号和方波信号进行分析。
首先,我们生成了一个频率为1kHz,幅度为2V的正弦信号,并绘制了其时域波形图和频谱图。
通过观察时域波形图,我们可以看到正弦信号具有周期性和连续性的特点。
而通过频谱图,我们可以看到正弦信号在频域上只有一个峰值,说明其是单频信号。
接下来,我们生成了一个频率为1kHz,幅度为2V,占空比为50%的方波信号,并绘制了其时域波形图和频谱图。
与正弦信号不同,方波信号具有分段常值的特点。
通过频谱图,我们可以看到方波信号在频域上存在多个谐波分量,说明其是由多个频率的正弦信号叠加而成。
实验二:系统的时域响应分析在信号与系统中,系统的时域响应是描述系统对输入信号进行处理的重要指标。
通过Matlab软件,我们可以方便地分析和绘制系统的时域响应。
在本实验中,我们选择了一个一阶低通滤波器作为系统,输入信号为一个频率为1kHz,幅度为2V的正弦信号。
通过绘制输入信号和输出信号的时域波形图,我们可以观察到系统对输入信号进行了滤波处理,输出信号的幅度和相位发生了变化。
此外,我们还可以通过改变系统的参数,如截止频率和阶数,来观察系统的时域响应的变化。
通过对比不同参数下的输出信号波形图,我们可以得出不同参数对系统响应的影响。
实验三:系统的频域响应分析除了时域响应,频域响应也是描述系统特性的重要指标。
通过Matlab软件,我们可以方便地进行系统的频域响应分析。
在本实验中,我们选择了一个二阶巴特沃斯低通滤波器作为系统,输入信号为一个频率为1kHz,幅度为2V的正弦信号。
实验二 连续信号时域分析的MATLAB实现
实验二 连续信号时域分析的MATLAB 实现一. 实验目的1. 熟悉MATLAB 软件平台;2. 掌握MATLAB 编程方法、常用语句和可视化绘图技术;3. 编程实现常用信号及其运算MATLAB 实现方法。
二. 实验原理信号一般是随时间而变化的某些物理量。
按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用()f t 和()f k 来表示。
若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。
MATLAB 强大的图形处理功能及符号运算功能,为实现信号的可视化及其时域分析提供了强有力的工具。
根据MATLAB 的数值计算功能和符号运算功能,在MATLAB 中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。
在采用适当的MATLAB 语句表示出信号后,就可以利用MATLAB 中的绘图命令绘制出直观的信号波形了。
下面分别介绍连续时间信号和离散时间信号的MATLAB 表示及其波形绘制方法。
1.连续时间信号所谓连续时间信号,是指其自变量的取值是连续的,并且除了若干不连续的点外,对于一切自变量的取值,信号都有确定的值与之对应。
从严格意义上讲,MATLAB 并不能处理连续信号。
在MATLAB 中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。
在MATLAB 中连续信号可用向量或符号运算功能来表示。
⑴ 向量表示法对于连续时间信号()f t ,可以用两个行向量f 和t 来表示,其中向量t 是用形如12::t t p t =的命令定义的时间范围向量,其中,1t 为信号起始时间,2t 为终止时间,p 为时间间隔。
向量f 为连续信号()f t 在向量t 所定义的时间点上的样值。
例如:对于连续信号sin()()()t f t Sa t t== ,我们可以将它表示成行向量形式,同时用绘图命令plot()函数绘制其波形。
实验二利用matlab进行时域分析
实验二利用matlab进行时域分析在本实验中,我们将使用MATLAB来进行时域分析。
时域分析是指对信号的时间范围内的波形进行分析。
总的来说,它是一种非常实用的分析方法,因为它允许我们对信号进行详细的观察和研究。
在此之前,建议你先了解一些MATLAB的基础知识,比如如何在MATLAB中载入数据、如何绘制图形等等。
我们假设你已经掌握了这些基础知识,并已经准备好开始这个实验。
在MATLAB中,有许多内置函数可用于分析时间域信号。
下面仅介绍几个常用的函数。
1. plot函数使用plot函数可以绘制信号波形。
在MATLAB中,我们可以载入所需的数据,然后使用“plot”函数将数据绘制成波形。
例如,以下代码绘制了一个简单的余弦波:```t = 0:0.01:pi;y = cos(t);plot(t,y);```在这个例子中,我们使用“t”来表示时间,它的范围是从0到π,步长为0.01。
我们还设置了一个“y”向量,它是根据时间向量计算得出的余弦函数值。
最后,我们使用“plot”函数将时间和信号值绘制成波形。
2. fft函数使用FFT函数可以将时域信号转换为频域信号。
MATLAB中的fft函数可以帮助我们计算信号的傅里叶变换,进而分析信号的频谱。
以下是示例代码:```Fs = 1000;t = 0:1/Fs:1-1/Fs;x = sin(2*pi*100*t) + sin(2*pi*200*t);N = length(x);X = fft(x)/N;f = Fs*(0:N/2-1)/N;plot(f,2*abs(X(1:N/2)));```在这个例子中,我们首先定义采样率“Fs”,取样时间“t”,并定义一个包含100和200Hz正弦波的信号“x”。
然后,我们使用“fft”函数计算信号“x”的傅里叶变换。
“N”是“x”的长度,而“X”是计算出的FFT系数。
最后,我们使用“plot”函数将傅里叶变换的振幅绘制成图形。
MATLAB实验2系统时域分析
title('f1(t)')
xlabel('t')
ylabel('f1(t)') 5
续:
subplot(2,2,2)
plot(k2,f2)
%在子图2绘出f2(t)的时域波形图
title('f2(t)')
xlabel('t')
ylabel('f2(t)')
➢ hold off
➢
系统零状态响应的仿真波形图如下图所示:
12
仿真结果
13
实验原理三
➢ 连续时间系统冲激响应的MATLAB实现
MATLAB为用户提供了专门用于连续系统冲激 响应并绘制其时域波形的impulse函数
函数impulse()的调用格式: impulse(b,a)
14
➢ 连续时间系统阶跃响应的MATLAB实现
ylabel('f(t)’)
6
举例1
➢ 已知两个连续时间信号如下图所示,试用MATLAB 求f(t)=f1(t)*f2(t),并绘出f(t)的时域波形图。
7
➢ MATLAB命令如下:
p=0.01; k1=0:p:2; f1=0.5*k1; k2=k1; f2=f1; [f,k]=sconv(f1,f2,k1,k2,p)
实验二 系统的时域分析
1
实验目的
➢ 1.掌握连续时间信号卷积的原理及其matlab实现 ➢ 2.掌握连续时间系统响应的原理及其matlab实现 ➢ 3.掌握离散系统单位脉冲序列响应及其matlab实现 ➢ 4.掌握离散序列卷积和的计算方法及其matlab实现
2
实验二 利用MATLAB进行时域分析报告
实验二 利用MATLAB 进行时域分析本实验容包含以下三个部分:基于MATLAB 的线性系统稳定性分析、基于MATLAB 的线性系统动态性能分析、和MATALB 进行控制系统时域分析的一些其它实例。
一、 基于MATLAB 的线性系统稳定性分析线性系统稳定的充要条件是系统的特征根均位于S 平面的左半部分。
系统的零极点模型可以直接被用来判断系统的稳定性。
另外,MATLAB 语言中提供了有关多项式的操作函数,也可以用于系统的分析和计算。
(1)直接求特征多项式的根设p 为特征多项式的系数向量,则MATLAB 函数roots()可以直接求出方程p=0在复数围的解v,该函数的调用格式为:v=roots(p)例3.1 已知系统的特征多项式为: 123235++++x x x x特征方程的解可由下面的MATLAB 命令得出。
>> p=[1,0,3,2,1,1]; v=roots(p) 结果显示:v =0.3202 + 1.7042i 0.3202 - 1.7042i -0.7209 0.0402 + 0.6780i 0.0402 - 0.6780i利用多项式求根函数roots(),可以很方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和其它性能。
(2)由根创建多项式如果已知多项式的因式分解式或特征根,可由MATLAB 函数poly()直接得出特征多项式系数向量,其调用格式为:p=poly(v)如上例中:v=[0.3202+1.7042i;0.3202-1.7042i;-0.7209;0.0402+0.6780i; 0.0402-0.6780i];>> p=poly(v) 结果显示p =1.0000 0.0001 3.00002.0001 0.9998 0.9999由此可见,函数roots()与函数poly()是互为逆运算的。
(3)多项式求值在MATLAB 过函数polyval()可以求得多项式在给定点的值,该函数的调用格式为: polyval(p,v) 对于上例中的p 值,求取多项式在x 点的值,可输入如下命令:>> p=[1,0,3,2,1,1]; x=1polyval(p,x) 结果显示 x = 1 ans = 8(4)部分分式展开 考虑下列传递函数:nn n nn n a s a s a b s b s b den num s N s M +⋅⋅⋅+++⋅⋅⋅++==--110110)()( 式中0a 0≠,但是i a 和j b 中某些量可能为零。
实验二-MATLAB用于时域分析
实验二 MATLAB用于时域分析一、实验目的通过使用MATLAB完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。
二、实验原理在MATLAB中,可以通过单输入单输出系统的传递函数,进行系统的脉冲响应,阶跃响应以及一般输入响应等时域分析。
用到以下函数:单位阶跃响应 step(num,den,t)单位脉冲响应impluse(num,den,t)一般输入响应 y=Isim(num,den,u,t)时间t是事先定义的矢量,u为输入信号。
此外,还可以求出系统的超调量,调节时间以及稳态误差。
SIMULINK是MATLAB的一个附加组件,用来提供一个系统的建模、动态仿真及综合分析的工作平台。
SIMULINK模型可以用来模拟线性或非线性、连续或离散,或者两者混合的系统,即可用它来模拟几乎所有的动态系统。
三、实验内容通过MATLAB以及其中的SIMULINK完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。
四、实验代码1、一阶系统响应sys1=tf([100],[1 0]);sys2=tf([0.1],[1]);sys=feedback(sys1,sys2);step(sys)2、二阶系统响应wn=1t=0:0.1:12;num=[1];zeta1=0;den1=[1 2*zeta1 1];zeta3=0.3;den3=[1 2*zeta3 1];zeta5=0.5;den5=[1 2*zeta5 1];zeta7=0.7;den7=[1 2*zeta7 1];zeta9=1.0;den9=[1 2*zeta9 1];[y1,x,t]=step(num,den1,t);[y3,x,t]=step(num,den3,t);[y5,x,t]=step(num,den5,t);[y7,x,t]=step(num,den7,t);[y9,x,t]=step(num,den9,t);plot(t,y1,t,y3,t,y5,t,y7,t,y9)grid on;3、稳定性分析den=[1 1 2 24];roots(den)4、求动态性能指标t=0:0.01:2;num=[1000]';den=[1 34.5 1000];[y,x,t]=step(num,den,t);plot(t,y);maxy=max(y);yes=y(length(t));pos=100*(maxy-yes)/yesfor i=1:1:201if y(i)==maxy,n=i;endendtp=(n-1)*0.01for i=1:1:201if(y(i)<1.05&y(i)>0.95),n=i;endbreak;endts=(n-1)*0.015、稳态误差分析t=0:0.1:15;[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=impulse(num1,den1,t);y2=impulse(num2,den2,t);y3=impulse(num3,den3,t);subplot(311);plot(t,y1);subplot(312);plot(t,y2);subplot(313);plot(t,y3);er1=0-y1(length(t))er2=0-y2(length(t))er3=0-y3(length(t))6、求单位阶跃响应及其稳态误差t=0:0.1:20[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=step(num1,den1,t);y2=step(num2,den2,t);y3=step(num3,den3,t);subplot(311);plot(t,y1);subplot(312);plot(t,y2);subplot(313);plot(t,y3);er1=1-y1(length(t));er2=1-y2(length(t));er3=1-y3(length(t));7、求单位斜坡响应及其稳态误差t=0:0.1:20;t1=0:0.1:100;[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=step(num1,[den1 0],t1);y2=step(num2,[den2 0],t);y3=step(num3,[den3 0],t);subplot(311);plot(t1,y1,t1,t1);subplot(312);plot(t,y2,t,t);subplot(313);plot(t,y3,t,t);er1=t1(length(t1))-y1(length(t1))er2=t(length(t))-y2(length(t))er3=t(length(t))-y3(length(t))8、实例分析kp=[0.11 6];t=[0:0.01:1];num1=303.03*kp(1);den1=[0.00001 0.00633 0.20167 21.21*kp(1)+1];y1=step(num1,den1,t);num2=303.03*kp(2);den2=[0.00001 0.00633 0.20167 21.21*kp(2)+1];y2=step(num2,den2,t);subplot(211);plot(t,y1);subplot(212);plot(t,y2);gtext('kp=0.11');gtext('kp=6');9、SIMULINK用于系统仿真五、实验结果1、一阶系统响应2、二阶系统响应3、稳定性分析4、求动态性能指标5、稳态误差分析6、求单位阶跃响应及其稳态误差7、求单位斜坡响应及其稳态误差8、实例分析9、SIMULINK用于系统仿真六、实验总结通过本次实验实现了用MATLAB完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。
《MATLAB》信号的时域表示与分析实验报告
《MATLAB》信号的时域表示与分析实验报告1、编写一个MATLAB程序,以Q2_1为文件名存盘,使之能够在同一个图形窗口中的两个子图中分别绘制信号x[n]=0.5|n| 和x(t)=cos(2πt)[u(t)-u(t-3)]。
要求选择的时间窗能够表现出信号的主要部分。
2、编写一个MATLAB程序,以Q2_2为文件名存盘,由给定信号x(t) = e-0.5t u(t) 求信号y(t) = x(1.5t+3),并绘制出x(t) 和y(t)的图形。
3、编写一个MATLAB程序,以Q2_3为文件名存盘。
给定两个连续时间序列:x(t)= 0.5t[u(t)-u(t-4)] h(t) = u(t)-u(t-4)计算它们的卷积,并分别绘制x(t)、h(t)和它们的卷积y(t)的图形。
2.4编写一个MA TLAB 程序,以Q2_4为文件名存盘。
给定两个离散时间序列: x[n] = 0.5n{u[n]-u[n-4]} h[n] = u[n]-u[n-4]计算它们的卷积,并分别绘制x[n]、h[n]和它们的卷积y[n]的图形。
2.5编写一个MATLAB 程序,以Q2_5为文件名存盘。
两个信号分别为:1()0.5[()(4)]f t t u t u t =--和 2()sin(4)f t t =π。
用MATLAB 绘制这两个信号,同时绘制两信号的和与积的波形。
2.6编写一个MATLAB 程序,以Q2_6为文件名存盘。
已知连续信号f(t)=u(t+1)-tu(t)+(t-1)u(t-1),用Matlab 绘制以下时域变换的时域波形:f 1(t)=2f(0.5t),f 2(t)=f(-2t+3),f 3(t)= ()df t dt ,4()()t f t f d ττ-∞=⎰。
信号与系统MATLAB实验
实验1 信号的时域描述与运算一、实验目的1. 掌握信号的MATLAB 表示及其可视化方法。
2. 掌握信号基本时域运算的MATLAB 实现方法。
3. 利用MATLAB 分析常用信号,加深对信号时域特性的理解。
二、实验原理与方法1. 连续时间信号的MATLAB 表示连续时间信号指的是在连续时间范围内有定义的信号,即除了若干个不连续点外,在任何时刻信号都有定义。
在MATLAB 中连续时间信号可以用两种方法来表示,即向量表示法和符号对象表示法。
从严格意义上来说,MATLAB 并不能处理连续时间信号,在MATLAB 中连续时间信号是用等时间间隔采样后的采样值来近似表示的,当采样间隔足够小时,这些采样值就可以很好地近似表示出连续时间信号,这种表示方法称为向量表示法。
表示一个连续时间信号需要使用两个向量,其中一个向量用于表示信号的时间范围,另一个向量表示连续时间信号在该时间范围内的采样值。
例如一个正弦信号可以表示如下:>> t=0:0.01:10; >> x=sin(t);利用plot(t,x)命令可以绘制上述信号的时域波形,如图1所示。
如果连续时间信号可以用表达式来描述,则还可以采用符号表达式來表示信号。
例如对于上述正弦信号,可以用符号对象表示如下:>> x=sin(t); >> ezplot(X);利用ezplot(x)命令可以绘制上述信号的时域波形012345678910-1-0.8-0.6-0.4-0.200.20.40.60.81Time(seconds)图1 利用向量表示连续时间信号-6-4-20246-1-0.50.51t图 2 利用符号对象表示连续时间信号sin(t)常用的信号产生函数 函数名 功能 函数名 功能 heaviside 单位阶跃函数 rectpuls 门函数sin 正弦函数 tripuls 三角脉冲函数 cos 余弦函数 square 周期方波sinc sinc 函数 sawtooth周期锯齿波或三角波 exp 指数函数2.连续时间信号的时域运算对连续时间信号的运算包括两信号相加、相乘、微分、积分,以及位移、反转、尺度变换(尺度伸缩)等。
利用matlab进行信号与系统分析实验
【实验1】利用matlab 进行信号的时域分析 (1)指数信号 >>A=1; >> a=-0.4;>> t=0:0.01:10;>> ft=A*exp(a*t); >> plot(t,ft); >> grid;>> axis([0 10 -0.1 1.1]; >> xlabel('t') >> ylabel('ft')(2)正弦信号 >> A=1; >> w0=2*pi; >> phi=pi/6; >> t=0:0.01:3; >> ft=A*sin(w0*t+phi); >> plot(t,ft); >> grid;>> axis([0 3 -1.1 1.1]); >> xlabel('t') >> ylabel('ft')()t f t Ae α=()sin()f t A t ωϕ=+>>x=linspace(-20,20); >> y=sinc(x/pi); >> plot(x,y);>> grid; >> axis([-21 21 -0.5 1.1]); >> xlabel('x') >> ylabel('y')(4)矩形脉冲信号 >> t=0:0.001:4; >> T=1;>> ft=rectpuls(t-2*T,2*T); >> plot(t,ft); >> grid;>> axis([-1 5 -0.1 1.1]); >> xlabel('t') >>ylabel('ft')t t t Sa t f )sin()()(==)]()([)()(10τετετ+-+==t t A t G t ffunction ft=heaviside(t) ft=(t>0); >> t=-1:0.001:3; >> ft=heaviside(t); >> plot(t,ft); >> grid;>> axis([-1 3 -0.1 1.1]); >> xlabel('t') >>ylabel('ft')(6)复指数信号的时域波形 >> t=0:0.1:60;>> f=exp(-0.1*t).*sin(2/3*t); >> plot(t,f); >> grid;>> axis([0 60 -1 1]); >> xlabel('Time(sec)') >>ylabel('f(t)')⎩⎨⎧<>=)0(0)0(1)(t t t ε)32sin()(1.0t e t f t -=(7)加入随机噪声的正弦波>> t=0:0.001:50;>> y=sin(2*pi*50*t);>> s=y+randn(size(t)); >> subplot(2,1,1);>> plot(t(1:100),y(1:100)); >> grid;>> subplot(2,1,2);>> plot(t(1:100),s(1:100)); >>grid;(8)周期矩形波>> A=1;>> t=0:0.0001:5;>> y=A*square(2*pi*t,20); >> plot(t,y);>> grid;>> axis([0 5 -1.5 1.5]);(9)信号的基本运算>> syms t;>>f=sym('(t/2+1)*(heaviside(t+2)-heaviside(t-2))');>>subplot(3,2,1),ezplot(f,[-3,3]);>>grid;>> y1=subs(f,t,t+2);>> subplot(3,2,2),ezplot(y1,[-5,1]);>> title('f(t+2)');>> grid;>> y2=subs(f,t,t-2);>> subplot(3,2,3),ezplot(y2,[-1,5]);>> title('f(t-2)');>> grid;>> y3=subs(f,t,-t);>> subplot(3,2,4),ezplot(y3,[-3,3]);>> title('f(-t)');>> grid;>> y4=subs(f,t,2*t);>> subplot(3,2,5),ezplot(y4,[-2,2]);>> title('f(2t)');>> grid;例1求系统y ”(t )+2y ’(t )+100y (t )=10f (t )的零状态响应,已知f (t )=(sin2πt ) ε(t )。
实验二、信号与系统时域分析的MATLAB实现
实验二、信号与系统时域分析的MATLAB 实现一、实验目的掌握利用Matlab 求解LTI 系统的冲激响应、阶跃响应和零状态响应,理解卷积概念。
二、实验内容1、 卷积运算的MA TLAB 实现:(1) 计算连续信号卷积用MA TLAB 中的函数conv ,可编写连续时间信号卷积通用函数sconv ,function [f,n]=sconv(f1,f2,n1,n2,p)f=conv(f1,f2);f=f*p;n3=n1(1)+n2(1);L=length(n1)+length(n2)-1;n=n3:p:(n3+(L-1)*p);例2.1 )()()(21t f t f t f *=在MA TLAB 编写:p=0.01;n1=-1:p:1;f1=ones(1,length(n1));n2=0:p:1;f2=2*n2;[f,n]=sconv(f1,f2,n1,n2,p);subplot(3,1,1),plot(n1,f1), axis([-1.5,1.5,0,2]),grid onsubplot(3,1,2),plot(n2,f2), axis([-0.1,1.2,0,3]),grid onsubplot(3,1,3),plot(n,f),axis([-1.5,5,0,2]),grid on运算结果如图例2.1所示。
(2) 计算离散信号卷积用MA TLAB 中的函数conv ,其调用格式为:),(b a conv c =式中,a 、b 为待卷积两序列的向量表示。
向量c 的长度为a 、b 长度之和减1。
例2.2 已知序列{}{}3,2,1,0;1,1,1,1][,3,2,1,0;4,3,2,1][====k k y k k x ,计算][][k y k x *。
解:MATLAB 的程序为:x=[1,2,3,4];y=[1,1,1,1];z=conv(x,y)N=length(z);stem(0:N-1,z)运行结果:如图例2.2z = 1 3 6 10 9 7 42、 连续时间系统零状态响应的求解:LTI 连续时间系统的零状态响应可通过求解初始状态为零的常系数微分方程得到。
实验2 信号的时域运算及matlab实现(1)
实验2 信号的时域运算及matlab 实现一.实验目的:1. 了解连续时间信号的各种运算;2. 了解离散时间信号的各种运算;二.实验原理:1. 连续信号的时域运算采用符号运算的方法可以简便地实现连续信号的时域运算,下面是实现信号相加的matlab 命令s=symadd(f1,f2)ezplot(s)另外,symmul(f1,f2)可实现信号的相乘;subs(f,t,a)命令则是将连续信号中的时间变量t 用a 替换。
例如,subs(f,t,a-a0)可将f(t)移位到f(a-a0)。
2.离散序列的时域运算对于离散序列来说,序列相加、相乘是将两序列对应时间序号的值逐项相加或相乘。
若两序列不等长,则需通过补零的方式成为同维数的序列。
例如两序列相加的子函数如下:function [f,k]=sigadd(f1,f2,k1,k2)k=min(min(k1),min(k2)):max(max(k1),max(k2));s1=zeros(1,length(k));s2=s1;s1(find(k>min(k1)&(k<max(k1))==1))=f1;s2(find(k>min(k2)&(k<max(k2))==1))=f2;f=s1+s2;stem(k,f)三.实验内容:1.信号()()()[]321--⎪⎭⎫ ⎝⎛+=t t t t f εε,用matlab 绘出()()()(),2,,2,2t f t f t f t f --+ ()t f -的时域波形。
2.编写实现序列相乘sigmul(f1,f2,k1,k2),序列反折sigfold(f,k),序列平移sigshift(f,k,k0),序列倒相sigfoldph(f,k)的子函数。
3.利用2中的函数完成:(1) 已知()⎩⎨⎧≤≤-=其他,033,2k k f k ,绘出离散序列及反折后的波形;(2) 已知()⎩⎨⎧≤≤-=其他,044,2k k k f ,绘出离散序列()()2,-k f k f 及反折后的波形;四.实验报告要求:1.列出实验内容中1,2的程序清单;1.function display()syms tf=(1+t/2)*(heaviside(t)-heaviside(t-3)) f_1=subs(f,t,t+2)f_2=subs(f,t,t-2)f_3=subs(f,t,-t)f_4=subs(f,t,2*t)f_5=-fsubplot(2,3,1)ezplot(f)title('f(t)')subplot(2,3,2)ezplot(f_1)title('f(t+2)')subplot(2,3,3)ezplot(f_2)title('f(t-2)')subplot(2,3,4)ezplot(f_3)title('f(-t)')subplot(2,3,5)ezplot(f_4)title('f(2t)')subplot(2,3,6)ezplot(f_5)title('-f(t)')函数调用:display()2.程序代码function [f,k]=sigmul(f1,f2,k1,k2)k=min(min(k1),min(k2)):max(max(k1),max(k2));s1=zeros(1,length(k));s2=s1;s1(find(k>=min(k1)&(k<=max(k1))==1))=f1;s2(find(k>=min(k2)&(k<=max(k2))==1))=f2;f=s1.*s2;subplot(1,3,1)stem(k1,f1)title('f1-k1')subplot(1,3,2)stem(k2,f2)title('f2-k2')subplot(1,3,3)stem(k,f)title('sigmul(f1,f2,k1,k2)')调用程序:f1=[1 2 3 4 5];f2=[4 4 3 3 5 5 6 7];k1=[2 3 4 5 6];k2=[1 2 3 4 5 6 7 8] ;[f,k]=sigmul(f1,f2,k1,k2)图形:function sigfold(f,k)k1=-ksubplot(1,2,1)stem(k,f)subplot(1,2,2)stem(k1,f)调试:f=[2 4 6 7];k=[1 2 3 4];sigfold(f,k)图形:序列平移:程序代码function sigshift(f,k,k0)k1=k-k0*ones(1,length(k)) subplot(1,2,1)stem(k,f)title('f(k)')subplot(1,2,2)stem(k1,f)title('f(k+k0)')调试:k=[2 3 4 5 6];f=[9 8 7 6 5];k0=4;sigshift(f,k,k0)结果:序列倒相function sigfoldph(f,k)f1=-fsubplot(1,2,1)stem(k,f)title('f(k)')subplot(1,2,2)stem(k,f1)title('-f(k)')调试:k=[2 3 4 5 6]; f=[9 8 7 6 5]; sigfoldph(f,k)2.绘出实验内容3 的图形;(1)k=-10:10f=zeros(1,length(k))f(8:14)=2.^k(8:14)sigfold(f,k)(2)k=-10:10f=zeros(1,length(k))f(7:15)=k(7:15).^2figure(1)sigfold(f,k)figure(2)sigshift(f,k,-2)。
实验2 信号的时域分析及MATLAB实现
1)基本运算
(1)加(减):f(t)=f1(t)±f2(t)
(2)乘:f(t)=f1(t)·f2(t)
(3)延时或平移:f(t)→f(t- ) >0时右移; <0时左移
(4)翻转:f(t)→f(-t)
(5)尺度变换:f(t)→f(at)
|a|>1时尺度缩小;|a|<1时尺度放大。
a<0时,还必须包含翻转。
试验报告
学院:基础信息工程
系别:电子信息工程
课程名称:信号与系统
姓名:李太荣
学号:2012311430
日期:2014-4-17
实验(二)名称:信号的时域分析及MATLAB实现
一、实验目的
(1)了解连续时间信号及离散时间信号表示方法及特点。
(2)掌握连续时间信号及离散时间信号的基本运算。
(3)熟悉MATLAB Plot及→af(t)
(7)倒相:f(t)→-f(t)
(8)微分:f(t)→
(9)积分:f(t)→
(10)卷积积分可以表示为
三、实验程序
(1) ,
(2) ,
clfreset
set(gcf,'Numbertitle','off','Name',' ','menubar','none');
y4=cos(0.8*k*pi);
f2=y3.*y4;
subplot(1,2,2);
stem(k,f2,'r');
xlabel('k');
title('4*exp(t1*(-0.5))cos(\pit)');
实验二用MATLAB实现线性系统的时域分析
实验二用MATLAB实现线性系统的时域分析线性系统是一种重要的数学模型,用于描述许多自然和工程系统的行为。
在实际应用中,对线性系统进行时域分析是非常重要的,以了解系统的稳定性、响应和性能特性。
MATLAB是一种功能强大的数学软件,被广泛用于线性系统的建模和分析。
首先,我们将介绍线性系统的时域分析的基本概念和方法。
然后,我们将学习如何使用MATLAB进行线性系统的时域分析,并通过具体的例子来演示。
时域分析是研究系统在时间上的响应,主要包括系统的因果性、稳定性、阶数、零极点分布、阻尼特性和幅频特性等。
其中,系统的因果性表示系统的输出只依赖于输入的过去和现在,与未来的输入无关;系统的稳定性表示系统的输出有界,不会无限增长或发散;系统的阶数表示系统差分方程的最高阶导数的次数。
在MATLAB中,线性系统可以用传输函数、状态空间或差分方程的形式表示。
传输函数是输入输出之间的比例关系,常用于分析系统的频率特性;状态空间是通过一组状态变量和状态方程描述系统的,可以用于分析系统的稳定性和阻尼特性;差分方程是通过相邻时刻的输入和输出之间的关系来描述系统的,可以用于分析系统的因果性和稳定性。
下面,我们以传输函数为例,介绍如何在MATLAB中进行线性系统的时域分析。
首先,我们需要定义传输函数。
MATLAB提供了tf函数来定义传输函数,其语法为:G = tf(num, den),其中num是传输函数的分子多项式的系数,den是传输函数的分母多项式的系数。
接下来,我们可以使用MATLAB中提供的各种函数和命令来进行时域分析。
例如,可以使用step函数来绘制系统的阶跃响应曲线,语法为:step(G);可以使用impulse函数来绘制系统的冲激响应曲线,语法为:impulse(G);可以使用initial函数来绘制系统的零状态响应曲线,语法为:initial(G, x0),其中x0是系统的初始状态。
此外,还可以使用MATLAB中的函数和命令来计算系统的阶数、零极点分布、频率响应等。
(完整版)利用MATLAB进行时域分析
自动控制原理与系统课程实验报告实验题目:利用MATLAB进行时域分析班级:机电1131班姓名:刘润学号:38号一、实验目的及内容时域分析法是一种直接在时间域中对系统进行分析的方法,具有直观、准确的优点,并且可以提供系统时间响应的全部信息。
在此实验中,主要介绍时域法进行系统分析,包括一阶系统、二阶系统以及高阶系统,以及系统的性能指标。
通过实验,能够快速掌握、并利用MATLAB及控制系统箱对各种复杂控制系统进行时域分析。
二、实验设备三、实验原理典型的二阶系统在不同的阻尼比的情况下,它们的阶跃响应输出特性的差异是很大的。
若阻尼比过小,则系统的振荡加剧,超调量大幅度增加;若阻尼比过大,则系统的响应过慢,又大大增加了调整时间,下面通过此实验课题分析输出响应变化规律:已知二阶振荡环节的传递函数为:G(s)=ωn*ωn/(s*s+2*ζ*ωn*s+ωn*ωn),其中ωn=0.4,ζ从0变化到2,求此系统的单位阶跃响应曲线,并分析当ζ发生变化时,二阶系统的响应有什么样的变化规律。
四、实验步骤编出程序如下图:五、实验结果画出图表如下图:六、结果分析(1)当ξ=0(无阻尼)(零阻尼)时:无阻尼时的阶跃响应为等幅振荡曲线。
如图ξ=0曲线。
(2)当0<ξ<1(欠阻尼)时:对应不同的ξ,可画出一系列阻尼振荡曲线,且ξ越小,振荡的最大振幅愈大。
如图ξ=0.4曲线。
(3)当ξ=1(临界阻尼)时:临界阻尼时的阶跃响应为单调上升曲线。
如图ξ=1曲线。
(4)当ξ>1(过阻尼)时:过阻尼时的阶跃响应也为单调上升曲线。
不过其上升的斜率较临界阻尼更慢。
如图ξ=1.6曲线七、教师评语。
matlab 信号时域分析实验报告
matlab 信号时域分析实验报告Matlab 信号时域分析实验报告引言:信号时域分析是数字信号处理中的重要内容之一。
通过对信号在时间域的分析,我们可以了解信号的特征和性质,为后续的信号处理工作提供基础。
本实验使用Matlab软件进行信号时域分析,通过实验结果的观察和分析,探索信号的时域特性。
实验目的:1. 了解信号在时域上的表示方式和基本性质;2. 掌握Matlab软件的基本操作,实现信号的时域分析;3. 分析不同信号的时域特性,比较它们的相似性和差异性。
实验步骤:1. 生成不同类型的信号:正弦信号、方波信号、三角波信号等;2. 绘制信号的时域波形图;3. 计算信号的平均值、方差和能量;4. 分析不同信号的时域特性。
实验结果与分析:1. 正弦信号的时域特性:正弦信号是一种周期性信号,通过调整频率、振幅和相位可以得到不同形态的正弦波。
在时域上,正弦信号呈现出周期性的波形,振幅和频率决定了波形的高低和密集程度。
通过计算平均值、方差和能量,可以得到正弦信号的基本统计特性。
2. 方波信号的时域特性:方波信号是一种周期性信号,其波形由高电平和低电平交替组成。
在时域上,方波信号呈现出矩形的波形,高电平和低电平的持续时间决定了波形的宽度和周期。
通过计算平均值、方差和能量,可以得到方波信号的基本统计特性。
3. 三角波信号的时域特性:三角波信号是一种周期性信号,其波形由线性增加和线性减少组成。
在时域上,三角波信号呈现出斜坡状的波形,线性增加和线性减少的斜率决定了波形的上升和下降速度。
通过计算平均值、方差和能量,可以得到三角波信号的基本统计特性。
实验结论:通过对不同类型信号的时域分析,我们可以得到信号的基本统计特性,如平均值、方差和能量等。
这些特性可以帮助我们了解信号的基本性质,为后续的信号处理工作提供依据。
Matlab软件提供了丰富的信号处理函数和工具,可以方便地进行信号时域分析。
掌握Matlab软件的基本操作和信号分析方法,对于数字信号处理的学习和应用具有重要意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二、信号与系统时域分析的MATLAB 实现
一、实验目的
掌握利用Matlab 求解LTI 系统的冲激响应、阶跃响应和零状态响应,理解卷积概念。
二、实验内容
1、 卷积运算的MA TLAB 实现:
(1) 计算连续信号卷积用MA TLAB 中的函数conv ,可编写连续时间信号卷积通用
函数sconv ,
function [f,n]=sconv(f1,f2,n1,n2,p)
f=conv(f1,f2);f=f*p;
n3=n1(1)+n2(1);
L=length(n1)+length(n2)-1;
n=n3:p:(n3+(L-1)*p);
例2.1 )()()(21t f t f t f *=
在MA TLAB 编写:
p=0.01;
n1=-1:p:1;f1=ones(1,length(n1));
n2=0:p:1;f2=2*n2;
[f,n]=sconv(f1,f2,n1,n2,p);
subplot(3,1,1),plot(n1,f1), axis([-1.5,1.5,0,2]),grid on
subplot(3,1,2),plot(n2,f2), axis([-0.1,1.2,0,3]),grid on
subplot(3,1,3),plot(n,f),axis([-1.5,5,0,2]),grid on
运算结果如图例2.1所示。
(2) 计算离散信号卷积用MA TLAB 中的函数conv ,其调用格式为:
),(b a conv c =
式中,a 、b 为待卷积两序列的向量表示。
向量c 的长度为a 、b 长度之和减1。
例2.2 已知序列{
}{}3,2,1,0;1,1,1,1][,3,2,1,0;4,3,2,1][====k k y k k x ,计算][][k y k x *。
解:MATLAB 的程序为:
x=[1,2,3,4];y=[1,1,1,1];
z=conv(x,y)
N=length(z);
stem(0:N-1,z)
运行结果:如图例2.2
z = 1 3 6 10 9 7 4
2、 连续时间系统零状态响应的求解:
LTI 连续时间系统的零状态响应可通过求解初始状态为零的常系数微分方程得到。
在MA TLAB 中控制系统工具箱中提供了一个用于求解零初始条件微分方程数值解的函数lsim 。
其调用方式为:
),,(t f sys lsim y =
式中,sys 表示LTI 系统模型,用来表示微分方程、差分方程、状态方程,t 表示计算系统响应的抽样点向量,f 是系统输入信号向量。
在求解微分方程时,微分方程的LTI 系统模型sys 借助于tf 函数获得,其调用方式为:
),(a b tf sys =
式中,b 和a 分别为微分方程右端和左端各项的系数向量。
例如:对2阶微分方程 )(2)()(5)(2)(3'''''t f t f t y t y t y +-=-+
可用a=[3 2 -5],b=[-1 0 2],sys=tf(b,a)获得LTI 模型。
例2.3 系统的微分方程为)()(100)(2)('
''t f t y t y t y =++,输入信号为t t f π2sin 10)(=,求系统的零状态响应y(t)。
解:MATLAB 的程序为:
sys=tf([0 0 1],[1 2 100]);
t=0:0.01:5;
f=10*sin(2*pi*t);
y=lsim(sys,f,t);
plot(t,y)
运行结果如图例2.3所示。
3、 连续时间系统冲激响应和阶跃响应的
求解
系统的冲激响应和阶跃响应在MATLAB
中控制系统工具箱中提供函数impulse 和step 分别表示。
其调用方式为:
),()
,(t sys step y t sys impulse y ==
例2.4 求例2.3所示系统的冲激响应。
解:MATLAB 的程序为:
sys=tf([0 0 1],[1 2 100]);
t=0:0.01:5;
y=impulse(sys,t);
plot(t,y)
title('连续系统冲激响应')
xlabel('time(sec)')
ylabel('y(t)')
运行结果如图例2.4所示。
4、 离散时间系统零状态响应的求解
LTI 离散系统一般用线性常系数差分方程描述:
][][00j k f b i k y a m j j n i i
-=-∑∑==
f[k]、y[k]分别表示系统的输入和输出,n 是差分方程的阶数。
已知差分方程的n 个初始状态和输入f[k],就可以通过编程由下式迭代计算出系统的输出。
在零初始状态下,MA TLAB 信号处理工具中提供了一个filter 函数,计算差分方程描述的系统的响应。
其调用方式为:
),,(f a b filter y =
式中,b=[b0,b1,---,bn],a=[a0,a1,---an]分别是差分方程左、右端的系数向量,f 表示输入序列,y 表示输出序列,它们长度要相同。
5、 离散时间系统单位脉冲响应的求解
离散系统的单位脉冲响应在MATLAB 中控制系统工具箱中提供函数impz 表示。
其调用方式为:
),,(k a b impz h =
k 表示输出序列的取值范围,h 是系统的单位脉冲响应。
例2.5 求离散时间系统
][]2[2]1[3][k f k y k y k y =-+-+
的单位脉冲h[k]。
解:MATLAB 的程序为:
k=0:10;a=[1 3 2];b=[0 0 1];
h=impz(b,a,k);
stem(k,h)
title('单位脉冲响应')
响应结果如图例2.5所示。
练习:
1、 一系统满足微分方程为t t f t f t y t y t y ⋅==-+πcos 2)(),()()(5)(''',求出系
统的零状态响应。
程序:sys=tf([0 0 1],[1 5 -1]);
t=0:0.01:5;
f=2*cos(pi*t);
y=lsim(sys,f,t);
plot(t,y)
2、 求下列各系统的单位冲激响应和单位阶跃响应。
(1))()()(2)('''t f t y t y t y =++
(2))()()()()('''
't f t f t y t y t y +=++
程序1:sys=tf([0 0 1],[1 sqrt(2) 1]);
t=0:0.01:5;
y1=impulse(sys,t);
y2=step(sys,t);
subplot(2,1,1);
plot(t,y1)
title('系统冲激响应')
xlabel('time(sec)')
ylabel('y(t)')
subplot(2,1,2);
plot(t,y2)
title('系统阶跃响应')
xlabel('time(sec)')
ylabel('y(t)')
程序2:sys=tf([0 1 1],[1 1 1]);
t=0:0.01:5;
y1=impulse(sys,t);
y2=step(sys,t);
subplot(2,1,1);
plot(t,y1)
title('系统冲激响应')
xlabel('time(sec)')
ylabel('y(t)')
subplot(2,1,2);
plot(t,y2)
title('系统阶跃响应')
xlabel('time(sec)')
ylabel('y(t)')
3、已知f(k)如下式所示,用conv 函数计算][][],[][k f k h k h k f **,并就它们的对称关系作总结。
↑
=--=]
5,4,3,2,1[)(],8.2,5.6,3.2,2.1,5.3[)(k h k f
程序:f=[3.5,-1.2,2.3,6.5,-2.8];
h=[1,2,3,4,5];
z1=conv(f,h) ;
z2=conv(h,f);
subplot(2,1,1);
N=length(z1)
stem(0:N-1,z1)
subplot(2,1,2);
N=length(z2)
stem(0:N-1,z2)
五、 实验总结
这次实验相对简单一点,按照例题就能完成。
简单掌握了利用Matlab 求解LTI 系统的冲激响应、阶跃响应和零状态响应,理解卷积概念。