实验二连续时间信号的频域分析_第1页
实验二连续时间信号的频域分析_第2页
实验二连续时间信号的频域分析_第3页
实验二连续时间信号的频域分析_第4页
实验二连续时间信号的频域分析_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、实验二 连续时间信号的频域分析一、实验目的1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法;2、观察截短傅里叶级数而产生的“Gibbs现象”,了解其特点以及产生的原因;3、掌握连续时间傅里叶变换的分析方法及其物理意义;4、掌握各种典型的连续时间非周期信号的频谱特征以及傅里叶变换的主要性质;基本要求:掌握并深刻理傅里叶变换的物理意义,掌握信号的傅里叶变换的计算方法,掌握利用MATLAB编程完成相关的傅里叶变换的计算。二、实验原理及方法1、连续时间周期信号的傅里叶级数CTFS分析任何一个周期为T1的正弦周期信号,只要满足狄利克利条件,就可以展开成傅里叶级数。其中三角傅里叶级数为: 2.1或

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

3、解三角傅里叶级数:用无限多个正弦谐波分量可以合成一个任意的非正弦周期信号。指数形式的傅里叶级数为: 2.3其中,为指数形式的傅里叶级数的系数,按如下公式计算: 2.4指数形式的傅里叶级数告诉我们,如果一个周期信号x(t),满足狄里克利条件,那么,它就可以被看作是由很多不同频率的互为谐波关系(harmonically related)的周期复指数信号所组成,其中每一个不同频率的周期复指数信号称为基本频率分量,其复幅度(complex amplitude)为。这里“复幅度(complex amplitude)”指的是通常是复数。上面的傅里叶级数的合成式说明,我们可以用无穷多个不同频率的周期复指数信

4、号来合成任意一个周期信号。然而,用计算机(或任何其它设备)合成一个周期信号,显然不可能做到用无限多个谐波来合成,只能取这些有限个谐波分量来近似合成。假设谐波项数为N,则上面的和成式为: 2.5显然,N越大,所选项数越多,有限项级数合成的结果越逼近原信号x(t)。本实验可以比较直观地了解傅里叶级数的物理意义,并观察到级数中各频率分量对波形的影响包括“Gibbs”现象:即信号在不连续点附近存在一个幅度大约为9%的过冲,且所选谐波次数越多,过冲点越向不连续点靠近。这一现象在观察周期矩形波信号和周期锯齿波信号时可以看得很清楚。2、连续时间信号傅里叶变换-CTFT 傅里叶变换在信号分析中具有非常重要的意

5、义,它主要是用来进行信号的频谱分析的。傅里叶变换和其逆变换定义如下: 2.6 2.7 连续时间傅里叶变换主要用来描述连续时间非周期信号的频谱。按照教材中的说法,任意非周期信号,如果满足狄里克利条件,那么,它可以被看作是由无穷多个不同频率(这些频率都是非常的接近)的周期复指数信号ejwt的线性组合构成的,每个频率所对应的周期复指数信号ejwt称为频率分量(frequency component),其相对幅度为对应频率的|X(jw)|之值,其相位为对应频率的X(jw)的相位。X(jw)通常为关于的复函数,可以按照复数的极坐标表示方法表示为:X(jw)=| X(jw)|ejÐ X(jw)其

6、中,| X(jw)|称为x(t)的幅度谱,而ÐX(jw)则称为x(t)的相位谱。 给定一个连续时间非周期信号x(t),它的频谱也是连续且非周期的。对于连续时间周期信号,也可以用傅里变换来表示其频谱,其特点是,连续时间周期信号的傅里叶变换时有冲激序列构成的,是离散的这是连续时间周期信号的傅里叶变换的基本特征。3、连续周期信号的傅里叶级数CTFS的MATLAB实现3.1 傅里叶级数的MATLAB计算设周期信号x(t)的基本周期为T1,且满足狄里克利条件,则其傅里叶级数的系数可由式2.4计算得到。式2.4重写如下:基本频率为: 对周期信号进行分析时,我们往往只需对其在一个周期内进行分析即可

