职场文秘网

首页 > 条据书信 > 介绍信 / 正文

信号与系统实验报告

2020-05-07 11:01:28

  实验一 信号的时域描述与运算 一、实验目的

 1、掌握信号的MATLAB表示及其可视化方法。

 2、掌握信号基本时域运算的MATLAB实现方法。 3、利用MATLAB分析常用信号,加深对信号时域特性的理解。 二、实验原理与方法

 1. 连续时间信号的MATLAB表示 连续时间信号指的是在连续时间范围内有定义的信号,即除了若干个不连续点外,在任何时刻信号都有定义。在MATLAB中连续时间信号可以用两种方法来表示,即向量表示法和符号对象表示法。 从严格意义上来说,MATLAB并不能处理连续时间信号,在MATLAB中连续时间信号是用等时间间隔采样后的采样值来近似表示的,当采样间隔足够小时,这些采样值就可以很好地近似表示出连续时间信号,这种表示方法称为向量表示法。表示一个连续时间信号需要使用两个向量,其中一个向量用于表示信号的时间范围,另一个向量表示连续时间信号在该时间范围内的采样值。例如一个正弦信号可以表示如下: >> t=0:0.01:10; >> x=sin(t); 利用plot(t,x)命令可以绘制上述信号的时域波形。 如果连续时间信号可以用表达式来描述,则还可以采用符号表达式來表示信号。例如对于上述正弦信号,可以用符号对象表示如下: >> x=sin(t); >> ezplot(X); 利用ezplot(x)命令可以绘制上述信号的时域波形。

  常用的信号产生函数

 函数名

 功能

  函数名

  功能 heaviside 单位阶跃函数 rectpuls 门函数 sin 正弦函数 tripuls 三角脉冲函数 cos 余弦函数 square 周期方波 sinc sinc函数 sawtooth 周期锯齿波或三角波 exp 指数函数

  2.连续时间信号的时域运算

  对连续时间信号的运算包括两信号相加、相乘、微分、积分,以及位移、反转、尺度变换(尺度伸缩)等。

  1)相加和相乘

  信号相加和相乘指两信号对应时刻的值相加和相乘,对于两个采用向量表示的可以直接使用算术运算的运算符“+”和“*”来计算,此时要求表示两信号的向量时间范围和采样间隔相同。采用符号对象表示的两个信号,可以直接根据符号对象的运算规则运算。

  2)微分和积分

  对于向量表示法表示的连续时间信号,可以通过数值计算的方法计算信号的微分和积分。这里微分使用差分来近似求取的,由时间向量[]和采样值向量[]表示的连续时间信号,其微分可以通过下式求得

  其中表示采样间隔。MATLAB中用diff函数来计算差分。

  连续时间信号的定积分可以由MATLAB的qud函数实现,调用格式为

  quad ('function_name',a,b) 其中,function_name为被积函数名,a、b为积分区间。

  对于符号对象表示的连续时间信号,MATLAB提供了diff函数和quad函数分别用于求微分和积分。

  3.离散时间信号的MATLAB表示 离散时间信号仅在一些离散时刻有定义。在MATLAB中离散时间信号需要使用两个向量来表示,其中一个向量用于表示离散的时间点,另一个向量表示在这些时间点上的值。例如对于如下时间信号

 采用MATLAB可以表示如下: >> n=-3:4; >> x=[-3 2 -1 2 1 -1 2 3]; >> stem(n,x,'filled'); >> xlabel('n'); >> title('x(n)'); Stem函数用于绘制离散时间信号波形,为了与我们表示离散时间信号的习惯相同,在绘图时一般需要添加‘filled’选项,以绘制实心的杆状图形。

  4.离散时间信号的时域运算

  离散时间信号的相加相乘是将两个信号对应的时间点上的值相加或相乘,可以直接使用算术运算的运算符“+”和“*”来计算。 离散时间信号的位移,则可看作是将表示时间的向量平移,而表示对应时间点上的值的向量不变。 离散时间信号的反转,则可以看作是将表示时间的向量和表示对应时间点上的值的向量以零点为基准点,一纵轴为对称轴反折,向量的反折可以利用MATLAB的fliplr函数实现。 三、实验内容 (1) 利用MATLAB绘制下列连续时间信号波形。

 MATLAB程序如下: syms t; x=exp(-0.5*t); b=cos(pi*t)*(heaviside(t)-heaviside(t-2)); c=0.5*abs(t)*cos(pi*t)*(heaviside(t+2)-heaviside(t-2)); d=exp(-t)*sin(2*pi*t)*(heaviside(t)-heaviside(t-3)); subplot(221); ezplot(a); subplot(222); ezplot(b); subplot(223); ezplot(c); subplot(224); ezplot(d); 波形图如下:

 (2) 利用MATLAB绘制下列离散时间信号波形:

  MATLAB程序如下: n=0:10; a=heaviside(n-3); b=(-1/2).^n.*heaviside(n); c=n.*(heaviside(n)-heaviside(n-5)); subplot(221); stem(n,a,'filled'); subplot(222); stem(n,b,'filled'); subplot(223); stem(n,c,'filled'); subplot(224); stem(n,d,'filled'); 波形图如下:

 (3)利用MATLAB生成并绘制连续周期矩形波信号,要求周期为2,峰值为3,显示三个周期的波形。

 利用MATLAB 提供的square 函数来生成方波信号 MATLAB程序如下: t=0:0.001:6 a=3;p=3; y=a*square(p*t); plot(t,y) axis([t(1)-1 t(end)+1 -(a+1) (a+1)]) 波形图如下:

 (4) 已知信号,及信号,用MATLAB绘出下列信号的波形。

 MATLAB程序如下: x1=(-t+4)*(heaviside(t)-heaviside(t-4)); x2=sin(2*pi*t); x3=x1+x2; x4=x1*x2; x5=(t+4)*(heaviside(-t)-heaviside(-t-4))+x1; x6=x2*((-t+5)*(heaviside(t-1)-heaviside(t-5))+sin(2*pi*(t-1))); subplot(221); ezplot(x3); subplot(222); ezplot(x4); subplot(223); ezplot(x5); subplot(224); ezplot(x6); 波形图如下所示:

 (5) 已知离散时间信号,用MATLAB绘出的波形。 由教材上的波形可知 MATLAB代码如下: n=-3:4; x1=[0 1 2 3 3 3 3 0]; n1=-n; n2=n-2; n3=n+2; subplot(221); stem(n,x1,'filled'); subplot(222); stem(n1,x1,'filled'); subplot(223); stem(n2,x1,'filled'); subplot(224); stem(n3,x1,'filled'); 波形图如下所示:

 (6) 用MATLAB编程绘制下列信号的时域波形,观察信号是否为周期信号?若是周期信号,周期是多少?若不是周期信号,请说明原因。

  程序代码: syms t x1=1+cos(pi*t/4-pi/3)+2*cos(pi*t/2-pi/4)+cos(2*pi*t); ezplot(x1,[-4*pi,4*pi]); xlabel('t');title('x1'); 波形图:

 该信号是周期信号,周期T=8

 程序代码: syms t x2=sin(t)+2*sin(pi*t); ezplot(x2,[-4*pi,4*pi]);

 xlabel('t');title('x2'); 波形图如下:

 程序代码: n=-4*pi:4*pi; x3=2+3*sin(2*n*pi/3-pi/8); stem(n,x3,'filled'); xlabel('n');title('x3'); 波形图如下:

 该信号是周期信号,周期T=3。

 程序代码: n=-4*pi:4*pi; x4=cos(n*pi/6)+sin(n*pi/6)+cos(n*pi/2); stem(n,x4,'filled'); xlabel('t');title('x4'); 波形图如下所示:

 该信号是周期信号,周期T=12. 四、实验心得体会

 实验2 LTI系统的时域分析 一、实验目的 ①掌握利用MATLAB对系统进行时域分析的方法。 ②掌握连续时间系统零状态响应、冲激响应和阶跃响应的求解方法。 ③掌握求解离散时间系统响应、单位抽样响应的方法。 ④加深对卷积积分和卷积和的理解。掌握利用计算机进行卷积积分和卷积和计算的方法。 二、实验原理 1、连续时间系统时域分析的MATLAB实现 1)连续时间系统的MATLAB表示 设LTI因果系统的微分方程一般式为:

  则在MATLAB里,可以建立系统模型如下: b=[bM,bM-1,...,b0]; a=[aN,aN-1,...,a0]; sys=tf(b,a);

 2)连续时间系统的零状态响应 用lsim(sys,x,t)表示求解零状态响应。 3)连续时间系统的冲激响应与阶跃响应。 用impulse函数来调用。 2、离散时间系统时域分析的MATLAB实现 1)离散时间系统的MATLAB表示。 LTI离散系统通常可以由系统差分方程描述; 则在MATLAB里,可以建立系统模型如下: b=[b0,b1,...,bM]; a=[a0,a1,...,aM]; 2)离散时间系统对任意输入的响应。 用filter(b,a,x)函数调用。 3)离散时间系统的单位抽样响应。 用impz函数来调用。 3、卷积和与卷积积分 1)离散时间序列的卷积和:调用格式为x=conv(x1,x2); 2)连续时间信号的卷积积分 连续时间信号x1(t)和x2(t)的卷积积分x(t)定义如下

 三、实验内容 1. 采用MATLAB绘出各系统的单位冲激响应和单位阶跃响应波形。 (1) 程序代码: b=[1]; a=[1 2^0.5 1]; sys=tf(b,a); subplot(121); impulse(sys); subplot(122); step(sys); 波形图如下:

 (2)

 程序代码: b=[1 0 0]; a=[1 2^0.5 1]; sys=tf(b,a); subplot(121); impulse(sys); subplot(122); step(sys); 波形图:

 (3) 程序代码: sys=tf(b,a); subplot(121); impulse(sys); subplot(122); step(sys); 波形图如下:

 (4)

  程序代码: b=[1 0 1]; a=[1 1 1]; sys=tf(b,a); subplot(121); impulse(sys); subplot(122); step(sys);

 波形图如下:

 2、已知某系统可以由如下微分方程描述

 (1)利用MATLAB绘出该系统冲激响应和阶跃响应的时域波形: 程序代码: b=[1]; a=[1 1 6]; sys=tf(b,a); subplot(121); impulse(sys); subplot(122); step(sys); 波形图如下:

 (2)根据冲激响应的时域波形分析系统的稳定性。 如果一个系统为稳定系统,则当输入有界时,输出必定有界。由上面画出的系统的单位冲激响应的图像可知,当时间趋近于无穷大时,冲激响应趋近于零,因此系统是稳定系统。 (3)如果系统的输入为,求系统的零状态响应。 程序代码: b=[1]; a=[1 1 6]; sys=tf(b,a); t=0:0.01:10; x=exp(-t); lsim(sys,x,t); 波形图如下所示:

 3. 已知描述离散系统的微分方程如下,用MATLAB绘出各系统的单位抽样响应,根据单位抽样响应的时域波形分析系统的稳定性。 (1) 程序代码: b=[1]; a=[1 3 2]; impz(b,a); 波形图如下:

 由单位抽样响应的图像可知,h[n]不是绝对可和的,因此系统不满足输入有界输出也有界的条件,因此系统不是稳定系统。 (2) 程序代码: b=[1 -3]; a=[1 -0.5 0.8]; impz(b,a,0:50); 波形图如下:

 由系统的单位抽样响应的图像可知,h[n]是绝对可和的,因此系统满足输入有界输出也有界的条件,因此系统是稳定系统。 4、已知系统可以由如下差分方程描述

 试采用MATLAB绘出该系统的单位抽样响应波形和单位阶跃响应波形。

  程序代码: b=[1]; a=[1 1 0.25]; subplot(121); impz(b,a,0:20); n=0:20; x=heaviside(n); y=filter(b,a,x); subplot(122); stem(n,y,'filled'); 波形图:

 5、用MATLAB计算如下两个序列的卷积,并绘出图形。

 程序代码如下: x1=[1 2 1 1]; x2=[1 1 1 1 1]; x=conv(x1,x2); n=-3:4; stem(n,x,'filled'); xlabel('n'); title('x(n)'); 波形图如下:

 6、已知某LTI离散系统,其单位抽样响应,系统的输入为,计算当n=0,1,2,…,40时系统的零状态响应y(n),绘出x(n),h(n)和y(n)时域波形。 程序代码: n=0:40; h=sin(0.5*n); x=sin(0.2*n); y=conv(x,h); n1=0:80; subplot(311); stem(n,x,'filled'); xlabel('n'); title('x(n)'); subplot(312); stem(n,h,'filled'); xlabel('n'); title('h(n)'); subplot(313); stem(n1,y,'filled'); xlabel('n'); title('y(n)'); 波形图如下:

 7、已知两个连续时间信号,求两个信号的卷积。

 程序代码: dt=0.01; t1=-1:dt:1;

 x1=2*(heaviside(t1+1)-heaviside(t1-1)); t2=-2:dt:2;

 x2=(heaviside(t2+2)-heaviside(t2-2)); [x,t]=sconv(x1,x2,t1,t2,dt); plot(t,x); xlabel('t'); title('x(t)=x_1(t)*x_2(t)'); axis([-3 3 0 5]);

  其中sconv为调用函数: function [x,t]=sconv(x1,x2,t1,t2,dt) x = conv(x1,x2); x = x*dt; t0 = t1(1)+t2(1); l = length(x1)+length(x2) - 2; t = t0:dt:(t0+l*dt); 波形图:

 四.体会和建议

  实验3 信号的频域分析 一、 实验目的

 1.深入理解信号频谱的概念,掌握信号的频域分析方法。

 2.观察典型周期信号和非周期信号的频谱,掌握其频谱特性。 二、 实验原理与方法

 1.连续周期信号的频谱分析 如果周期信号满足狄里赫利条件,就可以展开为傅里叶级数形式,即

 式中,表示基波周期,为基波频率,表示任一个基波周期内的积分。 式(1)和式(2)定义为周期信号复指数形式的傅里叶级数,系数称为的傅里叶系数。周期信号的傅里叶级数还可以由三角函数的线性组合来表示,即

 式(3)中同频率的正弦项和余弦项可以合并,从而得到三角函数形式的傅里叶级数,即

 可见,任何满足狄里赫利条件的周期信号都可以表示成一组谐波关系的复指数函数或三角函数的叠加。一般来说周期信号表示为傅里叶级数时需要无限多项才能完全逼近原信号,但在实际应用中经常采用有限项级数来替代,所选项数越多就越逼近原信号。

  2.连续非周期信号的频谱分析 对于非周期连续时间信号,吸纳后的傅里叶变换和傅里叶逆变换定义为

 式(7)和式(8)把信号的时域特性和频域特性联系起来,确立了非周期信号和频谱之间的关系。 采用MATLAB可以方便地求取非周期连续时间信号的傅里叶变换,这里我们介绍常用的集中方法。 1) 符号运算法 MATLAB的符号数学工具箱提供了直接求解傅里叶变换和反变换的函数,fourier函数和ifourier函数,基本调用格式为

 X=fourier(x)

 X=ifourier(X) 默认的时域变量为t,频域变量为w。 2) 数值积分法 除了采用符号运算的方法外,我们还可以利用MATLAB的quad函数,采用数值积分的方法来进行连续信号的频谱分析,quad函数是一个用来计算数值积分的函数。利用quad函数可以计算非周期连续时间信号的频谱。Quad函数的一般调用格式为: y=quad(fun,a,b) y=quad(fun,a,b,TOL,TRACE,p1,p2,…) 其中fun指定被积函数,可以采用inline命令来创建,也可以通过传递函数句柄的形式来指定,a、b表示定积分的下限和上限,TOL表示允许的相对或绝对积分误差,TRACE表示以被积函数的点绘图形式来跟踪该函数的返回值,如果TOL和TRACE为空矩阵,则使用缺省值,“p1,p2,…”表示被积函数出时间t之外所需的其他额外输入参数。 3)数值近似法 我们还可以利用MATLAB的数值计算的方法近似计算连续时间傅里叶变换。傅里叶变换可以由式(9)近似计算

  当为时限信号,且足够小,式(9)可以演变为

 而式(10)中求和部分又可以表示成一个行向量和一个列向量的乘积

 式(11)可以很方便地利用MATLAB实现。 3.离散周期时间信号的频域分析 基波周期为N的周期序列可以用N个成谐波关系的复指数序列的加权和表示,即

 这里k=<N>表示求和仅需包括一个周期内的N项,周期序列在一个周期内的求和与起点无关。将周期序列表示成式(12)的形式,成为离散傅里叶级数,而系数则称为离散傅里叶系数。离散傅里叶系数可以由式(13)确定。

 傅里叶系数也称为的频谱系数,而且可以证明是以N为周期的离散频率序列。这说明了周期的离散时间函数对应于频域为周期的离散频率。 这里,我们用周期N与傅里叶系数的乘积来表示周期离散时间信号的频谱,即

 可以利用MATLAB提供的函数fft用来计算,调用格式为

  该函数返回一个周期内的值,其中x表示一个周期内的样本值。 4.离散非周期时间信号的频域分析 非周期序列可以表示成一组复指数序列的连续和

  其中

  式(16)称为的离散时间傅里叶变换,式(15)和式(16)确立了非周期离散时间信号及其离散时间傅里叶变换之间的关系。是连续频率的函数,称为频谱函数,且是周期的连续频率函数,其周期为。可见,非周期离散时间函数对应于频域中是一个连续的周期的频率函数。 对于有限长的时间序列,式(16)可以表示为

 式(17)可以方便地利用MATLAB实现。 三、实验内容: 1、已知周期矩形脉冲信号。 教材上的波形可知信号 由式(3)和式(4)计算得

 故的傅里叶级数为

 利用MATLAB绘出由前N次谐波合成的信号波形,观察随着N的变化合成信号波形的变化规律。 MATLAB程序如下: t=-3:0.01:3; N=input('N='); A=input('A='); T=input('T='); c=input('c='); x=A*c/T; for n=1:N x=x+2*A/(n*pi)*sin(n*pi*c/T)*cos(2*pi*n*t); end plot(t,x); xlabel('Time(sec)') title(['N=' num2str(N)]) 当N=10,A=1,T=1,c=0.5时,波形图如下:

 当N=20,A=1,T=1,c=0.5时,图形如下

 当N=40,A=1,T=1,c=0.5时,图形如下

 当N=80,A=1,T=1,c=0.5时,图形如下

  由述4个波形图可知,随着N的增大即选取的傅里叶级数的项数增加,合成波形越来越接近原来的矩形脉冲信号。 利用MATLAB绘出周期矩形脉冲信号的频谱,观察参数T和变化时对频谱波形的影响。 由式(1)和式(2)计算得

 程序代码如下: N=input('N='); A=input('A='); T=input('T='); i=input('c='); n1=-N:-1; c1=A./n1./pi.*sin(n1.*pi.*i./T); c0=A.*i./T; n2=1:N; c2=A./n2./pi.*sin(n2.*pi.*i./T); cn=[c1 c0 c2]; n=-N:N; subplot(211); stem(n,abs(cn),'filled'); xlabel('\omega/\omega_0'); title('Magnitude of ck'); subplot(212); stem(n,angle(cn),'filled'); xlabel('\omega/\omega_0'); title('Phase of ck'); 运行波形图: 当N=20,A=1,T=4,c=0.5时,图形如下

 当N=20,A=1,T=2,c=0.5时,图形如下

  当N=20,A=1,T=2,c=1时,图形如下

  由以上3个频谱波形图可知,频谱波形与的值有关,对于不同的T和,当比值相同时频谱波形图相同;当比值不同时,比值越小,频谱包络形状趋于收敛,过零点越少,谱线越密。 思考题解答: Q1-1将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成。当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%,这种现象称为吉伯斯现象。 产生吉伯斯现象的原因是当一个信号通过某一系统时,如果这个信号不是连续时间函数,则由于一般物理系统对信号高频分量都有衰减作用,从而产生吉伯斯现象。 Q1-2由实验结果可知周期性矩形脉冲信号的频谱是离散的,谱线间隔为,即各次谐波仅存在于基频的整数倍上;而且,谱线的长度随着谐波次数的增高趋于收敛。至于频谱收敛规律,以及谐波含量则由信号波形决定。因此,离散型、谐波性和收敛性是周期信号的共同特点。 Q1-3通常把包含主要谐波分量的这段频率范围称为矩形脉冲信号的有效频带宽度,简称为有效频宽。即

 ,T为脉冲宽度。故有效频宽与信号的时域宽度成反比,实验结果与这相符。 Q1-4频谱波形与的值有关,对于不同的T和,当比值相同时频谱波形图相同;当比值不同时,比值越小,频谱包络形状趋于收敛,过零点越少,谱线越密。

 2、已知矩形脉冲信号。 求该信号的傅里叶变换 由教材上的波形可知 用MATLAB函数库里的fourier函数来求的傅里叶变换 MATLAB程序代码如下: syms t; A=input('A='); c=input('c='); x=A*[heaviside(t+c/2)-heaviside(t-c/2)];

 X=fourier(x)

 collect(X)

 当A=1;τ=1; ans =

  (2*sin(w/2))/w=Aτsinc(ωτ/2) 所以的傅里叶变换为

 利用MATLAB绘出矩形脉冲信号的频谱,观察矩形脉冲宽度变化时对频谱波形的影响。 MATLAB程序代码如下: syms t; A=input('A='); c=input('c='); x=A*(heaviside(t+c/2)-heaviside(t-c/2)); X=fourier(x); ezplot(abs(X),[-8*pi,8*pi]); grid on; xlabel('\omega'); ylabel('Magnitude'); title('|X(\omega)|'); 程序运行波形如下:

 当A=1;τ=1;

 当A=1;τ=0.5;

 当A=2;τ=0.5;

 当A=1;τ=2;

 由以上4个频谱波形图可知,当矩形脉冲宽度增大时,信号占有频带减小,即信号的占有频带与脉冲宽度成反比。 让矩形脉冲的面积始终等于1,改变矩形脉冲宽度,观察矩形脉冲信号时域波形和频谱随矩形脉冲宽度的变化趋势。 程序代码如下: syms t; i=input('i='); A=1/i; x=A.*(heaviside(t+i/2)-heaviside(t-i/2)); X=fourier(x); subplot(211); ezplot(x); xlabel('Time(seconds)'); title('x(t)'); subplot(212); ezplot(abs(X),[-6*pi,6*pi]); grid on; xlabel('\omega');

 ylabel('Magnitude'); 程序运行波形图如下:

  根据波形图可知,随着脉冲宽度减小,时域波形的幅值增加,信号占有的频带宽度增加。 思考题解答: Q2-1相同点:它们的有效频带宽度都是与脉冲宽度成反比。

 不同点:周期矩形脉冲信号的频谱是离散的,而矩形脉冲信号的频谱是连续的 Q2-2矩形脉冲信号的有效频带宽度与时域宽度成反比,当,脉冲面积始终等于1时,其频谱会无限趋近于高度为1的一条直线。

 3、已知周期方波序列。 由教材上的波形可知 程序代码如下: N1=input('N1='); N=input('N='); n=0:N-1; x=[1 1 1 0 0 0 0 1 1]; X=fft(x); subplot(211); stem(n,x,'filled'); xlabel('n'); title('x(n)'); subplot(212); stem(n,X,'filled'); xlabel('k'); title(['X(k) , N=' num2str(N)]); 波形图如下:

 思考题解答: Q3-1 相同点:周期序列与连续周期信号的频谱都是离散的,且都有收敛性和谐波性。 不同点:连续周期信号在一个周期内要用无限多项级数来表示,而周期序列用有限项级数就可以表示。 Q3-2 随着方波序列占空比的减小,其频谱的谱线越来越密集,谱线高度会增加。

 4、已知一矩形脉冲序列                 利用MATLAB绘制周期方波序列的频谱波形,改变矩形脉冲序列的宽度,观察频谱波形的变化趋势。 程序代码: w = -pi:0.01:pi; N = input('N='); n = -N:N; x = ones(size(n)); X = x*exp(-j*n'*w); subplot(211); stem(n,x,'filled'); xlabel('n'); title('x(n)'); subplot(212); plot(w/pi,X); xlabel('\omega/\pi'); title(['X(e^j^\omega) , N=' num2str(N)]); 波形图如下:

 思考题解答: Q4-1 随着矩形脉冲序列宽度的增加,其频谱的有效频带宽度减小。其宽度与频谱的有效频带宽度成反比。 四、实验心得体会

 实验4 LTI系统的频域分析 一.实验目的

 1. 加深对LTI系统频率响应基本概念的掌握和理解

 2. 学习和掌握LTI系统频率特性的分析方法 二.实验原理 1.连续时间系统的频率响应 系统的频率响应定义为系统单位冲激相应的傅里叶变换,即

 若LTI连续时间系统的单位冲激响应为,输入信号为,根据系统的时域分析可知系统的零状态响应为 对上式等式两边分别求傅里叶变换,根据时域卷积定理可以得到

 因此,系统的频率响应还可以由系统的零状态响应和输入的傅里叶变换之比得到

 反映了LTI连续时间系统对不同频率信号的响应特性,是系统内在固有的特性,与外部激励无关。又可以表示为

 其中称为系统的幅度响应,称为系统的相位响应。 当虚指数信号作用于LTI系统时,系统的零状态响应仍为同频率的虚指数信号,即。由此还可以推导出正弦信号作用在系统上的响应如下表所示 输入信号 响应

 对于由下下述微分方程描述的LTI连续时间系统

 其频率响应可以表示为下式所示的的有理多项式

 MATLAB的信号处理工具箱提供了专门的函数freqs,用来分析连续时间系统的频率响应,该函数有下列几种调用格式: [h,w]=freqs(b,a)计算默认频率范围内200个频率点上的频率响应的取样值,这200个频率点记录在w中。 h=freqs(b,a,w)

 b、a分别为表示的有理多项式中分子和分母多项式的系数向量,w为频率取样点,返回值h就是频率响应在频率取样点上的数值向量。 [h,w]=freqs(b,a,n)计算默认频率范围内n个频率点上的频率响应的取样值,这n个频率点记录在w中。 freqs(b,a,...)

 这种调用格式不返回频率响应的取样值,而是以对数坐标的方式绘出系统的幅频响应和相频响应。 2.离散时间系统的频率响应 LTI离散时间系统的频率响应定义为单位抽样响应h(n)的离散时间傅里叶变换.

  (8-35) 对于任意的输入信号x(n),输入与输出信号的离散时间傅里叶变换有如下关系:

  (8-36) 因此,系统的频率响应还可以表示为

  (8-37) 当系统输入信号为时,系统的输出

 (8-38) 由式(8-38)可知,虚指数信号通过LTI离散时间系统后信号的频率不变,信号的幅度由系统频率响应的幅度值确定,所以表示了系统对不同频率信号的衰减量. 一般情况下离散系统的频率响应是复值函数,可用幅度和相位表示

 (8-39) 其中称为系统的幅度响应,称为系统的相位响应. 若LTI离散系统可以由如下差分方程描述.

  (8-40) 则由式(8-37)描述的离散时间系统的频率响应可以表示为的有理多项式.

  (8-41) MATLAB的信号处理工具箱提供了专门的函数freqz,用来分析连续时间系统的频率响应,该函数由下列几种调用格式: [H,w]=freqz(b,a,n)

  b,a分别为有理多项式中分子和分母多项式的系数向量,返回值H是频率响应在0到pi范围内n个频率等分点上的数值向量,w包含了这n个频率点. [H,w]=freqz(b,a,n,'whole')计算0~个频率点上的频率响应的取样值,这n个频率点记录在w中. H=freqz(b,a,w)

 w为频率取样点,计算这些频率点上的频率响应的取样值. freqz(b,a,....)

 这种调用格式不返回频率响应的取样值,而是直接绘出系统的幅频响应和相频响应。 三、实验内容: 1.已知一个RLC电路构造的二阶高通滤波器如下图,其中

 (1) 计算该电路系统的频率响应及高通截止频率; (2) 利用MATLAB绘制幅度响应和相位响应曲线,比较系统的频率特性与理论计算的结果是否一致。 经过计算系统的频率响应得b=[1 0 0]

  a=[1 10 50] 程序代码: b=[1 0 0]; a=[1 10 50]; [H,w]=freqs(b,a); subplot(211); plot(w,abs(H)); xlabel('\omega(rad/s)'); ylabel('Magnitude'); title('|H(j\omega)|'); grid on; plot(w,angle(H)); xlabel('\omega(rad/s)'); ylabel('Phase'); title('\phi(\omega)'); grid on; 程序运行波形图:

 经计算,系统的高通截止频率大约为7.1rad/s左右,根据响应曲线并进行比较可知,系统的频率特性与理论计算的结果一致。

 2.已知一个RC电路如图 (1)对不同的RC值,用MATLAB画出系统的幅度响应曲线,观察实验结果,分析图所示RC电路具有什么样的频率特性(高通、低通、带通或带电阻)?系统的频率特性随着RC值的改变,有何规律变化? (2)系统输入信号,该信号包含了一个低频分量和一个高频分量。试确定适当RC值,滤波信号中的高频分量。并绘出滤波前后的时域信号波形及系统的频率响应特性。

 (1) 经过计算系统的频率响应得 b=[1]

  a=[R*C

 1];

 程序代码为: R=input('R='); C=input('C='); b=[1]; a=[R*C 1]; [H,w]=freqs(b,a); subplot(211); plot(w,abs(H)); xlabel('\omega(rad/s)'); ylabel('Magnitude'); title('|H(j\omega)|'); grid on; subplot(212); plot(w,angle(H)); xlabel('\omega(rad/s)'); ylabel('Phase'); title('\phi(\omega)'); grid on; 程序运行波形图: 当输入R= 1欧姆

  C= 1pF

 时输出图形为:

 当输入R=1M欧姆

 C=1微法时输出图形为:

 当输入为R=10^9欧姆,

 C=1F时输出图形为:

 根据系统的频率响应及其图像可知:该系统具有低通的频率特性。且随着RC值的减小,系统的低通截止频率成比例的增大,即RC减小为原来的1/10时,系统低通截止频率增大为原来的10倍。 (2)经过计算:当R=1欧姆 C=1mF时,可以滤过信号中的高频分量 程序代码: t=0:0.001:0.2; x=cos(100*t)+cos(3000*t); subplot(211); plot(t,x); b=[1]; a=[0.001 1]; sys=tf(b,a); subplot(212); lsim(sys,x,t); 波形图,下面分别绘制出滤波前后的时域信号波形:

 其中灰色线为滤波之前的时域信号波形,蓝色线为滤波之后的时域波形。 此时系统的频率响应曲线绘制如下:

 3.已知离散系统的系统框图如图8-37所示. (1)写出M=8时系统的差分方程和系统函数; (2)利用MATLAB计算系统的单位抽样响应; (3)试利用MATLAB绘出其系统零极点分布图,幅频和相频特性曲线,并分析该系统具有怎样的频率特性。 (1)当M=8时,系统的差分方程为: x[n]+x[n-1]+x[n-2]+x[n-3]+x[n-4]+x[n-5]+x[n-6]+x[n-7]+x[n-8]=y[n]

 系统函数为:

 H(z)= (2)首先计算系统的单位抽样响应: 程序代码: b=[1 1 1 1 1 1 1 1 1]; a=[1]; impz(b,a); 波形图:

 (3)绘制频率特性曲线及零极点分布图,程序代码: b=[1 1 1 1 1 1 1 1 1]; a=[1]; [H,w]=freqz(b,a); subplot(311); plot(w/pi,abs(H)); xlabel('\omega(\pi)'); ylabel('Mangnitude'); title('|H(e^j^\Omega)|'); grid on; subplot(312); plot(w/pi,angle(H)/pi); xlabel('\omega(\pi)'); ylabel('Phase(\pi)'); title('\theta(\Omega)'); grid on; subplot(313); zplane(b,a); 波形图:

 由系统的频率响应可知,当w增加时,幅频特性响应曲线幅度降低,高频分量被滤除,因此该系统为一低通滤波器。

 4.已知一离散时间LTI系统的频率响应如图8-38所示,输入信号为.试根据式(8-38)分析正弦信号通过频率响应为的离散时间系统的响应,并根据分析结果计算系统对于的响应,用MATLAB绘出系统输入与输出波形. 观察实验结果,分析图8-38所示系统具有什么样的频率特性(高通,低通,带通,带阻)?从输入输出信号上怎么反映出系统的频率特性? 根据频率响应图像可知,输入信号只有当频率在-0.5*pi—0.5*pi 时才有输出信号。 程序代码: n=-8:8; x=cos(0.3*pi*n)+0.5*cos(0.8*pi*n); subplot(211); stem(n,x,'filled'); xlabel('n'); title('x(n)'); y=2*cos(0.3*pi*n); subplot(212); stem(n,y,'filled'); xlabel('n'); title('y(n)'); 运行波形图:

 系统频率特性:理想低通滤波器。从输入输出信号来看,高频分量被完全滤除,仅剩下低频分量,因此该系统为理想低通滤波器。 四、实验心得体会:

 实验5 连续时间系统的复频域分析 一.实验目的 1. 掌握拉普拉斯变换及其反变换的定义,并掌握MATLAB实现方法。 2. 学习和掌握连续时间系统系统函数的定义及复频域分析方法。 3. 掌握系统零极点的定义,加深理解系统零极点分布与系统特性的关系。 二.实验原理 1. 拉普拉斯变换

  连续时间信号的拉普拉斯变换定义为

 拉普拉斯反变换定义为

  在MATLAB中,可以采用符号数学工具箱的laplace函数和ilaplace函数进行拉氏变换和反拉氏变换。 L=laplace(F)符号表达式F的拉氏变换,F中时间变量为t,返回变量为s的结果表达式。 L=laplace(F,t)用t替换结果中的变量s。 F=ilaplace(L)以s为变量的符号表达式L的拉氏反变换,返回时间变量为t的结果表达式。 F=ilaplace(L,x)用x替换结果中的变量t。 除了上述ilaplace 函数,还可以采用部分分式法,求解拉普拉斯逆变换,具体原理如下: 当 X (s)为有理分式时,它可以表示为两个多项式之比:

 式(3)可以用部分分式法展成一下形式

  通过查常用拉普拉斯变换对,可以由式(1-2)求得拉普拉斯逆变换。 利用 MATLAB 的residue 函数可以将 X (s)展成式(1-2)所示的部分分式展开式,该函数的调用格式为:[r,p,k] = residue(b,a) 其中b、a 为分子和分母多项式系数向量,r、p、k 分别为上述展开式中的部分分式系数、极点和直项多项式系数。

 2. 连续时间系统的系统函数

  连续时间系统的系统函数是系统单位冲激响应的拉氏变换

 此外,连续时间系统的系统函数还可以由系统输入和系统输出信号的拉氏变换之比得到

 单位冲激响应反映了系统的固有性质,而从复频域反映了系统的固有性质。由式(6)描述的连续时间系统,其系统函数为s的有理函数

  3.连续时间系统的零极点分析 系统的零点是指式(7)的分子多项式为零的点,极点指使分母多项式为零的点,零点使系统的值为零,极点使系统函数的值无穷大。通常将系统函数的零极点绘在s平面上,零点用表示,极点用表示,这样得到的图形称为零极点的分布图。 由零极点的定义可知,零点和极点分别指式(7)的分子多项式和分母多项式的根。利用MATLAB求多项式的根可以通过函数roots来实现,该函数的调用格式为: r=roots(c)

 c为多项式的系数向量,返回值r为多项式的根向量。 分别对式(7)的分子多项式和分母多项式求根即可得到零极点。 此外,在MATLAB中还提供了更简便的方法来求取零极点和绘制系统函数的零极点分布图,即利用pzmap函数,该函数的调用格式为: pzmap(sys)绘出由系统模型sys描述的系统的零极点分布图。 [p,z]=pzmap(sys)

 这种调用方法返回极点和零点,而不绘出零极点分布图。其中sys为系统传函模型,由t命令sys=tf(b,a)实现,b、a为传递函数的分子多项式和分母多项式的系数向量。 MATLAB还为用户提供了两个专用函数tf2zp和zp2tf来实现系统传递函数模型和零极点增益模型的转换,其调用格式为:

 [z,p,k]=tf2zp(b,a)

 [b,a]=`zp2tf(z,p,k) 其中b、a为传递函数的分子多项式和分母多项式的系数向量,返回值z为零点列向量,p为极点列向量,k为系统函数零极点形式的增益。 三、实验内容: (1)已知系统的冲激响应,输入信号,是采用复频域的方法求解系统的响应,编写MATLAB程序实现。 使用卷积定理求解,先分别求的拉氏变换然后根据式(6)求出输出,最后对进行拉普拉斯反变换即可得到系统的响应。 程序代码: h=sym('heaviside(t)-heaviside(t-2)'); x=sym('heaviside(t)'); H=laplace(h); X=laplace(x); Y=H*X; y=ilaplace(Y) ezplot(y,[0,8]); 运行结果如下: y = t - heaviside(t - 2)*(t - 2) 即系统响应; 绘出响应图像如下:

 (2) 已知因果连续时间系统的系统函数分别如下,试采用MATLAB画出其零极点分布图,求解系统的冲激响应并判断系统是否稳定。

  程序代码: b= [1]; a=[1 2 2 1]; sys=tf(b,a); [p,z]=pzmap(sys); pzmap(sys) hs=sym('1/(s^3+2*s^2+2*s+1)'); ht=ilaplace(hs) hw=fourier(ht) 程序运行结果如下: ht=exp(-t)-exp(-t/2)*(cos((3^(1/2)*t)/2) -(3^(1/2)*sin((3^(1/2)*t)/2))/3) hw =(3^(1/2)*fourier(exp(-t/2)*sin((3^(1/2)*t)/2), t, w))/3 -fourier(exp(-t/2)*cos((3^(1/2)*t)/2),t,w) +fourier(exp(-t), t, w) 零极点分布图如下:

 根据零极点分布图可以看出,系统的极点都分布在jw轴的左侧,即H(s)的全部极点位于s平面的左半平面,因此系统是稳定的。

  程序代码: b=[1 0 1]; a=[1 2 -3 3 3 2]; sys=tf(b,a); [p,z]=pzmap(sys); pzmap(sys) hs=sym('(s^2+1)/(s^5+2*s^4-3*s^3+3*s^2+3*s+2)'); ht=ilaplace(hs) hw=fourier(ht) 运行结果如下: p =

  -3.1704 + 0.0000i

 0.9669 + 0.9540i

 0.9669 - 0.9540i

  -0.3817 + 0.4430i

  -0.3817 - 0.4430i z =

 0.0000 + 1.0000i

 0.0000 - 1.0000i ht = symsum((r3^2*exp(r3*t))/(5*r3^4 + 8*r3^3 - 9*r3^2 + 6*r3 + 3), r3 in RootOf(s3^5 + 2*s3^4 - 3*s3^3 + 3*s3^2 + 3*s3 + 2, s3)) + symsum(exp(r3*t)/(5*r3^4 + 8*r3^3 - 9*r3^2 + 6*r3 + 3), r3 in RootOf(s3^5 + 2*s3^4 - 3*s3^3 + 3*s3^2 + 3*s3 + 2, s3)) hw =

 fourier(symsum(exp(r3*t)/(5*r3^4 + 8*r3^3 - 9*r3^2 + 6*r3 + 3), r3 in RootOf(s3^5 + 2*s3^4 - 3*s3^3 + 3*s3^2 + 3*s3 + 2, s3)), t, w) + fourier(symsum((r3^2*exp(r3*t))/(5*r3^4 + 8*r3^3 - 9*r3^2 + 6*r3 + 3), r3 in RootOf(s3^5 + 2*s3^4 - 3*s3^3 + 3*s3^2 + 3*s3 + 2, s3)), t, w) 零极点分布图如下:

 根据零极点分布图,在s平面的右半平面有两个极点,因此系统是不稳定的。

 (3)

 已知连续时间系统函数的极点位置分别如下所示(设系统无零点),试用MATLAB绘制6中不同情况下,系统函数的零极点分布图,并绘制相应冲激响应的时域波形,观察并分析系统函数极点位置对冲激响应时域特性的影响。

  p=0

 程序代码: b=[1]; a=[1 0]; sys=tf(b,a); subplot(211); pzmap(sys); H=sym('1/s'); ht=ilaplace(H) subplot(212); ezplot(ht); xlabel('t'); title('h(t)'); 运行结果如下:ht=1 波形图:

  p=-2 程序代码: b=[1]; a=[1 2]; sys=tf(b,a); subplot(211); pzmap(sys); H=sym('1/(s+2)') ht=ilaplace(H) subplot(212); ezplot(ht); xlabel('t'); title('h(t)'); axis([-5 5 0 4000]); 结果:ht =exp(-2*t) 波形图:

  p=2 程序代码: b=[1]; a=[1 -2]; sys=tf(b,a); subplot(211); pzmap(sys); H=sym('1/(s-2)') ht=ilaplace(H) subplot(212); ezplot(ht); xlabel('t'); title('h(t)'); axis([-3 5 0 8000]); 结果:ht =exp(2*t); 程序运行图像:

  程序代码: b=[1]; a=[1 0 4]; sys=tf(b,a); subplot(211); pzmap(sys); H=sym('1/(s^2+4)') ht=ilaplace(H) subplot(212); ezplot(ht); xlabel('t'); title('h(t)'); axis([-5 5 -1 1]); 结果:ht= sin(2*t)/2 图像:

  程序代码: b=[1]; a=[1 2 17]; sys=tf(b,a); subplot(211); pzmap(sys); H=sym('1/(s^2+2*s+17)') ht=ilaplace(H) subplot(212); ezplot(ht); xlabel('t'); title('h(t)'); axis([-7 3 -50 100]); 结果:ht= (sin(4*t)*exp(-t))/4 图形:

  程序代码: b=[1]; a=[1 -2 17]; sys=tf(b,a); subplot(211); pzmap(sys); H=sym('1/(s^2-2*s+17)') ht=ilaplace(H) subplot(212); ezplot(ht); xlabel('t'); title('h(t)'); axis([-2 7 -100 50]); 结果:ht= (sin(4*t)*exp(t))/4 图像:

 由以上六例,可以总结出,在无零点的情况下: 当极点唯一且在原点时,h(t)为常数; 当极点唯一且是负实数时,h(t)为递减的指数函数; 当极点唯一且是正实数时,h(t)为递增的指数函数; 当H(s)有两个互为共轭的极点时,h(t)有一 因子; 当H(s)有两个互为共轭的极点且他们位于右半平面时,h(t)还有一 因子; 当H(s)有两个互为共轭的极点且他们位于左半平面时,h(t)还有一因子。

 (4) 已知3个连续时间系统函数

 上述三个系统具有相同的极点,只是零点不同,试用MATLAB分别绘制系统的零极点分布图及相应冲激响应的时域波形,观察并分析系统函数零点位置对冲激响应时域特性的影响。 (1)代码: b=[1]; a=[1 2 17]; sys=tf(b,a); subplot(211); pzmap(sys); H=sym('1/(s^2+2*s+17)'); h=ilaplace(H); subplot(212); ezplot(h); xlabel('t'); title('h(t)'); axis([-7 2 -100 100]); 图像:

 (2)、代码: b=[1 8]; a=[1 2 17]; sys=tf(b,a); subplot(211); pzmap(sys); H=sym('(s+8)/(s^2+2*s+17)'); h=ilaplace(H); subplot(212); ezplot(h); xlabel('t'); title('h(t)'); axis([-7 2 -500 1000]); 图像:

 (3)代码: b=[1 -8]; a=[1 2 17]; sys=tf(b,a); subplot(211); pzmap(sys); H=sym('(s-8)/(s^2+2*s+17)'); h=ilaplace(H); subplot(212); ezplot(h); xlabel('t'); title('h(t)'); axis([-7 2 -1000 1000]); 图像:

 由以上三例可以看出,当极点不变时,零点分布只影响系统时域响应的幅度和相 位,对时域响应模式没有影响。即不会改变是衰减振荡还是增长振荡。 四、实验心得体会

  实验6 离散时间系统的z域分析 一.实验目的 1.掌握z变换及其反变换的定义,并掌握MATLAB实现方法。 2.学习和掌握离散时间系统系统函数的定义及z域分析方法。 3.掌握系统零极点的定义,加深理解系统零极点分布与系统特性的关系。

 二.实验原理 1.z变换 序列x(n)的z变换定义为

 Z反变换定义为:

 在MATLAB中,可以采用了符号数学工具箱的ztrans函数和iztrans函数计算z变换和z反变换: Z=ztrans(F)求符号表达式F的z变换。 F=ilaplace(Z)求符号表达式Z的z反变换。 2.离散时间系统的系统函数 离散时间系统的系统函数H(z)定义为单位抽样响应h(n)的z变换

 此外,连续时间系统的系统函数还可以由系统输入和输出信号的z变换之比得到

 H(z)=Y(z)/X(z) 由式描述的离散时间系统的系统函数可以表示为

 3.离散时间系统的零极点分析 离散时间系统的零点和极点分别指使系统函数分子多项式和分母多项式为零的点。在MATLAB中可以通过函数roots来求系统函数分子多项式和分母多项式的根,从而得到系统的零极点。 此外,还可以利用MATLAB的zplant函数来求解和绘制离散系统的零极点分布图,zplane函数的点用格式: zplane(b,a)

 b、a为系统函数的分子、分母多项式的系统向量(行向量)。 zplane(z,p)

 z、p为零极点序列(列向量) 系统函数是描述系统的的重要物理量,研究系统函数的零极点分布不仅可以了解系统单位抽样响应的变化,还可以了解系统的频率特性响应以及判断系统的稳定性: 系统函数的极点位置决定了系统单位抽样相应h(n)的波形,系统函数零点位置只影响冲激响应的幅度相位,不影响波形。 系统的频率响应取决于系统的零极点,根据系统的零极点分布情况,可以通过向量法分析系统的频率响应。 因果的离散时间系统稳定的充要条件H(z)的全部极点都位于单位圆内。 三、实验内容: 1、已知因果离散时间系统的系统函数分别为: ① ② 试采用MATLAB画出其零极点分布图,求解系统的冲激响应h(n)和频率响应H(),并判断系统是否稳定。 程序代码: b1=[1 2 1]; a1=[1 -0.5 -0.005 0.3]; subplot(211); zplane(b1,a1); H1=sym('(z^2+2*z+1)/(z^3-0.5*z^2-0.005*z+0.3)'); h1=iztrans(H1)

  b2=[1 -1 0 2]; a2=[3 3 -1 3 -1]; subplot(212); zplane(b2,a2); H2=sym('(z^3-z^2+2)/(3*z^4+3*z^3-z^2+3*z-1)'); h2=iztrans(H2) 运行结果: h1 = (0.51979985117006810154871229643286-0.53458002643122268509649227193953*i)^(n-1)*(0.42473263632956678250370258281192+2.0012687212116686913795675709519*i)-0.27897481538263896322266504420217*(-0.53959970234013620309742459286572)^n + (0.51979985117006810154871229643286+0.53458002643122268509649227193953*i)^(n-1)*(0.42473263632956678250370258281192-2.0012687212116686913795675709519*i)+3.3333333333333333333333333333333*kroneckerDelta(n, 0)

 h2 = symsum(-(2*r3^n - r3^n*r3^2 + r3^n*r3^3)/(3*r3^3 - 2*r3^2 + 9*r3 - 4), r3 in RootOf(z3^4 + z3^3 - z3^2/3 + z3 - 1/3, z3)) - 2*kroneckerDelta(n, 0) 图像:

 根据结果可知,系统1的系统函数的极点全部位于单位圆内,因此系统是稳定的;系统2的系统函数在单位圆外面还存在极点,因此系统是不稳定的。 2、已知离散时间系统的系统函数零点z和极点p分别为: ① z=0,p=0.25 ② z=0,p=1 ③ z=0,p=-1.25 ④ z=0,, ⑤ z=0,, ⑥ z=0,, 使用MATLAB绘制上述6种不同情况下,系统函数的零极点分布图,并绘制相应单位抽样响应的时域波形,观察分析系统函数极点位置对单位抽样响应时域特性的影响和规律。 (1)、代码: n=0:10; b=[1 0]; a=[1 -0.25]; subplot(211); zplane(b,a); h=(0.25*exp(0.25*n)+1.0*dirac(n)).*heaviside(n); subplot(212); stem(n,h,'filled'); title('h(n)'); 图像:

 (2)、代码: n=0:10; b=[1 0]; a=[1 -1]; subplot(211); zplane(b,a); h=(dirac(n)+exp(n)).*heaviside(n); subplot(212); stem(n,h,'filled'); title('h(n)'); 图像:

 (3)代码: n=0:10; b=[1 0]; a=[1 1.25]; subplot(211); zplane(b,a); h=(1.0*dirac(n) - 1.25*exp(-1.25*n)).*heaviside(n); subplot(212); stem(n,h,'filled'); title('h(n)'); 图像:

 (4)、代码: n=0:10; b=[1 0]; a=[1 -1.3856 0.64]; subplot(211); zplane(b,a); h=(exp(n*(0.6928-0.40003519845133627940946281793036*i))*(0.5+0.86592380205798084029359532804151*i)+exp(n*(0.6928+0.40003519845133627940946281793036*i))*(0.5-0.86592380205798084029359532804151*i)).*heaviside(n) subplot(212); stem(n,h,'filled'); title('h(n)'); 图像:

 (5)、代码: n=0:10; b=[1 0]; a=[1 -1.8478 1]; subplot(211); zplane(b,a); h=(exp(n*(0.9239+0.38263401573827698571825493919923*i))*(0.5 - 1.2072894227887345667739475830863*i) + exp(n*(0.9239 -0.38263401573827698571825493919923*i))*(0.5+1.2072894227887345667739475830863*i)).*heaviside(n) subplot(212); stem(n,h,'filled'); title('h(n)'); 图像:

 (6)、代码: n=0:10; b=[1 0]; a=[1 1.6971 1.44]; subplot(211); zplane(b,a); h=(exp(n*(-0.84855+0.84850627428440386282819309053713*i))*(0.5 + 0.5000257662889016428814397668147*i) + exp(n*(- 0.84855-0.84850627428440386282819309053713*i))*(0.5-0.5000257662889016428814397668147*i)).*heaviside(n) subplot(212); stem(n,h,'filled'); title('h(n)'); 图像:

 函数极点位置对单位抽样响应时域特性的影响和规律: 由以上六个例子的极点位置及其冲激响应时域波形图像,可以总结出,当系统无零点时:

 ①当极点唯一且位于单位圆内时,h(n)收敛; ②当极点唯一且位于单位圆上时,h(n)为常函数; ③当极点唯一且位于单位圆外时,h(n)发散且存在因子; ④当H(s)有两个互为共轭的极点且均位于单位圆内时,h(n)收敛且含有sin(n)因子; ⑤当H(s)有两个互为共轭的极点且均位于单位圆内时,h(n)收敛且含有sin(n)因子,但与④中情况相比两极点位置不同时,h(n)中sin(n)的相位会有所不同; ⑥当H(s)有两个互为共轭的极点且均位于单位圆外时,h(n)发散且含有与因子。 3、已知离散时间系统的系统函数分别为: ①

  ②

  上述两个系统具有相同的极点,只是零点不同,使用MATLAB分别绘制上述两个系统的零点分布图及相应单位抽样响应的时域波形,观察分析系统函数零点位置对单位抽样响应时域特性的影响。 程序代码: b1=[1 2 0]; a1=[1 -1.3856 0.64]; subplot(211); zplane(b1,a1); H1=sym('(z^2+2*z)/(z^2-1.3856*z+0.64)'); h1=iztrans(H1)

 b2=[1 -2 0]; a2=[1 -1.3856 0.64]; subplot(212); zplane(b2,a2); H2=sym('(z^2-2*z)/(z^2-1.3856*z+0.64)'); h2=iztrans(H2) 运行结果如下: h1 = (0.6928-0.40003519845133627940946281793037*i)^(n-1)*(1.6928+2.131742014956062667037862090385*i)-7.6020666995096783081832378369024e-33*kroneckerDelta(n,0)+(0.6928+0.40003519845133627940946281793037*i)^(n-1)*(1.6928-2.131742014956062667037862090385*i)

  h2 = (0.6928 - 0.40003519845133627940946281793037*i)^(n - 1)*(- 0.3072-1.331953193275860694136519221781*i)-3.2810875864731710476723486526166e-34*kroneckerDelta(n, 0) + (0.6928 + 0.40003519845133627940946281793037*i)^(n - 1)*(- 0.3072 + 1.331953193275860694136519221781*i) 图像:

 零点位置对单位抽样响应时域特性的影响: 由以上两个例子可以看出,当系统极点不变时,零点不同只会影响系统单位冲激响应时域波形的幅度和相位(正负),而对单位冲激响应时域波形的趋势(衰减还是递增)没有影响。

 四、实验收获与总结:

 

Tags: 信号   实验   报告  

搜索
网站分类
标签列表