信号分析与处理实验四个Word格式文档下载.docx

上传人:b****3 文档编号:7551682 上传时间:2023-05-08 格式:DOCX 页数:28 大小:279.46KB
下载 相关 举报
信号分析与处理实验四个Word格式文档下载.docx_第1页
第1页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第2页
第2页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第3页
第3页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第4页
第4页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第5页
第5页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第6页
第6页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第7页
第7页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第8页
第8页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第9页
第9页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第10页
第10页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第11页
第11页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第12页
第12页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第13页
第13页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第14页
第14页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第15页
第15页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第16页
第16页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第17页
第17页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第18页
第18页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第19页
第19页 / 共28页
信号分析与处理实验四个Word格式文档下载.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

信号分析与处理实验四个Word格式文档下载.docx

《信号分析与处理实验四个Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《信号分析与处理实验四个Word格式文档下载.docx(28页珍藏版)》请在冰点文库上搜索。

信号分析与处理实验四个Word格式文档下载.docx

%则t1是一个维数为41的行向量

f1=sin(t1)./t1;

 

%定义信号表达式,求出对应采样点上的样值,

%同时生成与向量t1维数相同的行向量f1

figure

(1);

%打开图形窗口1

plot(t1,f1);

%以t1为横坐标,f1为纵坐标绘制f1的波形

t2=-10:

0.1:

-10~10,取样间隔为0.1,

%则t2是一个维数为201的行向量

f2=sin(t2)./t2;

%定义信号表达式,求出对应采样点上的样值

%同时生成与向量t2维数相同的行向量f2

figure

(2);

%打开图形窗口2

plot(t2,f2);

%以t2为横坐标,f2为纵坐标绘制f2的波形

运行结果如下:

图1-1图1-2

说明:

plot是常用的绘制连续信号波形的函数。

严格说来,MATLAB不能表示连续信号,所以,在用plot()命令绘制波形时,要对自变量t进行取值,MATLAB会分别计算对应点上的函数值,然后将各个数据点通过折线连接起来绘制图形,从而形成连续的曲线。

因此,绘制的只是近似波形,而且,其精度取决于t的取样间隔。

t的取样间隔越小,即点与点之间的距离越小,则近似程度越好,曲线越光滑。

图1-1是在取样间隔为p=0.5时绘制的波形,而图1-2是在取样间隔p=0.1时绘制的波形,两相对照,可以看出图1-2要比图1-1光滑得多。

在上面的f=sin(t)./t语句中,必须用点除符号,以表示是两个函数对应点上的值相除。

⑵符号运算表示法

如果一个信号或函数可以用符号表达式来表示,那么我们就可以用前面介绍的符号函数专用绘图命令ezplot()等函数来绘出信号的波形。

,我们也可以用符号表达式来表示它,同时用ezplot()命令绘出其波形。

其MATLAB程序如下:

symst 

;

%符号变量说明

f=sin(t)/t;

%定义函数表达式

ezplot(f,[-10,10]);

%绘制波形,并且设置坐标轴显示范围

图1-3

⑶常见信号的MATLAB表示

对于普通的信号,应用以上介绍的两种方法即可完成计算函数值或绘制波形,但是对于一些比较特殊的信号,比如单位阶跃信号(t)、符号函数sgn(t)等,在MATLAB中这些信号都有专门的表示方法。

单位阶跃信号

单位阶跃信号的定义为:

,单位阶跃信号是信号分析的基本信号之一,在信号与系统分析中有着非常重要的作用,通常,我们用它来表示信号的定义域,简化信号的时域表示形式。

可以用两个不同延时的单位阶跃信号来表示一个矩形门信号,即:

在MATLAB中,可通过多种方法得到单位阶跃信号,下面分别介绍。

方法一:

调用Heaviside(t)函数

在MATLAB的SymbolicMathToolbox中,有专门用于表示单位阶跃信号的函数,即Heaviside(t)函数,用它即可方便地表示出单位阶跃信号以及延时的单位阶跃信号,并且可以方便地参加有关的各种运算过程。

首先定义函数Heaviside(t)的m函数文件,该文件名应与函数名同名即Heaviside.m。

%定义函数文件,函数名为Heaviside,输入变量为x,输出变量为y

functiony=Heaviside(t)

y=(t>

0);

%定义函数体,即函数所执行指令

%此处定义t>

0时y=1,t<

=0时y=0,注意与实际的阶跃信号定义的区别。

例①用MATLAB画出单位阶跃信号的波形,其程序如下:

