常见离散信号实现汇总.docx

上传人:b****3 文档编号:4416638 上传时间:2022-12-01 格式:DOCX 页数:15 大小:332.55KB
下载 相关 举报
常见离散信号实现汇总.docx_第1页
第1页 / 共15页
常见离散信号实现汇总.docx_第2页
第2页 / 共15页
常见离散信号实现汇总.docx_第3页
第3页 / 共15页
常见离散信号实现汇总.docx_第4页
第4页 / 共15页
常见离散信号实现汇总.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

常见离散信号实现汇总.docx

《常见离散信号实现汇总.docx》由会员分享,可在线阅读,更多相关《常见离散信号实现汇总.docx(15页珍藏版)》请在冰豆网上搜索。

常见离散信号实现汇总.docx

常见离散信号实现汇总

实验2常见离散信号产生和实现

一、实验目的:

(1)了解离散信号的特点;

(2)熟悉MATLAB的基本使用方法;

(3)典型信号的MATLAB表示方法;

(4)熟悉MATLABPlot函数等应用。

二、实验原理:

1.单位抽样序列

在MATLAB中可以利用zeros()函数实现。

如果

在时间轴上延迟了k个单位,得到

即:

2.单位阶越序列

在MATLAB中可以利用ones()函数实现。

3.正弦序列

在MATLAB中

4.复指数序列

在MATLAB中

5.指数序列

在MATLAB中

三、MATLAB基本使用方法

1、MATLAB运行平台如图所示:

在“>>”提示符后输入命令并回车,执行结果会显示在屏幕上。

例如:

输入y=3+5回车,显示结果如图所示。

另外在输入命令时,有时我们希望有些中间过程的结果不显示在屏幕上,而只显示最后的结果,这时我们需要在不显示执行结果的命令后加上“;”,该命令执行的结果不回显在屏幕上。

例如:

计算z=x+y,其中x=2+1,y=3+5,我只想看到z的值,输入命令格式如图所示,我们可以看到x,y的结果没有在屏幕上显示,只显示z的值。

2、MATLAB中矩阵的输入方法:

矩阵的输入方法有两种,第一种方式如图所示;

第二种方式如图所示

3、M文件的使用:

在处理一些包含多条命令的问题时,如果在MATLAB的命令窗口中进行处理,当出现错误时不好修改,这时我们需要借助MATLAB提供的M文件方式来处理。

M文件类似于批处理件,单击MATLAB菜单中的“file”选项,从下拉列表中选取“new”选项,从其下拉列表中选取“m_file”,即可打开M文件的编辑窗口如图所示:

另外,M文件还可以编写函数。

MATLAB的工具箱提供了丰

富的函数,但有些时候,我们在解决一些问题的时候,需要编

写一些自己需要而工具箱没有提供的函数。

函数在编写完成后进行保存时要注意,保存的文件名要与你定义的函数名一致,也就是说,该函数的文件名应该是“two_add.m

如何调用该函数?

4、使用MATLAB时候还有一些需要注意的地方:

1、变量的大小写有区别。

2、可以借助键盘的光标键调出之前输入的命令重新执行。

3、在命令窗口调用编写的M文件时,是有路径要求的,它的默认路径是“work”子目录。

如你编写的M文件在其他目录,需要修改当前路径,修改的地方在命令窗口的工具栏上“CurrentDirectory”处,如图所示。

四、涉及的MATAB函数

1.plot函数

功能:

在X轴和Y轴方向都按线性比例绘制二维图形。

调用格式:

plot(x,y):

绘出x对y的函数的线形图。

plot(x1,y1,x2,y2,….):

绘出多组x对y的线性曲线图。

2.ezplot函数

功能:

绘制符号函数在一定范围内的二维图形。

简易绘制函数曲线。

调用格式:

ezplot(fun):

在[-2π,2π]区间内绘制函数。