7、,通常选择主周期(Principle period)。假定x1(t)是x(t)中的主周期,则计算机不能计算无穷多个系数,所以我们假设需要计算的谐波次数为N,则总的系数个数为2N+1个。在确定了时间范围和时间变化的步长即T1和dt之后,对某一个系数,上述系数的积分公式可以近似为: 对于全部需要的2N+1个系数,上面的计算可以按照矩阵运算实现。MATLAB实现系数计算的程序如下:dt = 0.01; T = 2; t = -T/2:dt:T/2; w0 = 2*pi/T;x1 = input(Type in the periodic signal x(t) over one period x1(t

8、)=);N = input(Type in the number N=); k = -N:N; L = 2*N+1; ak = x1*exp(-j*k*w0*t)*dt/T;需要强调的是,时间变量的变化步长dt的大小对傅里叶级数系数的计算精度的影响非常大,dt越小,精度越高,但是,计算机计算所花的时间越长。例题2-1:给定一个周期为T1 = 2s的连续时间周期方波信号,如图所示,其一个周期内的数学表达式为:112-1-2x(t)t0图2.1 周期方波信号 解:首先,我们根据前面所给出的公式,计算该信号的傅里叶级数的系数。 因为:w0 = 2/T1 = ,代入上式得到:在MATLAB命令窗口,依

9、次键入:>> 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.0455i Columns 5 through 8 -0.0000 0 + 0.0637i -0.0000 0 + 0.1061i Columns 9 through 12 -0.0000 0 + 0.3183i 0.5000 0 - 0.3183i Columns 13 thr

10、ough 16 -0.0000 0 - 0.1061i -0.0000 0 - 0.0637i Columns 17 through 20 -0.0000 0 - 0.0455i -0.0000 0 - 0.0354i Column 21 -0.0000 从MATLAB命令窗口,我们得到了该周期信号从到共21个系数。紧接着再键入以下命令:>> subplot(221)>> stem(k,abs(ak),'k.')>> title('The Fourier series coefficients')>> xlabel

11、('Frequency index k')就得到一幅如右图所示的描述与k之间的关系的图形。以上是我们通过手工计算得到的这个周期信号的傅里叶级数表达式及其频谱图,下面给出完成傅里叶级数系数计算的相应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 =

