信号与系统实验报告

  • 格式:pdf
  • 大小:323.78 KB
  • 文档页数:13

信号与系统实验报告

一、实验目的

(1) 理解周期信号的傅里叶分解,掌握傅里叶系数的计算方法;

(2)深刻理解和掌握非周期信号的傅里叶变换及其计算方法;

(3) 熟悉傅里叶变换的性质,并能应用其性质实现信号的幅度调制;

(4) 理解连续时间系统的频域分析原理和方法,掌握连续系统的频率响应求解方

法,并画出相应的幅频、相频响应曲线。

二、实验原理、原理图及电路图

(1) 周期信号的傅里叶分解

设有连续时间周期信号()ft,它的周期为T,角频率22fT,且满足

狄里赫利条件,则该周期信号可以展开成傅里叶级数,即可表示为一系列不同频

率的正弦或复指数信号之和。傅里叶级数有三角形式和指数形式两种。

1)三角形式的傅里叶级数:

01212

011()cos()cos(2)sin()sin(2)2

cos()sin()2nnnnaftatatbtbt

aantbnt

式中系数na,nb称为傅里叶系数,可由下式求得:

222222()cos(),()sin()TTTTnnaftntdtbftntdtTT

2)指数形式的傅里叶级数:

()jntnnftFe

式中系数nF称为傅里叶复系数,可由下式求得:

221()TjntTnFftedtT

周期信号的傅里叶分解用Matlab进行计算时,本质上是对信号进行数值积

分运算。Matlab中进行数值积分运算的函数有quad函数和int函数。其中int函

数主要用于符号运算,而quad函数(包括quad8,quadl)可以直接对信号进行

积分运算。因此利用Matlab进行周期信号的傅里叶分解可以直接对信号进行运

算,也可以采用符号运算方法。quadl函数(quad系)的调用形式为:y=

quadl(‘func’,a,b)或y=quadl(@myfun,a,b)。其中func是一个字符串,表示被积

函数的.m文件名(函数名);a、b分别表示定积分的下限和上限。第二种调用方

式中”@”符号表示取函数的句柄,myfun表示所有限定义的函数的文件名。

(2)周期信号的频谱

周期信号经过傅里叶分解可表示为一系列正弦或复指数信号之和。为了直观

地表示出信号所含各分量的振幅,以频率(或角频率)为横坐标,以各谐波的振

幅或虚指数函数的幅度为纵坐标,可画出幅度-频率关系图,称为幅度频谱或幅

度谱。类似地,可画出各谐波初相角与频率的关系图,称为相位频谱或相位谱。

在计算出信号的傅里叶分解系数后,就可以直接求出周期信号的频谱并画出

其频谱图。

(3)非周期信号的傅里叶变换和性质

非周期信号的傅里叶变换定义为:

()()jtFjfted

1()()2jtftFjed

()Fj称为频谱密度函数,一般需要用幅度谱和相位谱两个图形才能将它完

全表示出来。

傅里叶变换具有很多性质,如线性、奇偶性、对称性、尺度变换、时移特性、

频移特性、卷积定理、时域微分和积分、频域微分和积分、能量谱和功率谱等。

其中频移特性在各类电子系统中应用广泛,如调幅、同步解调等都是在频谱搬移

的基础上实现的。实现频谱搬移的原理如下图所示:

乘法器f(t)y(t)

cos(ω0t)

它是将信号()ft(常称为调制信号)乘以所谓载频信号0cos()t或0sin()t,

得到高频已调信号()yt。显然,若信号()ft的频谱为()Fj,则根据傅里叶变换

的频移性质,高频已调信号的频谱函数为:

00011()()cos()()()22ytfttFjFj

00011()()sin()()()22ytfttjFjjFj

可见,当用某低频信号()ft去调制角频率为0的余弦(或正弦)信号时,

已调信号的频谱是包络线()ft的频谱()Fj一分为二,分别向左和向右搬移0,

在搬移中幅度谱的形式并未改变。Matlab中提供了专门的函数modulate()用于实

现信号的调制,其调用形式为y=modulate(x,Fc,Fs,’method’)。其中x为被调信号,

Fc为载波频率,Fs为信号x的采样频率,method为所采用的调制方式。实现信号的调制也可以利用Matlab直接求解被调信号的傅里叶变换。

Matlab中symbolic工具箱提供了直接求解信号的傅里叶变换和逆变换的函

数fourier()和ifourier()。这两个函数采用符号运算方法,在调用之前要用syms

命令对所用到的变量进行说明,返回的同样是符号表达式。除此之外,要实现傅

里叶变换的数值计算,可以直接利用傅里叶变换的定义,调用前述的quad函数