ezplot(fun,[min,max]:

在[min,max]区间内绘制函数。

ezplot(funx,funy):

定义为同一曲面的函数,默认的区间是[0,2π].

3.sym函数

功能:

定义信号为符号变量。

调用格式:

sym(fun):

fun为所要定义的表达式。

4.subplot函数

功能:

产生多个绘图区间

调用格式:

Subplot(m,n,p):

产生m行n列的绘图区间的第p个绘图区间。

5.zeros函数

二维用法:

zeros(m,n)或zeros(n)

功能:

zeros(m,n)产生m×n的零矩阵,zeros(n)产生n×n的全0方阵。

n维用法:

zeros(m,n,p,...)或zeros([mnp...])或zeros(m,n,p...,classname)

功能:

返回一个m×n×p×...的零矩阵。

注意:

m,n,p,...必须是非负整数,负整数将被当做0看待。

当没有参数时classname时,产生的是标量零矩阵,有参数时产生指定类型的零矩阵,例如zeros(3,2,'uint8')。

6.stem函数

在matlab中,stem函数用于绘制火柴梗图。

stem英文有“(工具的)柄,把,杆,茎,(树)干,(叶)柄的意思。

在matlab的命令窗口中输入docstem或者helpstem就可以获得该函数的帮助信息。

调用格式

stem(Y)

stem(X,Y)

stem(...,'fill')

stem(...,LineSpec)

stem(axes_handle,...)

h=stem(...)

7.ones函数

ones函数能够生成元素全为1的矩阵。

8、exp函数

如果在命令窗口中输入:

exp(0)

则输出:

1。

其实MATLAB和C中的exp函数和数学中以e为底的指数函数都是一样的。

9、clf函数

clf;用来清除图形的命令。

一般在画图之前用。

四、实验内容实现和图形生成

1、五种基本函数的生成

程序如下:

(1)、单位抽样序列

%单位抽样序列和延时的单位抽样序列

clf;

n=0:

10;

x1=[1zeros(1,10)];x2=[zeros(1,5)1zeros(1,5)];

subplot(1,2,1);

stem(n,x1);xlabel('时间序列n');ylabel('振幅');

title('单位抽样序列x1');

subplot(1,2,2);

stem(n,x2);xlabel('时间序列n');ylabel('振幅');

title('延时了5的单位抽样序列');

(2)、单位阶越序列

clf;

n=0:

10;

u=[ones(1,11)];

stem(n,u);xlabel('时间序列n');ylabel('振幅');title('单位阶越序列');

所得的图形如下所示:

(3)正弦函数

clf;

n=1:

30;

x=2*sin(pi*n/6+pi/3);

stem(n,x);xlabel('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');

(4)、复指数序列

clf;

n=1:

30;

x=2*exp(j*3*n);

stem(n,x);xlabel('时间序列n');ylabel('振幅');

title('复指数序列x=2*exp(j*3*n)');

图形如下:

(5)指数序列

clf;

n=1:

30;

x=1.2.^n;

stem(n,x);xlabel('时间序列n');ylabel('振幅');

title('指数序列x=1.2.^n');

2、绘出信号

,当

时、

时的信号实部和虚部图;

程序如下:

clf;

z1=-1/12+j*pi/6;z2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j*pi/6;

n=0:

20;

x1=exp(z1*n);x2=exp(z2*n);x3=exp(z3*n);x4=exp(z4*n);x5=exp(z5*n);

subplot(5,2,1);

stem(n,real(x1));xlabel('时间序列n');

ylabel('实部');title('复指数z1=-1/12+j*pi/6时序列实部');

subplot(5,2,2);

stem(n,imag(x1));xlabel('时间序列n');ylabel('虚部');title('复指数z1=-1/12+j*pi/6时序列虚部');

subplot(5,2,3);

stem(n,real(x2));xlabel('时间序列n');ylabel('实部');title('复指数z2=1/12+j*pi/6时序列实部');

subplot(5,2,4);

stem(n,imag(x2));xlabel('时间序列n');ylabel('虚部');title('复指数z2=1/12+j*pi/6时序列虚部');

subplot(5,2,5);

stem(n,real(x3));xlabel('时间序列n');ylabel('实部');title('复指数z3=1/12时序列实部');

subplot(5,2,6);

stem(n,imag(x3));xlabel('时间序列n');ylabel('虚部');title('复指数z3=1/12时序列虚部');

subplot(5,2,7);

stem(n,real(x4));xlabel('时间序列n');ylabel('实部');title('复指数z4=2+j*pi/6时序列实部');

subplot(5,2,8);

stem(n,imag(x4));xlabel('时间序列n');ylabel('虚部');title('复指数z4=2+j*pi/6时序列虚部');

subplot(5,2,9);

stem(n,real(x5));xlabel('时间序列n');ylabel('实部');title('复指数z5=j*pi/6时序列实部');

subplot(5,2,10);

stem(n,imag(x5));xlabel('时间序列n');ylabel('虚部');title('复指数z5=j*pi/6时序列虚部');

 由上图的实部部分可以看出,Z=pi/6时,序列周期为12。

计算序列周期为2*6=12。

实验和理论相符。

3、绘出信号

的频率是多少?

周期是多少?

产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期?

程序如下:

clf;

n=0:

40;

x1=1.5*sin(2*pi*0.1*n);x2=sin(0.9*n);

subplot(1,2,1);

stem(n,x1);xlabel('时间序列n');ylabel('振幅');title('正弦序列x1=1.5*sin(2*pi*0.1*n)');

subplot(1,2,2);

stem(n,x2);xlabel('时间序列n');ylabel('振幅');title('正弦序列x2=sin(0.9*n)');

 运行结果如下:

  由上图看出:

x1=1.5*sin(2*pi*0.1*n)的周期是10, 而x2=sin(0.9*n)是非周期的。

理论计算中 对第一个,N=2*pi/(0.1*pi)=10,第二个0.9不是pi的倍数,所以不是周期的。

 因此可以看出,实验结果和理论相符。

 4、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc函数,并绘图。

(1)、方波绘图程序如下:

%用square

t=-2*pi:

0.001:

2*pi;

x=square(t);

plot(t,x);

xlabel('t'),ylabel('x=square(t)');

(2)、三角波绘图程序如下:

%用Sawtooth

t=-2*pi:

0.001:

2*pi;

y=sawtooth(t);

plot(t,y);

xlabel('t'),ylabel('y=sawtooth(t);');

(3)sinc函数绘图程序如下:

>>t=-pi:

0.001:

pi;x=sinc(t);

>>plot(t,x);

>>xlabel('t'),ylabel('sinc(t);');

五、问题讨论与总结:

1、离散正弦序列的性质:

离散正弦序列就是一个连续的正弦信号被一系列冲激函数采样后的结果,原连续正弦函数一定是周期的,但采样后的离散序列却不一定是周期的。

对于离散序列 x=sin(n*w) 来说, 只有当2*pi/w是一个有理数时,也就是说当w是pi的倍数时,此离散序列才是周期的。

所以在本实验中x1=1.5*sin(2*pi*0.1*n)的周期是10, 而x2=sin(0.9*n)是非周期的。

因为0.9不是pi的倍数。

2、离散复指数序列性质:

对于离散复指数函数 x=a*exp(z*n),只有当z是纯虚数,且纯虚数的系数是pi的倍数时,才是周期的。

其它情况下均不是。

这个性质由本次实验中的五个函数的图像可以被证明。

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

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1