12、0;for m = -1:1 % Periodically extend x1(t) to form a periodic signal x = x + u(t-m*T) - u(t-1-m*T-dt);endw0 = 2*pi/T;N = 10; % The number of the harmonic componentsL = 2*N+1;for k = -N: N; % Evaluate the Fourier series coefficients ak ak(N+1+k) = (1/T)*x1*exp(-j*k*w0*t')*dt;endphi = anglel(ak);

13、% Evaluate the phase of ak执行程序Program2_1后,就完成了信号的傅里叶级数的系数的计算,在命令窗口键入>> ak命令窗口就可以显示傅里叶级数的21个系数:ak = Columns 1 through 4 0.0000 + 0.0000i 0.0000 + 0.0354i 0.0000 - 0.0000i 0.0000 + 0.0455i Columns 5 through 8 0.0000 - 0.0000i 0.0000 + 0.0637i 0.0000 - 0.0000i 0.0000 + 0.1061i Columns 9 through 1

14、2 0.0000 - 0.0000i 0.0000 + 0.3183i 0.5000 0.0000 - 0.3183i Columns 13 through 16 0.0000 + 0.0000i 0.0000 - 0.1061i 0.0000 + 0.0000i 0.0000 - 0.0637i Columns 17 through 20 0.0000 + 0.0000i 0.0000 - 0.0455i 0.0000 + 0.0000i 0.0000 - 0.0354i Column 21 0.0000 - 0.0000i将这里的ak之值同前面手工计算得到的ak比较,可见两者是完全相同的。

15、再次特别提示:程序中,时间变量的变化步长dt的大小对傅里叶级数系数的计算精度的影响非常大,dt越小,精度越高,本程序中的dt之所以选择0.00001就是为了提高计算精度。但是,计算机所花的计算时间越长。在程序Program2_1中添加相应的计算| ak |和绘图语句,就可以绘制出信号的幅度谱和相位谱的谱线图。3.2 周期信号的合成以及Gibbs现象从傅里叶级数的合成式(Synthesis equation)可以看出,用无穷多个不同频率和不同振幅的周期复指数信号可以合成一个周期信号。然而,我们无法用计算机实现对无穷多个周期复指数信号的合成。但是,用有限项来合成却是可行的,在实际应用中,多半也就是

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

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

18、序如下:% 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:1 x = x + u(t-m*T) - u(t-1-m*T-dt); % Periodically extend x1(t) to form a periodic signalendw0 = 2*pi/T;

19、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 series y = y+ak(q)*exp(j*(-(L-1)/2+q-1)*2*pi*t/T);end;subplo

20、t(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'),subplot(222)k=-N:N; stem(k,abs(ak),'k.'), title('The amplitude |ak| of x(t)'), axis(-N,N

21、,-0.1,0.6)subplot(224)stem(k,phi,'r.'), title('The phase phi(k) of x(t)'), axis(-N,N,-2,2), xlabel('Index k')在用这个程序观察吉伯斯现象时,可以反复执行该程序,每次执行时,输入不同之N值,比较所的图形的区别,由此可以观察到吉伯斯现象的特征。4 用MATLAB实现CTFT及其逆变换的计算4.1 用MATLAB实现CTFT的计算MATLAB进行傅里叶变换有两种方法,一种利用符号运算的方法计算,另一种是数值计算,本实验要求采用数值计算的方法来进行

22、傅里叶变换的计算。严格来说,用数值计算的方法计算连续时间信号的傅里叶变换需要有个限定条件,即信号是时限信号(Time limited signal),也就是当时间|t|大于某个给定时间时其值衰减为零或接近于零,这个条件与前面提到的为什么不能用无限多个谐波分量来合成周期信号的道理是一样的。计算机只能处理有限大小和有限数量的数。采用数值计算算法的理论依据是: 若信号为时限信号,当时间间隔T取得足够小时,上式可演变为:上式用MATLAB表示为: X=x*exp(j*t*w)*T其中X为信号x(t)的傅里叶变换,w为频率,T为时间步长。相应的MATLAB程序:T = 0.01; dw = 0.1; %

23、时间和频率变化的步长t = -10:T:10;w = -4*pi:dw:4*pi;X(jw)可以按照下面的矩阵运算来进行:X=x*exp(-j*t*w)*T; %傅里叶变换X1=abs(X); %计算幅度谱phai=angle(X); %计算相位谱为了使计算结果能够直观地表现出来,还需要用绘图函数将时间信号x(t),信号的幅度谱|X(jw)|和相位谱Ð X(jw)分别以图形的方式表现出来,并对图形加以适当的标注。4.2 用MATLAB实现傅里叶逆变换 连续时间傅里叶逆变换可用式2.7进行计算。式2.7重写如下:从定义式可看出,其计算方法与傅里叶变换是一样的,因此可以采用同样的矩阵运算

24、的方法来计算,即 x(t)=X(jw)*exp(jw*t)*dw具体的MATLAB函数如下:t = -5:0.01;5; % 指定信号的时间范围,此范围应根据信号的持续时间确定。dw = 0.1; w = -4*pi:dw:4*pi;X = input(Type in the expression of X(jw);x = X* exp(jw*t)*dw;然后用绘图函数就可以绘制出逆变换得到的时域信号波形图。三、实验内容和要求实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。Q2-1 编写程序Q2_1,绘制下面的信号的波形图: 其中,w

温馨提示

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

评论

0/150

提交评论