实验二Word文档格式.docx
- 文档编号:20349646
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:15
- 大小:124.08KB
实验二Word文档格式.docx
《实验二Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验二Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
指数形式的傅里叶级数为:
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的连续时间周期方波信号,如图所示,其一个周期内的数学表达式为:
解:
首先,我们根据前面所给出的公式,计算该信号的傅里叶级数的系数。
因为:
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
dt=0.00001;
t=-2:
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;
phi=anglel(ak);
%Evaluatethephaseofak
执行程序Program2_1后,就完成了信号的傅里叶级数的系数的计算,在命令窗口键入
ak
命令窗口就可以显示傅里叶级数的21个系数:
0.0000+0.0000i0.0000+0.0354i0.0000-0.0000i0.0000+0.0455i
0.0000-0.0000i0.0000+0.0637i0.0000-0.0000i0.0000+0.1061i
0.0000-0.0000i0.0000+0.3183i0.50000.0000-0.3183i
0.0000+0.0000i0.0000-0.1061i0.0000+0.0000i0.0000-0.0637i
0.0000+0.0000i0.0000-0.0455i0.0000+0.0000i0.0000-0.0354i
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;
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
x1=u(t)-u(t-1-dt);
1
%Periodicallyextendx1(t)toformaperiodicsignal
N=input('
TypeinthenumberoftheharmoniccomponentsN=:
'
);
1:
phi=angle(ak);
y=0;
forq=1:
%Synthesiztheperiodicsignaly(t)fromthefiniteFourierseries
y=y+ak(q)*exp(j*(-(L-1)/2+q-1)*2*pi*t/T);
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:
),title('
Theamplitude|ak|ofx(t)'
),axis([-N,N,-0.1,0.6])
subplot(224)
stem(k,phi,'
r.'
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:
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:
X=input(‘TypeintheexpressionofX(jw)’);
x=X*exp(jw’*t)*dw;
然后用绘图函数就可以绘制出逆变换得到的时域信号波形图。
三、实验内容和要求
实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。
实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。
并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。
实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。
Q2-1编写程序Q2_1,绘制下面的信号的波形图:
其中,0=0.5π,要求将一个图形窗口分割成四个子图,分别绘制cos(0t)、cos(30t)、cos(50t)和x(t)的波形图,给图形加title,网格线和x坐标标签,并且程序能够接受从键盘输入的和式中的项数。
抄写程序Q2_1如下:
dt=0.01;
t=-2:
0.01:
x=1/n.*sin(n*pi/2)*cos(n*0.5*pi*t);
n=input('
输入n的值'
forn=1:
n;
x=x+1/n.*sin(n*pi/2)*cos(n*0.5*pi*t);
subplot(221),plot(t,x);
gridon;
title('
Q1-1'
subplot(222),plot(t,cos(0.5*pi*t));
Q1-2'
subplot(223),plot(t,cos(3*0.5*pi*t));
Q1-3'
subplot(224),plot(t,cos(5*0.5*pi*t));
Q1-4'
执行程序Q2_1所得到的图形如下:
Q2-2给程序Program2_1增加适当的语句,并以Q2_2存盘,使之能够计算例题2-1中的周期方波信号的傅里叶级数的系数,并绘制出信号的幅度谱和相位谱的谱线图。
通过增加适当的语句修改Program2_1而成的程序Q2_2抄写如下:
N=input('
subplot(212)
k=-N:
subplot(212)
执行程序Q2_2得到的图形
此处粘帖执行程序Q2_2所得到的图形
2.连续时间非周期信号的傅里叶变换
给定两个时限信号:
Q2-3利用单位阶跃信号u(t),将x1(t)表示成一个数学闭式表达式,并手工绘制x1(t)和x2(t)的时域波形图。
信号x1(t)的闭式数学表达式为:
x1(t)=:
手工绘制的x1(t)的时域波形图手工绘制的x2(t)的时域波形图
四、实验报告要求
1、按要求完整书写你所编写的全部MATLAB程序
2、详细记录实验过程中的有关信号波形图(存于自带的U盘中),图形要有明确的标题。
全部的MATLAB图形应该用打印机打印,然后贴在本实验报告中的相应位置,禁止复印件。
3、实事求是地回答相关问题,严禁抄袭。
本实验完成时间:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验