信 号 与 系 统
实 实验名称:连续时间信号的频域分析
指导老师:
班 级:
学 号:姓 名:
验 报 告
实验二
苏永新
09通信工程1班
2009963924 王维
实验二 连续时间信号的频域分析
一、实验目的
1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法; 2、观察截短傅里叶级数而产生的“Gibbs现象”,了解其特点以及产生的原因; 3、掌握连续时间傅里叶变换的分析方法及其物理意义;
4、掌握各种典型的连续时间非周期信号的频谱特征以及傅里叶变换的主要性质; 5、学习掌握利用MATLAB语言编写计算CTFS、CTFT和DTFT的仿真程序,并能利用这些程序对一些典型信号进行频谱分析,验证CTFT、DTFT的若干重要性质。
基本要求:掌握并深刻理傅里叶变换的物理意义,掌握信号的傅里叶变换的计算方法,掌握利用MATLAB编程完成相关的傅里叶变换的计算。
二、实验原理及方法
1、连续时间周期信号的傅里叶级数CTFS分析
任何一个周期为T1的正弦周期信号,只要满足狄利克利条件,就可以展开成傅里叶级数。
其中三角傅里叶级数为:
x(t)?a0??[akcos(k?0t)?bksin(k?0t)] 2.1
k?1??或: x(t)?a0??ck?1kcos(k?0t??k) 2.2
其中?0?2?,称为信号的基本频率(Fundamental frequency),a0,ak,和bk分别是信T1号x(t)的直流分量、余弦分量幅度和正弦分量幅度,ck、?k为合并同频率项之后各正弦谐波分量的幅度和初相位,它们都是频率k?0的函数,绘制出它们与k?0之间的图像,称为信号的频谱图(简称“频谱”),ck-k?0图像为幅度谱,?k-k?0图像为相位谱。
三角形式傅里叶级数表明,如果一个周期信号x(t),满足狄里克利条件,那么,它就可以被看作是由很多不同频率的互为谐波关系(harmonically related)的正弦信号所组成,其中每一个不同频率的正弦信号称为正弦谐波分量 (Sinusoid component),其幅度(amplitude)为ck。也可以反过来理解三角傅里叶级数:用无限多个正弦谐波分量可以合成一个任意的非正弦周期信号。
指数形式的傅里叶级数为:
x(t)?k????aek?jk?0t 2.3
其中,ak为指数形式的傅里叶级数的系数,按如下公式计算:
1 ak?T1T1/2?T1/2?x(t)e?jk?0tdt 2.4
指数形式的傅里叶级数告诉我们,如果一个周期信号x(t),满足狄里克利条件,那么,它就可以被看作是由很多不同频率的互为谐波关系(harmonically related)的周期复指数信号所组成,其中每一个不同频率的周期复指数信号称为基本频率分量,其复幅度(complex amplitude)为ak。这里“复幅度(complex amplitude)”指的是ak通常是复数。
上面的傅里叶级数的合成式说明,我们可以用无穷多个不同频率的周期复指数信号来合成任意一个周期信号。然而,用计算机(或任何其它设备)合成一个周期信号,显然不可能做到用无限多个谐波来合成,只能取这些有限个谐波分量来近似合成。
假设谐波项数为N,则上面的和成式为:
x(t)?k??N?aekNjk?0t 2.5
显然,N越大,所选项数越多,有限项级数合成的结果越逼近原信号x(t)。本实验可以比较直观地了解傅里叶级数的物理意义,并观察到级数中各频率分量对波形的影响包括“Gibbs”现象:即信号在不连续点附近存在一个幅度大约为9%的过冲,且所选谐波次数越多,过冲点越向不连续点靠近。这一现象在观察周期矩形波信号和周期锯齿波信号时可以看得很清楚。
三、实验内容和要求
实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。 实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。
Q2-1 编写程序Q2_1,绘制下面的信号的波形图:
?111n?(0t)?cos3(?0t)?cos5(?0t)????sin()cosn( x(t)?cos??0t)
35n2n?1其中,?0 = 0.5π,要求将一个图形窗口分割成四个子图,分别绘制cos(?0t)、cos(3?0t)、cos(5?0t)
和x(t) 的波形图,给图形加title,网格线和x坐标标签,并且程序能够接受从键盘输入的和式中的项数。
抄写程序Q2_1如下:
clear, close all
dt = 0.00001; t = -2:dt:4; w0=0.5*pi; x1=cos(w0.*t); x2=cos(3*w0.*t); x3=cos(5*w0.*t);
N=input ( 'Type in the number of the harmonic components N ='); x=0;
for q=1:N;
x=x+(sin(q*(pi/2)).*cos(q*w0*t))/q; end
subplot(221), plot(t,x1)
axis([-2 4 -2 2]); grid on,
title('signal cos(w0.*t)'), subplot(222), plot(t,x2)
axis([-2 4 -2 2]); grid on
title('signal cos(3*w0.*t))'), subplot(223) plot(t,x3)
axis([-2 4 -2 2]); grid on
title('signal cos(5*w0.*t))'), xlabel ('time t (sec)') subplot(224) plot(t,x)
axis([-2 4 -2 2]); grid on
title('signal x(t)'), xlabel ('time t (sec)')
执行程序Q2_1所得到的图形如下:
signal cos(w0.*t)210-1-2-2024210-1-2-2signal cos(3*w0.*t))0signal x(t)24signal cos(5*w0.*t))210-1-2-202time t (sec)4210-1-2-202time t (sec)4
Q2-2 给程序Program2_1增加适当的语句,并以Q2_2存盘,使之能够计算例题2-1中的
周期方波信号的傅里叶级数的系数,并绘制出信号的幅度谱和相位谱的谱线图。
通过增加适当的语句修改Program2_1而成的程序Q2_2抄写如下:
clear,close all
T = 2; dt = 0.00001; t = -2:dt:2; x1 = u(t+0.2)-u(t-0.2-1-dt); x = 0; for m = -1:1
x = x + u(t+0.2-m*T) - u(t-0.2-1-m*T-dt); end w0 = 2*pi/T; N = 10; L = 2*N+1; for k = -N:1:N;
ak(N+1+k) = (1/T)*x1*exp(-j*k*w0*t')*dt; end
phi = angle(ak); y=0; for q = 1:L;
y = y+ak(q)*exp(j*(-(L-1)/2+q-1)*2*pi*t/T); end;
subplot(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,-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')
执行程序Q2_2得到的图形
The original signal x(t)10.40.50.20-1012-10-50510The amplitude |ak| of x(t)0-2The synthesis signal y(t)2110.50-10-2-10Time t12-2-10The phase phi(k) of x(t)-50Index k510
Q2-3 反复执行程序Program2_2,每次执行该程序时,输入不同的N值,并观察所合成的
周期方波信号。通过观察,你了解的吉伯斯现象的特点是:
N=30
The original signal x(t)10.40.50.20-1012-20020The amplitude |ak| of x(t)0-2The synthesis signal y(t)2110.50-10-2-10Time t12-2The phase phi(k) of x(t)-200Index k20
N=100
The original signal x(t)10.40.50.20-1012-100The amplitude |ak| of x(t)0-2-50050100The synthesis signal y(t)2110.50-10-2-10Time t12-2-100The phase phi(k) of x(t)-500Index k50100
吉伯斯现象的特点是: 随着
N 增加,部分和的起伏就向不连续点压缩,
但是对任何有限的N 值,起伏的峰值大小保持不变, 一个周期信号在一个周期有内断点存在,那么,引入的误差将除了产生纹波之外,还将在断点处产生幅度大约为9%的过冲
1、周期信号的傅里叶级数与GIBBS现象
给定如下两个周期信号:
x1(t)1x2(t)1t?2?112t
?2?0.20.22
Q2-4 分别手工计算x1(t) 和x2(t) 的傅里叶级数的系数。 信号x1(t) 在其主周期内的数学表达式为: 计算x1(t) 的傅里叶级数的系数的计算过程如下:
t?2a0??xtt?Tt1(t)dt
an?2/Tbn?2/Ta0?1/2a1?4/?29?24
a3?225?4a4?226?bn?0
计算得到的
?x(t)cos(nwt)dt
11t?T?x(t)sin(nwt)dt
11ta2?4x1(t)的傅里叶级数的系数的数学表达式是:
x1?1411?2[cos(?t)?cos(?t)?cos(?t)??] 2?925信号x2(t) 在其主周期内的数学表达式为:x2(t)?u(t?0.2)?u(t?0.2) 计算x2(t) 的傅里叶级数的系数的计算过程如下
t?2a0??xt2(t)dt:
t?Tan?2/Tt?T?x(t)cos(nwt)dt
22t22bn?2/T通
?x(t)sin(nwt)dt
t过计算得到的
x1(t)的傅里叶级数的系数的数学表达式是:
x2?
1?n??j?tSa()e ???22用MATLAB帮助你计算出你手工计算的傅里叶级数的系数ak从-10到10共21个系数。
Q2-5 仿照程序Program2_1,编写程序Q2_5,以计算x1(t)的傅里叶级数的系数。 程序Q2_5如下:
clear, close all T = 2;
dt = 0.00001; t = -2:dt:2;
x1 = u(t+0.2) - u(t-0.2-dt); >> x=0;
>> for m=-1:1
x=x+u(t-m*T)-u(t-1-m*T-dt); end
>> w0=2*pi*T; >> N=10; >> L=2*N+1; >> for k=-N:N;
ak(N+1+k)=(1/T)*x1*exp(-j*k*w0*t')*dt; end
>> phi=angle(ak); >> ak
执行程序Q2_5所得到的x1(t)的傅里叶级数的ak从-10到10共21个系数如下:
ak =
Columns 1 through 3
0.0000 + 0.0000i -0.0052 - 0.0000i 0.0095 + 0.0000i Columns 4 through 6
-0.0108 - 0.0000i 0.0078 + 0.0000i 0.0000 + 0.0000i Columns 7 through 9
-0.0117 - 0.0000i 0.0252 + 0.0000i -0.0378 - 0.0000i Columns 10 through 12
0.0468 + 0.0000i 0.2000 0.0468 - 0.0000i Columns 13 through 15
-0.0378 + 0.0000i 0.0252 - 0.0000i -0.0117 + 0.0000i Columns 16 through 18
0.0000 - 0.0000i 0.0078 - 0.0000i -0.0108 + 0.0000i Columns 19 through 21
0.0095 - 0.0000i -0.0052 + 0.0000i 0.0000 - 0.0000i
Q2-6 仿照程序Program2_1,编写程序Q2_6,以计算x2(t) 的傅里叶级数的系数(不绘图)。 程序Q2_6如下:
clear, close all
T = 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); end
w0 = 2*pi/T; N = 10; L = 2*N+1; for k = -N: N;
ak(N+1+k) = (1/T)*x1*exp(-j*k*w0*t')*dt; end
phi = angle (ak);
执行程序Q2_6所得到的x2(t)的傅里叶级数的ak从-10到10共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 12
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相比较,是否相同,如有不同,是何原因造成的? 答:与手工相同。
Q2-8 利用单位阶跃信号
u(t),将x1(t) 表示成一个数学闭式表达式,并手工绘制x1(t) 和
x2(t) 的时域波形图。
信号x1(t) 的闭式数学表达式为:
x1(t) = t+2(u(t+2)-u(t+1))+(u(t+1)-u(t-1))+2-t(u(t-1)-u(t-2))
手工绘制的x1(t)的时域波形图 手工绘制的x2(t)的时域波形图
Q2-10 编写MATLAB程序Q2_10,能够接受从键盘输入的时域信号表达式,计算并绘制
出信号的时域波形、幅度谱。
程序Q2_10抄写如下
clear,close all T=0.01; dw=0.1; t=-10:T:10; w=-4*pi:dw:4*pi;
x=input('peleas input a signal,I will draw its plot for you.Signal x='); X=x*exp(-j*t'*w)*T; X1=abs(X); phai=angle(X); subplot(211) t=-10:T:10; plot(t,x)%Plot X axis([-3 3 -0.2 1.2]); grid on,
title('The signal X(t)');
xlabel('Time t(sec)'); w=-4*pi:dw:4*pi; subplot(212); plot(w,X1)%Plot X; axis([-4*pi4*pi-0.1 3]); grid on;
title('The amplitude spectrum of X(t)');
xlabel('Frequency index w');
执行程序Q2_10,输入信号x1(t)的数学表达式,得到的信号时域波形、幅度谱和相位谱如
下:
The signal X(t)10.50-3-201Time t(sec)The amplitude spectrum of X(t)-1233210-10-50Frequency index w510
执行程序Q2_10,输入信号x2(t)的数学表达式,得到的信号时域波形、幅度谱和相位谱如
The signal X(t)10.50-3-201Time t(sec)The amplitude spectrum of X(t)-1233210-10-5下:
0Frequency index w510
Q2-17:回答如下问题:
1、 从信号分解的角度,谈谈你对周期信号的傅里叶级数的理解。
答:任何一个周期为T1的正弦周期信号,只要满足狄利克利雷条件,就可以展开成傅里叶级数。指数形式的傅里叶级数为:
x(t)?k????a?kejk?0t
其中,ak为指数形式的傅里叶级数的系数,按如下公式计算:
ak1?T1T1/2?T1/2?x(t)e?jk?0tdt
指数形式的傅里叶级数告诉我们,如果一个周期信号x(t),满足狄里克利条件,那么,它就可以被看作是由很多不同频率的互为谐波关系(harmonically related)的周期复指数信号所组成,其中每一个不同频率的周期复指数信号称为基本频率分量,其复幅度(complex amplitude)为ak。这里“复幅度(complex amplitude)”指的是a通常是复数。上面的傅里叶级数的合成式说明,我们可以用无穷多个不同频率的周期复指数信号来合成任意一个周期信号。
k
2、从信号分解的角度,谈谈你对傅里叶变换及其物理意义的理解,谈谈你对信号频谱概念的理解。
答:连续时间傅里叶变换主要用来描述连续时间非周期信号的频谱。任意非周期信号,如果满足狄里克利条件,那么,它可以被看作是由无穷多个不同频率(这些频率都是非常的接近)的周期复指数信号ej?t的线性组合构成的,每个频率所对应的周期复指数信号ej?t称为频率分量,其相对幅度为对应频率的|X(j?)|之值,其相位为对应频率的X(j?)的相位。
傅里叶变换在信号分析中具有非常重要的意义,它主要是用来进行信号的频谱分析的。傅里叶变换和其逆变换定义如下:
?
X(j?)????j?tx(t)edt?1x(t)?2?
????X(j?)ej?td?
四、实验总结
通过第二次的上机操作实验,让我们更加熟悉并灵活运用MATAB软件书写简单c程序并加以运行,结合显示图形特点分析更加加深连续时间信号的傅里叶级数的分析方法和物理意义。通过连续时间周期信号的傅里叶级数CTFS分析,以及观察截短傅里叶级数而产生的“吉布斯现象”,通过学习利用MATLAB语言编写计算CTFS、CTFT和DTFT的仿真程序,并利用这些程序对一些典型信号进行频谱分析,验证CTFT、DTFT的若干重要性质。通过程序图形仿真,加深对理论知识的掌握。实践和理论相结合,更加凸显软件工具在理论分析中的作用!