ut=sym('

Heaviside(t)'

);

%定义单位阶跃信号(要用符号函数定义法)

ezplot(ut,[-2,10]) 

%绘制单位阶跃信号在-2~10范围之间的波形

例②用MATLAB画出信号

的波形

f=sym('

Heaviside(t+2)-3*Heaviside(t-5)'

ezplot(f,[-4,20]) 

%绘制函数在-4~20范围之间的波形

方法二:

数值计算法

在MATLAB中,有一个专门用于表示单位阶跃信号的函数,即stepfun()函数,它是用数值计算法表示的单位阶跃函数

其调用格式为:

stepfun(t,t0) 

其中,t是以向量形式表示的变量,t0表示信号发生突变的时刻,在t0以前,函数值小于零,t0以后函数值大于零。

有趣的是它同时还可以表示单位阶跃序列

,这只要将自变量以及取样间隔设定为整数即可。

有关单位阶跃序列

的表示方法,我们后面有专门论述,下面通过一个例子来说明如何调用stepfun()函数来表示单位阶跃函数。

例①用stepfun()函数表示单位阶跃信号,并绘出其波形

程序如下:

t=-1:

0.01:

4;

%定义时间样本向量

t0=0;

%指定信号发生突变的时刻

ut=stepfun(t,t0);

%产生单位阶跃信号

plot(t,ut) 

%绘制波形

axis([-1,4,-0.5,1.5]) 

%设定坐标轴范围

例②绘出门函数

t=-4:

t1=-2;

u1=stepfun(t,t1);

%产生左移位的阶跃信号(t+2)

t2=2;

u2=stepfun(t,t2);

%产生右移位的阶跃信号(t-2)

g=u1-u2;

%表示门函数

plot(t,g) 

%绘制门函数的波形

axis([-4,4,-0.5,1.5]) 

%设定坐标轴范围-4<

x<

4,-0.5<

y<

1.5

符号函数

符号函数的定义为:

在MATLAB中有专门用于表示符号函数的函数sign(),由于单位阶跃信号(t)和符号函数两者之间存在以下关系:

,因此,利用这个函数就可以很容易地生成单位阶跃信号。

下面举个例子来说明如何利用sign()函数生成单位阶跃信号,并同时绘制其波形。

举例:

利用sign()函数生成单位阶跃信号,并分别绘出两者的波形

MATLAB程序如下:

t=-5:

5;

%定义自变量取值范围及间隔,生成行向量t

f=sign(t);

%定义符号信号表达式,生成行向量f

plot(t,f), 

%绘制符号函数的波形

axis([-5,5,-1.5,1.5]) 

%定义坐标轴显示范围

s=1/2+1/2*f;

%生成单位阶跃信号

plot(t,s), 

axis([-5,5,-0.5,1.5]) 

运行结果如下:

2.离散时间信号

离散时间信号又叫离散时间序列,一般用

表示,其中变量k为整数,代表离散的采样时间点(采样次数)。

在MATLAB中,离散信号的表示方法与连续信号不同,它无法用符号运算法来表示,而只能采用数值计算法表示,由于MATLAB中元素的个数是有限的,因此,MATLAB无法表示无限序列;

另外,在绘制离散信号时必须使用专门绘制离散数据的命令,即stem()函数,而不能用plot()函数。

下面通过一些常用离散信号来说明如何用MATLAB来实现离散信号的表示,以及可视化。

单位序列(k)

单位序列(k)的定义为

下面是用MATLAB绘制单位序列(k)的MATLAB程序:

k1=-5;

k2=5;

%定义自变量的取值范围

k=k1:

k2;

%定义自变量的取值范围及取样间隔(默认为1),并生成行向量

n=length(k);

%取向量的维数

f=zeros(1,n);

%生成与向量k的维数相同地零矩阵,给函数赋值

f(1,6)=1;

%在k=0时刻,信号赋值为1

stem(k,f,'

filled'

) 

%'

定义点的形状,可通过help文件查询其它形状的描述

axis([k1,k2,0,1.5]) 

如果要绘制移位的单位序列(k+k0)的波形,只要将以上程序略加修改即可,例如要绘制信号(k+2)的图形,可将以上程序改为:

k0=3;

%定义平移量

%生成与向量k的维数相同的零矩阵,给函数赋值

f(1,-k0-k1+1)=1;

%在k=k0时刻,信号赋值为1

%定义坐标轴显示范围

单位阶跃序列(k)

单位阶跃序列(k)的定义为

下面是绘制单位阶跃序列(k+k0)的MATLAB程序:

k1=-3;

k2=10;

k0=0;

%定义起止时刻和跃变时刻

-k0-1;

kk=-k0:

%取k=k0点以前向量的维数

nn=length(kk);

%取k=k0点以后(含k=k0点)向量的维数

u=zeros(1,n);

%在k=k0以前,信号赋值为0

uu=ones(1,nn);

%在k=k0以后,信号赋值为1

stem(k,u,'

%绘制k=k0以前信号的波形

holdon 

%保持图形窗口,以便在同一图形窗口绘制多个图形

stem(kk,uu,'

%绘制k=k0以后(含k=k0点)信号的波形

holdoff 

%图形窗口解冻

%设置坐标轴显示范围

注意:

以上介绍了几个常用的绘图命令:

plot,ezplot,stairs,stem,其中,绘制连续信号得到光滑的曲线时用plot命令;

显示连续信号中的不连续点时用stairs命令较好;

绘制离散信号波形用stem命令;

当绘制用MATLAB符号表达式表达的信号时要用ezplot命令。

3.卷积积分

信号的卷积是数学上的一种积分运算,两个信号的卷积定义为:

信号的卷积运算在系统分析中主要用于求解系统的零状态响应。

一般情况,卷积积分的运算比较困难,但在MATLAB中则变得十分简单,MATLAB中是利用conv函数来实现卷积的。

功能:

实现两个函数

的卷积。

格式:

g=conv(f1,f2)

f1=f1(t),f2=f2(t) 

表示两个函数,g=g(t)表示两个函数的卷积结果。

例题:

已知两信号

,求卷积

MATLAB程序如下:

t1=1:

2;

t2=2:

3;

t3=3:

%两信号卷积结果自变量t区间应为:

[两信号起始时刻之%和~两信号终止时刻之和]请自行推导该结论

f1=ones(size(t1));

%高度为一的门函数,时间从t=1到t=2

f2=ones(size(t2));

%高度为一的门函数,时间从t=2到t=3

g=conv(f1,f2);

%对f1和f2进行卷积

subplot(3,1,1),plot(t1,f1);

  %画f1的波形

subplot(3,1,2),plot(t2,f2);

  %画f2的波形

subplot(3,1,3),plot(t3,g);

  %grid 

on;

画g的波形

三、实验内容

1.分别用MATLAB的向量表示法和符号运算功能,表示并绘出下列连续时间信号的波形:

⑵ 

⑶ 

⑷ 

2.分别用MATLAB表示并绘出下列离散时间信号的波形:

⑴ 

3.已知信号f(t)的波形如下图所示,试用MATLAB绘出满足下列要求的信号波形。

(其中a的值分别为a=0.5和a=2)

4.已知两信号

,求卷积积分

,并与例题比较。

5.已知两信号

6.已知

,求两序列的卷积和。

四、预习要求

1.熟悉常见信号的意义、特性及用MATLAB软件表示的方法

2.熟悉用MATLAB软件绘制信号波形的方法

3.编写MATLAB程序

五、实验报告要求

1.简述实验目的及实验原理

2.抄写实验内容,写出程序清单

3.记录信号波形

4.实验总结(收获及体会)

实验三 

连续时间信号的频域分析

一、 

实验目的

1.熟悉傅里叶变换的性质

2.熟悉常见信号的傅里叶变换

3.了解傅里叶变换的MATLAB实现方法

二、 

实验原理

傅里叶变换是信号分析的最重要的内容之一。

从已知信号

求出相应的频谱函数

的数学表示为:

的傅里叶变换存在的充分条件是

在无限区间内绝对可积,即

满足下式:

但上式并非傅里叶变换存在的必要条件。

在引入广义函数概念之后,使一些不满足绝对可积条件的函数也能进行傅里叶变换。

傅里叶反变换的定义为:

在这一部分的学习中,大家都体会到了这种数学运算的麻烦。

在MATLAB语言中有专门对信号进行正反傅里叶变换的语句,使得傅里叶变换很容易在MATLAB中实现。

在MATLAB中实现傅里叶变换的方法有两种,一种是利用MATLAB中的SymbolicMathToolbox提供的专用函数直接求解函数的傅里叶变换和傅里叶反变换,另一种是傅里叶变换的数值计算实现法。

下面分别介绍这两种实现方法的原理。

1.直接调用专用函数法

①在MATLAB中实现傅里叶变换的函数为:

F=fourier(f) 

对f(t)进行傅里叶变换,其结果为F(w)

F=fourier(f,v) 

对f(t)进行傅里叶变换,其结果为F(v)

F=fourier(f,u,v) 

对f(u)进行傅里叶变换,其结果为F(v)

②傅里叶反变换

f=ifourier(F) 

对F(w)进行傅里叶反变换,其结果为f(x)

f=ifourier(F,U) 

对F(w)进行傅里叶反变换,其结果为f(u)

f=ifourier(F,v,u) 

对F(v)进行傅里叶反变换,其结果为f(u)

由于MATLAB中函数类型非常丰富,要想了解函数的意义和用法,可以用mhelp命令。

如在命令窗口键入:

mhelpfourier回车,则会得到fourier的意义和用法。

(1)在调用函数fourier()及ifourier()之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。

对fourier()中的f及ifourier()中的F也要用符号定义符sym将其说明为符号表达式。

(2)采用fourier()及fourier()得到的返回函数,仍然为符号表达式。

在对其作图时要用ezplot()函数,而不能用plot()函数。

(3)fourier()及fourier()函数的应用有很多局限性,如果在返回函数中含有δ(ω)等函数,则ezplot()函数也无法作出图来。

另外,在用fourier()函数对某些信号进行变换时,其返回函数如果包含一些不能直接表达的式子,则此时当然也就无法作图了。

这是fourier()函数的一个局限。

另一个局限是在很多场合,尽管原时间信号f(t)是连续的,但却不能表示成符号表达式,此时只能应用下面介绍的数值计算法来进行傅氏变换了,当然,大多数情况下,用数值计算法所求的频谱函数只是一种近似值。

例①求门函数

的傅里叶变换,并画出幅度频谱图

symstw 

%定义两个符号变量t,w

Gt=sym('

Heaviside(t+1)-Heaviside(t-1)'

%产生门宽为2的门函数

Fw=fourier(Gt,t,w);

%对门函数作傅氏变换求F(jw)

FFw=maple('

convert'

Fw,'

piecewise'

%数据类型转换,转为分段函数,此处可以去掉

FFP=abs(FFw);

%求振幅频谱|F(jw)|

ezplot(FFP,[-10*pi10*pi]);

grid;

%绘制函数图形,并加网格

axis([-10*pi10*pi02.2]) 

%限定坐标轴范围

运行结果:

Fw=exp(i*w)*(pi*Dirac(w)-i/w)-exp(-i*w)*(pi*Dirac(w)-i/w)

%Dirac(w)为δ(ω),即傅立叶变换结果中含有奇异函数,故绘图前需作函数类型转换

FFw=-i*exp(i*w)/w+i*exp(-i*w)/w%FFw为复数

FFP=abs(-i*exp(i*w)/w+i*exp(-i*w)/w)%求FFw的模值

例②求函数

的傅里叶反变换f(t)

Fw=sym('

1/(1+w^2)'

%定义频谱函数F(jw)

ft=ifourier(Fw,w,t);

%对频谱函数F(jw)进行傅氏反变换

ft=

1/2*exp(-t)*Heaviside(t)+1/2*exp(t)*Heaviside(-t)

2、傅里叶变换的数值计算实现法

严格说来,如果不使用symbolic工具箱,是不能分析连续时间信号的。

采用数值计算方法实现连续时间信号的傅里叶变换,实质上只是借助于MATLAB的强大数值计算功能,特别是其强大的矩阵运算能力而进行的一种近似计算。

傅里叶变换的数值计算实现法的原理如下:

对于连续时间信号f(t),其傅里叶变换为:

其中τ为取样间隔,如果f(t)是时限信号,或者当|t|大于某个给定值时,f(t)的值已经衰减得很厉害,可以近似地看成是时限信号,则上式中的n取值就是有限的,假定为N,有:

若对频率变量ω进行取样,得:

通常取:

,其中

是要取的频率范围,或信号的频带宽度。

采用MATLAB实现上式时,其要点是要生成f(t)的N个样本值

的向量,以及向量

,两向量的内积(即两矩阵的乘积),结果即完成上式的傅里叶变换的数值计算。

时间取样间隔τ的确定,其依据是τ必须小于奈奎斯特(Nyquist)取样间隔。

如果f(t)不是严格的带限信号,则可以根据实际计算的精度要求来确定一个适当的频率

为信号的带宽。

例③用数值计算法实现上面门函数

的傅里叶变换,并画出幅度频谱图.

分析:

该信号的频谱为

,其第一个过零点频率为π,一般将此频率认为是信号的带宽。

但考虑到

的形状(为抽样函数),假如

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2