信号分析与处理实验指导书.doc
《信号分析与处理实验指导书.doc》由会员分享,可在线阅读,更多相关《信号分析与处理实验指导书.doc(13页珍藏版)》请在冰豆网上搜索。
![信号分析与处理实验指导书.doc](https://file1.bdocx.com/fileroot1/2022-10/30/4195b9e6-9a0a-49a2-8c00-21821ce2178e/4195b9e6-9a0a-49a2-8c00-21821ce2178e1.gif)
《信号分析与处理》实验指导书
实验一时域分析实验
一.实验目的
(1)熟悉MATLAB开发环境。
(2)掌握MATLAB各种表达式的书写规则以及常用函数的使用。
(3)熟悉MATLAB的基本操作
(4)熟悉MATLAB中产生信号和绘制信号的基本命令。
(5)熟悉序列的简单运算,如:
加法、标量乘法、时间反转、延时、乘法等。
二.实验原理
MATLAB(矩阵实验室的简称)是一种专业的计算机程序,用于工程科学的矩阵数学运算。
但在以后的几年内,它逐渐发展为一种极其灵活的计算体系,用于解决各种重要的技术问题。
MATLAB程序执行MATLAB语言,并提供了一个极其广泛的预定义函数库,这样就使得技术工作变得简单高效。
三.实验任务及步骤
1、学习了解MATLAB的实验环境:
在Windows桌面上,双击MATLAB图标,即可进入MATLAB系统命令窗口。
图1-1MATLAB系统命令窗口
当MATLAB运行时,有多种类型的窗口,有的用于接收命令,有的用于显示信息。
三个重要的窗口有命令窗口;图像窗口;编辑/调试窗口;它们的作用分别为输入命令;显示图形;充许使用者创建和修改MATLAB程序。
在本节课中我们将会看到这三个窗口的例子。
当MATLAB程序启动时,一个叫做MATLAB桌面的窗口出现了。
默认的MATLAB桌面结构如图1-1所示。
在MATLAB集成开发环境下,它集成了管理文件、变量和应用程序的许多编程工具。
在MATLAB桌面上可以得到和访问的窗口主要有:
■命令窗口(TheCommandWindow)
■命令历史窗口(TheCommandHistoryWindow)
■启动平台(LaunchPad)
■编辑调试窗口(TheEdit/DebugWindow)
■工作台窗口和数组编辑器(WorkspaceBrowserandArrayEditor)
■帮助空间窗口(HelpBrowser)
■当前路径窗口(CurrentDirectoryBrowser)
1.1命令窗口
MATLAB桌面的右边是命令窗口。
在命令窗口中,用户可以在命令行提示符(>>)后输入一系列的命令,这些命令的执行也是在这个窗口中实现的。
假设你要计算一个半径为2.5m的圆的面积。
在命令窗口中的操作如下:
当回车键敲下的一瞬间,结果被计算了出来,并被存储到一个叫area的变量中(其实是一个1×1的数组)。
这个变量的数值将显示在命令窗口(TheCommandWindows)而且这个变量能进行进一步的计算。
(注意π是MATLAB预先定义好的变量,所以pi不需要预先声明。
)
如果一个语句在一行内书写太长了,可能要另起一行接着写,在这种情况下我们需要在第一行末打上半个省略号(...),再开始第二行的书写。
将一系列命令写入一个文件,在命令窗口(TheCommandWindows)输入此文件的文件名,然后MATLAB就开始执行这个文件,而不是用直接在命令窗口(TheCommandWindows)键入的方法,这样的文件叫做脚本文件(Scriptfiles),由于脚本文件(Scriptfiles)的扩展名为“.m”,所以这它也叫做M文件。
1.2历史命令窗口(TheHistoryCommandWindow)
历史命令窗口(TheHistoryCommandWindow)用于记录用户在命令窗口(TheCommandWindows),其顺序是按逆序排列的。
即最早的命令在排在最下面,最后的命令排在最上面。
这些命令会一直存在下去,直到它被人为删除。
双击这些命令可使它再次执行。
在历史命令窗口(TheCommandWindows)删除一个或多个命令,可以先选择,然后单击右键,这时就有一个弹出菜单出现,选择DeleteSection。
任务就完成了。
1.3启动平台(thelaunchpad)
启动平台是一个特殊的工具,为MATLAB和其工具箱提供帮助、demos、其他相关文件和应用程序等参考资料。
这些信息是产品附带的,所有的参考资料都在每个产品或工具箱后面列出。
不同的人拥有不同的产品,所以这个内容随个人安装的不同而不同。
图1-2显示的是只带有基本MATLAB产品的参考资料的启动平台。
双击其中一个条目,你将会得到MATLAB的帮助,运行MATLAB的示例,访问这个程序所支持的标准工具,或访问MATLAB在互联网上的网站。
图1-2带有基本MATLAB产品的参考资料的启动平台
1.4编辑调试器
编辑调试器一般用于创建M文件,或者修改已存在的M文件。
当你打开或修改一个M文件,编辑调试器会自动被调用。
创建一个M文件的方法:
一、在菜单按“File/New/M-file”创建;
二、单击图标。
打开一个已存在的M文件也有两个方法:
一、按路径“File/Open”打开;
二、单击图标。
编程调试器是个重要的程序的文档编辑器,MATLAB语言的一些特性会被不同的顔色表现出来。
M文件中的评论用绿色表示,变量和数字用黑色来表示,字符变量用红色表示,语言的关键字用蓝色表示。
如图1-3显示了一个包含有M文件的简单的编辑窗口。
图1-3显示了一个包含有M文件的简单的编辑窗口
当M文件保存完后,在命令窗口(TheCommandWindows)中输入这个M文件的名字,它就可以被执行了。
1.5图像窗口(FigureWindows)
图像窗口主要是用于显示MATLAB图像。
它所显示的图像可以是数据的二维或三维坐标图,图片,或用户图形接口。
下面是一个简单的脚本文件(Scriptfiles)用于计算函数sinx并打印出图像。
如果此文件以sin_x.m为文件名保存,那么你可以在命令窗口(TheCommandWindows)输入此文件名就可以执行文件了。
当脚本文件(Scriptfiles)被编译后,MATLAB将会找开一个图像窗口,并在窗口打印出函数sinx的图像。
图1-4函数sinx的图像
1.6工作区浏览器
当前工作区的内容也可以通过基于GUI的工作空间窗口检测到。
工作空间窗口默认出现在MATLAB桌面的左上角,它提供了和whos命令可得到的相同的信息,并当工作区内的内容发生改变时,其内的信息也会随之更新。
工作空间窗口(Theworkspacebrowser)允许用户改变工作区内的任何一个变量的内容。
图1-5工作空间窗口
典型的工作空间窗口(Theworkspacebrowser)如图1-5.你能看到它显示的信息和whos命令得到的信息是一样的。
双击这个窗口任一变量便产生了一个数组编辑器,这个编辑器允许用户修改保存在变量中的信息。
1.7MATLAB帮助
你有三种方法可以得到MATLAB的帮助。
最好的方法是使用帮助空间窗口(helpbrowser)。
你可以单击MATLAB桌面工具栏上的图标,也可以在命令窗口(TheCommandWindows)中输入helpdesk或helpwin来启动帮助空间窗口(helpbrowser)。
你可以通过浏览MATLAB参考证书或搜索特殊命令的细节得到帮助。
帮助空间窗口如图1-6所示。
图1-6帮助空间窗口
另外还有两种运用命令行的原始形式得到帮助。
第一种方法是在MATLAB命令窗口(TheCommandWindows)中输入help或help和所需要的函数的名字。
如果你在命令窗口(TheCommandWindows)中只输入help,MATLAB将会显示一连串的函数。
如果有一个专门的函数名或工具箱的名字包含在内,那么help将会提供这个函数或工具箱。
第二种方法是通过lookfor命令得到帮助。
lookfor命令与help命令不同,help命令要求与函数名精确匹配,而lookfor只要求与每个函数中的总结信息有匹配。
Lookfor命令比help命令运行起来慢得多,但它提高了得到有用信息的机会。
举个例子,假设你想找到一个求矩阵的逆阵(inverseofmatrix)的函数。
但是MATLAB中没有叫inverse的函数,这时help命令就不起作用了,只能用lookfor命令,得到结果.
1.8信号时域分析
1.用到的MATLAB命令
运算符:
:
.+-*/;%
基本矩阵:
ionespirandrandnzeros
基本函数:
cosexpimagreal
数据分析:
sum
二维图形:
axisgridlegendplotsubplotstairsstemtitlexlableylableclf
工具箱:
sawtoothsquare
2.序列的产生
(1)程序1-1:
单位抽样序列的产生和绘制
%ProgramP1_1
%GenerationofaUnitSampleSequence
clf;
%Generateavectorfrom-10to20
n=-10:
20;
%Generatetheunitsamplesequence
u=[zeros(1,10)1zeros(1,20)];
%Plottheunitsamplesequence
stem(n,u);
xlabel('Timeindexn');ylabel('Amplitude');
title('UnitSampleSequence');
axis([-102001.2]);
(2)程序1-2:
正弦序列的产生和绘制
%ProgramP1_2
%Generationofasinusoidalsequence
n=0:
40;
f=0.1;
phase=0;
A=1.5;
arg=2*pi*f*n-phase;
x=A*cos(arg);
clf; %Clearoldgraph
stem(n,x); %Plotthegeneratedsequence
axis([040-22]);
grid;
title('SinusoidalSequence');
xlabel('Timeindexn');
ylabel('Amplitude');
axis;
3.序列的运算(信号的平滑)
数字信号处理应用的一个常见例子是从被加性噪声污染的信号中移除噪声。
假定信号s[n]被噪声d[n]所污染,得到一个含有噪声的信号x[n]=s[n]+d[n]。
我们需要对x[n]进行运算,产生一个合理的逼近s[n],对时刻n的样本求平均,产生输出信号是一种简单有效的方法。
如:
三点滑动平均的信号。
程序1-3实现三点滑动平均的信号运算:
y[n]=(x(n-1)+x(n)+x(n+1))/3
程序如下:
%SignalSmoothingbyAveraging
clf;
R=51