收藏 分享(赏)

信号与系统实验教程(指导书).doc

上传人:dzzj200808 文档编号:2298991 上传时间:2018-09-10 格式:DOC 页数:32 大小:595.50KB
下载 相关 举报
信号与系统实验教程(指导书).doc_第1页
第1页 / 共32页
信号与系统实验教程(指导书).doc_第2页
第2页 / 共32页
信号与系统实验教程(指导书).doc_第3页
第3页 / 共32页
信号与系统实验教程(指导书).doc_第4页
第4页 / 共32页
信号与系统实验教程(指导书).doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、信 号 与 系 统实 验 指 导 教 程*大学*学院/院系年 月 日目 录实验一 信号的基本运算 .0一、实验目的 .0二、实验原理 .0三、实验内容及步骤 .10四、实验报告要求 .11实验二 周期信号的傅里叶级数及 Gibbs 现象 11一、实验目的 .11二、实验原理及方法 .12三、实验内容和要求 .17四、实验报告要求 .19实验三 信号抽样及信号重建 .20一、实验目的 .20二、实验原理及方法 .20三、实验内容及步骤 .26四、实验报告要求 .27实验四 信号系统仿真 .28一、实验目的 .28二、实验原理 .28三、实验内容及步骤 .32四、实验报告要求 .33实验一 信号的

