北理工信号与系统实验报告_第1页
北理工信号与系统实验报告_第2页
北理工信号与系统实验报告_第3页
北理工信号与系统实验报告_第4页
北理工信号与系统实验报告_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验1 信号的时域描述与运算2实验2 LTI系统的时域分析18实验3 信号的频域分析32实验4 LTI系统的频域分析52实验5 连续时间系统的复频域分析64实验6 离散时间系统的z域分析79实验1 信号的时域描述与运算一、实验目的1.掌握信号的MATLAB表示及其可视化方法;2.掌握信号基本时域运算的MATLAB实现方法;3.利用MATLAB分析常用信号,加深对信号时域特性的理解;二、实验原理与方法1.连续时间信号的MATLAB表示连续时间信号指的是在连续时间范围内有定义的信号,即除了若干个不连续点外,在任何时刻信号都有定义。在MATLAB中连续时间信号可以用两种方法来表示,即向量表示法和符号

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

3、 x=sin(t); ezplot(X);利用ezplot(x)命令可以绘制上述信号的时域波形。常用的信号产生函数:函数名功能函数名功能heaviside单位阶跃函数rectpuls门函数sin正弦函数tripuls三角脉冲函数cos余弦函数square周期方波sincsinc函数sawtooth周期锯齿波或三角波exp指数函数2.连续时间信号的时域运算对连续时间信号的运算包括两信号相加、相乘、微分、积分,以及位移、反转、尺度变换(尺度伸缩)等。(1) 相加和相乘信号相加和相乘指两信号对应时刻的值相加和相乘,对于两个采用向量表示的可以直接使用算术运算的运算符“+”和“*”来计算,此时要求表示两

4、信号的向量时间范围和采样间隔相同。采用符号对象表示的两个信号,可以直接根据符号对象的运算规则运算。(2) 微分和积分对于向量表示法表示的连续时间信号,可以通过数值计算的方法计算信号的微分和积分。这里微分使用差分来近似求取的,由时间向量和采样值向量表示的连续时间信号,其微分可以通过下式求得其中表示采样间隔。MATLAB中用diff函数来计算差分。连续时间信号的定积分可以由MATLAB的qud函数实现,调用格式为:quad (function_name,a,b)其中,function_name为被积函数名,a、b为积分区间。对于符号对象表示的连续时间信号,MATLAB提供了diff函数和quad函

5、数分别用于求微分和积分。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.离散时间信号的时域运算离散时间信号的相加相乘是将两个信

