信号与系统实验2.docx

上传人:b****2 文档编号:3135354 上传时间:2023-05-05 格式:DOCX 页数:18 大小:218.56KB
下载 相关 举报
信号与系统实验2.docx_第1页
第1页 / 共18页
信号与系统实验2.docx_第2页
第2页 / 共18页
信号与系统实验2.docx_第3页
第3页 / 共18页
信号与系统实验2.docx_第4页
第4页 / 共18页
信号与系统实验2.docx_第5页
第5页 / 共18页
信号与系统实验2.docx_第6页
第6页 / 共18页
信号与系统实验2.docx_第7页
第7页 / 共18页
信号与系统实验2.docx_第8页
第8页 / 共18页
信号与系统实验2.docx_第9页
第9页 / 共18页
信号与系统实验2.docx_第10页
第10页 / 共18页
信号与系统实验2.docx_第11页
第11页 / 共18页
信号与系统实验2.docx_第12页
第12页 / 共18页
信号与系统实验2.docx_第13页
第13页 / 共18页
信号与系统实验2.docx_第14页
第14页 / 共18页
信号与系统实验2.docx_第15页
第15页 / 共18页
信号与系统实验2.docx_第16页
第16页 / 共18页
信号与系统实验2.docx_第17页
第17页 / 共18页
信号与系统实验2.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

信号与系统实验2.docx

《信号与系统实验2.docx》由会员分享,可在线阅读,更多相关《信号与系统实验2.docx(18页珍藏版)》请在冰点文库上搜索。

信号与系统实验2.docx

信号与系统实验2

实验二连续时间信号的频域分析

一、实验目的

1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法;

2、观察截短傅里叶级数而产生的“Gibbs现象”,了解其特点以及产生的原因;

3、掌握连续时间傅里叶变换的分析方法及其物理意义;

4、掌握各种典型的连续时间非周期信号的频谱特征以及傅里叶变换的主要性质;

5、学习掌握利用MATLAB语言编写计算CTFS、CTFT和DTFT的仿真程序,并能利用这些程序对一些典型信号进行频谱分析,验证CTFT、DTFT的若干重要性质。

基本要求:

掌握并深刻理傅里叶变换的物理意义,掌握信号的傅里叶变换的计算方法,掌握利用MATLAB编程完成相关的傅里叶变换的计算。

二、实验原理及方法

1、连续时间周期信号的傅里叶级数CTFS分析

任何一个周期为T1的正弦周期信号,只要满足狄利克利条件,就可以展开成傅里叶级数。

其中三角傅里叶级数为:

2.1

或:

2.2

其中

,称为信号的基本频率(Fundamentalfrequency),

分别是信号

的直流分量、余弦分量幅度和正弦分量幅度,

为合并同频率项之后各正弦谐波分量的幅度和初相位,它们都是频率

的函数,绘制出它们与

之间的图像,称为信号的频谱图(简称“频谱”),

图像为幅度谱,

图像为相位谱。

三角形式傅里叶级数表明,如果一个周期信号x(t),满足狄里克利条件,那么,它就可以被看作是由很多不同频率的互为谐波关系(harmonicallyrelated)的正弦信号所组成,其中每一个不同频率的正弦信号称为正弦谐波分量(Sinusoidcomponent),其幅度(amplitude)为

也可以反过来理解三角傅里叶级数:

用无限多个正弦谐波分量可以合成一个任意的非正弦周期信号。

指数形式的傅里叶级数为:

2.3

其中,

为指数形式的傅里叶级数的系数,按如下公式计算:

2.4

指数形式的傅里叶级数告诉我们,如果一个周期信号x(t),满足狄里克利条件,那么,它就可以被看作是由很多不同频率的互为谐波关系(harmonicallyrelated)的周期复指数信号所组成,其中每一个不同频率的周期复指数信号称为基本频率分量,其复幅度(complexamplitude)为

这里“复幅度(complexamplitude)”指的是

通常是复数。

上面的傅里叶级数的合成式说明,我们可以用无穷多个不同频率的周期复指数信号来合成任意一个周期信号。

然而,用计算机(或任何其它设备)合成一个周期信号,显然不可能做到用无限多个谐波来合成,只能取这些有限个谐波分量来近似合成。

假设谐波项数为N,则上面的和成式为:

2.5

显然,N越大,所选项数越多,有限项级数合成的结果越逼近原信号x(t)。

本实验可以比较直观地了解傅里叶级数的物理意义,并观察到级数中各频率分量对波形的影响包括“Gibbs”现象:

即信号在不连续点附近存在一个幅度大约为9%的过冲,且所选谐波次数越多,过冲点越向不连续点靠近。

这一现象在观察周期矩形波信号和周期锯齿波信号时可以看得很清楚。

2、连续时间信号傅里叶变换----CTFT

傅里叶变换在信号分析中具有非常重要的意义,它主要是用来进行信号的频谱分析的。

傅里叶变换和其逆变换定义如下:

2.6

2.7

连续时间傅里叶变换主要用来描述连续时间非周期信号的频谱。

按照教材中的说法,任意非周期信号,如果满足狄里克利条件,那么,它可以被看作是由无穷多个不同频率(这些频率都是非常的接近)的周期复指数信号ejt的线性组合构成的,每个频率所对应的周期复指数信号ejt称为频率分量(frequencycomponent),其相对幅度为对应频率的|X(j)|之值,其相位为对应频率的X(j)的相位。

X(j)通常为关于的复函数,可以按照复数的极坐标表示方法表示为:

X(j)=|X(j)|ejX(j)

其中,|X(j)|称为x(t)的幅度谱,而X(j)则称为x(t)的相位谱。

给定一个连续时间非周期信号x(t),它的频谱也是连续且非周期的。

对于连续时间周期信号,也可以用傅里变换来表示其频谱,其特点是,连续时间周期信号的傅里叶变换时有冲激序列构成的,是离散的——这是连续时间周期信号的傅里叶变换的基本特征。

3、连续周期信号的傅里叶级数CTFS的MATLAB实现

3.1傅里叶级数的MATLAB计算

设周期信号x(t)的基本周期为T1,且满足狄里克利条件,则其傅里叶级数的系数可由式2.4计算得到。

式2.4重写如下:

基本频率为:

对周期信号进行分析时,我们往往只需对其在一个周期内进行分析即可,通常选择主周期(Principleperiod)。

假定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(‘Typeintheperiodicsignalx(t)overoneperiodx1(t)=’);

N=input(‘TypeinthenumberN=’);

k=-N:

N;L=2*N+1;

ak=x1*exp(-j*k*w0*t’)*dt/T;

需要强调的是,时间变量的变化步长dt的大小对傅里叶级数系数的计算精度的影响非常大,dt越小,精度越高,但是,计算机计算所花的时间越长。

例题2-1:

给定一个周期为T1=2s的连续时间周期方波信号,如图所示,其一个周期内的数学表达式为:

图2.1周期方波信号

解:

首先,我们根据前面所给出的公式,计算该信号的傅里叶级数的系数。

因为:

0=2π/T1=π,代入上式得到:

在MATLAB命令窗口,依次键入:

>>k=-10:

10;

>>ak=((-j).^k).*(sin((k+eps)*pi/2)./((k+eps)*pi))%Theexpressionofak

ak=

Columns1through4

-0.00000+0.0354i-0.00000+0.0455i

Columns5through8

-0.00000+0.0637i-0.00000+0.1061i

Columns9through12

-0.00000+0.3183i0.50000-0.3183i

Columns13through16

-0.00000-0.1061i-0.00000-0.0637i

Columns17through20

-0.00000-0.0455i-0.00000-0.0354i

Column21

-0.0000

从MATLAB命令窗口,我们得到了该周期信号从

共21个系数。

紧接着再键入以下命令:

>>subplot(221)

>>stem(k,abs(ak),'k.')

>>title('TheFourierseriescoefficients')

>>xlabel('Frequencyindexk')

就得到一幅如右图所示的描述

与k之间的关系的图形。

以上是我们通过手工计算得到的这个周期信号的傅里叶级数表达式及其频谱图,下面给出完成傅里叶级数系数计算的相应MATLAB范例程序。

%Program2_1

%ThisprogramisusedtoevaluatetheFourierseriescoefficientsakofaperiodicsquarewave

clear,closeall

T=2;dt=0.00001;t=-2:

dt:

2;

x1=u(t)-u(t-1-dt);x=0;

form=-1:

1%Periodicallyextendx1(t)toformaperiodicsignal

x=x+u(t-m*T)-u(t-1-m*T-dt);

end

w0=2*pi/T;

N=10;%Thenumberoftheharmoniccomponents

L=2*N+1;

fork=-N:

N;%EvaluatetheFourierseriescoefficientsak

