电子科技大学信号处理实验1 - 信号的基本表示及时域分析 下载本文

电 子 科 技 大 学

实 验 报 告

一、实验室名称:数字信号处理实验室

二、实验项目名称:信号的基本表示及时域分析 三、实验原理:

1、MATLAB基础

MATLAB(Matrix+Laboratory)是MathWorks公司1982年推出的数值计算和可视化数学软件。其基本元素是矩阵,基本方法是程序实现。使用MATLAB可以方便地解决复杂的数值计算问题,并且具有丰富的工具箱(ToolBox)专用于辅助各类与数学相关问题的分析。在高校中,MATLAB已成为数学,信息,控制等诸多学科有关课程的有效教学工具。 1.1 MATLAB功能特点

MATLAB命令可控、可编程,有上百个预先定义好的命令和函数,这些函数能通过用户自定义函数进一步扩展。MATLAB本身带有许多强有力的命令,例如,能够用一个单一的命令求解线性系统,能完成大量的高级矩阵处理,能绘制色彩绚丽的二维、三维图形,能与其他程序一起使用。

MATLAB语言的特点包括:

? 具有编程效率高,允许用数学的语言来编写程序

? 用于使用方便,把程序的编辑、编译、连接和执行融为一体 ? 高效方便的矩阵和数组运算 ? 语句简单,内涵丰富 ? 扩充功能强,交互性,开放性 ? 方便的绘图功能

? 该软件由c语言编写,移植性好

MATLAB环境如图1.1所示,其中包括:

图1.1 MATLAB的环境窗口

? 菜单栏 ? 工具栏

? [Command Window]命令窗口 ? [Launch Pad]分类帮助窗口

? [Command History]指令历史记录窗口 ? [Current Directory]当前目录选择窗口 1.2 MATLAB的数组与矩阵

MATLAB中最常见的操作就是对数组与矩阵的操作。MATLAB中的变量一般都默认为向量或矩阵,对于变量的定义不需要任何类型及维度的声明,变量名的第一个字符必须是字母。

常用的常数包括:pi(π),i或j(虚数单位),Inf(无穷),NaN(空值),e(以10为底的幂次,例如1.602e12)等。

常用运算符包括:+ 加,- 减,* 乘,/ 除 , \\ 左除,^ 幂, ’复共轭转置,. 点运算。

常用函数包括sqrt()开平方;abs()绝对值;exp()以e为底的指数;log(x)以e为底的对数;round()取整;syms定义符号变量等。需要了解更多函数的使用方法请利用帮助函数help。

构造数组的方法有:直接构造(用空格或逗号间隔数组元素),用增量法构

造(数组起值:数组终值或数组起值:步长:数组终值),用linspace函数构造数组(x=linspace(起值,终值,个数)。

构造矩阵的方法有:简单创建方法(直接进行赋值型定义);构造特殊矩阵(ones创建一个所有元素都为1 的元素;zeros创建一个所有元素都为0的元素;eye创建对角元素为1,其他元素为0的元素;rand创建一个矩阵或数组,其中的元素服从均匀分布;randn创建一个矩阵或数组,其中的元素服从正态分布;diag创建对角矩阵);聚合矩阵。

获取矩阵元素方法有:取单个元素(矩阵变量名(行,列));取多个元素(矩阵变量名(:,列),矩阵变量名(行,:));获取所有元素(矩阵变量名(:))。获取与矩阵有关信息的函数为length(返回最长维长度),ndims(返回维数),numel(返回元素个数),size(返回每一维的长度)。

矩阵的基本运算有*(矩阵相乘),rank(求矩阵的秩),det(矩阵的行列式),poly(求特征多项式),sym(将矩阵转换为符号矩阵)。 1.3 MATLAB绘图

常见绘图函数有plot(x,y)(绘制二维连续图形,其中x为横坐标,y为纵坐标),三维图形绘制plot3(x,y,z)(绘制三维连续图形,其中x为横坐标,y为纵坐标,z为与x,y所在平面垂直的坐标),stem(n,y)(绘制二维离散图形,其中n为离散的横坐标,y为纵坐标),subplot(n,m,i)(在一幅大图中绘制n行m列共计nm幅小图,当前的图是第i幅图)。 1.4 MATLAB中的程序流控 (1)顺序结构

按指令顺序一条条执行下去。 (2)循环结构

for -end :特点是循环判断条件通常是对循环次数的判断,即循环次数是预先设定的。调用格式为: for 变量=表达式 执行语句 …… 执行语句 end

表达式是一个向量,可表示为m:s:n

while-end:判断控制一般是逻辑判断语句,使用范围更大。调用格式为: while 表达式 执行语句 …… 执行语句 end

表达式一般是关系运算式或逻辑运算式组成的逻辑判断语句,以确定循环是否继续。通常表达式的值非零,即为逻辑真,程序继续循环,否则停止循环。 三. 选择结构

if-else-end 又称为条件语句,根据表达式的情况判断是否满足条件来确定程序下一步的运行。大致可分为三步进行: 首先计算紧跟if后面表达式。

接着判断表达式计算结果,若结果为0,判断值为假;若结果为1,判断值为真。

然后若判断值为真,则执行其后的执行语句组;否则跳过,执行下一个条件表达式或者结束该选择语句。 调用格式为: 1. if 表达式 执行语句组 end 2. if 表达式

执行语句组1 else

执行语句组2 end 3. if 表达式1 执行语句组1 elseif 表达式2 执行语句组2 elseif 表达式3