一、实验目的
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)命令可以绘制上述信号的时域波形
10.80.60.40.20-0.2-0.4-0.6-0.8-1012
4567Time(seconds)图1 利用向量表示连续时间信号38910sin(t)10.50-0.5-1-6-4
024t图 2 利用符号对象表示连续时间信号-26
常用的信号产生函数 函数名 功能 函数名 heaviside 单位阶跃函数 rectpuls sin 正弦函数 tripuls cos 余弦函数 square sinc sinc函数 sawtooth exp 指数函数 2.连续时间信号的时域运算
对连续时间信号的运算包括两信号相加、相乘、微分、积分,以及位移、反转、尺度变换(尺度伸缩)等。 1)相加和相乘
信号相加和相乘指两信号对应时刻的值相加和相乘,对于两个采用向量表示的可以直接使用算术运算的运算符“+”和“*”来计算,此时要求表示两信号的向量时间范围和采样间隔相同。采用符号对象表示的两个信号,可以直接根据符号对象的运算规则运算. 2)微分和积分
对于向量表示法表示的连续时间信号,可以通过数值计算的方法计算信号的微分和积分。这里微分使用差分来近似求取的,由时间向量[t1,t2,,tN]和采样值向量[x1,x2,,xN]表示的连续时间信号,其微分可以通过下式求得 x'(t)|ttkxk1xk,k1,2,,N1 t 功能 门函数 三角脉冲函数 周期方波 周期锯齿波或三角波 其中t表示采样间隔。MATLAB中用diff函数来计算差分
xk1xk.
连续时间信号的定积分可以由MATLAB的qud函数实现,调用格式为 quad (’function_name’,a,b)
其中,function_name为被积函数名,a、b为积分区间。
对于符号对象表示的连续时间信号,MATLAB提供了diff函数和quad函数分别用于求微分和积分。
3.离散时间信号的MATLAB表示
离散时间信号仅在一些离散时刻有定义.在MATLAB中离散时间信号需要使用两个向量来表示,其中一个向量用于表示离散的时间点,另一个向量表示在这些时间点上的值.例如对于如下时间信号
x(n){3,2,1,2,1,1,2,3}
采用MATLAB可以表示如下: 〉> n=-3:4;
>〉 x=[-3 2 —1 2 1 —1 2 3]; 〉> stem(n,x,’filled'); >〉 xlabel(’n'); 〉〉 title('x(n)');
Stem函数用于绘制离散时间信号波形,为了与我们表示离散时间信号的习惯相同,在绘图时一般需要添加‘filled’选项,以绘制实心的杆状图形。上述命令绘制的信号时域波形如图3所示.
x(n)3210-1-2-3-3-2-101234n图3 离散时间信号示例
4。离散时间信号的时域运算
离散时间信号的相加相乘是将两个信号对应的时间点上的值相加或相乘,可以直接使用算术运算的运算符“+”和“*\"来计算。
离散时间信号的位移,则可看作是将表示时间的向量平移,而表示对应时间点上的值的向量不变。
离散时间信号的反转,则可以看作是将表示时间的向量和表示对应时间点上的值的向量以零点为基准点,一纵轴为对称轴反折,向量的反折可以利用MATLAB的fliplr函数实现.
三、实验内容
(1)利用MATLAB绘制下列连续时间信号波形.
○,1x(t)(1e>> syms t
0.5t)u(t)
MATLAB 程序如下:
x=(1—exp(—0.5*t))*heaviside(t); ezplot(x,[0,5])
波形图如下:
错误!x(t)cos(t)[u(t)u(t2)]
MATLAB 程序如下: >〉 syms t
x=cos(pi*t)*[heaviside(t)-heaviside(t-2)]; ezplot(x,[0,5]) 波形图如下:
|t|cos(t)[u(t2)u(t2)] 2MATLAB 程序如下:
3x(t)○
〉〉 syms t
>> x=abs(t)*0.5*cos(pi*t)*[(heaviside(t+2)-heaviside(t—2))]; >> ezplot(x,[—2,2]) 波形图如下:
错误!x(t)esin(2t)[u(t)u(t3)]
tMATLAB 程序如下: >> syms t
>〉 x=exp(-t)*sin(2*pi*t)*[heaviside(t)-heaviside(t-3)]; 〉〉 ezplot(x,[-1,4]) 波形图如下:
(2)利用MATLAB绘制下列离散时间信号波形
错误!x(n)u(n3)
MATLAB 程序如下: n=0:8;
〉> x=(n>=3); 〉〉 stem(n,x,’filled’)
波形图如下:
2x(n)(1/2)u(n) ○
nMATLAB 程序如下: n=-3:6;
>> y=(n〉=0); 〉〉 x=(—0。5)。^n.*y; 〉> stem(n,x,’filled') 波形图如下:
错误!x(n)n[u(n)u(n5)]
MATLAB 程序如下: >〉 n=-2:6;
〉> x=n。*((n〉=0)—(n〉=5));
>〉 stem(n,x,'filled') 波形图如下:
错误!x(n)sin(n/2)u(n)
MATLAB 程序如下: n=-1:6;
>〉 x=sin(n。*pi。*0.5).*(n〉=0); 〉> stem(n,x,'filled’) 波形图如下:
(3)利用MATLAB生成并绘制连续周期矩形波信号,要求周期为2,峰值为3,显示三个周期的波形。
利用MATLAB 提供的square 函数来生成方波信号 MATLAB 程序如下:
> t=0:0。00001:6;
>〉 x=3*square(pi*t); >> plot(t,x) 波形图如下:
(4)已知信号x1(t),及信号x2(t)sin(2t),用MATLAB绘出下列信号的波形。 由教材上x1(t)的波形可知x1(t)为一个三角波的右半部分.
错误!x3(t)x1(t)x2(t) 错误!x4(t)x1(t)x2(t)
错误!x5x1(t)x1(t) 错误!x6(t)x2(t)x3(t1)
MATLAB 程序如下: syms t
x1=(4-t)*(heaviside(t)—heaviside(t-4)); x2=sin(2*pi*t); x3=x1+x2; x4=x1*x2;
xa=(4-(—t))*(heaviside(-t)-heaviside(-t—4)); x5=xa+x1;
x6=x2*subs(x3,t,t-1);
>> subplot(2,2,1);explot(x3,[—5,5]); 〉〉 subplot(2,2,1);ezplot(x3,[—5,5]);
〉〉 subplot(2,2,2);ezplot(x4,[—5,5]); >> subplot(2,2,3);ezplot(x5,[—5,5]); 〉> subplot(2,2,4);ezplot(x6,[—5,5]) >> 波形如下:
(5)已知离散时间信号x(n),用MATLAB绘出x(n),x(n),x(n2)和x(n2)的波形。
,3,3,3} 由教材上x(n)的波形可知x(n){1,2,3错误!x(n) 错误!x(n) 错误!x(n2) 错误!x(n2)
MATLAB 程序如下: >〉 n=-6:6;
x1=(n+3)。*[(n>=-2)—(n>=1)]+3。*[(n>=1)—(n〉=4)]; stem(n,x1,’filled’); 〉〉 n=-6:6; >> n=—n; 〉〉 x2=x1;
〉> stem(n,x2,'filled’); >〉 n=—6:6; 〉〉 n=n+2; >〉 x3=x1; 〉〉 stem(n,x3,’filled'); 〉> n=—6:6; 〉> n=n—2; >> x4=x1; 〉〉 stem(n,x4,'filled’); >>
波形如下:
(6)用MATLAB编程绘制下列信号的时域波形,观察信号是否为周期信号?若是周期信号,周期是多少?若不是周期信号,请说明原因。
x(t)1cos(t)2cos(t)cos(2t)错误! 4324MATLAB 程序如下:
syms t;
>> x=1+cos(pi*t/4—pi/3)+2*cos(pi*t/2—pi/4)+cos(2*pi*t); 〉> ezplot(x,[-15,15]); >>
波形图如下:
该信号是周期信号,周期T=8
错误!x(t)sin(t)2sin(t)
MATLAB 程序如下:
syms t;
〉〉 x=sin(t)+2*sin(t*pi); 〉> ezplot(x,[-15,15]); 〉〉
波形图如下:
该信号不是周期信号。sin(t)为周期信号,周期T2112;2sin(t)是周期信号,周期T2122,但TT为无理数,T1和T2之间不存在最小公倍数,故x(t)为非2周期信号。x(n)23sin(2n38)
MATLAB 程序如下: n=-15:15;
〉〉 x=cos(n*pi/6)+sin(n*pi/3)+cos(n*pi/2); 〉〉 stem(n,x,’filled');; 波形图如下:
3○
该信号是周期信号,周期T=3
错误!x(n)cos(n)sin(n)cos(n)
6MATLAB 程序如下:
32n=—15:15;
〉〉 x=cos(n*pi/6)+sin(n*pi/3)+cos(n*pi/2); 〉〉 stem(n,x,'filled’); 波形图如下:
该信号是周期信号,周期T=12
四.实验心得体会
通过此次实验我掌握了MATLAB的基本使用及其在信号分析上的应用,达到了实验目的,在实验的过程中我体会到了MATLAB功能的强大,提高了我对信号与系统这门课程的兴趣。
实验 2 LTI系统的时域分析
一、实验目的
①掌握利用MATLAB对系统进行时域分析的方法。
②掌握连续时间系统零状态响应、冲激响应和阶跃响应的求解方法. ③掌握求解离散时间系统响应、单位抽样响应的方法。
④加深对卷积积分和卷积和的理解.掌握利用计算机进行卷积积分和卷积和计算的方法。
二、实验原理
1、连续时间系统时域分析的MATLAB实现
1)连续时间系统的MATLAB表示
设LTI因果系统的微分方程一般式为:
any(n)(t)an1y(n1)(t)a1y'(t)a0y(t)bmx(m)(t)bm1x(m1)(t)b1x'(t)b0x(t) 则在MATLAB里,可以建立系统模型如下: b=[; a=[;
sys=tf(b,a);
2)连续时间系统的零状态响应
用lsim(sys,x,t)表示求解零状态响应。 3)连续时间系统的冲激响应与阶跃响应。 用impulse函数来调用。
2、离散时间系统时域分析的MATLAB实现
1)离散时间系统的MATLAB表示。
LTI离散系统通常可以由系统差分方程描述; 则在MATLAB里,可以建立系统模型如下: b=[; a=[;
2)离散时间系统对任意输入的响应。 用ilter(b,a,x)函数调用。
3)离散时间系统的单位抽样响应。 用impz函数来调用。
3、卷积和与卷积积分
1)离散时间序列的卷积和:调用格式为x=conv(x1,x2); 2)连续时间信号的卷积积分
连续时间信号x1(t)和x2(t)的卷积积分x(t)定义如下
x(t)x1(t)*x2(t)x1()x2(t)d三、实验内容
(1)采用MATLAB绘出各系统的单位冲激响应和单位阶跃响应波形。
①y(t)2y(t)y(t)x(t)
MATLAB 程序如下: b=[1];
>> a=[1 sqrt(2) 1]; >> sys=tf(b,a);
〉〉 subplot(121); >> impulse(sys); 〉> subplot(122); 〉> step(sys); 波形如下:
错误!
y(t)2y(t)y(t)x(t)
MATLAB 程序如下: b=[1 0 0];
〉〉 a=[1 sqrt(2) 1]; >〉 sys=tf(b,a); 〉> subplot(121); 〉〉 impulse(sys); 〉> subplot(122); 〉> step(sys); 〉> 波形如下:
③y(t)y(t)y(t)x(t) MATLAB 程序如下: b=[1 0]; >> a=[1 1 1]; >〉 sys=tf(b,a); 〉> subplot(121); >〉 impulse(sys); >〉 subplot(122); 〉〉 step(sys); 〉〉
波形如下:
④
y(t)y(t)y(t)x(t)x(t)
MATLAB 程序如下:
b=[1 0 1]; >> a=[1 1 1]; 〉〉 sys=tf(b,a); 〉〉 subplot(121); 〉〉 impulse(sys); 〉〉 subplot(122); >> step(sys); 波形如下:
2)已知某系统可以由如下微分方程描述
利用MATLAB绘出该系统冲激响应和阶跃响应的时域波形. MATLAB 程序如下: b=[1];
〉> a=[1 1 6]; 〉〉 sys=tf(b,a); >〉 subplot(121); 〉> impulse(sys); >> subplot(122); 〉〉 step(sys);
y(t)y(t)6y(t)x(t)
>> t=0:0。1:10; >> x=exp(-t); 〉〉 lsim(sys,x,t); 〉> lsim(sys,x,t); 〉> 波形如下:
根据冲激响应的时域波形分析系统的稳定性
观察上面的波形,t趋于无穷时,y(t)均趋于0,所以该系统是稳定的。
3)已知描述离散系统的微分方程如下,用MATLAB绘出各系统的单位抽样响应,根据单位抽样响应的时域波形分析系统的稳定性。 ①y(n)3y(n1)2y(n2)x(n)
MATLAB 程序如下: b=[1]; >> a=[1 3 2]; >> impz(b,a,0:20); 〉〉
波形如下:
系统的稳定性
由图像可知,n趋于无穷时,y(n)越来越大,所以该系统是不稳定的.
○,2y(n)-0.5y(n1)0.8y(n2)x(n)3x(n1)
MATLAB 程序如下: >〉 b=[1 —3]; >> a=[1 0。5 0。8]; >> impz(b,a,0:20); 波形如下:
由图像可知,n趋于无穷时,y(n)越来越小且是有界的,所以该系统是稳定的。 (4)已知系统可以由如下差分方程描述
y(n)y(n1)0.25y(n2)x(n)
MATLAB 程序如下:
b=[1];
a=[1 1 0.25]; x=ones(1,31); y=filter(b,a,x); subplot(211);
impz(b,a,0:30); subplot(212);
stem(n,y,’filled’); 〉〉
波形如下:
(5)用MATLAB计算如下两个序列的卷积,并绘出图形.
x1(n){1,2,1,1}-2n2,x2(n)1其他,x2(n)0MATLAB 程序如下: x1=[1 2 1 1]; 〉〉 x2=ones(1,5); >> x3=conv(x1,x2); >> n3=-3:4;
〉> stem(n3,x3,'filled'); 波形如下:
(6)已知某LTI离散系统,其单位抽样响应h(n)sin(0.5n),n0,系统的输入为
x(n)sin(0.2n),n0,计算当n=0,1,2,…,40时系统的零状态响应y(n),绘
出x(n),h(n)和y(n)时域波形. MATLAB 程序如下: n=0:40; h=sin(0.5.*n); 〉〉 x=sin(0。2.*n); 〉〉 y1=conv(x,h); y=y1(:,1:41); 〉〉 subplot(311); 〉> stem(n,x,’filled’);
〉> subplot(312); >> stem(n,h,'filled’); 〉> subplot(313); >〉 stem(n,y,'filled'); 波形如下:
7)已知两个连续时间信号,求两个信号的卷积。 MATLAB 程序如下:
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); end dt=0。001; 〉〉 t1=-1:dt:1;
>> x1=2*((t1+1〉=0)-(t1—1〉=0)); 〉〉 t2=—2:dt:2;
>> x2=(t2+2>=0)—(t2—2>=0); 〉〉 [x,t]=sconv(x1,x2,t1,t2,dt); 〉> plot(t,x); 波形如下:
四、实验心得体会
经过这次实验后,对MATLAB对系统进行时域分析的方法有了初步的了解,并且加深了对卷积积分和卷积和的理解.不过对于程序的使用熟练程度仍有欠缺,需要在下次实验中继续提高.
实验3 信号频域分析 一、实验目的
1.深入理解信号频谱的概念,掌握信号的频域分析方法。 2.观察典型周期信号和非周期信号的频谱,掌握其频谱特性。
二、实验原理与方法
1.连续周期信号的频谱分析
如果周期信号满足狄里赫利条件,就可以展开为傅里叶级数形式,即
x(t)ckejkw0t...............(1)
k1ckT0x(t)ejkw0tdt........(2)T0
式中,T0表示基波周期,w02/T0为基波频率,T0(•)表示任一个基波周期内的积分.
式(1)和式(2)定义为周期信号复指数形式的傅里叶级数,系数ck称为x(t)的傅里叶系数。周期信号的傅里叶级数还可以由三角函数的线性组合来表示,即
x(t)a0akcoskw0tbksinkw0t...........(3)k1k1 其中a0122T0x(t)dt,akTx(t)coskw0tdt,bkTx(t)sinkw0tdt......(4)T0T00T00
式(3)中同频率的正弦项和余弦项可以合并,从而得到三角函数形式的傅里叶
级数,即
x(t)A0Akcos(kw0tk)...........(5)k1 其中2A0a0,Akakbk2,karctan
bk............(6)ak可见,任何满足狄里赫利条件的周期信号都可以表示成一组谐波关系的复指数函数或三角函数的叠加。一般来说周期信号表示为傅里叶级数时需要无限多项才能完全逼近原信号,但在实际应用中经常采用有限项级数来替代,所选项数越多就越逼近原信号。
2.连续非周期信号的频谱分析
对于非周期连续时间信号,吸纳后的傅里叶变换和傅里叶逆变换定义为
X(w)x(t)ejwtdt............(7) x(t)12X(w)ejwtdw........(8)
式(7)和式(8)把信号的时域特性和频域特性联系起来,确立了非周期信号x(t)和频谱X(w)之间的关系。
采用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的数值计算的方法近似计算连续时间傅里叶变换。傅里叶变换X(w)可以由式(9)近似计算
X(w)x(t)ejwtdtlimx(k)ejwk...........(9)
0当x(t)为时限信号,且足够小,式(9)可以演变为
X(w)x(k)ejkw..............(10)
kab而式(10)中求和部分又可以表示成一个行向量和一个列向量的乘积
ejawj(a1)wbjkwe........(11) x(k)e[x(a),x((a1)),,x(b)]•.....kajbwe式(11)可以很方便地利用MATLAB实现。 3.离散周期时间信号的频域分析
基波周期为N的周期序列x(n)可以用N个成谐波关系的复指数序列的加权和表示,即
x(n)kNcekjk(2/N)n...............(12)
这里k= 这里,我们用周期N与傅里叶系数ck的乘积来表示周期离散时间信号的频谱,即 X(k)N•ckkNx(n)ejk(2/N)n.........(14) X(k)可以利用MATLAB提供的函数fft用来计算,调用格式为 Xfft(x) 该函数返回X(k)一个周期内的值,其中x表示x(n)一个周期内的样本值。 4.离散非周期时间信号的频域分析 非周期序列x(n)可以表示成一组复指数序列的连续和 x(n)其中 X(e)j12X(e2j)ejnd............(15) nx(n)ejn...............(16) 式(16)称为x(n)的离散时间傅里叶变换,式(15)和式(16)确立了非周期离散时间信号x(n)及其离散时间傅里叶变换之间的关系.X(ej)是连续频率的函数,称为 频谱函数,且X(ej)是周期的连续频率函数,其周期为2。可见,非周期离散时间函数对应于频域中是一个连续的周期的频率函数. 对于有限长的时间序列,式(16)可以表示为 ejn1jn2nNe........(17) X(ej)x(n)ejn[x(n1),x(n2),,x(nN)]•.....nn1jnNe式(17)可以方便地利用MATLAB实现。 三、实验内容 (1)已知周期矩形脉冲信号x(t)。 错误!教材上x(t)的波形可知信号x(t)A[u(t(kT/2))u(t(kT/2))] k由式(3)和式(4)计算得 A,k0ak2A,bk0k sin,k1,2,Tk故x(t)的傅里叶级数为 2利用MATLAB绘出由前N次谐波合成的信号波形,观察随着N的变化合成○ 信号波形的变化规律; MATLAB程序如下: s=-10:0。01:10; 〉> N=10;A=1;t=1;T=2; >〉 x=A*t/T; 〉> w=2*pi/T; 〉> for n=1:1:N x=x+(2*A/(pi*n))*sin(n*w*t/2)*cos(n*w*s); end >> subplot(311); plot(s,x); 〉〉 N=5;A=1;t=1;T=2; 〉〉 x=A*t/T; >> w=2*pi/T; 〉〉 for n=1:1:N x=x+(2*A/(pi*n))*sin(n*w*t/2)*cos(n*w*s); end subplot(312); plot(s,x); 〉> N=20;A=1;t=1;T=2; 〉> x=A*t/T; w=2*pi/T; for n=1:1:N x=x+(2*A/(pi*n))*sin(n*w*t/2)*cos(n*w*s); end subplot(313); 〉> plot(s,x); 波形如下: 由述3个波形图可知,随着N的增大即选取的傅里叶级数的项数增加,合成波形越来越接近原来的矩形脉冲信号. 错误!利用MATLAB绘出周期矩形脉冲信号的频谱,观察参数T和变化时对频谱波形的影响. 由式(1)和式(2)计算得 AAk c0 ,cksin(k1,2)TkTMATLAB程序如下: A=1,T=1,τ=0。5 N=20; n1=-N:-1; c1=-sin(n1*pi*0。5)/pi./n1; c0=0.5; n2=1:N; c2=—sin(n2*pi*0。5)/pi。/n2; 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 ofck’) A=1,T=2,τ=0。5时,波形如下: A=1,T=1,τ=0.8时,波形如下: 由以上3个频谱波形图可知,频谱波形与 T相同时频谱波形图相同;当比值不同时,比值越小,频谱包络形状趋于收敛,过零点越少,谱线越密。 思考题解答: 1)将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成.当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点.当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。这种现象称为吉伯斯现象. 产生吉伯斯现象的原因是当一个信号通过某一系统时,如果这个信号不是连续时间函数,则由于一般物理系统对信号高频分量都有衰减作用,从而产生吉伯斯现象. 的值有关,对于不同的T和,当比值 2)由实验结果可知周期性矩形脉冲信号的频谱是离散的,谱线间隔为w0,即各次谐波仅存在于基频w0的整数倍上;而且,谱线的长度随着谐波次数的增高趋于收敛.至于频谱收敛规律,以及谐波含量则由信号波形决定。因此,离散型、谐波性和收敛性是周期信号的共同特点。 3)通常把包含主要谐波分量的0~2/T这段频率范围称为矩形脉冲信号的有效频带宽度,简称为有效频宽Bw.即 Bw2/T ,T为脉冲宽度。故有效频宽与信号的时域宽度成反比,实验结果与这相符。 4)频谱波形与 T比值不同时,比值越小,频谱包络形状趋于收敛,过零点越少,谱线越密。 的值有关,对于不同的T和,当比值相同时频谱波形图相同;当 (2)已知矩形脉冲信号x(t)。 ○,1求该信号的傅里叶变换 由教材上x(t)的波形可知x(t)A[u(t/2)u(t/2)] 用MATLAB函数库里的fourier函数来求x(t)的傅里叶变换 MATLAB程序如下: t=1 A=1 >〉 syms t >> x=heaviside(t+0.5)—heaviside(t—0。5); >> x=fourier(x) x = (cos(w/2)*i + sin(w/2))/w — (cos(w/2)*i — sin(w/2))/w 错误!利用MATLAB绘出矩形脉冲信号的频谱,观察矩形脉冲宽度变化时对频 谱波形的影响。 MATLAB程序如下: 当t=1 A=1 syms t w X=int((heaviside(t+0。5)—heaviside(t—0。5))*exp(—j*w*t),t,—1,1); ezplot(abs(X),[-10*pi,10*pi]); grid on ; xlabel(’\\omega'); ylabel(’Magnitude’); title(’|X(\\omega)|’); >〉 ylim([0,1。2]); 波形如下: 当t=2 A=1时: 由以上2组频谱波形图可知,当矩形脉冲宽度增大时,信号占有频带B减小,即信号的占有频带B与脉冲宽度成反比。 ○,3让矩形脉冲的面积始终等于 1,改变矩形脉冲宽度,观察矩形脉冲信号时域 波形和频谱随矩形脉冲宽度的变化趋势. MATLAB程序如下: t=1 A=1 syms t w X=int((heaviside(t+0.5)—heaviside(t—0。5))*exp(—j*w*t),t,-1,1); ezplot(abs(X),[—10*pi,10*pi]); grid on ; xlabel(’\\omega'); ylabel(’Magnitude'); title('|X(\\omega)|'); >> ylim([0,1.2]); 波形如下: t=0。5 A=2 syms t w X=int((heaviside(t+0。25)-heaviside(t—0。25))*2*exp(-j*w*t),t,—1,1); ezplot(abs(X),[-10*pi,10*pi]); grid on ; xlabel(’\\omega’); ylabel('Magnitude'); title(’|X(\\omega)|'); ylim([0,2]); 波形如下: A=4 t=0.25 syms t w X=int((heaviside(t+0.125)-heaviside(t—0.125))*4*exp(—j*w*t),t,-1,1); ezplot(abs(X),[—10*pi,10*pi]); grid on ; xlabel(’\\omega’); ylabel('Magnitude’); title(’|X(\\omega)|’); ylim([0,2]); 〉> 波形如下: 由以上4个频谱波形图可知,当矩形脉冲宽度增大时,信号占有频带B减小,即信号占有频带 B与脉冲宽度成反比。 随着脉冲宽度减小,时域波形的幅值增加,信号占有的频带宽度增加。 思考题解答: 1)相同点:它们的有效频带宽度都是与脉冲宽度成反比。 不同点:周期矩形脉冲信号的频谱是离散的,而矩形脉冲信号的频谱是连续的 2)矩形脉冲信号的有效频带宽度与时域宽度成反比,当0,脉冲面积始终等于1时,其频谱会无限趋近于高度为1的一条直线. (3)已知周期方波序列x(n)。 由教材上x(n)的波形可知x(n)MATLAB程序如下: N=10 N1=2 x=[1 1 1 1 1 0 0 0 0 0]; n=-2:7; X=fft(x); subplot(211); stem(n,x,’filled’); xlabel('n’); k[u(kNnN)u(kNnN)] 11title(’x(n)'); subplot(212); stem(n,X,’filled'); xlabel('k’); title('X(k)'); 波形图如下: 当N=10 N1=1时: 〉 x=[1 1 1 0 0 0 0 0 0 0]; n=-2:7; 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=20 N1=1时: x=[1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; n=0:19; 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)'); >〉 波形如下: 思考题解答: 1)相同点:周期序列与连续周期信号的频谱都是离散的,且都有收敛性和谐波性。 不同点:连续周期信号在一个周期内要用无限多项级数来表示,而周期序列用有限项级数就可以表示。 2)随着方波序列占空比的减小,其频谱的谱线越来越密集,谱线高度会增加。 (4)已知一矩形脉冲序列 1,|n|N1 x(n) 0,|n|N1利用MATLAB绘制周期方波序列的频谱波形,改变矩形脉冲序列的宽度,观察频谱波 形的变化趋势。 MATLAB程序如下: N1=2 w=-pi:0.01*pi:pi; n=-2:2; 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,abs(X)); xlabel('\\omega/\\pi'); title('|X(e^j^\\omega)|’); 〉〉 波形图如下: 当N1=4 当N1=6 思考题解答: 随着矩形脉冲序列宽度的增加,其频谱的有效频带宽度减小。其宽度与频谱的有效频带宽度成反比。 四、实验心得体会 通过此次实验我掌握了用 MATLAB,掌握了信号频谱分析的方法,深入理解 了信号频谱的概念,同时掌握了一些典型周期信号与非周期信号的频谱特性。此次实验对我理解信号频谱的概念加深了印象. 实验 4 LTI 系统的频域分析 一、实验目的 ①加深对 LTI 系统频率响应基本概念的掌握和理解。 ②学习和掌握 LTI 系统频率特性的分析方法。 二、实验原理与方法 1。 连续时间系统的频率响应 系 统的H () h()jt d频e 率 响应若 LTI 连续时间系统的单位冲激响应为 h(t),输入信号为 x(t), 根据系统的时域分定义析可知系统的零状态响应为 为 y(t) x(t)*h(t) 系 统 对上式两边分别求傅里叶变换,根据时域卷积定理有 单位 Y () X ()H () 冲 激因此系统的频率响应还可以由系统的零状态响应和输入的傅里 响 应叶变换之比得到 hH () Y () / X () (tH () 反映了 LTI 连续时间系统对不同频率信号的响应特性,是系 统内在固有的特)的H () 又可表示为 性,与外部激励无关. 傅 H () H () e j里 叶即: () 称为系统的幅度响应,称为系统的相位响应. 其 H jt e当虚指数信号 作用于 LTI 系统时,系统的零状态响应仍为同 频率的虚指数信号,即 y(t) ejt H () 对于由下述微分方程描述的 LTI 连续时间系统 mNb x(t) nM a y(t) n m n0 m0 H (j) 可以表示为下式所示的 j的有理多项式 其频率响应 H N Y b jM M 1 M 1 M b j N N 1 X a ja j N 1 b1 jb0 a ja 1 0 MATLAB 的信号处理工具箱提供了函数 freqs,用来分析连续时 间系统的频率响应,该函数由下列几种调用格式: [h,w]=freq(b,a) 计算默认频率范围内 200 个频率点上的频率有 限的取样值,这 200 个频率点记录在 w 中。 H (j) 的有理多项式中分子和分 母多项式的系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)的离散时 间傅里叶变换. j- jnH eh(n)e n 对于任意的输入信号 x(n),输入与输出信号的离散时间傅里叶变 换有如下关系 jjjY eH eX e 因此,响应的频率响应还可以表示为 H e jjY e X e j jn 当系统输入信号为x (n) e时,系统的输出 y(n) e jn * h(n) j(nk ) h(k) ejn H ej ek 由上式可知,虚指数信号通过 LTI 离散时间系统后信号的频率不变, 信号的幅度j由系统频率响应的幅度值确定,所以 H e 表示了系统 对不同频率信号的衰减量. 若 LTI 离散系统可以由如下差分方程描述 N M ai y(n i) bj x(n j) i0 j 0 则离散时间系统的频率响应 H e j可以表示为 ej的有理多项式 MATLAB 的信号处理工具箱提供了函数 freqz,用来分析离散时 间系统的频率响应,该函数由下列几种调用格式: [H,w]=freqz(b,a,n) b、a 分别为有理多项式中分子和分母多项式 的系数向量,返回值 H 就是频率响应在 0 到 pi 范围内 n 个频率等分 点上的数值向量,w 包含了这 n 个频率点。 H =[H,w]=freqz(b,a,n, 'whole’)计算 0~2πn 个频率点上的频率响应 的取样值,f这 n 个频率点记录在 w 中。 rf er三、实验内容 qe 1. 已知一个 RLC 电路构造的二阶高通滤波器如图所示,其中有 zq(zb(,ba, , a ①计算该电路系统的频率响应及高通截止频率; 由电路分析知识可计算出: w, y t 10 y ’t 50 y t x t 故其频响为 ②绘制幅度响应和相位响应曲线,比较系统的频率响应特性与理 论计算的结果是否一致。 程序如下: b=[0。8 0 0]; a=[0.8 8 40]; [H,w]=freqs(b,a); subplot(211); plot(w,abs(H)); set(gca,'xtick’,[0:10:100]); set(gca,’ytick’,[0 0.4 0。707 1]); 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; 波形如下: 通过观察可以看出,幅度为 0。707 时频率约为 7。07rad/s,与理论 计算相符 2. 已知一个 RC 电路如下图所示 ①对于不同的 RC 值, 用 MATLAB 画出系统的幅 度响应曲线 H () ,观察结 果,分析右图的 RC 电路有 什么样的频率特性(高通、低通、带通或带阻)?系统的频率特性随 着 RC 值的改变,有何变化规律? 系统的微分方程为:RCy ’t y t x t 编程如下: A=input('R*C='); b=[1]; a=[A 1]; [H,w]=freqs(b,a); subplot(211); plot(w,abs(H)); set(gca,'ytick',[0 0.4 0.707 1]); 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*C=1 x(t) R C y(t) 波形如下: R*C=100 通过以上图像不难看出,上述 RC 电路为低通滤波电路,其截至 频率与 RC 的值成反比。 cos 3000t , t 00。2s ,②系统输入信号x (t) cos 100t 该信 号包含了一个低频分量和一个高频分量。试确定适当的 RC 值,滤除信号中的高频分量。并绘出滤波前后的时域信号波形及系统的频率响 应曲线。 程序如下: b=[1]; a=[0。005 1]; sys=tf(b,a); t=0:0.001:0。2; x=cos(100*t)+cos(3000*t); subplot(211); plot(t,x); subplot(212); lsim(sys,x,t); 波形如下: 由于此 RC 电路为一阶滤波器,所以性能不是十分优异,从滤波 后的时域、频域波形可以看出滤波效果一般,有失真 3。已知离散系统的系统框图如下所示 第一个 第二个 z1 y(n) z1 第 M 个 z1 Ä M 8 的系统的差分方程和系统函数; ①写出 ②利用 MATLAB 计算新系统的单位抽样响应; ③利用 MATLAB 绘出其系统零极点分布图、幅频和相频特性曲 线,并分析该系统具有怎样的频率特性。 ①系统的差分方程为: y nx nx n 1x n 8 系统函数为: H z 1z1 z2 z3 z4 z5 z6 z7 z8 ②程序如下 3。 b=[1 1 1 1 1 1 1 1 1]; a=[1]; subplot(211);impz(b,a) >> subplot(212);zplane(b,a); 〉〉 波形如下: b=[1 1 1 1 1 1 1 1 1]; a=[1]; [H,w]=freqz(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; 波形如下: 从幅频图可以看出该系统具有低通的频率特性。 H (e j) 如下图所示,输 入信号为 4. 已知一离散时间 LTI 系统的频率响应 x(n) cos 0.3n0。5 cos 0。8n.试根据式子 j(nk ) jn jeh(k) eH ek 分 析 j) H (e2 正 弦y(n) ,用 MATLAB 绘出系统输入与输 信 -π 号—0.5π 0 0.5π 出波形。 s in1 jn jn sin 0 0e0eny(n) ejn * h(n) y nsin 0 0 sin 0 n通过2j , n* h n1 j0n j0n eH e j0 e 2j jnH e 0 . π t y ncos 0。3nH e y(n) 的理论值为 由此计算出响应 程序如下: 4。 n=—5:5; 〉> subplot(211); 〉> x=cos(0.3*pi*n)+0。5*cos(0。8*pi*n); >> stem(n,x); subplot(212); y=2*cos(0.3*pi*n); stem(n,y); >〉 波形如下: j0。3。 观察实验结果,分析系统具有怎样的频率特性(高通、低通、带通 或带阻)?从输入与输出信号上怎样反映出系统的频率特性? 从理论分析及波形图可以看出,系统具有低通的频率特性。从输 出信号波形上可以看出,输出信号近似为余弦函数,滤去了输入信 号的高频成分。 四、实验中心得体会 本次实验中更加熟练的掌握了MATLAB的使用,但是有些信号系统的基本知 识点有些不熟练,所以在分析问题是较薄弱,不过通过本次试验加深了对原知识点的掌握。 实验5 连续时间系统的复频域分析 一、实验目的 1.掌握拉普拉斯变换及其反变换的定义,并掌握MATLAB实现方法。 2.学习和掌握连续时间系统系统函数的定义及复频域分析方法。 3.掌握系统零极点的定义,加深理解系统零极点分布与系统特性的关系。 二、实验原理与方法 1.拉普拉斯变换 连续时间信号x(t)的拉普拉斯变换定义为 X(s) 拉普拉斯反变换定义为 x(t)x(t)estdt...............(1) 1jstX(s)eds..............(2) j2j在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)为有理分式时,它可以表示为两个多项式之比: N(s)bMsMbM1sM1b0...........(3) X(s)D(s)aNsNaN1sN1a0式(3)可以用部分分式法展成一下形式 X(s)rr1r2...N...............(4) sp1sp2spN 通过查常用拉普拉斯变换对,可以由式(1-2)求得拉普拉斯逆变换。 利用 MATLAB 的residue 函数可以将 X (s)展成式(1—2)所示的部分分式展开式,该函数的调用格式为:[r,p,k] = residue(b,a) 其中b、a 为分子和分母多项式系数向量,r、p、k 分别为上述展开式中的部分分式系数、极点和直项多项式系数。 2.连续时间系统的系统函数 连续时间系统的系统函数是系统单位冲激响应的拉氏变换 H(s)h(t)estdt................(5) 此外,连续时间系统的系统函数还可以由系统输入和系统输出信号的拉氏变换之比得到 H(s)Y(s)/X(s)..................(6) 单位冲激响应h(t)反映了系统的固有性质,而H(s)从复频域反映了系统的固有性质。由式(6)描述的连续时间系统,其系统函数为s的有理函数 bMsMbM1sM1b0 H(s).............(7) aNsNaN1sN1a03。连续时间系统的零极点分析 系统的零点是指式(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)已知系统的冲激响应h(t)u(t)u(t2),输入信号x(t)u(t),是采用复频域的方法求解系统的响应,编写MATLAB程序实现。 使用卷积定理求解,先分别求h(t)和x(t)的拉氏变换H(s)和X(s)然后根据式(6)求出输出Y(s)H(s)X(s),最后对Y(s)进行拉普拉斯反变换即可得到系统的响应。 MATLAB程序如下: syms t; h=heaviside(t)-heaviside(t-2); x=heaviside(t); H=laplace(h); X=laplace(x); F=X.*H; y=ilaplace(F) y = t - heaviside(t — 2)*(t — 2) 故系统响应为 y(t)t(t2)u(t2) (2)已知因果连续时间系统的系统函数分别如下,试采用MATLAB画出其零极点分布图,求解系统的冲激响应h(t)和频率响应H(),并判断系统是否稳定。 1 32s2s2s1MATLAB程序及运行结果如下: b=[1]; a=[1 2 2 1]; sys=tf(b,a) [p,z]=pzmap(sys) sys = 1 —-———---———------———- s^3 + 2 s^2 + 2 s + 1 Continuous—time transfer function。 p = —1。0000 + 0。0000i -0。5000 + 0.8660i —0。5000 - 0。8660i z = Empty matrix: 0—by—1 〉> pzmap(sys); >〉 >〉 [r,p,k]=residue(b,a) r = 1。0000 + 0。0000i -0。5000 - 0。2887i -0。5000 + 0。2887i p = —1。0000 + 0.0000i —0。5000 + 0.8660i -0。5000 - 0.8660i k = [] [H w]=freqs(b,a); subplot(211); plot(w,abs(H)); xlabel(’\\omega(rad/s)'); 错误!H(s)ylabel('Magnitude'); title('|X(j\\omega)|'); grid on; subplot(212); plot(w,angle(H)); xlabel(’\\omega(rad/s)'); ylabel('Phase’); title('\\phi(\\omgea)’); 系统没有零点,极点为p=-1,—0.5±0。866i; 故系统冲激响应为: h(t)=(exp(—1)+(—0。5—0.2887*i).*exp(—0.5+0。866*i)+(-0.5+0。2887*i)。*exp(—0.5—0。866*i)).*heaviside(t) 由于该因果系统有极点的所都位于S 平面的左半平面,所以系统是稳定的。 s21错误!H(s)5 s2s43s33s23s2MATLAB程序及运行结果如下 b=[1 0 1]; a=[1 2 —3 3 3 2]; >> sys=tf(b,a) [p,z]=pzmap(sys) sys = s^2 + 1 ——-——----—---———————----—-———-—————-- s^5 + 2 s^4 — 3 s^3 + 3 s^2 + 3 s + 2 Continuous-time transfer function. 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 >〉 pzmap(sys); >> [r,p,k]=residue(b,a) r = 0。0769 + 0。0000i —0。0300 — 0。0881i -0。0300 + 0。0881i -0。0085 — 0.1436i -0。0085 + 0.1436i p = -3.1704 + 0。0000i 0.9669 + 0。9540i 0。9669 - 0。9540i -0。3817 + 0.4430i -0。3817 — 0.4430i k = [] >〉 [H w]=freqs(b,a); subplot(211); plot(w,abs(H)); xlabel(’\\omega(rad/s)’); ylabel(’Magnitude'); title('|X(j\\omega)|'); grid on; subplot(212); plot(w,angle(H)); xlabel('\\omega(rad/s)'); ylabel(’Phase’); title(’\\phi(\\omgea)'); 〉> 则有系统的零点为z=±i,极点为p=—3。1704,0.9669±0。9540i,-0。3817±0。4430i, 故系统冲激响应为: h(t)=(0.0769.*exp(-3。1704。*t)+(—0.03-0.0881。*i).*exp((0.9669+0.954.*i).t)+(-0.03+ 0.0881.*i).*exp((0。9669 — 0.9540。*i)。*t)+(—0.0085 - 0.1436.*i).*exp((-0.3817 + 0。4430.*i).*t)+(-0。0085+0.1436i)。*exp((-0。3817—0.4430.*i).t))。*heaviside(t); 由于该因果系统的所有极点不全位于S 平面的左半平面,所以系统是不稳定的. (3)已知连续时间系统函数的极点位置分别如下所示(设系统无零点),试用MATLAB绘制6中不同情况下,系统函数的零极点分布图,并绘制相应冲激响应的时域波形,观察并分析系统函数极点位置对冲激响应时域特性的影响。 ○,1p=0 MATLAB程序及运行结果如下: b=[1]; a=[1 0]; sys=tf(b,a); pzmap(sys); 〉〉 [r,p,k]=residue(b,a) r =1 p =0 k =1 故 h(t)=1。*heaviside(t); h=1.*heaviside(t); 错误!p=-2 MATLAB程序及运行结果如下: b=[1]; a=[1 2]; sys=tf(b,a); pzmap(sys); [r,p,k]=residue(b,a) r = 1 p = -2 k = [] 〉〉 h=exp(-2*t).*heaviside(t); ezplot(h); >〉 故 h(t)=exp(—2*t)。*heaviside(t); h=exp(—2*t).*heaviside(t); 错误!p=2 MATLAB程序及运行结果如下: b=[1]; a=[1 -2]; sys=tf(b,a); pzmap(sys); [r,p,k]=residue(b,a) r = 1 p = 2 k = [] >> h=exp(2*t)。*heaviside(t); ezplot(h); 〉> 故h(t)=exp(2*t).*heaviside(t); h=exp(2*t).*heaviside(t); ○,4p12j,p22j MATLAB程序及运行结果如下: b=[1]; a=[1 0 4]; sys=tf(b,a); pzmap(sys); [r,p,k]=residue(b,a) r = 0。0000 - 0.2500i 0.0000 + 0。2500i p = 0。0000 + 2.0000i 0.0000 - 2.0000i k = [] 〉〉 h=((—0.25.*i)。*exp(2.*i。*t)+(0。25.*i)。*exp(-2。*i。*t))。*heaviside(t); >〉 ezplot(h); >> 故h(t)=((-0。25.*i).*exp(2.*i。*t)+(0.25.*i)。*exp(—2。*i。*t))。*heaviside(t); h=((-0.25。*i).*exp(2.*i.*t)+(0.25.*i).*exp(—2.*i。*t)).*heaviside(t); 错误!p1 14j,p214j MATLAB程序及运行结果如下: b=[1]; a=[1 2 17]; sys=tf(b,a); pzmap(sys); [r,p,k]=residue(b,a) r = 0.0000 — 0。1250i 0.0000 + 0。1250i p = -1。0000 + 4。0000i -1。0000 — 4.0000i k = [] 〉> h=(-0.125.*i。*exp((—1+4.*i).*t)+0。125.*i。*exp((—1-4。*i)。*t))。*heaviside(t); 〉> ezplot(h); >> 故h(t)=(—0。125.*i.*exp((—1+4。*i).*t)+0。125.*i。*exp((-1-4。*i).*t))。*heaviside(t); h=(—0.125。*i.*exp((-1+4。*i)。*t)+0。125.*i.*exp((-1—4.*i).*t)).*heaviside(t); 错误!p114j,p214j MATLAB程序及运行结果如下: b=[1]; a=[1 —2 17]; sys=tf(b,a); pzmap(sys); [r,p,k]=residue(b,a) r = 0.0000 — 0。1250i 0.0000 + 0.1250i p = 1。0000 + 4.0000i 1。0000 — 4。0000i k = [] >> h=(—0。125。*i.*exp((1+4。*i)。*t)+0.125.*i.*exp((1—4.*i).*t))。*heaviside(t); ezplot(h); >> 故h(t)=(—0。125。*i。*exp((1+4。*i).*t)+0。125.*i。*exp((1—4。*i)。*t)).*heaviside(t); h=(-0。125。*i。*exp((1+4。*i).*t)+0。125。*i.*exp((1—4.*i).*t))。*heaviside(t); 由以上六例,可以总结出,在无零点的情况下: 当极点唯一且在原点时,h(t)为常数; 当极点唯一且是负实数时,h(t)为递减的指数函数; 当极点唯一且是正实数时,h(t)为递增的指数函数; 当H(s)有两个互为共轭的极点时,h(t)有一sint 因子; 当H(s)有两个互为共轭的极点且他们位于右半平面时,h(t)还有一et 因子; 当H(s)有两个互为共轭的极点且他们位于左半平面时,h(t)还有一et因子; (4)已知3个连续时间系统函数 1s2s17s8(2)H(s)2ss17s8 (3)H(s)2 ss17(1)H(s)上述三个系统具有相同的极点,只是零点不同,试用MATLAB分别绘制系统的零极点分布图及相应冲激响应的时域波形,观察并分析系统函数零点位置对冲激响应时域特性的影响。 1MATLAB程序及运行结果如下: ○ b=[1]; a=[1 2 17]; sys=tf(b,a); pzmap(sys); [r,p,k]=residue(b,a) r = 0。0000 - 0。1250i 0。0000 + 0.1250i p = —1.0000 + 4.0000i —1。0000 - 4。0000i k = [] 〉〉 h=(—0。125.*i.*exp((—1+4。*i).*t)+0.125。*i。*exp((-1-4.*i).*t))。*heaviside(t); >> ezplot(h); >〉 错误!MATLAB程序及运行结果如下: b=[1 8]; a=[1 2 17]; sys=tf(b,a); pzmap(sys); [r,p,k]=residue(b,a) r = 0.5000 - 0.8750i 0。5000 + 0.8750i p = -1.0000 + 4.0000i -1。0000 - 4.0000i k = [] 〉> h(t)=((0.5-0.875。*i)。*exp((—1+4。*i)。*t)+(0.5+0.875.*i)。*exp((—1—4。*i)。*t))。*heaviside(t); >> ezplot(h); 〉> 错误!MATLAB程序及运行结果如下 b=[1 -8]; a=[1 2 17]; sys=tf(b,a); pzmap(sys); [r,p,k]=residue(b,a) r = 0。5000 + 1。1250i 0。5000 — 1。1250i p = -1.0000 + 4.0000i -1.0000 - 4.0000i k = [] >> h=((0。5+1.125。*i)。*exp((—1+4。*i)。*t)+(0。5-1.125.*i)。*exp((—1—4。*i).*t)).*heaviside(t); ezplot(h); >> 由以上三例可以看出,当极点不变时,零点分布只影响系统时域响应的幅度和相位,对时域响应模式没有影响。即不会改变是衰减振荡还是增长振荡。 四、实验心得体会 通过此次实验我掌握了用MTALAB实现拉普拉斯变换和拉普拉斯反变换的方法,掌握了复频域分析方法,加深理解系统零极点分布与系统特性的关系。更加熟练的掌握MATLAB的某些功能。 实验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=iztrans(Z)求符号表达式Z的z反变换。 2。离散时间系统的系统函数离散时间系统的系统函数H(z)定义为单位抽样响应h(n)的z变换 此外,连续时间系统的系统函数还可以由系统输入和输出信号的z变换之比得到 由上式描述的离散时间系统的系统函数可以表示为 3、离散时间系统的零极点分析离散时间系统的零点和极点分别指使系统函数分子多项式和分母多项式为零的点,在MATLAB中可以通过函数roots来求系统函数分子多项式和分母多项式的根,从而得到系统的零极点。 此外,还可以利用MATLAB的zplane还是来求解和绘制离散系统的零极点分布图,zplane函数的调用格式为: zplane(b,a) b、a为系统函数的分子、系统函数的几点分母多项式的系数向量(行向量)。 Zplane(z,p) z、p为零极点序列(列向量)。 系统函数是描述系统的重要物理量,研究系统函数的零极点分布不仅可以了解系统单位抽样响应的变化,还可以了解系统的频率特性响应以及判断系统的稳定性: (1)系统函数的极点位置决定了系统单位抽样响应h(n)的波形,系统函数零点位置只影响冲激响应的幅度和相位,不影响波形。 (2)系统的频率响应取决于系统函数的零极点,根据系统的零极点分布情况,可以通过向量法分析系统的频率响应。 (3)因果的离散时间系统稳定的充要条件是H(z)的全部几点都位于单位圆内。 三.实验内容 1.已知因果离散时间系统的系统函数分别为: (1). (2). 试采用MATLAB画出其零极点分布图,求解系统的冲激响应和频率响应,并判断系统是否稳定 (1)程序如下: b=[0 1 2 1]; a=[1 —0.5 -0。005 0.3]; [H,w]=freqz(b,a); subplot(211) impz(b,a); subplot(212) zplane(b,a); >〉冲激响应及零极点分布图 Impulse Response3 Amplitude210-105101520n (samples)25301Imaginary Part0.50-0.5-1-3-2-10Real Part1232 b=[0 1 2 1]; a=[1 —0.5 —0.005 0。3]; subplot(211); plot(w/pi,abs(H)); xlabel(’\\omega(\\pi)’); ylabel('Magnitude’); grid on; subplot(212); plot(w/pi,angle(H)/pi); xlabel(’\\omega(\\pi)'); ylabel('Phase(\\pi)’); grid on; 8642000.10.20.30.40.50.60.70.80.91Magnitude()10.5Phase()0-0.5-100.10.20.30.40.5()0.60.70.80.91 (2) b=[1 -1 0 2]; a=[3 3 —1 3 -1]; [H,w]=freqz(b,a); impz(b,a); subplot(211) zplane(b,a); subplot(212); 冲激响应及零极点分布图 1Imaginary Part0.50-0.5-1-3x 105-20Real PartImpulse Response-11231 Amplitude0.50-0.5-1051015n (samples)2025 b=[1 -1 0 2]; a=[3 3 -1 3 -1]; zplane(b,a); impz(b,a) [H,w]=freqz(b,a); subplot(211); plot(w,abs(H)); xlabel(’\\omega(rad/s)'); ylabel('Magnitude'); title(’|H(\\omega)|’); subplot(212); plot(w,angle(H)); xlabel('\\omega(rad/s)’); ylabel(’Phase'); title('\\phi(\\omega)'); 2。已知离散时间系统系统函数的零点z和极点p分别为: (1)z=0 , p=0。25 (2)z=0 , p=1 (3)z=0 , p=-1。25 (4)z=0 , (5)z=0 , (6)z=0, 试采用MATLAB画出上述6种不同情况下,系统函数的零极点分布图,并绘制相应单位抽样相应的时域波形,观察分析系统函数极点位置对单位抽样响应时域特性的影响和规律。 (1) b=[1 0]; a=[1 —0。25]; zplane(b,a); impz(b,a) (2) b=[1 0]; a=[1 —1]; zplane(b,a); impz(b,a); (3) b=[1 0]; a=[1 1。25]; zplane(b,a); impz(b,a); (4) b=[1 0]; a=[1 —1。6。*(3)。^(0.5) 0。64] zplane(b,a) impz(b,a) (5) b=[1 0]; a=[1 -2。*cos(pi/8) 1] zplane(b,a); impz(b,a); (6) b=[1 0]; a=[1 0.6.*2.^(0。5) 1.44] zplane(b,a); impz(b,a); 3.已知离散时间系统系统的系统函数分别为 (1) (2) 上述两个系统具有相同的极点,只是零点不同,试用MATLAB分别绘制上述两个系统的零极点分布图及相应单位抽样响应的时域波形,观察分析系统函数零点位置对单位抽样响应时域特性的影响。 (1) b=[1 2 0]; a=[1 —0。8*exp(—j*pi/6)—0。8*exp(j*pi/6) 0.64]; subplot(211); zplane(b,a); grid on; subplot(212); impz(b,a); 1Imaginary Part0.50-0.5-1-3-2-10Real PartImpulse Response126 Amplitude420-20510152025n (samples)303540 (2) b=[1 -2 0]; a=[1 —0。8*exp(—j*pi/6)—0.8*exp(j*pi/6) 0.64]; subplot(211); zplane(b,a); grid on; subplot(212); impz(b,a); 1Imaginary Part0.50-0.5-1-2-101Real PartImpulse Response231 Amplitude0-1-20510152025n (samples)303540 四、实验感悟 通过此次实验我掌握了用MTALAB实现拉普拉斯变换和拉普拉斯反变换的方法,学习了连续时间系统的复频域分析方法,信号的Laplace变换十分基本而重要,这次的学习使我对Laplace变换有了更深的理解。 因篇幅问题不能全部显示,请点此查看更多更全内容