ak(N+1+k)=(1/T)*x1*exp(-j*k*w0*t')*dt;

end

phi=anglel(ak);%Evaluatethephaseofak

执行程序Program2_1后,就完成了信号的傅里叶级数的系数的计算,在命令窗口键入

>>ak

命令窗口就可以显示傅里叶级数的21个系数:

ak=

Columns1through4

0.0000+0.0000i0.0000+0.0354i0.0000-0.0000i0.0000+0.0455i

Columns5through8

0.0000-0.0000i0.0000+0.0637i0.0000-0.0000i0.0000+0.1061i

Columns9through12

0.0000-0.0000i0.0000+0.3183i0.50000.0000-0.3183i

Columns13through16

0.0000+0.0000i0.0000-0.1061i0.0000+0.0000i0.0000-0.0637i

Columns17through20

0.0000+0.0000i0.0000-0.0455i0.0000+0.0000i0.0000-0.0354i

Column21

0.0000-0.0000i

将这里的ak之值同前面手工计算得到的ak比较,可见两者是完全相同的。

再次特别提示:

程序中,时间变量的变化步长dt的大小对傅里叶级数系数的计算精度的影响非常大,dt越小,精度越高,本程序中的dt之所以选择0.00001就是为了提高计算精度。

但是,计算机所花的计算时间越长。

在程序Program2_1中添加相应的计算|ak|和绘图语句,就可以绘制出信号的幅度谱和相位谱的谱线图。

3.2周期信号的合成以及Gibbs现象

从傅里叶级数的合成式(Synthesisequation)

可以看出,用无穷多个不同频率和不同振幅的周期复指数信号可以合成一个周期信号。

然而,我们无法用计算机实现对无穷多个周期复指数信号的合成。

但是,用有限项来合成却是可行的,在实际应用中,多半也就是这么做的。

然而,这样做的一个必然结果,就是引入了误差。

如果一个周期信号在一个周期有内断点存在,那么,引入的误差将除了产生纹波之外,还将在断点处产生幅度大约为9%的过冲(Overshot),这种现象被称为吉伯斯现象(Gibbsphenomenon)。

为了能够观察到合成信号与原信号的不同以及Gibbs现象,我们可以利用前面已经计算出的傅里叶级数的系数,计算出截短的傅里叶级数:

这个计算可用L=2N+1次循环来完成:

其中r作为循环次数,x2在循环之前应先清零。

完成这一计算的MATLAB程序为:

x2=0;L=2*N+1;

forr=1:

L;

x2=x2+ak(r)*exp(j*(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中即可,范例程序如下:

%Program2_2

%ThisprogramisusedtocomputetheFourierseriescoefficientsakofaperiodicsquarewave

clear,closeall

T=2;dt=0.00001;t=-2:

dt:

2;

x1=u(t)-u(t-1-dt);x=0;

form=-1:

1

x=x+u(t-m*T)-u(t-1-m*T-dt);%Periodicallyextendx1(t)toformaperiodicsignal

end

w0=2*pi/T;

N=10;

L=2*N+1;

fork=-N:

1:

N;

ak(N+1+k)=(1/T)*x1*exp(-j*k*w0*t')*dt;

end

phi=angle(ak);

y=0;

forq=1:

L;%Synthesiztheperiodicsignaly(t)fromthefiniteFourierseries

y=y+ak(q)*exp(j*(-(L-1)/2+q-1)*2*pi*t/T);

end;

subplot(221),

plot(t,x),title('Theoriginalsignalx(t)'),axis([-2,2,-0.2,1.2]),

subplot(223),

plot(t,y),title('Thesynthesissignaly(t)'),axis([-2,2,-0.2,1.2]),xlabel('Timet'),

subplot(222)

k=-N:

N;stem(k,abs(ak),'k.'),title('Theamplitude|ak|ofx(t)'),axis([-N,N,-0.1,0.6])

subplot(224)

stem(k,phi,'r.'),title('Thephasephi(k)ofx(t)'),axis([-N,N,-2,2]),xlabel('Indexk')

在用这个程序观察吉伯斯现象时,可以反复执行该程序,每次执行时,输入不同之N值,比较所的图形的区别,由此可以观察到吉伯斯现象的特征。

4用MATLAB实现CTFT及其逆变换的计算

4.1用MATLAB实现CTFT的计算

MATLAB进行傅里叶变换有两种方法,一种利用符号运算的方法计算,另一种是数值计算,本实验要求采用数值计算的方法来进行傅里叶变换的计算。

严格来说,用数值计算的方法计算连续时间信号的傅里叶变换需要有个限定条件,即信号是时限信号(Timelimitedsignal),也就是当时间|t|大于某个给定时间时其值衰减为零或接近于零,这个条件与前面提到的为什么不能用无限多个谐波分量来合成周期信号的道理是一样的。

计算机只能处理有限大小和有限数量的数。

采用数值计算算法的理论依据是:

若信号为时限信号,当时间间隔T取得足够小时,上式可演变为:

上式用MATLAB表示为:

X=x*exp(j*t’*w)*T

其中X为信号x(t)的傅里叶变换,w为频率Ω,T为时间步长。

相应的MATLAB程序:

T=0.01;dw=0.1;%时间和频率变化的步长

t=-10:

T:

10;

w=-4*pi:

dw:

4*pi;

X(j)可以按照下面的矩阵运算来进行:

X=x*exp(-j*t’*)*T;%傅里叶变换

X1=abs(X);%计算幅度谱

phai=angle(X);%计算相位谱

为了使计算结果能够直观地表现出来,还需要用绘图函数将时间信号x(t),信号的幅度谱|X(j)|和相位谱X(j)分别以图形的方式表现出来,并对图形加以适当的标注。

4.2用MATLAB实现傅里叶逆变换

连续时间傅里叶逆变换可用式2.7进行计算。

式2.7重写如下:

从定义式可看出,其计算方法与傅里叶变换是一样的,因此可以采用同样的矩阵运算的方法来计算,即

x(t)=X(j)*exp(j’*t)*d

具体的MATLAB函数如下:

t=-5:

0.01;5;%指定信号的时间范围,此范围应根据信号的持续时间确定。

dw=0.1;w=-4*pi:

d:

4*pi;

X=input(‘TypeintheexpressionofX(jw)’);

x=X*exp(jw’*t)*dw;

然后用绘图函数就可以绘制出逆变换得到的时域信号波形图。

三、实验内容和要求

实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。

实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。

并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。

实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。

Q2-1给程序Program2_1增加适当的语句,并以Q2_1存盘,使之能够计算例题2-1中的周期方波信号的傅里叶级数的系数,并绘制出信号的幅度谱和相位谱的谱线图。

通过增加适当的语句修改Program2_1而成的程序Q2_1抄写如下:

 

执行程序Q2_1得到的图形

此处粘帖执行程序Q2_1所得到的图形

 

Q2-2修改程序Program2_2,每次执行该程序时,输入不同的N值,保存为Q2_2,并观察所合成的周期方波信号。

不通N值时的图形:

 

通过观察,你了解的吉伯斯现象的特点是:

 

Q2-3算x1(t)的傅里叶级数的系数。

给出程序,保存为Q2_3

给定x1(t)如下周期信号:

计算x1(t)的傅里叶级数的系数的程序如下:

 

执行程序Q2_3得到的图形

此处粘帖执行程序Q2_3所得到的图形

 

Q2-4仿照程序Program2_2,编写程序Q2_4,计算并绘制出原始信号x1(t)的波形图,用有限项级数合成的y1(t)的波形图,以及x1(t)的幅度频谱和相位频谱的谱线图。

编写程序Q2_4如下:

 

执行程序Q2_4,输入N=10所得到的图形如下:

 

反复执行程序Q2_4,输入不同的N值,观察合成的信号波形中,是否会产生Gibbs现象?

为什么?

答:

 

2.连续时间非周期信号的傅里叶变换

给定两个时限信号:

Q2-5利用单位阶跃信号u(t),将x1(t)表示成一个数学闭式表达式,并手工绘制x1(t)和x2(t)的时域波形图。

信号x1(t)的闭式数学表达式为:

x1(t)=:

手工绘制的x1(t)的时域波形图手工绘制的x2(t)的时域波形图

 

Q2-6编写MATLAB程序Q2_6,绘制出信号x1(t)、x2(t)的时域波形、幅度谱、相位谱。

程序Q2_6抄写如下

 

执行程序,得到信号x1(t)、x2(t)时域波形、幅度谱和相位谱分别如下:

 

Q2-7验证调制定理;

设信号

,载波信号为

修改程序Q2_6,并以程序Q2_7为文件名存盘,要求绘出信号和载波以及已调信号的时域波形、信号载波以及已调信号的频谱;

编写的程序Q2_7如下:

 

各时域波形:

 

各频谱图形:

 

四、实验报告要求

1、按要求完整书写你所编写的全部MATLAB程序

2、实事求是地回答相关问题,严禁抄袭。

 

本实验完成时间:

年月日

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2