6、号对应的时间点上的值相加或相乘,可以直接使用算术运算的运算符“+”和“*”来计算。离散时间信号的位移,则可看作是将表示时间的向量平移,而表示对应时间点上的值的向量不变。离散时间信号的反转,则可以看作是将表示时间的向量和表示对应时间点上的值的向量以零点为基准点,一纵轴为对称轴反折,向量的反折可以利用MATLAB的fliplr函数实现。三、实验内容1.利用MATLAB绘制下列连续时间信号波形:(1) 程序代码:%one_1_1.mt=0:0.01:10 ;x=1-exp(-0.5*t) ;plot(t,x);xlabel(t(s);title(x(t);grid on;波形图:(2) 程序代码:%

7、one_1_2.mt=0:0.01:2;x=cos(pi*t);plot(t,x);xlabel(t(s);title(x(t);grid on;波形图:(3) 程序代码:%one_1_3.mt=-2:0.01:2;x=0.5*abs(t).*cos(pi*t);plot(t,x);xlabel(t(s);title(x(t);grid on;波形图:(4) 程序代码:%one_1_4.mt=0:0.01:3;x=exp(-t).*sin(2*pi*t);plot(t,x);xlabel(t(s);title(x(t);grid on;波形图:2.利用MATLAB绘制下列离散时间信号波形:(1

8、) 程序代码:%one_2_1.mn=0:7;x=0 0 0 1 1 1 1 1;stem(n,x,filled);xlabel(t(s);title(x(t);波形图:(2) 程序代码:%one_2_2.mn=-2:5;x=0 0 1 -0.5 0.25 -0.125 0.0625 -0.03125;stem(n,x,filled);xlabel(t(s);title(x(t);波形图:(3) 程序代码:%one_2_3.mn=-2:7;x=0 0 0 1 2 3 4 0 0 0;stem(n,x,filled);xlabel(t(s);title(x(t);波形图:(4) 程序代码:%on

9、e_2_4.mn=0:7;x=sin(0.5*pi*n);stem(n,x,filled);xlabel(t(s);title(x(t);波形图:3.利用MATLAB生成并绘制连续周期矩形波信号,要求周期为2,峰值为3,显示三个周期的波形。程序代码:%one_3.m%t=0:0.01:10;t=linspace(0,6*pi);x=3*square(t);plot(t/pi,x);xlabel(t(s);title(x(t);grid on;波形图:4.已知信号,及信号,用MATLAB绘出下列信号的波形。(1) (2) (3) (4) 程序代码:%one_4.mt=-4:0.01:4;x1=(

10、4-t).*(heaviside(t)-heaviside(t-4);x2=sin(2*pi*t); subplot(221); % x3(t)=x1(t)+x2(t)x3=x1+x2;plot(t,x3);xlabel(t(s);title(x_3(t)=x_1(t)+x_2(t);grid on; subplot(222); % x4(t)=x1(t)*x2(t)x4=x1.*x2;plot(t,x4);xlabel(t(s);title(x_4(t)=x_1(t)*x_2(t);grid on; subplot(223); % x5(t)=x1(-t)+x1(t)t1=-fliplr(t

11、);x11=fliplr(x1); % x11(t)=x1(-t)x5=x11+x1;plot(t1,x5);xlabel(t(s);title(x_5(t)=x_1(-t)*x_1(t);grid on; subplot(224); % x6(t)=x2(t)+x3(t-1)t2=1-t;x31=fliplr(x3); % x31(t)=x3(t-1)x6=x31.*x2;plot(t2,x6);xlabel(t(s);title(x_6(t)=x_2(t)*x_3(t-1);grid on;波形图:5.已知离散时间信号,用MATLAB绘出的波形。程序代码:%one_5.mn=-3:3;x=

12、0 1 2 3 3 3 3;subplot(221); % x(t)stem(n,x,filled);xlabel(n);title(x(n);grid on;subplot(222); % x2(t)=x(-n)n2=-fliplr(n);x2=fliplr(x);stem(n2,x2,filled);xlabel(n);title(x(-n);grid on;subplot(223); % x3(t)=x(n+2)stem(n-2,x,filled);xlabel(n);title(x(n+2);grid on;subplot(224); % x4(t)=x(n-2)stem(n+2,x,

13、filled);xlabel(n);title(x(n-2);grid on;波形图:6.用MATLAB编程绘制下列信号的时域波形,观察信号是否为周期信号?若是周期信号,周期是多少?若不是周期信号,请说明原因。(1) 程序代码:%one_6_1.msyms t;x=1+cos(pi*t/4-pi/3)+2*cos(pi*t/2-pi/4)+cos(2*pi*t);ezplot(x,-10,10);xlabel(t(s);title(x(t);grid on;波形图:所以原信号是周期信号,周期为8。(2) 程序代码:%one_6_2.msyms t;x=sin(t)+2*sin(pi*t);ez

14、plot(x,-20,20);xlabel(t(s);title(x(t);grid on;波形图:所以原信号不是周期信号。原函数由一个周期为2和一个周期为2的函数组成,2和2没有最小公倍数,所以没有周期。(3) 程序代码:%one_6_3.mn=-10:10;x=2+3*sin(2*n*pi/3-pi/8);stem(n,x);xlabel(n);title(x(n);grid on;波形图:所以原信号是周期函数,周期为3。(4) 程序代码:%one_6_3.mn=-15:15;x=cos(n*pi/6)+sin(n*pi/3)+cos(n*pi/2);stem(n,x);xlabel(n)

15、;title(x(n);grid on;波形图:所以原信号是周期信号,周期为12。四收获与体会此次实验让我对于MATLAB这个软件有了初步的了解,并且实实在在的体会到了MATLAB强大的功能,对于它在信号与系统方面的应用,对于抽象的信号有了更加直接的、直观的了解,总之,这个课程让我收获了很多。实验2 LTI系统的时域分析一、实验目的1.掌握利用MATLAB对系统进行时域分析的方法;2.掌握连续时间系统零状态响应、冲激响应和阶跃响应的求解方法;3.掌握求解离散时间系统响应、单位抽样响应的方法;4.加深对卷积积分和卷积和的理解。掌握利用计算机进行卷积积分和卷积和计算的方法。二、实验原理与方法1.连

16、续时间系统时域分析的MATLAB实现(1) 连续时间系统的MATLAB表示设LTI因果系统的微分方程一般式为:则在MATLAB里,可以建立系统模型如下:b=bM,b(M-1),b0;a=aN,a(N-1),a0;sys=tf(b,a);其中,tf是用于创建系统模型的函数,向量a与b的元素是以微分方程求导的降次幂次序来排序的,如果有缺项,应用0补齐。(2) 连续时间系统的零状态响应零状态响应是指系统的初始状态为零,仅由输入信号所引起的响应。MATLAB提供了一个用于求解零状态响应的函数lism,lism(sys,x,t)绘出输入信号及响应的波形,x和t表示输入信号数值向量及其时间向量。 y= l

17、ism(sys,x,t)这种调用格式不会出波形,而是返回响应的数值向量。(3) 连续时间系统的冲激响应与阶跃响应MATLAB提供函数impulse来求指定时间范围内,由模型sys描述的连续时间系统的单位冲激响应。impulse函数的基本调用格式如下:impulse(sys)在默认时间范围内绘出系统冲激响应的时域波形。impulse(sys,T)绘出系统在0-T范围内冲激响应的时域波形。impulse(sys,ts:tp:te)绘出系统在ts-te范围内,以tp为时间间隔取样的冲激响应波形。y,t=impulse()该调用格式不会出冲激响应波形,而是返回冲激响应的数值向量及其对应的时间向量。函数

18、step用于求解单位阶跃响应,函数step同样也有如下几种调用格式:step(sys)step(sys,T)step(sys,ts:tp:te) y,t= step()各种调用格式参数所代表的意思可参考上述impulse函数。2.离散时间系统时域分析的MATLAB实现(1) 离散时间系统的MATLAB表示LTI离散系统通常可以由系统差分方程描述,设描述系统的差分方程为:则在MATLAB里,我们可以用如下两个向量来表示这个系统:b=b0,b1,bN;a=a0,a1,aN;(2) 离散时间系统对任意输入的响应MATLAB提供了求LIT离散系统响应的专用函数filter,该函数用于求取由差分方程所描

19、述的离散时间系统在指定时间范围内对输入序列所产生的响应,该函数基本调用格式为:y=filter(b,a,x)其中,x为输入序列,y为输出序列,输出系列y对应的时间区间相同。(3) 离散时间系统的单位抽样响应MATLAB提供了函数impz来求指定时间范围内,由向量b和a描述的离散时间系统的单位抽样响应,具体调用格式如下:impz(b,a)在默认时间范围内绘出单位抽样响应的时域波形。impz(b,a,N)绘出系统在0-N范围系统单位抽样响应的时域波形。impz(b,a,ns:te)绘出系统在ns-te范围内的单位抽样响应波形。y,t=impz()该调用格式不会出单位抽样响应波形,而是返回单位抽样响

20、应的数值向量及其对应的时间向量。3.卷积和与卷积积分(1) 离散时间序列的卷积和卷积和是离散系统时域分析的基本方法之一,离散时间序列x1(n)和x2(n)的卷积和x(n)定义如下:对已离散LTI系统,设其输入信号为x(n),单位抽样响应为h(n),则其零状态响应y(n)为:y(n)=x(n)*h(n)即离散LTI系统的零状态响应可以表示成输入信号x(n)和单位抽样响应h(n)的卷积,因此,离散时间序列的卷积和计算对我们近离散吸引时域分析具有重要的意义。MATLAB的conv函数可以用来求两个离散序列的卷积和,调用格式为x=conv(x1,x2)。例如:x1=ones(1,3);x2=1,2,3

21、,4;x=conv(x1,x2);x=1 3 6 9 7 4然而,我们不难发现,此例中序列x1、x2、x都没有时间信息,而实际上我们还需根据序列x1、x2对应时间序列确定卷积结果x对应的时间序列。设x1、x2为两个在有限时间区间内非零的离散时间序列,即序列x1在区间n1-n2内非零,序列x2在区间m1-m2内非零,则序列x1的时域宽度为L1=n2-n1+1,序列x2的时域宽度为L2=m2-m1+1。由卷积和的定义可知,卷积和序列x的时域宽度为L=L1+L2-1,且只在区间(n1+m1)-(n1+m1)+(L1+L2-2)非零。(2) 连续时间信号的卷积积分卷积积分是连续系统时域分析的有效方法和

22、工具之一,连续时间信号x1(t)和x2(t)的卷积积分x(t)定义如下:对已连续LTI系统,设其输入信号为x(t),单位冲激响应为h(t),其零状态响应为y(t),则有y(t)=x(t)*h(t)即连续LTI系统的零状态响应可以表示成输入信号和单位冲激响应的卷积。因此连续时间信号卷积积分对连续系统的时域分析具有非常重要的意义。利用MATLAB可以采用数值计算的方法近似计算卷积积分。卷积积分可用求和运算来实现现在考虑只求t=n时x(t)的值x(n),则由上式可得当足够小,x(n)就是x(t)的数值近似。我们可以利用计算离散序列卷积和的conv函数来计算卷积积分,具体步骤如下:将连续时间信号x1(

23、t)和x2(t)以时间间隔进行取样,得到离散序列x1(n)和x2(n);构造离散序列x1(t)和x2(t)对应的时间向量t1和t2 ;调用函数conv计算卷积积分在t= n时的近似采样值x(n);构造离散序列x(n)对应的时间向量n。根据上述过程可以自定义一个用于计算卷积积分的通用函数sconv。三、实验内容1.已知描述模拟低通、高通、带通和带阻滤波器的微分方程如下,试采用MATLAB绘出各系统的单位冲激响应和单位阶跃相应波形。(1) 程序代码:%two_1_1.mb=1;a=1 20.5 1;sys=tf(b,a);subplot(121);impulse(sys);subplot(122)

24、;step(sys);波形图:(2) 程序代码:%two_1_2.mb=1 0 0;a=1 20.5 1;sys=tf(b,a);subplot(121);impulse(sys);subplot(122);step(sys);grid on;波形图:(3) 程序代码:%two_1_3.mb=1 0;a=1 1 1;sys=tf(b,a);subplot(121);impulse(sys);subplot(122);step(sys);grid on;波形图:(4) 程序代码:%two_1_4.mb=1 0 1;a=1 1 1;sys=tf(b,a);subplot(121);impulse(

25、sys);grid on;subplot(122);step(sys);grid on;波形图:2.已知某系统可以由如下微分方程描述(1) 利用MATLAB绘出该系统冲激响应和阶跃响应的时域波形。(2) 根据冲激响应的时域波形分析系统的稳定性。(3) 如果系统的输入为,求系统的零状态响应。(1) 程序代码:%two_2_1.mb=1;a=1 1 6;sys=tf(b,a);subplot(121);impulse(sys);grid on;subplot(122);step(sys);grid on;波形图:(2) 观察上面的波形,t趋于无穷时,y(t)均趋于0,所以该系统是稳定的。(3) 程

26、序代码:%two_2_3.mb=1;a=1 1 6;sys=tf(b,a);t=0:0.01:10;x=exp(-1*t);lsim(sys,x,t);grid on;波形图:3.已知描述离散系统的微分方程如下,用MATLAB绘出各系统的单位抽样响应,根据单位抽样响应的时域波形分析系统的稳定性。(1) 程序代码:%2_3_1.mb=1;a=1 3 2;impz(b,a,0:12);grid on;波形图:.根据单位抽样响应时域波形可知,该系统不稳定。(2) 程序代码:%two_3_2.mb=1 -3;a=1 -0.5 0.8;impz(b,a,0:40);grid on;波形图:根据单位抽样响

27、应时域波形可知,该系统稳定。4.已知系统可以由如下差分方程描述:试采用MATLAB绘出该系统的单位抽样响应波形和单位节约响应波形。程序代码:%two_4_1.ma=1 1 1/4;b=1;subplot(211);impz(b,a);grid on;subplot(212);t=0:1:20;x=heaviside(t);y=filter(b,a,x);stem(t,y,filled);grid on;波形图:5.采用MATLAB计算如下两个序列的卷积,并绘出图形。程序代码:%two_5_1.mx1=1 2 1 1;n1=-1:2;x2=1 1 1 1 1;n2=-2:2;x3=conv(x1

28、,x2);stem(x3,filled);xlabel(n);title(x1*x2);grid on;波形图:6. 已知某LTI离散系统,其单位抽样响应,系统的输入为,算当n=0,1,2,40时系统的零状态响应y(n),绘出x(n),h(n)和y(n)时域波形。程序代码:%two_6_1.mn=0:40;x=sin(0.2.*n);subplot(311);stem(n,x,filled);h=sin(0.5.*n);grid on;subplot(312);stem(n,h,filled);y=conv(x,h);grid on;subplot(313);stem(y,filled);gr

29、id on;波形图:7.已知两个连续时间信号,求两个信号的卷积程序代码;%two_7.mdt=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);axis(-3 3 0 4.5);波形图:四收获与体会在此次实验中我初步掌握了连续时间系统零状态响应、冲激响应和阶跃响应的求解方法,加深了对卷积积分和卷积和的理解,掌握了利用计算机进行卷积积分和卷积和计算的方法,对于它在信号与系统方

30、面的应用,对于LTI系统的时域分析有了更加直接的、直观的了解。实验3 信号的频域分析一、实验目的1.深入理解信号频谱的概念,掌握信号频谱的概念,掌握信号的频域分析方法;2.观察典型周期信和非周期信号的频谱,掌握其频谱特性。二、实验原理与方法1.连续周期信号的频谱分析如果周期信号满足狄里赫利条件,就可以展开为傅里叶级数的形式,即式中,表示基波周期,为基波频率。(1)式和(2)式定义为周期信号复制数形式的傅里叶级数,系数称为x(t)的傅里叶系数。周期信号的傅里叶级数还可以由三角函数的线性组合来表示,即式中同频率的正弦项和余弦项可以合并,从而得到三角函数形式的傅里叶级数,即可见,任何满足狄里赫利条件

31、的周期信号都可以表示成一组谐波关系的复制数函数或三角函数的叠加。一般来说周期信号表示为傅里叶级数时需要无限多项才能完全逼近原信号,但实际应用中经常采用有限项级数来代替,所选项越多就越逼近原信号。2.连续非周期信号的频谱分析对于非周期连续时间信号,信号的傅里叶变换和傅里叶逆变换定义为(7)式和(8)式把信号的时域特性和频域特性联系起来,确立了非周期信号x(t)和频谱x(w)之间的关系。采用MATLAB可以方便地求取非周期连续信号的傅里叶变换,这里采用了常用的几种方法:(1) 符号法MATLAB的符号数学工具箱提供了直接求解傅里叶变换和反变换的函数,fourier和ifourier函数,基本调用格

32、式为X=fourier(x)x=ifourier(X)默认的时域变量为t,频域变量为w。例如求x(t)=e-2|t|的傅里叶变换,MATLAB代码和运行结果如下:syms tx=exp(-2*abs(t);X=fourier(x)X=4/(w2+4)因此,傅里叶变换的结果为X也可以利用int函数直接根据求傅里叶变换。(2) 数值积分法除了采用符号运算的方法外,我们还可以利用MATLAB的quad函数,采用数值积分的方法来进行连续信号的频谱分析,quad函数是一个用来计算数值积分的函数。利用quad函数可以计算非周期连续时间信号的频谱。Quad函数的一般调用格式为:y=quad(fun,a,b)

33、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(t)为时限信号,且足够小,式(9)可以演变为:而式(10)中求和部分又可以

34、表示成一个行向量和一个列向量的乘积:式(11)可以很方便地利用MATLAB实现。3.离散周期时间信号的频谱分析基波周期为N的周期序列x(n)可以用N个成谐波关系的复指数序列的加权和表示,即这里k=表示求和仅需包括一个周期内的N项,周期序列在一个周期内的求和与起点无关。将周期序列表示成式(12)的形式,成为离散傅里叶级数,而系数则称为离散傅里叶系数。离散傅里叶系数可以由式(13)确定:傅里叶系数也称为x(n)的频谱系数,而且可以证明是以N为周期的离散频率序列。这说明了周期的离散时间函数对应于频域为周期的离散频率。这里,我们用周期N与傅里叶系数的乘积来表示周期离散时间信号的频谱,即x(k)可以利用

35、MATLAB提供的函数fft用来计算,调用格式为该函数返回x(k)一个周期内的值,其中x表示x(n)一个周期内的样本值。4.离散非周期时间信号的频率分析非周期序列x(n)可以表示成一组复指数序列的连续和其中式(16)称为x(n)的离散时间傅里叶变换,式(15)和式(16)确立了非周期离散时间信号x(n)及其离散时间傅里叶变换之间的关系。是连续频率的函数,称为频谱函数,且是周期的连续频率函数,其周期为2。可见,非周期离散时间函数对应于频域中是一个连续的周期的频率函数。对于有限长的时间序列,式(16)可以表示为式(17)可以方便地利用MATLAB实现。三、实验内容1.已知周期矩形脉冲信号。1.1由

36、波形可知表达式:。由此得到:。故的傅里叶级数为:1.2利用MATLAB绘出由前N次谐波合成的信号波形,观察随着N的变化合成信号波形的变化规律;程序代码:%three_1_1.mN_start = input(Please input start of the number N:n);N_end = input(Please input end of the number N:n);step = input(Please input step of the number N:n);N = N_start:step:N_end;A = 1;T = 2*pi;ta = T/2;syms x t;fo

37、r i = 1:(length(N)x = A*ta/T;for k = 1:N(i)x = x + 2/(k*pi)*sin(k*pi*ta/T)*cos(2*pi*k*t/T); endif mod(i,4) = 1figure; flag = 1;endsubplot(2,2,flag);ezplot(x);str_title = N = ,sprintf(%d,N(i);title(str_title);grid on;flag = flag + 1;end波形图:1.3用MATLAB绘出周期矩形脉冲信号的频谱,观察参数T和变化时对频谱波形的影响。由式(1)和式(2)计算得程序代码:%

38、three_1_2.mN=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(w/w0);title(Magnitude);subplot(212);stem(n,angle(cn),filled);xlabel(w/w0);title(Phase);波

39、形图:输入N=18,A=3,T=3,c=1:输入N=18,A=3,T=3,c=0.1:输入N=18,A=3,T=3,c=0.5:输入N=18,A=3,T=5,c=1:由程序执行结果可知,频谱波形与的值有关,对于不同的T和,当比值相同时频谱波形图相同;当比值不同时,比值越小,频谱包络形状趋于收敛,过零点越少,谱线越密。思考题:1) 将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成;当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点;当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%,这种现象称为吉伯斯现象。原因:当一个信号通过某一系统时

40、,如果这个信号不是连续时间函数,则由于一般物理系统对信号高频分量都有衰减作用,从而产生吉伯斯现象。2) 周期信号的频谱是具有周期性的一系列的脉冲信号,谱线间隔为,谱线的长度随着谐波次数的增高趋于收敛。3) 有效频宽与信号的时域宽度成反比。4) 比值越小,频谱包络形状趋于收敛,过零点越少,谱线越密。2.已知矩形脉冲信号:2.1由的波形可知:。程序代码:%three_2_1.msyms t;A=input(A=);c=input(c=);x=A*heaviside(t+c/2)-heaviside(t-c/2); %x(t)X=fourier(x) collect(X)输入A=1,=1得到:ans

41、 =(2*sin(w/2)/w=Asinc(/2)所以的傅里叶变换为:2.2利用MATLAB绘出矩形脉冲信号的频谱,观察矩形脉冲宽度变化时对频谱波形的影响:程序代码:%three_2_2.msyms t wm = input(=);X = int(exp(-j*w*t),t,-m/2,m/2);ezplot(X,-6*pi,6*pi);xlabel(w);ylabel(Magnitude);title(X(w) = num2str(m);波形图:=1时:=4时:=6时:=10时:由以上4个频谱波形图可知,当矩形脉冲宽度增大时,信号占有频带减小,即信号的占有频带与脉冲宽度成反比。2.3让矩形脉冲

42、的面积始终等于1,改变矩形脉冲宽度,观察矩形脉冲信号时域波形和频谱随矩形脉冲宽度的变化趋势:程序代码:%three_2_3.msyms wB=input(B=);A=1;x=(2*A/w)*sin(w*(B/2);ezplot(abs(x),-6*pi,6*pi);grid on;xlabel(omega);ylabel(Magnitude);title(|x(omega)|);波形图:B=1时:B=0.5时:B=3时:由以上3个波形图可知,脉冲宽度越小,时域波形的幅值越大,信号占有的频带宽度越大。思考题:1) 相同点:它们的有效频带宽度都是与脉冲宽度成反比;不同点:周期矩形脉冲信号的频谱是离

43、散的,而矩形脉冲信号的频谱是连续的。2) 矩形脉冲信号的有效频带宽度与时域宽度成反比,当时,脉冲面积始终等于1时,其频谱会无限趋近于高度为1的一条直线。3.已知周期方波序列。3.1由的波形可知:。程序代码:%three_3_1.mN=input(N=);N1=input(N1=);n=-N1:N1;x1=ones(size(n);n=N1+1:N-N1-1;x2=zeros(size(n);x=x1,x2;n=-N1:N-N1-1;X=fft(x);subplot(211);stem(n,x,filled);xlabel(n);title(x(n);subplot(212);stem(n,X,

44、filled);xlabel(k);title(X(k);波形图:思考题:1) 相同点:周期序列与连续周期信号的频谱都是离散的,且都有收敛性和谐波性;不同点:连续周期信号在一个周期内要用无限多项级数来表示,而周期序列用有限项级数就可以表示。2) 方波序列占空比越小,频谱的谱线越密集,谱线高度越大。4.已知一矩形脉冲序列利用MATLAB绘制周期方波序列的频谱波形,改变矩形脉冲序列的宽度,观察频谱波形的变化趋势。程序代码:%three_4.mN1=input(N1=);n=-N1:N1;w=-pi:0.01:pi;x=ones(size(n);X=x*exp(-j*n*w);subplot(211

45、);stem(n,x,filled);xlabel(n);title(x(n);subplot(212);plot(w/pi,abs(X);grid on;xlabel(Omega/pi);title(|X(ejOmega)|);波形图:N=4时:N=8时:N=2时:思考题:随着矩形脉冲序列宽度的增加,其频谱的有效频带宽度减小。其宽度与频谱的有效频带宽度成反比。四收获与体会信号与系统课程中的傅里叶变换是最基本的基础,但是很多时候在进行傅里叶变换的时候还是很麻烦的,于是MATLAB再次展示了它强大的一面,让之前麻烦的计算通过一段并不是繁琐的代码就可以将其解决,并且通过简单的变换参数就可以观察频谱

46、的特性,这让我感觉到MATLAB这个软件一定要学好,这个软件既然在信号分析方面有着如此强大的功能,那么在其他方面必然也会有广泛的应用。实验4 LTI系统的频域分析一、实验目的1.加深对LTI系统频率响应基本概念的掌握和理解。2.学习和掌握LTI系统频率特性的分析方法。二、实验原理与方法1.连续时间系统的频率响应系统的频率响应定义为系统单位冲激响应h(t)的傅里叶变换,即若LTI连续时间系统的单位冲激响应为h(t),输入信号x(t),根据系统的时域分析可知系统的零状态响应为对等式两边分别求傅里叶变换,根据时域卷积定理得以得到:因此,系统的频率响应还可以由系统的零状态响应和输入的傅里叶变换之比得到

47、H(w)反应了LTI连续时间系统对不同频率信号的响应特性,是系统内在固有的特性,与外部激励无关。H(w)又可以表示为其中|H(w)|称为系统的幅度响应,(w)称为系统的相位响应。当虚指数信号作用于LTI系统时,系统的零状态响应y(t)仍为同频率的虚指数信号,即由此还可以推导出正弦信号作用在系统上的响应。对于由下述微分方程描述的LTI连续时间系统:其频率响应H(jw)可以表示为下面的jw的有理多项式MATLAB的信号处理工具箱提供了专门的函数freqs,用来分析连续时间系统的频率响应,该函数有下列几种调用格式:h,w=freqs(b,a):计算默认频率范围内200个频率点上的频率响应的取样值,这

48、200个频率点记录在w中。h=freqs(b,a,w):b、a分别为表示H(jw)的有理多项式中分子和分母多项式的系数向量,w为频率取样点,返回值h就是频率响应在频率取样点上的数值向量。h,w=freqs(b,a,n):计算默认范围内n个频率点上的频率响应的取样值,这n个频率点记录在w中。Freqs(b,a,.):这种调用格式不返回频率响应的取样值,而是以对数坐标的方式绘出系统的幅频响应和相频响应。2.离散时间系统的频率响应LTI离散时间系统的频率响应定义为单位抽样响应h(n)的离散时间傅里叶变换。对于任意的输入信号x(n),输入和输出信号的离散时间傅里叶变换有如下关系因此,系统的频率响应还可

49、以表示为 当系统输入信号为x(n)=时,系统的输出由式可知,虚指数信号通过LTI离散时间系统后信号的频率不变,信号的幅度由系统频率响应的幅度值确定,所以H()表示了系统对不同频率信号的衰减量。一般情况下,离散系统的频率响应H()是复值函数,可用幅度和相位表示。其中|H()|称为系统的幅度响应,称为系统的相位响应。 若LTI离散时间系统可以由如下差分方程描述。则由式子描述的离散时间系统的频率响应H()可以表示为的有理多项式。MATLAB的信号处理工具箱提供了专门的函数freqz,用来分析连续时间系统的频率响应,该函数有下列几种调用格式:H,w=freqz(b,a,n):b、a分别为有理多项式中分

50、子和分母多项式的系数向量,返回值H是频率响应在0到pi范围内n个频率等分点上的数值向量,w包含了这n个频率点。H,w=freqz(b,a,n,whole):计算02n个频率点上的频率响应的取样值,这n个频率点记录在w中。H=freqz(b,a,w):w为取样频率点,计算这些频率点上的频率响应的取样值。Freqz(b,a,.):这种调用格式不返回频率响应的取样值,而是直接绘出系统的频幅响应和相频响应。3、 实验内容1.已知一个RLC电路构造的二阶高通滤波器,已知其中算该电路系统的频率响应及高通截止频率:利用MATLAB绘制幅度响应和相位响应曲线,比较系统的频率特性与理论计算的结果是否一致。程序代

51、码:%four_1.mb=0.04 0 0;a=0.04 0.4 2H,w=freqs(b,a);subplot(211);plot(w,abs(H);set(gca,xtick);set(gca,ytick,0 0.4 0.707 1);xlabel(omega(rad/s);ylabel(Magnitude);title(|H(jomega)|);grid on;subplot(212);plot(w,angle(H);set(gca,xtick);xlabel(omega(rad/s);ylabel(Phase);title(phi(omega);grid on;2.已知一个PC电路2.1不同的RC值,用MATLAB画出系统的幅度响应曲线|H(w)|,观察实验结果,分析该RC实验电路具有什么样

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论