2、基本运算一、实验目的1、熟悉掌握常用的用于信号与系统时域仿真分析的 MATLAB 函数。2、掌握用 MATLAB 描述连续时间信号和离散时间信号的方法,能够编写 MATLAB 程序进行仿真。3、熟悉实现各种信号的时域变换和运算的原理和方法,并在 MATLAB 环境下仿真。4、利用延拓的方法将时限信号变成一个周期函数。5、利用 MATLAB 的卷积工具实现两个信号的卷积运算。二、实验原理 1、在信号与系统课程中,单位阶跃信号 u(t) 和单位冲激信号 (t) 是二个非常有用的信号。它们的定义如下1.1(a)0,)(1ttd1.1(b),tu这里分别给出相应的简单的产生单位冲激信号和单位阶跃信号的

3、扩展函数。产生单位冲激信号的扩展函数为:function y = delta(t)dt = 0.01;y = (u(t)-u(t-dt)/dt;产生单位阶跃信号的扩展函数为:% Unit step functionfunction y = u(t)y = (t=0); % y = 1 for t 0, else y = 0请将这二个 MATLAB 函数分别以 delta 和 u 为文件名保存在 work 文件夹中,以后,就可以像教材中的方法使用单位冲激信号 (t) 和单位阶跃信号 u(t)。2、离散时间单位阶跃信号 un定义为11.20,1nu离散时间单位阶跃信号 un除了也可以直接用前面给出

4、的扩展函数来产生,还可以利用MATLAB 内部函数 ones(1,N) 来实现。这个函数类似于 zeros(1,N),所不同的是它产生的矩阵的所有元素都为 1。值得注意的是,利用 ones(1,N) 来实现的单位阶跃序列并不是真正的单位阶跃序列,而是一个长度为 N 单位门(Gate)序列,也就是 un-un-N。但是在一个有限的图形窗口中,我们看到的还是一个单位阶跃序列。3、信号的基本加法和乘法运算信号 f1 与 f2 之和(瞬时和)是指同一瞬时两个信号之值对应相加所构成的“和信号”即f3=f1+f2;信号 f1 与 f2 之积是指同一瞬时两信号之值对应相乘所构成的 “积信号”即 f3= f1

5、*f2;离散序列相加(或相乘)可采用对应样点的值分别相加(或相乘)的方法来计算。用 MATLAB 程序仿真下面运算: f1=sin(t),f2=sin(t),f3=f1+f2,f4=f1*f2;x=0 1 1 1 1 1,h=2 1 3 4 1 1,y=x+h,g=x.*h;连续信号加法乘法实现程序% Programt=0:0.01:4*pi;f1=sin(t);f2= sin(t);f3=f1+f2;f4=f1.*f2;subplot(221);plot(t,f1);title(f1 signal);subplot(222);plot(t,f2);title(f2 signal);subpl

6、ot(223);plot(t,f3);title(f1+f2 signal);subplot(224);plot(t,f4);title(f1*f2 signal);运行后的结果:2图 1-1 程序运行结果图离散序列加法乘法实现程序x=0 1 1 1 1 1;h=2 1 3 4 1 1;y=x+h,g=x.*h;subplot(221);stem(x);title(x signal);subplot(222);stem(h);title(h signal);subplot(223);stem(y);title(x+h signal);subplot(224);stem(g);title(x.*

7、h signal);运行后的结果:图 1-2 程序运行结果图4、信号的时移信号的时移可用下面的数学表达式来描述:设一个连续时间信号为 x(t),它的时移 y(t) 表示为:y(t) = x(t - t0) 1.3其中,t 0 为位移量。若 t0 为正数,则 y(t)等于将 x(t)右移 t0 秒之后的结果。反之,若 t0 为负数,3则 y(t)等于将 x(t)左移 t0 秒之后的结果。在 MATLAB 中,时移运算与数学上习惯表达方法完全相同。对给定一个连续时间信号 x(t) = e-0.5tu(t),对它分别左移 2 秒钟和右移 2 秒钟得到信号 x1(t) = e-0.5(t+2)u(t+

8、2)和 x2(t) = e-0.5(t-2)u(t-2)。实现程序:% Programclear,close all,t = -5:0.01:5;x = exp(-0.5*t).*u(t); % Generate the original signal x(t)x1 = exp(-0.5*(t+2).*u(t+2); % Shift x(t) to the left by 2 second to get x1(t)x2 = exp(-0.5*(t-2).*u(t-2); % Shift x(t) to the right by 2 second to get x2(t)subplot(311)

9、plot(t,x) % Plot x(t)grid on,title ( x = exp(-0.5*t).*u(t)subplot (312)plot (t,x1) % Plot x1(t)grid on,title ( x1 = exp(-0.5*(t+2).*u(t+2) )subplot (313)plot (t,x2) % Plot x2(t)grid on,title ( x2 = exp(-0.5*(t-2).*u(t-2)xlabel (Time t (sec)程序运行结果:图 1-3 程序运行结果图注意:在运行上面的程序时,一定在所在的路径下创建 u(t)的子函数:functi

10、on y = u(t)y = (t=0); % y = 1 for t 0, else y = 0保存名为 u.m5、信号的时域反褶4对一个信号 xn的反褶运算在数学上表示为yn = x-n 1.4这种反褶运算,用 MATLAB 实现起来也是非常简单的。有多种方法可以实现信号的反褶运算。方法一,修改绘图函数 plot(t,x)和 stem(n,x)中的时间变量 t 和 n,即用-t 和-n 替代原来的 t和 n,这样绘制出来的图形,看起来就是原信号经时域反褶后的版本。方法二,直接利用原信号与其反褶信号的数学关系式来实现。这种方法最符合信号反褶运算的实际意义。方法三,使用 MATLAB 内部函数

11、 fliplr()来实现信号的反褶运算。其用法如下 :y = fliplr(x):其中 x 为原信号 x(t)或 xn,而 y 则为 x 的时域反褶。需要说明的是,函数fliplr()对信号作时域反褶,仅仅将信号中各个元素的次序作了一个反转,这种反转处理是独立于时间变量 t 和 n 的。因此,如果信号与其时间变量能够用一个数学函数来表达的话,那么建议将时间变量 t 和 n 的范围指定在一个 正负对称的时间区间即可。分别编写程序实现 m=sin(t);n=sin(-t);xn=1 2 3 4;x-n,分析所画信号波形,程序如下:t=0:0.01:4*pi;n=0:1:3;m=sin(t);x=1

12、 2 3 4;subplot(222);plot(t,m);title(sin(t) signal);subplot(221);plot(-t,m);title(sin(-t) signal);subplot(224);stem(n,x);title(xn signal);subplot(223);stem(-n,x);title(x-n signal);程序运行结果:5图 1-4 程序运行结果图 6、信号的时域尺度变换信号 x(t)的时域尺度变换在数学描述为y(t) = x(at), 1.5其中 a 为任意常数。根据 a 的不同取值,这种时域尺度变换对信号 x(t)具有非常不同的影响。当 a

13、 = 1 时,y(t) = x(t);当 a = -1 时, y(t) = x(-t),即 y(t)可以通过将 x(t)反褶运算而得到;当 a 1 时,y(t) = x(at),y(t)是将 x(t)在时间轴上的压缩而得到;当 0 0 时图形右移, t x = 1 2 3 4; h = 4 3 2 1; y=conv(x,h)在屏幕上得到显示结果:y = 4 11 20 30 20 11 4这表明,多项式 p1 和 p2 的乘积为: 412032014563 sss正如前所述,用 MATLAB 处理连续时间信号时,独立时间变量 t 的变化步长应该是很小的,假定用符号 dt 表示时间变化步长,那

14、么,用函数 conv()作两个信号的卷积积分时,应该在这个函数之前乘以时间步长方能得到正确的结果。也就是说,正确的语句形式应为:y = dt*conv(x,h)。对于定义在不同时间段的两个时限信号 x(t),t 0 t t1,和 h(t),t 2 t t3。 如果用 y(t)来表示它们的卷积结果,则 y(t)的持续时间范围要比 x(t)或 h(t)要长,其时间范围为 t0+t2 t t1+t3。这个特点很重要,利用这个特点,在处理信号在时间上的位置时,可以很容易地将信号的函数值与时间轴的位置和长度关系保持一致性。根据给定的两个连续时间信号 x(t) = tu(t)-u(t-1)和 h(t) =

15、 u(t)-u(t-1),编写程序,完成这两个信号的卷积运算,并绘制它们的波形图。范例程序如下:% Programt0 = -2; t1 = 4; dt = 0.01;t = t0:dt:t1;x = u(t)-u(t-1);h = t.*(u(t)-u(t-1);y = dt*conv(x,h); % Compute the convolution of x(t) and h(t)subplot(221)plot(t,x), grid on, title(Signal x(t), axis(t0,t1,-0.2,1.2)subplot(222)plot(t,h), grid on, titl

16、e(Signal h(t), axis(t0,t1,-0.2,1.2)subplot(212)t = 2*t0:dt:2*t1; % Again specify the time range to be suitable to the % convolution of x and h.plot(t,y), grid on, title(The convolution of x(t) and h(t), axis(2*t0,2*t1,-0.1,0.6), xlabel(Time t sec)程序运行结果9图 1-7 程序运行结果图在有些时候,做卷积和运算的两个序列中,可能有一个序列或者两个序列都

17、非常长,甚至是无限长,MATLAB 处理这样的序列时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在信号与系统分析中所遇到的无限长序列,通常都是满足绝对可和或绝对可积条件的信号。因此,对信号采取这种截短处理尽管存在误差,但是通过选择合理的信号长度,这种误差是能够减小到可以接受的程度的。若这样的一个无限长序列可以用一个数学表达式表示的话,那么,它的长度可以由编程者通过指定时间变量 n 的范围来确定。例如,对于一个单边实指数序列 xn = 0.5nun,通过指定 n 的范围为 0 n 100,则对应的 xn的长度为 101 点,虽然指定更宽的 n 的范围,xn将与实际情况更相符合,

18、但是,注意到,当 n 大于某一数时,xn之值已经非常接近于 0 了。对于序列 xn = 0.5nun,当 n = 7 时,x7 = 0.0078,这已经是非常小了。所以,对于这个单边实指数序列,指定更长的 n 的范围是没有必要的。当然,不同的无限长序列具有不同的特殊性,在指定 n 的范围时,只要能够反映序列的主要特征就可以了。9、关于 MATLAB 工具在信号处理中应用的补充在绘制信号的波形图时,有时我们需要将若干个图形绘制在图一个图形窗口中,这就需要使用 MATLAB 的图形分割函数 subplot(),其用法是在绘图函数 stem 或 plot 之前,使用图形分割函数 subplot(n1

19、,n2,n3),其中的参数 n1,n2 和 n3 的含义是,该函数将把一个图形窗口分割成 n1xn2 个子图,即将绘制的图形将绘制在第 n3 个子图中。常用的图形控制函数 axis(xmin,xmax,ymin,ymax):图型显示区域控制函数,其中 xmin 为横轴的显示起点,xmax 为横轴的显示终点,ymin 为纵轴的显示起点,ymax 为纵轴的显示终点。有时,为了使图形具有可读性,需要在所绘制的图形中,加上一些网格线来反映信号的幅度大小。MATLAB 中的 grid on/grid off 可以实现在你的图形中加网格线。grid on:在图形中加网格线。grid off:取消图形中的网

20、格线。x = input(Type in signal x(t) in closed form:)10三、实验内容及步骤实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。练习 1:结合编写的阶跃函数编写一门函数(门宽为 4 幅度为 1)写出程序并会出门函数信号的波形; 练习 2:结合实验原理的信号的基本运算的程序,编写程序绘制 m=sin(t);

21、g=sin(2t-pi/2);xn=1 2 5 6 3 ;x(1/2)n-1;的四个信号的波形,并分析图形的变换过程。练习 3:根据周期函数的定义以及实验原理中延拓的方法实现脉冲函数(脉冲宽度 1 周期 2幅度 1)并绘制其图形;练习 4:利用 MATLAB 内部所带的卷积工具对两个门函数进行卷积,分别绘制出两个门函数和卷积后的波形,并分析门函数卷积的规律,(一个门函数门宽为 1 幅度 1 另一个门函数门宽为 2 幅度为 1,进行两者卷积)四、实验报告要求1、按要求完整书写你所编写的全部 MATLAB 程序2、详细记录实验过程中的有关信号波形图(存于自带的 U 盘中) ,图形要有明确的标题。全

22、部的 MATLAB 图形应该用打印机打印,然后贴在本实验报告中的相应位置,禁止复印件。3、实事求是地回答相关问题,严禁抄袭。11实验二 周期信号的傅里叶级数及 Gibbs 现象一、实验目的1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法;2、观察截短傅里叶级数而产生的“Gibbs 现象” ,了解其特点以及产生的原因;3、掌握连续周期时间信号傅里叶变换的分析方法及其物理意义;二、实验原理及方法1、连续时间周期信号的傅里叶级数 CTFS 分析任何一个周期为 T1 的正弦周期信号,只要满足狄利克利条件,就可以展开成傅里叶级数。其中三角傅里叶级数为:2.11 000 )sin()cos()(k

23、ktbtatx 或: 2.2100)()(kktt 其中 ,称为信号的基本频率(Fundamental frequency) , 分别是信号102T kkba, 和,0的直流分量、余弦分量幅度和正弦分量幅度, 为合并同频率项之后各正弦谐波分)(tx kc、量的幅度和初相位,它们都是频率 的函数,绘制出它们与 之间的图像,称为信号的频0k0谱图(简称“频谱” ) , 图像为幅度谱, 图像为相位谱。kck三角形式傅里叶级数表明,如果一个周期信号 x(t),满足狄里克利条件,那么,它就可以被看作是由很多不同频率的互为谐波关系(harmonically related)的正弦信号所组成,其中每一个不同

24、频率的正弦信号称为正弦谐波分量 (Sinusoid component),其幅度(amplitude)为。也可以反过来理解三角傅里叶级数:用无限多个正弦谐波分量可以合成一个任意的非正kc弦周期信号。12指数形式的傅里叶级数为:2.3ktjkeatx0)(其中, 为指数形式的傅里叶级数的系数,按如下公式计算:ka2.42/10)(Ttjkkdexa指数形式的傅里叶级数告诉我们,如果一个周期信号 x(t),满足狄里克利条件,那么,它就可以被看作是由很多不同频率的互为谐波关系(harmonically related)的周期复指数信号所组成,其中每一个不同频率的周期复指数信号称为基本频率分量,其复幅

25、度(complex amplitude)为 。这里“复幅度(complex amplitude ) ”指的是 通常是复数。ka ka上面的傅里叶级数的合成式说明,我们可以用无穷多个不同频率的周期复指数信号来合成任意一个周期信号。然而,用计算机(或任何其它设备)合成一个周期信号,显然不可能做到用无限多个谐波来合成,只能取这些有限个谐波分量来近似合成。假设谐波项数为 N,则上面的和成式为:2.5Nktjkeatx0)(显然,N 越大,所选项数越多,有限项级数合成的结果越逼近原信号 x(t)。本实验可以比较直观地了解傅里叶级数的物理意义,并观察到级数中各频率分量对波形的影响包括“Gibbs”现象:即

26、信号在不连续点附近存在一个幅度大约为 9%的过冲,且所选谐波次数越多,过冲点越向不连续点靠近。这一现象在观察周期矩形波信号和周期锯齿波信号时可以看得很清楚。例题 1、给定一个周期为 T1 = 2s 的连续时间周期方波信号,如图所示,其一个周期内的数学表达式为:2,01)(1ttx解:首先,我们根据前面所给出的公式,计算该信号的傅里叶级数的系数。2/10)(Ttjkkdexa1002dtejk100)(20tjkdekjtjk012kjetj02kjej 022000kjjjkj020)sin(kje11 2-1-2x(t)t0图 2.1 周期方波信号13因为: 0 = 2/T1 = ,代入上式

27、得到: kjak)2sin()(在 MATLAB 命令窗口,依次键入: k = -10:10; ak = (-j).k).* (sin(k+eps)*pi/2)./(k+eps)*pi) % The expression of akak =Columns 1 through 4 -0.0000 0 + 0.0354i -0.0000 0 + 0.0455iColumns 5 through 8 -0.0000 0 + 0.0637i -0.0000 0 + 0.1061iColumns 9 through 12 -0.0000 0 + 0.3183i 0.5000 0 - 0.3183iCol

28、umns 13 through 16 -0.0000 0 - 0.1061i -0.0000 0 - 0.0637iColumns 17 through 20 -0.0000 0 - 0.0455i -0.0000 0 - 0.0354iColumn 21 -0.0000 从 MATLAB 命令窗口,我们得到了该周期信号从 到 共 21 个系数。10a紧接着再键入以下命令: subplot(221) stem(k,abs(ak),k.) title(The Fourier series coefficients) xlabel(Frequency index k)就得到一幅如右图所示的描述 与

29、 k 之间的关系的a图形。以上是我们通过手工计算得到的这个周期信号的傅里叶级数表达式及其频谱图,下面给出完成傅里叶级数系数计算的相应 MATLAB 范例程序。% Program2_1% This program is used to evaluate the Fourier series coefficients ak of a periodic square waveclear, close allT = 2; dt = 0.00001; t = -2:dt:2;x1 = u(t) - u(t-1-dt); x = 0;for m = -1:1 % Periodically extend x

30、1(t) to form a periodic signalx = x + u(t-m*T) - u(t-1-m*T-dt);endw0 = 2*pi/T;14N = 10; % The number of the harmonic componentsL = 2*N+1;for k = -N: N; % Evaluate the Fourier series coefficients akak(N+1+k) = (1/T)*x1*exp(-j*k*w0*t)*dt;endphi = angle(ak); % Evaluate the phase of ak执行程序 Program2_1 后,

31、就完成了信号的傅里叶级数的系数的计算,在命令窗口键入 ak命令窗口就可以显示傅里叶级数的 21 个系数:ak =Columns 1 through 4 0.0000 + 0.0000i 0.0000 + 0.0354i 0.0000 - 0.0000i 0.0000 + 0.0455iColumns 5 through 8 0.0000 - 0.0000i 0.0000 + 0.0637i 0.0000 - 0.0000i 0.0000 + 0.1061iColumns 9 through 12 0.0000 - 0.0000i 0.0000 + 0.3183i 0.5000 0.0000 -

32、 0.3183iColumns 13 through 16 0.0000 + 0.0000i 0.0000 - 0.1061i 0.0000 + 0.0000i 0.0000 - 0.0637iColumns 17 through 20 0.0000 + 0.0000i 0.0000 - 0.0455i 0.0000 + 0.0000i 0.0000 - 0.0354iColumn 21 0.0000 - 0.0000i将这里的 ak 之值同前面手工计算得到的 ak 比较,可见两者是完全相同的。再次特别提示:程序中,时间变量的变化步长 dt 的大小对傅里叶级数系数的计算精度的影响非常大,dt

33、越小,精度越高,本程序中的 dt 之所以选择 0.00001 就是为了提高计算精度。但是,计算机所花的计算时间越长。在程序 Program2_1 中添加相应的计算| ak |和绘图语句,就可以绘制出信号的幅度谱和相位谱的谱线图。2、周期信号的合成以及 Gibbs 现象从傅里叶级数的合成式(Synthesis equation) ktjkeatx0)(可以看出,用无穷多个不同频率和不同振幅的周期复指数信号可以合成一个周期信号。然而,我们无法用计算机实现对无穷多个周期复指数信号的合成。但是,用有限项来合成却是可行的,在实际应用中,多半也就是这么做的。然而,这样做的一个必然结果,就是引入了误差。如果

34、一个周期信号在一个周期有内断点存在,那么,引入的误差将除了产生纹波之外,还将在断点处产生幅度大约为 9%的过冲(Overshot) ,这种现象被称为 吉伯斯现象(Gibbs phenomenon) 。为了能够观察到合成信号与原信号的不同以及 Gibbs 现象,我们可以利用前面已经计算出的傅里叶级数的系数,计算出截短的傅里叶级数:15Nktjkeatx0)(这个计算可用 L = 2N+1 次循环来完成: tNrjk0)1()2其中 r 作为循环次数,x2 在循环之前应先清零。完成这一计算的 MATLAB 程序为:x2 = 0; L = 2*N+1;for r = 1:L;x2 = x2+ak(r

35、)*exp(j*(r-1-N)*w0*t);end;完成了所有的计算之后,就可以用绘图函数:plot()和 stem()将计算结果包括 x1, x2, abs(ak)和angle(ak)以图形的形式给出,便于我们观察。观察吉伯斯现象的最好的周期信号就是图 2-1 所示的周期方波信号,这种信号在一个周期内有两个断点,用有限项级数合成这个信号时,吉伯斯现象的特征非常明显,便于观察。例题 2:修改程序 Program2_1,使之能够用有限项级数合成例题 2-1 所给的周期方波信号,并绘制出原始周期信号、合成的周期信号、信号的幅度谱和相位谱。为此,只要将前述的 for 循环程序段和绘图程序段添加到程序

36、 Program2_1 中即可,范例程序如下:% Program2_2% This program is used to compute the Fourier series coefficients ak of a periodic square waveclear,close allT = 2; dt = 0.00001; t = -2:dt:2;x1 = u(t)-u(t-1-dt); x = 0;for m = -1:1x = x + u(t-m*T) - u(t-1-m*T-dt); % Periodically extend x1(t) to form a periodic sig

37、nalendw0 = 2*pi/T;N = input(Type in the number of the harmonic components N = :);L = 2*N+1;for k = -N:1:N;ak(N+1+k) = (1/T)*x1*exp(-j*k*w0*t)*dt;endphi = angle(ak);y=0;for q = 1:L; % Synthesiz the periodic signal y(t) from the finite Fourier seriesy = y+ak(q)*exp(j*(-(L-1)/2+q-1)*2*pi*t/T);end;subpl

38、ot(221),plot(t,x), title(The original signal x(t), axis(-2,2,-0.2,1.2),subplot(223), plot(t,y), title(The synthesis signal y(t), axis(-2,2,-0.2,1.2), xlabel(Time t),16subplot(222)k=-N:N; stem(k,abs(ak),k.), title(The amplitude |ak| of x(t), axis(-N,N,-0.1,0.6)subplot(224)stem(k,phi,r.), title(The ph

39、ase phi(k) of x(t), axis(-N,N,-2,2), xlabel(Index k)N=12 时,程序运行结果:图 2-1 程序运行结果 在用这个程序观察吉伯斯现象时,可以反复执行该程序,每次执行时,输入不同之 N 值,比较所的图形的区别,由此可以观察到吉伯斯现象的特征。三、实验内容和要求实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验

40、程序等事项。练习 1、周期信号的傅里叶级数给定如下两个周期信号: t122)(1tx17(1) 、手工计算 x1(t)傅里叶级数的系数:信号 x1(t) 在其主周期内的数学表达式为:计算 x1(t) 的傅里叶级数的系数的计算过程如下:仅供参考 x1(t)=(t+1)*(u(t+1)-u(t)+(1-t)*(u(t)-u(t-1)2/10)(Ttjkkdexa计算小程序:k = -10:10;ak = 的表达式 % The expression of aka通过计算得到的 x1(t)的傅里叶级数的系数的数学表达式是:(2) 、用 MATLAB 计算的傅里叶级数的系数 ak 从-10 到 10 共

41、 21 个系数。仿照程序Program2_1,编写程序以计算 x1(t)的傅里叶级数的系数。程序如下:执行程序后,就完成了信号的傅里叶级数的系数的计算,在命令窗口键入 ak命令窗口就可以显示傅里叶级数的 21 个系数:(3) 、通过执行程序所得到的 x1(t)的傅里叶级数的 ak 从-10 到 10 共 21 个系数与你手工计算的 ak 相比较,是否相同,如有不同,是何原因造成的?答:练习 2、反复执行程序 Program2_2,每次执行该程序时,输入不同的 N 值,并观察所合成的周期方波信号。分析吉伯斯现象的特点,观察合成的信号波形中,是否会产生 Gibbs 现象?为什么?; 答:四、实验报

42、告要求1、按要求完整书写你所编写的全部 MATLAB 程序2、详细记录实验过程中的有关信号波形图(存于自带的 U 盘中) ,图形要有明确的标题。全部的 MATLAB 图形应该用打印机打印,然后贴在本实验报告中的相应位置,禁止复印件。3、实事求是地回答相关问题,严禁抄袭。)(1tx18本实验完成时间: 年 月 日实验三 信号抽样及信号重建一、实验目的1、进一步理解信号的抽样及抽样定理;2、进一步掌握抽样信号的频谱分析;3、掌握和理解信号抽样以及信号重建的原理;二、实验原理及方法1、信号的抽样及抽样定理抽样(Sampling),就是从连续时间信号中抽取一系列的信号样本,从而,得到一个离散时间序列(

43、Discrete-time sequence) ,图 3-1 给出了信号理想抽样的原理图: )(tx)(tp)(txs )(jXm图 3-1 (a) 抽样原理图, (b) 带限信号的频谱(a) (b)上图中,假设连续时间信号是一个带限信号(Bandlimited Signal) ,其频率范围为,抽样脉冲为理想单位冲激串(Unit Impulse Train ),其数学表达式为:m3.1)()(snTttp由图可见,模拟信号 x(t)经抽样后,得到已抽样信号(Sampled Signal)x s(t),且:3.2)()(txts将 p(t)的数学表达式代入上式得到:3.3)()(sss nTtt

44、显然,已抽样信号 xs(t) 也是一个冲激串,只是这个冲激串的冲激强度被 x(nTs) 加权了。19从频域上来看,p(t) 的频谱也是冲激序列,且为:3.4)()(ssntpF根据傅里叶变换的频域卷积定理,时域两个信号相乘,对应的积的傅里叶变换等于这两个信号的傅里叶变换之间的卷积。所以,已抽样信号 xs(t)的傅里叶变换为:3.5nsssjXTjX)(1)(表达式 4.5 告诉我们,如果信号 x(t)的傅里叶变换为 X(j),则已抽样信号 xs(t) 的傅里叶变换 Xs(j)等于无穷多个加权的移位的 X(j)之和,或者说,已抽样信号的频谱等于原连续时间信号的频谱以抽样频率 s 为周期进行周期复

45、制的结果。如图 3-2 所示:(tx)(tp)(txs )(jX)(jP)(jXssssMsTttt sT/1图 3-2 信号抽样及其频谱图3.6在 MATLAB 中,对信号抽样的仿真,例题 设连续时间信号为一个正弦信号 x(t) = cos(0.5t),抽样周期为 Ts = 1/4 秒,编程序绘制信号 x(t)和已抽样信号 xn的波形图。范例程序 Sampling 如下:% Samplingclear, close all,t = 0:0.01:10;Ts = 1/4; % Sampling periodn = 0:Ts:10; % Make the time variable to be

46、discretex = cos(0.5*pi*t);xn = cos(0.5*pi*n); % Samplingsubplot(221)plot(t,x), title(A continuous-time signal x(t), xlabel(Time t)subplot(222)20stem(n,xn,.), title(The sampled version xn of x(t), xlabel(Time index n)执行该程序后,得到的波形图如图 3-3 所示。图 3-3 连续时间信号及其抽样后的离散时间序列在这个范例程序中,先将连续时间 t 进行离散化,使之成为以 Ts = 1/

47、4 秒的离散时间 n,然后,将 n 代入到信号 x(t) 的数学表达式中计算,就完成了抽样过程,且得到了抽样后的离散时间序列 xn。2、 信号抽样过程中的频谱混叠为了能够观察到已抽样信号的频谱是否会存在混叠现象,或者混叠程度有多么严重,有必要计算并绘制出已抽样信号的傅里叶变换。根据式 3.5 可计算出已抽样信号的频谱。其中,主要利用了一个 for 循环程序完成周期延拓运算。% Programclear, close all,tmax = 4; dt = 0.01; t = 0:dt:tmax;Ts = 1/10; ws = 2*pi/Ts;w0 = 20*pi; dw = 0.1;w = -w0:dw:w0;n = 0:1:tmax/Ts; x = exp(-4*t).*u(t);xn = exp(-4*n*Ts);subplot(221)plot(t,x), title(A continuous-time signal x(t),xlabel(Time t), axis(0,tmax,0,1), grid onsubplot(223)stem(n,xn,.), title(The sampled version xn of x(t),xlabel(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报