实验二连续时间信的频域分析.docx
《实验二连续时间信的频域分析.docx》由会员分享,可在线阅读,更多相关《实验二连续时间信的频域分析.docx(15页珍藏版)》请在冰豆网上搜索。
实验二连续时间信的频域分析
实验二连续时间信号的频域分析
一、实验目的
1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法;
2、观察截短傅里叶级数而产生的“Gibbs现象”,了解其特点以及产生的原因;
3、掌握连续时间傅里叶变换的分析方法及其物理意义;
4、掌握各种典型的连续时间非周期信号的频谱特征以及傅里叶变换的主要性质;
5、学习掌握利用Matlab语言编写计算CTFSCTFT和DTFT勺仿真程序,并能利用这些程序对一些典型信号进行频谱分析,验证CTFTDTFT的若干
重要性质。
基本要求:
掌握并深刻理傅里叶变换的物理意义,掌握信号的傅里叶变换的计算方法,掌握利用Matlab编程完成相关的傅里叶变换的计算。
二、原理说明
1、连续时间周期信号的傅里叶级数CTFS分析
任何一个周期为Ti的正弦周期信号,只要满足狄利克利条件,就可以展开成傅里叶级数。
三角傅里叶级数为:
x(t)a0[akcos(k0t)bksin(k0t)]
k1
其中o—,称为信号的基本频率(Fundamentalfrequency),a。
,ak,和bkTi
分别是信号x(t)的直流分量、余弦分量幅度和正弦分量幅度,Ck、k为合并同频率项之后各正弦谐波分量的幅度和初相位,它们都是频率k0的函数,绘
制出它们与ko之间的图像,称为信号的频谱图(简称“频谱”,Ck-ko图像为幅度谱,k-ko图像为相位谱。
三角形式傅里叶级数表明,如果一个周期信号x(t),满足狄里克利条
件,就可以被看作是由很多不同频率的互为谐波关系(harmonicallyrelated)的正弦信号所组成,其中每一个不同频率的正弦信号称为正弦谐波分量
(Sinusoidcomponent),其幅度(amplitude)为q。
也可以反过来理解三角傅里叶级数:
用无限多个正弦谐波分量可以合成一个任意的非正弦周期信号。
指数形式的傅里叶级数为:
x(t)akejkot
k
其中,ak为指数形式的傅里叶级数的系数,按如下公式计算:
Ti/2
ak丄x(t)ejkotdt
T1%/2
指数形式的傅里叶级数告诉我们,如果一个周期信号x(t),满足狄里克利条件,那么,它就可以被看作是由很多不同频率的互为谐波关系(harmonicallyrelated)的周期复指数信号所组成,其中每一个不同频率的周期复指数信号称为基本频率分量,其复幅度(complexamplitude)为ak。
这里“复幅度(complexamplitude)”指的是ak通常是复数。
上面的傅里叶级数的合成式说明,我们可以用无穷多个不同频率的周期
复指数信号来合成任意一个周期信号。
然而,用计算机(或任何其它设备)合成一个周期信号,显然不可能做到用无限多个谐波来合成,只能取这些有限个谐波分量来近似合成。
假设谐波项数为N,则上面的和成式为:
N
jkot
x(t)ake
kN
显然,N越大,所选项数越多,有限项级数合成的结果越逼近原信号x(t)。
本实验可以比较直观地了解傅里叶级数的物理意义,并观察到级数中各频率
分量对波形的影响包括“Gibbs”现象:
即信号在不连续点附近存在一个幅度大约为9%勺过冲,且所选谐波次数越多,过冲点越向不连续点靠近。
这一现象在观察周期矩形波信号和周期锯齿波信号时可以看得很清楚。
2、连续时间信号傅里叶变换----CTFT
傅里叶变换在信号分析中具有非常重要的意义,它主要是用来进行信号的频谱分析的。
傅里叶变换和其逆变换定义如下:
X(j)x(t)ejtdt
1jt
x(t)X(j)ejd
2
连续时间傅里叶变换主要用来描述连续时间非周期信号的频谱。
按照教
材中的说法,任意非周期信号,如果满足狄里克利条件,那么,它可以被看作是由无穷多个不同频率(这些频率都是非常的接近)的周期复指数信号ej?
t
的线性组合构成的,每个频率所对应的周期复指数信号ej?
t称为频率分量
(frequencycomponent),每个频率的幅度为对应频率的|X(j?
)|之值,其相位为对应频率的X(j?
)的相位。
X(j?
)通常为复函数,可以按照复数的极坐标表示方法表示为:
X(j?
)=|X(j?
)|ej?
刈?
)
其中,IX(j?
)|称为x(t)的幅度谱,而?
X(j?
)贝卩称为x(t)的相位谱。
给定一个连续时间非周期信号x(t),它的频谱也是连续且非周期的。
对于连续时间周期信号,也可以用傅里叶变换来表示其频谱,其特点是,连续时间周期信号的傅里叶变换由冲激序列构成的,是离散的一一这是连续时间
周期信号的傅里叶变换的基本特征。
傅里叶级数的Matlab计算
设周期信号x(t)的基本周期为Ti,且满足狄里克利条件,则其傅里叶级
2
0—
T1
数的系数可由式计算得到。
式重写如下:
基本频率为:
对周期信号进行分析时,我们往往只需对其在一个周期内进行分析即可,通常选择主周期(Principleperiod)。
假定刘⑴是x(t)中的主周期,贝S
计算机不能计算无穷多个系数,所以我们假设需要计算的谐波次数为N,则总的系数个数为2N+1个。
在确定了时间范围和时间变化的步长即T1和dt之后,对某一个系数,上述系数的积分公式可以近似为:
T1/2
ak1x1(t)ejk0tdtx(tn)ejk0tdt/T1
T1T1/2n
对于全部需要的2N+1个系数,上面的计算可以按照矩阵运算实现
Matlab实现系数计算的程序如下:
dt=;
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越小,精度越高,但是,计算机计算所花的时间越长。
5、用Matlab实现CTFT及其逆变换的计算
用Matlab实现CTFT的计算
Matlab进行傅里叶变换有两种方法,一种利用符号运算的方法计算,另一种是数值计算,本实验要求采用数值计算的方法来进行傅里叶变换的计算。
严格来说,用数值计算的方法计算连续时间信号的傅里叶变换需要有个限定条件,即信号是时限信号(Timelimitedsignal),也就是当时间|t|大于某个给定时间时其值衰减为零或接近于零,这个条件与前面提到的为什么不能用无限多个谐波分量来合成周期信号的道理是一样的。
计算机只能处理有限大小和有限数量的数。
采用数值计算算法的理论依据是:
若信号为时限信号,当时间间隔T取得足够小时,上式可演变为:
上式用Matlab表示为:
X=x*exp(j*t'*w)*T
其中X为信号x(t)的傅里叶变换,w为频率Q,T为时间步长。
相应的Matlab程序:
T=;dw=;%时间和频率变化的步长
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?
)分别以图形的方式表现出来,并对图形加以适当的标注。
四、实验步骤及内容
6、编写程序,绘制下面的信号的波形图:
其中,?
o=n,要求将一个图形窗口分割成四个子图,分别绘制cos(?
ot)、cos(3?
0t)、cos(5?
0t)和x(t)的波形图,给图形加title,网格线和x坐标标签。
w0=*pi;
%题目要求,定义wo
x1=cos(w0*t);
%输入信号x1
subplot(221);
%将信号1的图形放在两行两列中的第一个
plot(t,x1),gridon;
%输出信号1的图形,并加网格
x2=cos(3*w0*t);
%输入信号x2
subplot(222);
%将信号2的图形放在两行两列中的第—个
plot(t,x2),gridon;
%输出信号2的图形,并加网格
x3=cos(5*w0*t);
%输入信号3
subplot(223);
%将信号3的图形放在两行两列中的第二个
plot(t,x3),gridon;
%输出信号3的图形,并加网格
ak=0;
%设傅里叶系数的初始值为0
forn=1:
9
%循环计算9次傅里叶系数
ak=ak+(-1).A(n+1).*(1/(2*n-1)).*cos((2*n-1).*wO*t);
附算傅里叶系数
subplot(224);
%将该图形放在两行两列中的第四个
plot(t,ak),gridon;
%输入该图形,以t为横坐标,ak为纵坐
标,并加网格
7、给定如下两个周期信号:
end
X2(t)
t
Xi(t)和X2(t)
编写程序,计算川⑴和X2(t)的傅里叶级数的系数—分别写出ak从-10到
10共21个系数;仿照程序Program2_2,计算并绘制出原始信号・
的波形图,画出用有限项级数合成的yi(t)和y2(t)的波形图,以及刘⑴和X2(t)的幅度频谱和相位频谱的谱线图。
反复执行该程序,输入不同的N值,
观察合成的信号波形中,是否会产生Gibbs现象?
为什么?
clear,
closeall
T=2;dt=;%
定义周期T=2,时间间隔dt为,
t二-T/2:
dt:
T/2;
%时间轴的起始和截止
x1=u(t+-u;
%输入信号1
x=0;
%给x附初值为0
t1=-2*T:
dt:
2*T;
淀义t1时间轴的起始和截止
form=-2:
2
x=x+u(t1+*T)-u*T);
%定期延长x1(t)形成一个周期性的信号
end
subplot(221)
%将该图形放在两行两列的第一个
plot(t1,x)
%以t1为横坐标,x为纵坐标画图
axis([-2*T,2*T,,])
%图形的横坐标从-2T到2T,纵坐标从
到
title('x(t)')
%命名x(t)
xlabel('Timet')
%由命名Timet
w0=2*pi/T;
%定义频率w0
N=10;
%皆波组件的数量为10
L=2*N+1;
fork=-N:
N;
%输入信
x1=(1-t).*(u(t)-u(t-1))+(t+1).*(u(t+1)-u(t));x=0;号x1form=-1:
1
+(1-t+2*m).*(u(t-2*m)-u(t-1-2*m))+(t+1-2*m).*(u(t+1-2*m)-u(t-2*m)
);%使信号周期化
end
w0=2*pi/T;%定义w0
N=input('TypeinthenumberoftheharmoniccomponentsN=:
');
%输入N值
L=2*N+1;%定义L
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;
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,,]),
%以t为横坐标x为纵坐标画图,并命名和确定横纵轴的长度subplot(223),
plot(t,y),title('Thesynthesissignaly(t)'),axis([-2,2,,]),
xlabel('Timet'),
subplot(222)
k=-N:
N;stem(k,abs(ak),'k.'),title('Theamplitude|ak|ofx(t)'),axis([-N,N,,])
subplot(224)
stem(k,phi,'r.'),title('Thephasephi(k)ofx(t)'),axis([-N,N,-2,2]),xlabel('Indexk')
clear,closeall
y=y+ak(q)*exp(j*(-(L-1)/2+q-1)*2*pi*t/T);
号y从有限傅里叶级数(t)
T=2;dt二;t二-T/2:
dt:
T/2;
w=*pi;
N=10;
L=2*N+1;
x仁cos((pi/2)*t).*(u(t+1)-u(t-1));
subplot(241)
位
plot(t,x1)
图
fork=-N:
1:
N
ak(N+1+k)=(1/T)*x1*exp(-j*k*w*t')*dt;
end
phi=angle(ak);
y=0;
forq=1:
L;
%定义周期,时间,时间间隔
%定义频率w
%输入谐波组件的数量
%
%输入信号x1
%将图形放在两行两列的第一
%以t为横坐标,x1为纵坐标画
%
%+算傅里叶级数
%+算ak的阶段值
%
%
%分析周期性信
end
%将图形放在两行两列的第二
subplot(242)
位
plot(t,y)
%以t为横坐标,y为纵坐标画
subplot(243),
位
%将图形放在两行两列的第三
k=-N:
N;stem(k,abs(ak),'k.')
%作图
subplot(244)
位
stem(k,phi,'r.')
%将图形放在两行两列的第四
%作图
t=-2:
:
2;%定义时间轴长度
w=-4*pi:
:
4*pi;
淀义频率w的长度及间隔
X=x1*exp(-j*t'*w)*T;
%x1的傅里叶变换
x1=(t+2).*(u(t+2)-u(t+1))+1.*(u(t+1)-u(t-1))+(-t+2).*(u(t-1)-u(t-
2))%输入信号x1
X2=abs(X);phai=angle(X);x3=real(X);x4=imag(X);subplot(231)plot(w,X2);
title('幅度频谱')subplot(232)plot(w,phai)title('相位谱')
%计算幅度谱
%计算相位谱
%X的实部信号赋给信号3
%X的虚部信号赋给信号4
%
%
%命名为'幅度频谱'
%
%
%命名为'相位谱'
subplot(233)
%
plot(t,x1)
%
title('x1波形')
%命名为('x1波形')
axis([-2,2,-2,2]);
%限定横纵坐标
subplot(234)
%
plot(w,X)
%
title('傅里叶变换')
%命名为‘傅里叶变换'
subplot(235)
%
plot(w,x3)
%
title('实部')
%命名为‘实部'
subplot(236)
%
plot(w,x4)
%
title('虚部')
%命名为‘虚部'
9、从信号分解的角度,
谈谈你对傅里叶级数、傅里叶变换及其物理意义和
信号频谱概念的理解。
任意连续测量的时序或信号都可以表示为由无限个不同频率的正弦信号叠加而成。
傅立叶变换算法则利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位。
傅立叶变换将原来难以处理的时域信号转换成了易于分析的频域信号,可以利用一些工具对这些频域信号进行处理、加工。
最后还可以利用傅立叶反变换将这些频域信号转换成时域信号。
傅里叶级数有三角函数形式。
对于信号频谱是把一个信号分解为正弦信号的集合,得到其正弦信号幅值随角频率变化的分布,称为该信号的频谱。