北京理工大学信号与系统实验 实验3 信号的频域分析 联系客服

发布时间 : 星期日 文章北京理工大学信号与系统实验 实验3 信号的频域分析更新完毕开始阅读1b0167aad5bbfd0a78567334

实验3 信号频域分析

一、实验目的

1.深入理解信号频谱的概念,掌握信号的频域分析方法。

2.观察典型周期信号和非周期信号的频谱,掌握其频谱特性。

二、实验原理与方法

1.连续周期信号的频谱分析

如果周期信号满足狄里赫利条件,就可以展开为傅里叶级数形式,即

??x(t)??ckejkw0t...............(1)k???1 ?jkw0tck??T0x(t)edt........(2)T0式中,T0表示基波周期,w0?2?/T0为基波频率,?T0(?)表示任一个基波周期内的积分。

式(1)和式(2)定义为周期信号复指数形式的傅里叶级数,系数ck称为x(t)的傅里叶系数。周期信号的傅里叶级数还可以由三角函数的线性组合来表示,即

x(t)?a0??akcoskw0t??bksinkw0t...........(3)k?1k?1????其中a0?即

122?T0x(t)dt,ak??T0x(t)coskw0tdt,bk??T0x(t)sinkw0tdt......(4)T0T0T0式(3)中同频率的正弦项和余弦项可以合并,从而得到三角函数形式的傅里叶级数,

??x(t)?A0??Akcos(kw0t??k)...........(5)k?1其中2A0?a0,Ak?ak?bk2,?k??arctan

bk............(6)ak可见,任何满足狄里赫利条件的周期信号都可以表示成一组谐波关系的复指数函数或三角函数的叠加。一般来说周期信号表示为傅里叶级数时需要无限多项才能完全逼近原信号,但在实际应用中经常采用有限项级数来替代,所选项数越多就越逼近原信号。

2.连续非周期信号的频谱分析

对于非周期连续时间信号,吸纳后的傅里叶变换和傅里叶逆变换定义为

X(w)??x(t)e?jwtdt............(7)???? x(t)?12??????X(w)ejwtdw........(8)

式(7)和式(8)把信号的时域特性和频域特性联系起来,确立了非周期信号x(t)和频谱X(w)之间的关系。

采用MATLAB可以方便地求取非周期连续时间信号的傅里叶变换,这里我们介绍常用的集中方法。

1)符号运算法

MATLAB的符号数学工具箱提供了直接求解傅里叶变换和反变换的函数,fourier函数和ifourier函数,基本调用格式为

X=fourier(x) X=ifourier(X)

默认的时域变量为t,频域变量为w。 2)数值积分法

除了采用符号运算的方法外,我们还可以利用MATLAB的quad函数,采用数值积分的方法来进行连续信号的频谱分析,quad函数是一个用来计算数值积分的函数。利用quad函数可以计算非周期连续时间信号的频谱。Quad函数的一般调用格式为:

y=quad(fun,a,b)

y=quad(fun,a,b,TOL,TRACE,p1,p2,?)

其中fun指定被积函数,可以采用inline命令来创建,也可以通过传递函数句柄的形式来指定,a、b表示定积分的下限和上限,TOL表示允许的相对或绝对积分误差,TRACE表示以被积函数的点绘图形式来跟踪该函数的返回值,如果TOL和TRACE为空矩阵,则使用缺省值,“p1,p2,?”表示被积函数出时间t之外所需的其他额外输入参数。

3)数值近似法

我们还可以利用MATLAB的数值计算的方法近似计算连续时间傅里叶变换。傅里叶变换X(w)可以由式(9)近似计算

X(w)??x(t)e?????jwtdt?lim?x(k?)e?jwk??...........(9)

??0????当x(t)为时限信号,且?足够小,式(9)可以演变为

X(w)???x(k?)e?jkw?..............(10)

k?ab而式(10)中求和部分又可以表示成一个行向量和一个列向量的乘积

?jkw?x(k?)e?k?ab?e?j?a??w???j?(a?1)??w?e?........(11)?[x(a?),x((a?1)?),?,x(b?)]?? ?.....????j?b??w???e?式(11)可以很方便地利用MATLAB实现。

3.离散周期时间信号的频域分析

基波周期为N的周期序列x(n)可以用N个成谐波关系的复指数序列的加权和表示,即

x(n)?k??N?jk(2?/N)nce...............(12)?k

这里k=表示求和仅需包括一个周期内的N项,周期序列在一个周期内的求和与起点无关。将周期序列表示成式(12)的形式,成为离散傅里叶级数,而系数ck则称为离散傅里叶系数。离散傅里叶系数ck可以由式(13)确定。

1ck?Nk??N??jk(2?/N)nx(n)e..............(13) ?傅里叶系数ck也称为x(n)的频谱系数,而且可以证明ck是以N为周期的离散频率序列。这说明了周期的离散时间函数对应于频域为周期的离散频率。

这里,我们用周期N与傅里叶系数ck的乘积来表示周期离散时间信号的频谱,即

X(k)?N?ck?k??N??x(n)e?jk(2?/N)n.........(14)

X(k)可以利用MATLAB提供的函数fft用来计算,调用格式为

X?fft(x)

该函数返回X(k)一个周期内的值,其中x表示x(n)一个周期内的样本值。 4.离散非周期时间信号的频域分析

非周期序列x(n)可以表示成一组复指数序列的连续和 x(n)?其中

12???X(e2j?)ej?nd?............(15)

X(ej?)?n????x(n)e???j?n...............(16)

式(16)称为x(n)的离散时间傅里叶变换,式(15)和式(16)确立了非周期离散时间信号x(n)及其离散时间傅里叶变换X(ej?)之间的关系。X(ej?)是连续频率?的函数,称为频谱函数,且X(ej?)是周期的连续频率函数,其周期为2?。可见,非周期离散时间函数对应于频域中是一个连续的周期的频率函数。

对于有限长的时间序列,式(16)可以表示为

X(e)??x(n)e?j?nj?n?n1nN?e?jn1????jn2??e??........(17)?[x(n1),x(n2),?,x(nN)]? ?.....????jnN????e?式(17)可以方便地利用MATLAB实现。

三、实验内容

(1)已知周期矩形脉冲信号x(t)。

1教材上x(t)的波形可知信号x(t)??A[u(t?(kT??/2))?u(t?(kT??/2))] ○k???由式(3)和式(4)计算得

???A?,k?0??Tak??,bk?0?2Asink??,k?1,2,? ?T?k?故x(t)的傅里叶级数为

A???2Ak??x(t)???sincosk?0t

T0k?1k?T02利用MATLAB绘出由前N次谐波合成的信号波形,观察随着N的变化合成信号波○

形的变化规律;

MATLAB程序如下: t=-3:0.01:3; N=input('N='); A=input('A=');