对信号进行数值积分运算,得到相应的变换结果;也可以对原始信号离散化采样,

进行数值计算求解傅里叶变换。数值计算的原理如下:

对于一大类信号,当足够小时,上式的近似情况可以满足实际需要。若信

号是时限的,则n的取值是有限的,设为N,则上式变为:

1

0()(),0kNjnnFkfnekN

式中频率也进行了取样,2kkN。采用Matlab实现时,要注意正确生成

()ft的N个样本()fn的向量f及向量kjne,两向量的内积结果即完成傅里叶

变换的数值计算。此外,时间取样间隔需要满足取样定理(Nyquist条件):

12f。如果某个信号不是严格的带限信号,则可根据实际计算的精度要求来

确定一个适当的频率为信号的带宽。

(4) 连续系统的频域分析和频率响应

设线性时不变(LTI)系统的冲击响应为()ht,该系统的输入(激励)信号为()ft,

则此系统的零状态输出(响应)()yt可以写成卷积的形式:()()()ythtft。设

()ft,()ht和()yt的傅里叶变换分别为()Fj,()Hj和()Yj,则它们之间存

在关系:()()()YjFjHj,反映了系统的输入和输出在频域上的关系。这

种利用频域函数分析系统问题的方法常称为系统的频域分析法。

函数()Hj反映了系统的频域特性,称为系统的频率响应函数(有时也称为

系统函数)可定义为系统响应(零状态响应)的傅里叶变换与激励的傅里叶变换

之比,即:

()()()YjHjFj

它是频率(角频率)的复函数,可写为:

()()()jHjHje,其中()()()YjHjFj,()()()yf

可见()Hj是角频率为的输出与输入信号幅度之比,称为幅频特性(或幅频

响应);()是输出与输入信号的相位差,称为相频特性(或相频响应)。

Matlab工具箱中提供的freqs函数可直接计算系统的频率响应,其调用形式

为:H=freqs(b,a,w)。其中b为系统频率响应函数有理多项式中分子多项式的系

数向量,或者说系统微分方程式右边激励的系数;a为分母多项式的系数向量,

或微分方程左式的系数;w为需计算的系统频率响应的频率抽样点向量。

三、实验步骤及内容

(1) 周期性三角波如下图所示,计算其傅里叶级数系数,演示其有限项级数逼

近并绘图。(教材p193,习题4.8第a小题)。

1

tf(t)

12-1-23

(2) 计算如下图所示的信号(cos()2t)的傅里叶变换,并验证尺度变换和时移

变换性质。(教材p195,习题4.13第c小题)

-2-1.5-1-0.500.511.5200.10.20.30.40.50.60.70.80.91

(3) 设信号()sin(100)ftt,载波是频率为400Hz的余弦信号,用Matlab实

现调幅信号,并观察信号和调幅信号的频谱。

(4) 求下列微分方程所描述系统的频率响应,并画出幅频、相频响应曲线:(教材p199,习题4.30第1小题)

()3()2()()ytytytft

四、实验结果记录与分析

1.周期性三角波如下图所示,计算其傅里叶级数系数,演示其有限项级数逼

近并绘图。(教材p193,习题4.8第a小题)。

1

tf(t)

12-1-23

试验程序:

t=0:0.0001:1;

T=2; w=2*pi/T;

a0=1/2;

N=10;an=zeros(1,N);bn=zeros(1,N);

for k=1:N an(k)=quadl(@rectcos,-1,1,[],[],k,w)*2/T;

bn(k)=quadl(@rectsin,-1,1,[],[],k,w)*2/T;

end;

n=1:1:N;

figure(1);

subplot(1,2,1);stem(n,an,'-o');grid on;

subplot(1,2,2);stem(n,bn,'-o');grid on;

t=-4:0.0001:4;

x=pulstran(t+0.5,-3:2:3,'tripuls',1,1);

figure(2);subplot(6,2,1);

plot(t,x);

axis([-3,3,-1,2]);grid on;

subplot(6,2,2);plot(t,a0/2);grid on;

wave=a0/2;

for k=1:10

wave=wave+an(k)*cos(k*w*t)+bn(k)*sin(k*w*t);

subplot(6,2,k+2);plot(t,wave);grid on;

end 注:

rectcos.m 【function y=rectcos(t,n,w);

t=pulstran(t+0.5,-3:2:3,'tripuls',1,1);

y=(t).*1.*cos(n*w*t);】rectsin.m

【function y=rectsin(t,n,w);

t=pulstran(t+0.5,-3:2:3,'tripuls',1,1);

y=(t).*1.*sin(n*w*t);】