第8章信号分析与处理编程实验
Matlab是“Matrix Laboratory”的缩写,意为“矩阵实验室”,是当今流行的科学计算软件。信息技术、计算机技术的发展,使科学计算在各个领域得到了广泛的应用。在许多诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其相应的计算问题。自己去编写大量的繁复的计算程序,不仅会消耗大量的时间和精力,减缓工作进程,而且往往质量不高。因此,美国Mathwork软件公司推出了Matlab软件,为人们提供一个方便的数值计算。
Matlab提供大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高。它的命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作。除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,例如,信号处理Signal Process工具箱、优化Optimization 工具箱、自动控制Control System工具箱、神经网络中Neural Network工具箱等等,被广泛应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
本章将以编程实验的方式讲解Matlab的命令使用、信号处理、系统建模等基本方法,希望学生可以掌握利用这个编程实验平台,验证所学的相关信号分析和处理理论知识,加深对基本原理的理解和应用。
8.1 Matlab使用简介
8.1.1 Matlab的安装
直接运行Matlab软件光盘中的安装程序,按提示选择即可完成安装。Matlab 卸载可以利用自带卸载程序或通过Windows系统控制面板中的添加/删除程序完成。
8.1.2 Matlab基本用法
从Windows中双击Matlab图标,会出现Matlab命令窗口(Command Window),在一段提示信息后,出现系统提示符“>>”。Matlab是一个交互系统,可以在提示符后键入
各种命令,通过上下箭头可以调出以前输入的命令,用滚动条可以查看以前的命令及其输出信息。如果对一条命令的用法有疑问的话,可以用Help菜单中的相应选项查询有关信息,也可以用help命令在命令行上查询。
sqrt是什么的缩写
试一下help、help help和help abs命令,看看会发生什么结果。
1.生成矩阵
输入一个小矩阵的最简单方法是用直接排列的形式,矩阵用方括号括起,元素之间用空格或逗号分隔,矩阵行与行之间用分号分开。例如输入:
A=[1    2 3;4    5    6 ;7 8 0]
系统会输出
A =
1    2    3
4    5    6
7 8 0
表示系统已经接收并处理了命令,在当前工作区内建立了矩阵A。大的矩阵可以分行输入,用回车键代替分号,如:
A=[ 1    2    3
4    5    6
7 8 0 ]
结果和上式一样。
2.语句和变量
Matlab的表述语句、变量的类型说明由Matlab系统解释和判断。Matlab语句通常表达形式为:变量=表达式,或者使用其简单形式为:表达式。
表达式由操作符或其它特殊字符、函数和变量名组成。表达式的结果为一个矩阵,显示在屏幕上,同时保存在变量中以留用。如果变量名和“=”省略,则具有ans名(意思指回答)的变量将自动建立。例如键入:
1900/81
运行结果为
ans =
23.4568
就可以得到运行结果。
需注意的问题有以下几点:
(1) 语句结束键入回车键,若语句的最后一个字符是分号,即“;”,则表明不输出当
前命令的结果。
(2) 如果表达式很长,一行放不下,可以键入“...”(三个点,但前面必须有个空格,
目的是避免将形如“数2...”理解为“数2.”与“..”的连接,从而导致错误),
然后回车。
(3)变量和函数名由字母加数字组成,但最多不能超过63个字符,否则系统只承认
前63个字符。
(4)Matlab 变量字母区分大小写,如A 和a 不是同一个变量,函数名一般使用小写字母,如inv (A )不能写成INV (A ),否则系统认为未定义函数。
3.数和算术表达式
Matlab 中数的表示方法和一般的编程语言没有区别。如:
3
-99    0.0001 9.63972    1.6021E-20    6.02252e23
在计算中使用IEEE 浮点算法,浮点数表示范围是10-308~10308。数学运算符有:
+
加  -
减  *
乘  /
右除  \
左除  ^  幂
这里1/4和4\1有相同的值都等于0.25(注意比较:1\4=4)。只有在矩阵的除法时,左除和右除才有区别。
例如,求算式23)47(212[÷-⨯+的结果,只需键入:
y=(12+2*(7-4))/(3^2)
就可以得到运行结果y=2。
4.退出和存盘
退出Matlab 可键入quit 或exit 或选择相应的菜单。中止Matlab 运行会引起工作空间中变量的丢失,因此在退出前,应键入save 命令,保存工作空间中的变量以便以后使用。
键入save ,则将所有变量作为文件存入磁盘Matlab.mat 中;下次Matlab 启动时,键入load ,将变量从Matlab.mat 中重新调出。
save 和load 后边可以跟文件名或指定的变量名,如仅有save 时,则只能存入Matlab.mat 中。如save temp 命令,则将当前系统中的变量存入temp.mat 中去,命令格式为:
save  temp x 仅仅存入x 变量。
save  temp X Y Z 则存入X 、Y 、Z 变量。
load  temp 可重新从temp.mat 文件中提出变量,load 也可读ASCII 数据文件。
编程练习
(1)计算35579.02
34+-。
(2)x x x x f y sin 15.2)(43+-==,求)3(f 。
8.1.3 Matlab 编程简介
1.M 文件
Matlab 通常使用命令驱动方式,当单行命令输入时,Matlab 立即处理并显示结果,同时将运行说明或命令存入文件。Matlab 语句的磁盘文件称作M 文件,因为这些文件名的后缀是.m 形式,例如一个文件名为bessel.m ,它提供bessel 函数语句。
M 文件有两种类型:
第一类型的M 文件称为命令文件,它是一系列命令、语句的简单组合。第二类型的M 文件称为函数文件,它提供了Matlab 的外部函数。用户为解决一个特定问题而编写的大量的外部函数可放在Matlab 工具箱中,这样的一组外部函数形成一个专用的软件包。这两种形式的M 文件,无论是命令文件,还是函数文件,都是普通的ASCII 文本文件,可选择编辑或字处理文件来建立。
如果M 文件的第一行包含function ,这个文件就是函数文件,它与命令文件不同,所定义变量和运算都在文件内部,而不在工作空间。函数被调用完毕后,所定义变量和运算将全部释放。函数文件对扩展Matlab 函数非常有用。
2.编写程序
例8-1编写一个函数文件mean.m 文件,用于求向量的平均值。
function  y=mean (x )
[m,n]=size (x );
if m==1
m=n ;
end
y=sum(x)/m;
存磁盘,文件中定义的新函数称为mean函数,它与Matlab函数一样使用,例如z为从1到99的实数向量:
z=1:99;
计算均值:mean(z)
ans=
50
mean.m程序的说明:
(1)第一行的内容:函数名,输入变量,输出变量,没有这行这个文件就是命令文件,而不是函数文件。
(2)%:表明%右边的行是说明性的内容注释。前一小部分行来确定M文件的注释,并在键入help mean后显示出来。显示内容为连续的若干个%右边的文字。
(3)变量m,n和y是mean的局部变量,在mean运行结束后,它们将不在工作空间z中存在。如果在调用函数之前有同名变量,先前存在的变量及其当前值将不会改变。
3.基本绘图方法
(1)绘制二维曲线
plot是绘制二维曲线的基本函数,但在使用此函数之前,需先定义曲线上每一点的x 及y坐标。下面程序可画出一条正弦曲线:
close all;
x=linspace(0,2*pi,100);% x坐标:[0,2π]之间,产生100个线性间隔的数据
y=sin(x);%对应的y坐标
plot(x,y);
若要画出多条曲线,只需将坐标对依次放入plot函数即可,如:
plot(x, sin(x), x, cos(x));
若要改变颜,在坐标对后面加上相关字串即可,如:
plot(x, sin(x), 'c', x, cos(x), 'g');

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。