数字信号处理上机指导1dlWord格式文档下载.docx
- 文档编号:18985212
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:59
- 大小:376.82KB
数字信号处理上机指导1dlWord格式文档下载.docx
《数字信号处理上机指导1dlWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理上机指导1dlWord格式文档下载.docx(59页珍藏版)》请在冰豆网上搜索。
图1.2工具栏各按钮控件及说明
MATLAB的其它几个窗口都包含在这个大的主窗口中,主窗口不能进行任何计算任务的操作,只用来进行一些整体的环境参数的设置。
主要包括菜单栏(File、Edit、View、Web、Window和Help共6个下拉菜单)、工具栏(10个按钮控件)等。
工具栏各按钮控件及说明如图1.2所示:
3.2命令窗口(CommandWindow)
MATLAB的命令窗口如图1-2所示。
其中“
”为运算提示符,表示MATLAB正处在准备状态。
当在提示符后输入一段运算式或命令并按Enter键后,MATLAB将给出计算结果,然后再进入准备状态。
3.3MATLAB常用命令
图1.3MATLAB的命令窗口
MATLAB有一些嵌入函数,有时应用这些函数可以起到事半功倍的效果。
MATLAB常用的控制命令见表1-1。
表1-1MATLAB常用命令
命令
功能
cd
显示或改变当前工作目录,与工具栏中
dir
列出当前目录或指定目录下的文件和子目录清单,类似于DOS命令DIR
clc、home
清除命令窗口中的所有显示内容,并把光标移到该窗口的左上角
clf
清除MATLAB当前图形窗口中的图形
clear
清除内存中的变量和函数
disp
显示变量的内容
type
列出指定文件的全部内容,类似于DOS命令TYPE
exit、quit
退出MATLAB
who
列出当前工作空间中的变量
whos
列出当前工作空间中的变量的更多信息
what
列出当前目录或指定目录下的.M文件、..MAT文件和..MEX文件
which
显示指定函数或文件的路径
lookfor
按照指定的关键字查找所有相关的.M文件
第2章MATLAB基本数值运算
2-1MATLAB内部特殊变量和常数
MATLAB内部有很多变量和常数,用以表达特殊含义。
常用的有:
⑴变量ans:
指当前未定义变量名的答案。
⑵常数eps:
表示浮点相对精度,其值是从1.0到下一个最大浮点数之间的差值。
该变量值作为一些MATLAB函数计算的相对于浮点数的精度,按IEEE标准,eps=2-52,近似为2.2204e-016。
⑶常数inf:
表示无穷大,当输入或计算中有除以0时产生inf。
⑷虚数单位i、j:
表示复数虚部单位,相当于
。
⑸NaN:
表示不定型值,是由0/0运算产生的。
⑹常数pi:
表示圆周率π,其值为3.1415926535897…。
2-2变量类型
1.变量命名规则
MATLAB中对变量的命名应遵循以下规则:
1)变量名可以由字母、数字和下划线混合组成,但必须以字母开头。
2)字符长度不能大于31。
3)变量命名区分大小写。
2.局部变量和全局变量
局部变量是指那些每个函数体内自己定义的,不能从其它函数和MATLAB工作空间访问的变量。
全局变量是指用关键字“global”声明的变量。
全局变量名应尽量大写,并能反映它本身的含义。
如果需要在工作空间和几个函数中都能访问一个全局变量,必须在工作空间和这几个函数中都声明该变量是全局的。
2-3向量及其运算
向量运算是矢量运算的基础,向量也是组成矩阵的基本元素之一。
1.向量的生成
1)直接输入向量
生成向量最直接的方法就是在命令窗口中直接输入。
格式上的要求是,向量元素需要用“[]”括起来,元素之间可以用空格、逗号或分号分隔;
需要注意的是,用空格和逗号分隔生成行向量,用分号分隔生成列向量。
例A=[1,2,3]或A=[123]%生成行向量
A=[1;
2;
3]%生成列向量
2)利用冒号表达式生成向量
冒号表达式的基本形式为x=x0:
step:
xn,其中x0、step、xn分别为给定数值,x0表示向量的首元素数值,xn表示向量尾元素数值限(只有当xn-x0恰为step值的整数倍时,xn才能成为尾数),step表示从第二个元素开始,元素数值大小与前一个元素数值大小的差值。
例在命令窗口,给向量a、b、c赋值。
>
>
a=1:
2:
12
a=
1357911
b=12:
-2:
1
b=
12108642
c=1:
13
c=
135791113
3)特殊向量的生成
对于特殊的向量可直接调用MATLAB的函数生成。
如y=linsoace(x1,x2,n)用于生成线性等分的n维行向量,使得y
(1)=x1,y(n)=x2。
另外,向量还可以从矩阵中提取,还可以把向量看成是1×
n阶(行向量)或n×
1阶(列向量)的矩阵,以矩阵形式生成。
2.向量的基本运算
1)加(减)与数乘计算
例>
a=[1,2,3,4];
b=[0,1,2,3];
c=a-b
1111
d=a-3
d=
-2-101
4*a
ans=
481216
2)对位乘、点积计算
同维向量a与b的对位乘用c=a.*b实现,即c的每一个元素之值是a与b对应元素的乘积。
同维向量a与b的点积,一个方法是利用函数dot来实现;
另一种方法是先生成a与b的对位乘向量c,再取c的各元素和即为a与b的点积。
a.*b
02612
dot(a,b)%或sum(a.*b)
20
2-4矩阵及其运算
MATLAB具有强大的矩阵运算和数据处理功能,对矩阵的处理必须遵从代数规则。
1.矩阵的生成
1)一般矩阵的生成
对于一般矩阵,MATLAB的生成方法有很多种。
最简单的方法是从键盘直接输入矩阵元素。
直接输入矩阵元素时应注意:
各行的元素之间用空格或逗号隔开,行与行之间用分号或回车隔开,用中括号把矩阵所有的元素括起来。
例在工作空间产生一个3×
3矩阵A可用MATLAB语言描述如下:
A=[1,2,3;
4,5,6;
7,8,9]
或A=[123
456
789]
运行结果为
A=
123
456
789
2)特殊矩阵的生成
对于特殊的矩阵可直接调用MATLAB的函数生成
用函数zeros生成全0矩阵:
格式为B=zeros(m,n)生成m×
n的全0阵。
用函数ones生成全1矩阵:
格式为B=ones(m,n)生成m×
n的全1阵。
用函数eye生成单位阵:
格式为B=eye(m,n)生成m×
n矩阵,其中对角线元素全为1,其它元素为0。
2.矩阵的运算
矩阵的运算有基本运算和函数运算两种类型。
基本运算包括矩阵的加、减、乘、除、幂、转置、逆等,其主要特点是通过MATLAB提供的基本运算符+、-、*、/、^等即可完成。
函数运算主要是通过调用MATLAB系统内置的运算函数来求解矩阵,求秩,求特征值和特征相量,等等。
需要时可以参阅联机帮助和相关参考书。
例矩阵的基本运算
a=[1,2,3;
4,5,6];
b=[6,5,4;
3,2,1];
c=a+b%计算两个矩阵的和
777
d=b′%计算矩阵b的转置
63
52
41
e=a*d%做矩阵的乘法,必须满足矩阵乘法的基本要求
e=
2810
7328
f=det(e)%求矩阵e的行列式
f=
54
g=e^(-1)%求矩阵e的逆
g=
0.5185-0.1852
-1.35190.5185
第3章MATLAB图形处理功能
从最原始版本的MATLAB开始,图形功能就已经成为基本功能之一。
随着MATLAB版本的逐步升级,MATLAB的图形工具箱从简单的点、线、面处理发展到了集二维图形、三维图形甚至四维表现图和对图形进行着色、消隐、光照处理、渲染及多视角处理等多项功能于一身的强大功能包。
这里只简单讨论二维基本绘图命令及图形修饰命令。
常用的绘图语句有figure、plot、subplot、stem等,图形修饰语句有title、axis、text等。
1.figure命令
figure有两种用法,只用一句figure命令,会创建一个新的图形窗口,并返回一个整数型的窗口编号。
figure(n)表示将第n号图形窗口作为当前的图形窗口,并将其显示在所有窗口的最前面;
如果该图形窗口不存在,则新建一个窗口,并赋以编号n。
2.plot命令
线性绘图函数。
用法为plot(x,y,’s’)。
参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细等的图形设置选项,通常可以省略。
MATLAB语言中提供的图形控制符如表3-1所示。
表3-1MATLAB语言中的图形设置选项
参数
含义
y
黄色
·
点
-
实线
m
紫色
O
圆
:
虚线
c
青色
×
打叉
-·
点划线
g
绿色
+
加号
--
破折线
b
蓝色
*
星号
^
向上的三角形
w
白色
s
正方形
<
向左的三角形
k
黑色
d
菱形
向右的三角形
r
红色
v
向下的三角形
p
五角星形
3.stem命令
绘制离散序列图,常用格式为stem(x)和stem(x,y)分别和相应的plot函数的绘图规则相同,只是用stem命令绘制的是离散序列图。
4.subplot命令
subplot(m,n,i)图形显示时分割窗口命令,把一个图形窗口分为m行,n列,m×
n个小窗口,并指定第i个小窗口为当前窗口。
5.坐标轴标注
MATLAB中提供了许多关于坐标轴标注的函数,常用的函数有title、xlabel、ylabel等。
其中,函数title是为图形添加标题,并将标题置于图形的顶部;
而xlabel、ylabel是为x、y坐标轴添加标注,并分别将标注置于相应的坐标轴的边上。
这三个函数的调用格式是大同小异的,这里仅以title为例介绍它们的调用格式。
title(‘标记’)
其中,标记可以文字,也可以是数学表达式。
6.文本标注
MATLAB语言对图形进行文本注释所提供的为text。
它的调用格式为
text(x,y,‘文本’)
其中,(x,y)给定标注文本在图中添加的位置。
7.图例标注
在数值计算结果的绘图中,经常会出现在同一张图形中绘制多条曲线的情况,为了能更好地区分各条曲线,MATLAB语言提供了图例标注函数legend。
它能为图形中所有的曲线进行自动标注,以其输入变量作为标注文本,具体的调用格式为:
legend(‘标注1’,‘标注2’,…)
这里的标注1、标注2等分别对应绘图过程中按先后顺序所生成的曲线。
8.坐标轴的控制函数axis
函数axis用来控制坐标轴的刻度范围及显示形式。
其最简单的调用格式为
axis([xmin,xmax,ymin,ymax])
即绘图时变量x∈[xmin,xmax],变量y∈[ymin,ymax]。
例绘制信号图形。
%fun0.m定义文件名
x=0:
0.1*pi:
2*pi;
%定义x向量
figure
(1);
%创建一个新的图形窗口,编号为1
subplot(2,2,1);
%将窗口划分为2行,2列,在第一个窗口中作图
plot(x,sin(x));
%画图
title('
正弦线'
);
%給图形加标题
subplot(2,2,2);
%在第二个窗口中作图
plot(x,sin(x),'
r'
);
%画一正弦波红色
xlabel('
X'
%给x轴加说明
ylabel('
SIN(X)'
%给y轴加说明
subplot(2,2,3);
%在第三个窗口中作图
--'
x,cos(x),'
-.m*'
%用破折线画一正弦波
%用紫色点划.星线画一余弦波
legend('
'
COS(X)'
%给图形加图例标注
subplot(2,2,4);
%在第四个窗口中作图
r+--'
%用红色破折线画一正弦波
text(4,0,'
注记'
以上内容以文件名fun0.m存盘,在MATLAB命令窗口中执行
fun0↙
或将以上内容直接在MATLAB命令窗口中键入并↙,得到结果如下:
Fig.1
第4章MATLAB程序设计
MATLAB作为一种高级计算语言,它不仅可以如前面所介绍的那样,以人机交互命令行的方式工作,还可以像BASIC、FORTRAN、C等其它高级计算机语言一样进行控制流的程序设计,即编制一种以.m为扩展名的文件,简称为M文件。
而且,M文件的编写具有语法简单、可读性强、调试容易、调用方便等许多优点。
4-1M文件介绍
1.M文件的特点与形式
MATLAB实质上是一种解释性语言,就MATLAB本身说,它并不能做任何事情,它就像DOS操作系统一样,本身没有实现功能而只对用户发出的指令起解释执行的作用,即命令先送到MATLAB系统内解释,再运行得到结果。
因此用户可以把所要实现的指令罗列编制成文件,再统一送入MATLAB系统中解释运行,这就是以.m为扩展名的M文件。
用户可以使用任何字处理软件对其进行编写或修改。
正是M文件的这个特点造就了MATLAB强大的可开发性和可扩展性,Mathworks公司推出的一系列工具箱就是证明。
由于商用的MATLAB软件用C语言编写而成,因此,M文件的语法与C语言的十分相似。
对广大的C语言爱好者来说,M文件的编写是相当容易的。
M文件有两种形式,即命令式和函数式。
并且要注意:
文件扩展名一定为.m。
标点符号的运用要恰到好处,建立好的书写风格,保持程序的可读性。
以符号%引导的行为注释行,不可执行,可供help命令查询;
不需要用end语句作为M文件的结束标志;
在运行此文件之前,需要把它所在目录加到MATLAB的搜索路径上去,或将文件所在目录设为当前目录。
2.命令式文件
命令式文件就是命令行的简单叠加,MATLAB会自动按顺序执行文件中的命令,其运行相当于在命令窗口中逐行输入并运行命令,因此,用户在编制此类文件时,只需把所要执行的命令按行编辑到指定的文件中,且变量不需预先定义,也不存在文件名对应问题,也可以访问存在于整个工作空间内的数据。
但要注意:
命令式文件在运行中所产生的所有变量均为全局变量。
也就是说,这些变量一旦生成,就一直保存在内存中,直到用户执行clear或quit命令为止。
例打开Medit窗口,编写如下程序
x=[1,3,4,7];
y=sum(x)/length(x);
以aver.m为文件名存盘。
在命令窗口键入aver并回车即可运行该程序。
3.函数式文件
为了实现计算中的参数传递,需要用到函数式文件。
函数式文件在MALTAB中应用十分广泛,MALTAB所提供的绝大多数功能函数都是由函数式文件实现的,这足以说明函数式文件的重要性。
函数式文件的结构为:
function输出参数=函数名(输入参数)
函数体%注释
例编制一个求几个数平均值的函数。
打开Medit窗口,编写如下程序
functiony=lianxi(x)
n=length(x);
%确定向量x的维数
ifn==1
y=x;
end
ifn>
=2
y=sum(x)/n;
编写完毕后,以lianxi.m存盘。
函数式文件的标志是第一行必为function语句。
函数式文件可以有返回值如上例中的y,也可以只执行操作而无返回值,大多数函数式文件有返回值。
函数体是函数的主体部分,它包括进行运算和赋值的所有MALTAB程序代码。
函数体中可以包括流程控制、输入、输出、计算、赋值、注释以及函数调用和命令文件调用等。
在函数体中完成对输出参数的计算。
函数式文件执行后,只保留最后结果,不保留任何中间过程,所定义的变量也仅在函数内部起作用,并随调用的结果而被清除。
函数的调用过程实际上就是参数的传递过程。
例调用函数lianxi.m计算20,50,90,100,40的平均值。
在命令窗口键入如下命令并回车即可。
x=[20,50,90,100,40];
y=lianxi(x);
该调用过程把变量x传递给了输入参数,然后把函数运算的返回值传给了输出参数y。
在编写函数式文件时,要特别注意:
只有文件名与函数名一一对应,才能保证调用成功。
function后的语句定义函数名和输入、输出参数,在函数被调用过程中将按此输入、输出格式执行。
要养成良好的注释习惯,以方便自己或其它用户的调用。
4-2程序控制语句
MALTAB的程序控制语句有循环语句、条件转移语句两种类型。
1.循环语句
MALTAB的循环语句包括for循环和while循环两种类型。
(1)for循环
语法格式:
for循环变量=初始值:
步长:
终止值
循环体
初始值和终止值为一整型数,步长可以为整数或小数,省略步长时,默认步长为1。
执行for循环时,判定循环变量的值是否大于(步长为负时则判定是否小于)终止值,不大于(步长为负时则不小于)则执行循环体,执行完毕后,再加上步长,这时循环变量的值若大于(步长为负时则小于)终止值后退出循环,否则继续。
for循环最大的特点是,在一般情况下,此循环语句的循环次数是预先设定好的。
例给矩阵a赋值。
functiona=chuzhi
k=5;
a=zeros(k,k);
form=1:
forn=1:
a(m,n)=1/(m+n-1);
end
以chuzhi.m存盘。
然后在MALTAB命令窗口中执行以下命令
a=chuzhi
得到结果为:
1.00000.50000.33330.25000.2000
0.50000.33330.25000.20000.1667
0.33330.25000.20000.16670.1429
0.25000.20000.16670.14290.1250
0.20000.16670.14290.12500.1111
说明:
for语句一定要有end作为结束标志,否则下面的输入都被认为是for循环之内的内容。
循环语句中的分号‘;
’可防止中间结果的输出。
(2)while循环
while表达式
循环体
其执行方式为:
若表达式为真(运算值非0),则执行循环体;
若表达式为假(运算结果为0),则退出循环体,执行end后的语句。
while循环的特点是循环次数无法预先确定,因此在使用中要谨慎,以防止陷入死循环。
a=3;
b=0;
whilea
a=a-1;
b=b+a;
b
3
a
0
同for循环比起来,while语句的判断控制可以是一个逻辑判断语句,因此它的适用范围会更
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 上机 指导 dl