matlab基础4
MATLAB图像处理基础教程
MATLAB图像处理基础教程第一章:MATLAB图像处理简介MATLAB(Matrix Laboratory)是一种强大的数值计算和数据可视化软件,广泛应用于各个领域,包括图像处理。
图像处理是一门研究如何对数字图像进行分析、增强、重建和压缩的学科。
本教程将引导读者逐步了解MATLAB图像处理的基本概念和技术。
第二章:MATLAB图像的读取与显示在MATLAB中,可以使用imread函数读取不同格式的图像文件,并使用imshow函数显示图像。
此外,还可以使用imfinfo函数获取图像的详细信息,如分辨率、颜色空间和位深度等。
第三章:图像的灰度处理灰度处理是一种常见的图像预处理方法。
通过将彩色图像转换为灰度图像,可以减少图像的数据量,简化图像处理的复杂性。
在MATLAB中,可以使用rgb2gray函数将彩色图像转换为灰度图像,并使用imhist函数查看灰度图像的直方图。
第四章:图像的滤波处理滤波是一种常用的图像处理操作,用于对图像进行平滑、增强或去噪。
MATLAB提供了各种滤波函数,如均值滤波、中值滤波和高斯滤波等。
可以根据具体需求选择合适的滤波方法,并使用imfilter函数进行滤波处理。
第五章:图像的二值化处理图像的二值化是将图像转换为黑白两色的过程,常用于物体检测、识别和分割等应用。
在MATLAB中,可以使用im2bw函数将灰度图像转换为二值图像,并可以调整阈值来控制二值化的效果。
第六章:图像的几何变换几何变换是一种常见的图像处理操作,用于对图像进行旋转、缩放、平移和翻转等操作。
MATLAB提供了imrotate、imresize、imtranslate和flip函数等实现各种几何变换。
通过组合这些函数,可以实现复杂的图像变换。
第七章:图像的特征提取图像的特征提取是图像处理中的重要步骤,用于从图像中提取出具有代表性的信息。
在MATLAB中,可以使用各种特征提取函数,如imgradient、imhistogram和imcontour等。
MATLAB科学计算软件入门教程
MATLAB科学计算软件入门教程第一章:MATLAB基础知识MATLAB是一种专业的科学计算软件,具有强大的数学计算和数据分析能力。
在使用MATLAB进行科学计算前,我们需要先了解一些基本知识。
1.1 MATLAB界面打开MATLAB后,我们会看到一个主界面。
主界面中有命令窗口、当前文件夹窗口、工作空间窗口和编辑器窗口等基本功能区域。
1.2 MATLAB变量和数据类型MATLAB中的变量可以用来存储各种类型的数据,如数字、字符串、矩阵等。
常见的数据类型包括:double(双精度浮点数)、char(字符)、logical(逻辑值)等。
1.3 MATLAB基本操作在MATLAB中,可以使用基本的数学运算符进行加、减、乘、除等计算操作。
另外,还可以通过内置函数实现更复杂的数学运算。
例如,sin函数可以计算正弦值,sum函数可以计算矩阵元素的和等。
第二章:MATLAB矩阵和向量操作2.1 创建矩阵和向量在MATLAB中,可以使用方括号来创建矩阵和向量。
例如,使用[1,2;3,4]可以创建一个2x2的矩阵。
2.2 矩阵和向量的加减乘除运算MATLAB提供了丰富的矩阵和向量运算函数,可以进行加法、减法、乘法、除法等运算操作。
例如,可以使用矩阵相乘函数*来计算矩阵的乘法。
2.3 矩阵和向量的索引和切片在MATLAB中,可以使用索引和切片操作来获取矩阵和向量中的特定元素或子集。
例如,使用矩阵名加上行和列的索引可以获取矩阵中指定位置的元素。
第三章:MATLAB数据可视化3.1 绘制二维图形MATLAB提供了丰富的绘图函数,可以绘制二维曲线、散点图、柱状图、等高线图等。
例如,可以使用plot函数来绘制二维曲线。
3.2 绘制三维图形MATLAB还可以绘制三维图形,如三维曲线、三维散点图、三维曲面等。
例如,可以使用plot3函数来绘制三维曲线。
3.3 图像处理与显示MATLAB提供了图像处理和显示的函数,可以加载、编辑和保存图像。
MATLAB基础教程(第四版)第11章 Simulink的建模与仿真
第11 章 Simulink的建模与仿真
教学目标 教学重点 教学内容
2021年8月23日
第1页
MATLAB R2018b 基础教程
教学目标
掌握Simulink的基本建模方法 熟悉Simulink模块库 熟悉常见Simulink模型 了解S函数的设计和调用
基本建模方法
例11-1 dy/dt= 10 sin t的Simulink解。 使用Simulink针对0≤t≤13时的情况求解以下的问 题。 精确解是y(t) = 10(1 - cos t)。
例11-2 输出到MATLAB工作空间之中。
例11-3 dy/dt = -10y + f (t)的Simulink模型。
Simulink模块库(1/16)
连续模块(Continuous)
2021年8月23日
第7页
MATLAB R2018b 基础教程
Simulink模块库(2/16)
控制板模块(Dashboard)
2021年8月23日
第8页
MATLAB R2018b 基础教程
Simulink模块库(3/16)
非连续模块(Discontinuous)
2021年8月23日
第5页
MATLAB R2018b 基础教程
Simulink简介(2/2)
Simulink模型文件的扩展名为.mdl。使用模型窗 口中的File菜单打开、关闭和保存模型文件。使 用Edit菜单复制、剪切和粘贴模块。用户还可以 使用鼠标来完成这些操作。
2021年8月23日
第6页
MATLAB R2018b 基础教程
第11页
MATLAB R2018b 基础教程
matlab基础练习题及答案
第1章MATLAB基础MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?答:在MATLAB操作桌面上有五个窗口。
在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口。
在独立窗口的Desktop菜单中选择Dock...项就可以将独立的窗口重新放置到桌面上。
如何启动M文件编辑/调试器?答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。
在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。
存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。
命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。
如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path 菜单项来完成。
在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB 运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。
在MATLAB 中有几种获得帮助的途径?答:(1)帮助浏览器:选择view 菜单中的Help 菜单项或选择Help 菜单中的MATLAB Help 菜单项可以打开帮助浏览器。
(2)help 命令:在命令窗口键入“help ” 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息。
MATLAB基础教程(第四版) 第1章 MATLAB R2018b简介
2019年9月27日
第6页
MATLAB R2018b 基础教程
MATLAB 概述(3/3)
MATLAB有以下几个特点。
高级科学计算语言。 代码、数据文件的集成管理环境。 算法设计开发的交互式工具。 用于线性代数、统计、傅立叶分析、滤波器设计、优化和数值计算的基本数学
函数。 2-D和3-D数据可视化。 创建自定义工程师图形界面的工具。 与第三方算法开发工具—— C/C++、FORTRAN、Java、COM、Microsoft
Real-Time Windows Target
2019年9月27日
第10页
MATLAB R2018b 基础教程
启动 MATLAB R2018b (1/1)
选择“开始”|“所有程序”| MATLAB| R2018b | MATLAB R2018b命令,或者直接双击桌面上的MATLAB图标,启动 MATLAB R2018b。
2019年9月27日
第5页
MATLAB R2018b 基础教程
MATLAB 概述(2/3)
MATLAB可以被广泛地应用于不同领域,如信号与图像处理、控制系统设计 与仿真、通信系统设计与仿真、测量测试与数据采集、金融数理分析以及生物 科学等。在MATLAB中内嵌了丰富的数学、统计和工程计算函数,使用这些 函数进行问题的分析解答,无论是问题的提出还是结果的表达都采用工程师习 惯的数学描述方法,这一特点使MATLAB成为了数学分析、算法开发及应用 程序开发的良好环境。MATLAB是MathWorks产品家族中所有产品的基础。 附加的工具箱扩展MATLAB基本环境用于解决特定领域的工程问题。
Excel—— 集成开发基于 MATLAB的算法。
《MATLAB基础》课件
Matlab的用途
算法开发
Matlab提供了丰富的数学函数库,方便 用户进行算法开发。
数据可视化
Matlab具有强大的绘图和可视化功能, 可以方便地绘制各种图表。
数据分析
Matlab提供了统计分析工具箱,可以进 行数据分析和处理。
微分方程求解
使用Matlab的符号计算功能和数 值求解方法,如`dsolve`和 `ode45`等,可以求解常微分方程 和偏微分方程。
数据分析
数据导入与预处理
使用Matlab的数据导入工具箱,如`readtable`、`readmatrix`等 ,可以方便地导入各种数据格式,并进行数据清洗和预处理。
并进行预测。
聚类算法
Matlab提供了K均值聚类 、层次聚类等聚类算法, 可用于数据聚类和分组。
特征选择与降维
使用Matlab的特征选择和 降维函数,如`fitcdiscr`、 `pca`等,可以提取关键特
征和降低数据维度。
谢谢您的聆听
THANKS
的计算顺序。
流程控制
总结词
掌握Matlab中的流程控制语句及其用法 。
VS
详细描述
Matlab提供了多种流程控制语句,如ifelse语句、switch-case语句和循环语句 (for和while)。这些语句用于控制程序 的执行流程,实现条件判断和重复执行等 功能。
03
Matlab矩阵运算
矩阵的创建
总结词
介绍矩阵的特征值和特征向量运算
详细描述
在Matlab中,可以使用eig函数来计算矩阵的特征值和特 征向量。例如,计算一个3x3的矩阵的特征值和特征向量 可以使用[V,D] = eig(A)的形式,其中V是特征向量矩阵, D是对角线元素为特征值的矩阵。
Matlab基础及其应用 第4章 图形绘制
'MarkerIndices',[1 31 61 91 121],... %在4个点显示标记
'MarkerEdgeColor','r',...
%设置曲线标记外框为红色
'MarkerFaceColor','y',...
%设置曲线标记内填充黄色
'MarkerSize',8)
%设置曲线标记大小为8
用法:
fplot(funx, funy, lims)
其中,funx、funy代表函数,通常采用函数句柄的形式。li
ms为参数函数funx和funy的自变量的取值范围,用二元向量
[tmin,tmax]描述。例如,例4.1也可以用以下命令实现:
>> fplot(@(t)sin(t)+sin(2*t), @(t)cos(t)-cos(2*t), [0,2*pi])
t1=linspace(0,3*pi,90);
x=cos(t1)+t1.*sin(t1);
t2=linspace(0,2*pi,50);
y=sin(t2)-t2.*cos(t2);
plot(t1,x,t2,y);
4.1 二维曲线的绘制
MATLAB基础与应用教程
4.1.1 绘制二维曲线
2.fplot函数
支持的TeX字符串中,用\bf、\it、\rm标识符分别定义字形
为加粗、倾斜和常规字体。
表4.5中的各个字符既可以单独使用,又可以和其他字符及
命令联合使用。为了将控制字符串、TeX标识符与输出字符
分隔开来,可以用大括号界定控制字符串以及受控制字符串
ch05-MATLAB基础教程(第四版)-薛山-清华大学出版社
清华大学出版社
单元数组和结构体 (3/3)
结构体 结构体的生成 结构体的操作 (1) 添加成员变量 (2) 删除成员变量 (3) 调用成员变量
2021年3月11日
第11页
清华大学出版社
2021年3月11日
第2页
MATLAB R2018b 基础教程
教学重点
字符串 单元数组 结构体
清华大学出版社
2021年3月11日
第3页
MATLAB R2018b 基础教程
教学内容
字符串 单元数组和结构体
清华大学出版社
2021年3月11日
第4页
MATLAB R2018b 基础教程
将字符串转化为相应的无符号整数 将字符型转化为数字型
uint8('ab')→ 97 98 str2num('123.56') →123.5600
str2double hex2num
与上一函数的功能相同,结果更精确一 些,同时支持单元字符串数组
将十六进制数转化为双精度数
double('123.56') →49 50 51 46 53 54。
2021年3月11日
第6页
MATLAB R2018b 基础教程
清华大学出版社
字符串(3/4)
字符串比较、查找和替换
字符串的比较
字符串的比较主要为比较两个字符串是否 相同,字符串中的子串是否相同和字符串中的 个别字符是否相同。用于比较字符串的函数主 要是strcmp和strncmp。
字符串的查找和替换
清华大学出版社
字符串(1/4)
字符串的生成
MATLAB 中的字符串为 ASCII 值的数值数 组,作为字符串表达式进行表示。在 MATLAB 中,生成字符串的方法为 stringname=’the content of the string’。
matlab 教学大纲
matlab 教学大纲MATLAB教学大纲引言:MATLAB是一种强大的科学计算软件,广泛应用于各个学科领域。
本文旨在探讨MATLAB教学的大纲,以帮助教师和学生更好地理解和应用这一工具。
第一部分:MATLAB基础知识1. MATLAB介绍- MATLAB的起源和发展- MATLAB的优势和应用领域2. MATLAB环境- MATLAB界面的基本组成- MATLAB的工作空间和变量管理3. MATLAB基本语法- 基本数据类型和变量- 运算符和表达式- 控制流程(条件语句、循环语句)4. MATLAB函数- 函数的定义和调用- 内置函数和自定义函数- 函数的参数传递和返回值第二部分:MATLAB数据处理与可视化1. 数据处理- 数据导入和导出- 数据处理函数(排序、筛选、统计等)- 数据的存储和读取2. 图形绘制- 二维图形绘制(曲线图、散点图、柱状图等) - 三维图形绘制(曲面图、散点图、等高线图等) - 图形的自定义和美化3. 图像处理- 图像的读取和显示- 基本的图像处理操作(缩放、旋转、滤波等) - 图像的特征提取和分析第三部分:MATLAB编程与算法设计1. MATLAB编程基础- 脚本文件和函数文件- 调试和错误处理- 编程风格和规范2. 数值计算与优化- 数值计算方法(数值积分、数值解微分方程等) - 优化算法(线性规划、非线性规划等)- 模拟和仿真3. 信号处理与系统建模- 信号的采样和重构- 时域和频域分析- 系统建模与控制设计第四部分:MATLAB应用案例1. 工程应用- 电路设计与分析- 机械系统建模与仿真- 通信系统设计与分析2. 统计分析- 统计数据处理与分析- 数据挖掘与机器学习- 统计建模与预测3. 科学研究- 科学计算与模拟- 数据可视化与分析- 科学实验与数据处理结语:本文对MATLAB教学大纲进行了概述,从基础知识到高级应用,涵盖了MATLAB的核心功能和应用领域。
MATLAB基础入门教程
MATLAB基础入门教程MATLAB(Matrix Laboratory)是一种用于算法开发、数据可视化和数值计算的强大编程语言和环境。
它广泛应用于工程、科学和经济等领域,提供了许多功能和工具,帮助用户解决各种数学问题。
本文将介绍MATLAB的基础知识和使用方法,帮助读者入门并快速上手。
1.MATLAB的安装和启动首先,我们需要下载并安装MATLAB软件。
MATLAB提供了不同版本供用户选择,根据个人需求选择适当的版本进行安装。
安装完成后,可以从开始菜单或桌面快捷方式启动MATLAB。
2.MATLAB的界面和基本操作MATLAB的界面由命令窗口、编辑器窗口、工具栏和菜单栏等组成。
命令窗口是用户与MATLAB交互的主要界面,可以输入并执行MATLAB命令。
编辑器窗口用于编写和编辑MATLAB代码。
工具栏和菜单栏提供了常用功能的快速访问。
在MATLAB中,常用的基本操作包括创建变量、进行数学运算、调用函数和绘制图形等。
下面将介绍一些常用命令和语法。
3.变量和数据类型在MATLAB中,可以使用赋值语句(=)创建变量并给其赋值。
MATLAB支持多种数据类型,如数值(整数、浮点数等)、字符串、逻辑值(true和false)和复数等。
例如,可以使用以下语句创建并赋值一个变量:```x=10;y='Hello MATLAB';z=true;```MATLAB还提供了一些特殊的变量和常量,如pi(圆周率)和inf (无穷大)。
通过使用这些工具,可以更方便地进行数学计算和建模等操作。
4.数组和矩阵运算MATLAB以数组为基本数据结构,支持各种数组和矩阵运算。
可以使用方括号([])创建一维或多维数组,并使用索引访问数组的元素。
例如:```a=[1,2,3,4,5];b=[1,2;3,4;5,6];c=a(3);%访问数组a的第三个元素d=b(2,1);%访问矩阵b的第二行的一列元素```MATLAB提供了丰富的函数库和运算符,用于对数组和矩阵进行各种操作,如求和、平均值、乘法、转置等。
MATLAB基础教程(第四版)第9章 MATLAB句柄图形
图形对象是 MATLAB 显示数据的基本绘图 元素,每个对象拥有一个唯一的标志,即 句柄。通过句柄可以对已有的图形对象进 行操作,控制其属性。
MATLAB 中这些对象的组织形式为层次结 构,如图所示。
2021年8月23日
第5页
MATLAB R2018b 基础教程
2021年8月23日
第9页
MATLAB R2018b 基础教程
MATLAB 的图形对象(6/7)
Annotation 对象 它是 MATLAB 中的注释内容,存在于因此 的坐标系中,该坐标系的范围为整个图形 窗口。用户可以通过规范化坐标将注释对 象放置于图形窗口中的任何位置。规范化 坐标的范围为从 0 到 1,窗口左下角为 [0,0],右上角为 [1,1]。
Interruptible
确定当前的响应函数是否可以被后继的响应函数中断
Parent
该对象的上级(父)对象
Selected
表明该对象是否被选中
SelectionHighlight
指定是否显示对象的选中状态
Tag
用户指定的对象标签
Type
该对象的类型
UserData
用户想与该对象关联的任意数据
Visible
2021年8月23日
第7页
MATLAB R2018b 基础教程
MATLAB 的图形对象(4/7)
Core 对象 包括基本的绘图单元,包括线条、文本、多边形 及一些特殊对象,如表面图,表面图中包括矩形 方格、图像和光照对象,光照对象不可视,但是 会影响一些对象的色彩方案。
2021年8月23日
第8页
设置该对象是否可见
2021年8月23日
第四章Matlab语言数据结构1
例3:将二进制按每3位转为十进制数 clc,clear
Xfram=[0 1 1 1 1 1]; Xfram_re=reshape(Xfram,3,2);
%每3位转为十进制数
NumTrans=zeros(1,2);%放转换后的十进制数
for i=1:2
NumTrans(i)=bin2dec(num2str(Xfram_re(:,i)'));
Thank you for your cooperation
4.1.2 结构和单元阵列
在工程和管理系统中,常常需要分层次地 把一些有一定联系但不同类型、不同规模 的数据组织起来成为一个变量。 如:要为一个班的学生建立一套student管 理档案,记录每个学生的三个项目:姓名 (字符串)、出生日期(字符串)、四门 课(高数,英语,马列,体育)的成绩 (数组)。
单元型:cell
结构型:struct Jave类 函数句柄型
§4.1 Matlab语言的数据结构
MATLAB的数据类型
array char numeric double sparse cell struct user- object -
storage
各种数据类型的层次关系
常用基本数据类型 double(双精度数值) char(字符) storage(存储型):只用于内存的有效存储 sparse(稀疏数据):专门用于处理稀疏矩阵 cell(单元数组):
结构阵列的数据索引举例
clc,clear ='John'; student.birthday='1985.06.15'; student.score=[85,85,87,97]; student(2).name=' Alice '; student(2).birthday=' 1986.01.20 '; student(2).score=[77,71,75,76]; ans = 85 85 ans = 77 71 87 97 75 76
matlab基础教程课后答案
matlab基础教程课后答案MATLAB是一种用于数值计算和数据可视化的高级编程语言和环境。
它广泛应用于科学、工程和金融等领域。
下面是MATLAB基础教程的课后答案,希望能帮助你更好地理解和掌握MATLAB的基本概念和操作。
1.MATLAB基础知识 (1) MATLAB是什么?它的特点和优势是什么?答:MATLAB是一种高级的编程语言和环境,用于数值计算和数据可视化。
它的特点和优势包括:•简单易学:MATLAB语法与数学表达式类似,易于理解和使用。
•功能强大:MATLAB提供了丰富的数值计算和数据处理函数,可以方便地进行各种科学计算和数据分析。
•可视化能力强:MATLAB内置了丰富的绘图函数,可以直观地展示数据和结果。
•扩展性好:MATLAB支持用户自定义函数和工具包,可以根据需要扩展功能。
•跨平台:MATLAB可以在Windows、Mac和Linux等操作系统上运行。
(2) 如何定义变量并赋值?答:在MATLAB中,可以使用等号(=)将一个值赋给一个变量。
例如,要将数值3赋给变量x,可以输入x=3。
(3) 如何进行算术运算?答:MATLAB支持常见的算术运算,包括加法、减法、乘法和除法。
可以使用+、-、*和/符号进行运算。
例如,要计算2加上3的结果,可以输入2+3。
(4) 如何进行矩阵运算?答:在MATLAB中,可以使用方括号([])来定义矩阵。
例如,要定义一个2×2的矩阵A,可以输入A=[1 2; 3 4]。
可以使用符号进行矩阵乘法运算。
例如,要计算矩阵A乘以矩阵B的结果,可以输入A B。
2.MATLAB的基本函数和操作 (1) 如何使用help命令查看函数的帮助文档?答:在MATLAB命令窗口中,可以使用help命令查看函数的帮助文档。
例如,要查看sin函数的帮助文档,可以输入help sin。
(2) 如何生成随机数?答:MATLAB提供了rand函数用于生成服从均匀分布的随机数。
MATLAB编程基础
程控制语句,否则程序会依次执行符合条件的case语句后面的
每一个case分支。但是在MATLAB中就不必如此,程序仅仅执 行符合条件的case分支。
MATLAB编程基础 补充例题3中需要用户在执行程序的过程中输入一个字符串,
switch语句根据用户的输入判断执行相应的case分支。若没有符 合 条 件 的 case 分 支 , 则 switch 执 行 otherwise 后 面 的 语 句 。 若 switch结构中没有定义otherwise及其相应的代码,则程序不会进 行任何操作,而是直接退出switch结构。 提示: 在处理以字符串变量或者常量参与的关系判断操作时,使 用switch结构要比if-else结构效率高一些。 由于MATLAB的switch结构没有C语言的fall-through特性, 所以,如果需要针对多个条件而使用同一个case分支的时候,
MATLAB编程基础 和C语言类似,if-elseif-else的语句结构也可以嵌套地使用,
也就是可以存在这样的语句结构: if(关系表达式a) if(关系表达式b) MATLAB语句A 注意: 在使用嵌 套的选择 结构时, 需要小心 if语句和 end关键 字的配对。
else MATLAB语句B
MATLAB编程基础
注意: while循环结构的关系表达式可以是某个数据变量或者常 量,这时,将按照非零值为逻辑真进行相应的操作。另外, 在进行上述操作时,若数据变量为空矩阵,则while语句将空
矩阵作为逻辑假处理,也就是说,在while A MATLAB语句S1
end结构中,若A为空矩阵,则MATLAB语句S1永远不会被执 行。
MATLAB的函数主要有两类,一类被称为内建(Build-in)函 数,这类函数是由MATLAB的内核提供的,能够完成基本的运 算,例如三角函数、矩阵运算的函数等。另外一类函数就是利 用高级语言开发的函数文件,这里的函数文件既包括用C语言 开发的MEX函数文件,又包含了M函数文件。
MATLAB基础
特点:简洁、智能化、解释方式工作,键入程序立即
得出结果。
难点:函数较多,常用几百个。
MATLAB程序的基本数据单元是数组。 一个数组是以行和列组织起来的数据集合,并且拥有一个 数组名。 数组中的单个数据是可以被访问的,访问的方法是数组名 后带一个括号,括号内是这个数据所对应行标和列标。 标量在MATLAB中也被当作数组来处理——它被看作只有一 行一列的数组。 数组可以定义为向量或矩阵。 向量一般来描述一维数组,而矩阵往往来描述二维或多维 数组。
(2)系统默认的固定变量
(3)字符变量:必须用单引号括起来 a=‘happy’ (4)数值变量:b=365
2.数值
常用设置输出格式的命令为: format short 2位整数,4位小数 format long 16位十进制数
3.矩阵
MATLAB进行数据处理和运算的基本元素 标量:看做1*1的矩阵
2 矩阵的运算
矩阵运算:按矩阵的运算规则进行。 数组运算:按数组元素逐一进行。 算术运算符优先级: 表达式从左到右的顺序进行运算。 指数运算的优先级最高; 乘法和除法次之,乘法和除法相同; 加法和减法的优先级最低,加法和减法相同; 括号可以改变优先级顺序。
注意:在MATLAB中,可以对矩阵进行数组运算,这时是
注意:பைடு நூலகம்、B的行数必须相等。 数组右除的运算符为./,A/B 数组左除的运算符为.\,B/A
例: d=[1 2 3;4 5 6;7 8 9] d./2 d.\2
(5)共轭转置
运算符为’ 例: f=[1+i,1+2i],求f’ f.’
Examples
x=[1;2;3],y=[4;5;6],求 x’ y’ x+y x-y x+2 x-2 x*y x.*y x’*y x’.*y x*y’ x.*y’ x*2 x.*2 x\y x.\y 2\x 2./x x/y x./y x/2 x./2 x^y x.^y x^2 x.^2 2^x 2.^x
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.fft ():计算函数的快速傅里叶变换。
FFT是DFT的快速算法。
调用格式:Y = fft(x):直接计算x(n)的DFT,计算长度为序列x(n)的长度Y = fft(x,n):如果x(n)的长度小于n,则在其后补0,使之成为长度为n的序列,即计算n点DFT,结果产生n个数据。
注:1)fft函数是由机器语言而不是Matlab指令写成的,是Matlab的一个内建函数。
2)同样逆变换也是由内建函数ifft实现的。
3)Fftshift()调用格式:Y= fftshift(X),用来重新排列X= fft(x)的输出。
即Y序列是X 序列的移位序列,即将X的零频分量移到频谱的中心。
4)Abs():(求绝对值)计算信号的幅频特性。
5)Angle():计算信号的相频特性。
6)Floor():向下取整函数k=floor(-(N-1)/2:(N-1)/2);表示频序向量值。
2. 在各种傅利叶变换中,能够用计算机以高效计算的,只有离散傅利叶变换DFT ,所以要计算任意信号的频谱,必须弄清各种变换与DFT 的关系。
⑴非周期连续信号的频谱计算。
设: 为绝对可积的连续信号,则其数字频谱 可以用FFT 求得。
即用下式可求得连续信号的频谱。
第一步:先讨论信号时域的长度L 。
例如; ,此信号的峰会幅度为1,而在t>50时,其幅度小于0.0067,因些如果选择L=50,记录时间长度将覆盖信号的主要部分。
()()[]n x DFT T j X k ⋅≈ΩΩ=Ω0()t x a ()()Ω=j X X ω()t a e t x 1.0-=第二步:因为这个信号不是有限带宽,则时域采样所造成的频率混叠可以忽略。
第三步:频率分辨率。
原连续信号的频谱是定义在所有的频率点上,但使用FFT 来计算时,只计算出了它的N 个频率值。
所以必须从这N 个值中进行插值运算求原连续的频谱。
所以频率的分辨率越小,插值的效果越好。
而这个分辨率与长度L 成反比,因为所以我们愿意选择较大的L 来改善频率分辨率。
第四步:考虑截断效应。
由于对无限长信号进行截断,这样就会把窗函数频谱引入信号频谱,引起吉布斯效应(波动),同时也产生频谱混叠。
综上所述:先初步选择时间记录长度L ,使得在此之间包括大部分非零的值。
然后用逐渐减小T 和加大N 的步骤来选择周期T 。
方法是:选择一个较小的N 值,算出T=L/N ,然后用这个N 值求出一个频谱。
再选择一个N 值,重复这一计算,比较结果。
因为它们是在同一个L 下产生的,所以它们具有相同的截断效应,这样两个频谱间的误差就是由频率混叠引起的。
如果两个频谱非常接近,则频率混叠可以忽略。
如果精度不够,可以另选择较小的T ,再进行重复计算。
()⎪⎭⎫ ⎝⎛=⎪⎭⎫ ⎝⎛=⎪⎭⎫ ⎝⎛=L k X NT k X D N k X kD X πππ222选定T 之后,再进一步选择L 。
例如可将其增加一倍,再与前面的结果比较。
注意:可用乃奎斯特频率处的幅频特性来评价混叠的严重程度。
⑵连续周期信号的频谱计算。
例如 ,它的理论频谱是 包含了权重为pi 的位于 上的两个冲击。
理论上,只要采样周期小于5π=0.6283s ,就不会发生频率混叠。
但是由于将它截断了,所以频谱不再是有限带宽,即必须采用更小的采样周期。
()t t x a 5cos =()()[]()[]55+Ω+-Ω=ΩδπδπX 5±=Ω3.结论:用DFT去计算一个非周期信号的傅利叶变换,则其频谱的正常幅度与用DFT计算相差一个加权T。
T=0.002; %采样间隔T=0.002F=1/T; %采样频率为F=1/TL=0.1; %记录长度L=0.01,体现所研究模拟信号的长度N=L/T;t=0:T:L;a=2;f=0:F/N:F; %f=k/NT,k为整数,k从0到Nx=exp(-10*t);y=T*abs(fft(x)); %有限长(长度为N)离散时间信号x1的dft再乘T来近似模拟信号的频谱,长度为Nsubplot(2,1,1),stem(t,x);title('指数信号');subplot(2,1,2),stem(f,y);title('指数信号频谱');4.用三种方法进行两序列的圆周卷积:时域手工方法调用Matlab函数function y = circonv(x,h,N) 用频域DFT相乘,再求反变换。
注:用函数:L=length(x),计算序列x的长度。
5.滤波器函数介绍系统函数的负幂形式:()MMMMzazazbzbbzH----++++++=11111,也被称为传递函数。
系统函数的零极增益形式:()()()∏∏==---=NkkMllMNpzzzzbzH11IIR型滤波器的设计流程:1.设计模拟低通滤波器:如巴特沃斯低通滤波器,MATLAB提供函数N阶归一化模拟原型滤波器。
其调用格式为[z,p,k] = buttap(n);只要输入阶数N,就可返回零点数组z和极点数组p以及增益k。
2.阶数N由函数3.进行频带变换,从归一化模拟低通变换到具有特定截止频率的模拟低通、高通、带通、带阻滤波器。
MATLAB提供lp2lp lp2hp lp2bp lb2bs这四个函数进行转换。
但是这个函数调用的参数是系统函数的负幂形式中的分子,分母系数。
所以需要将利用函数[z,p,k] = buttap(n)求出的零极增益形式转换成负幂形式。
MATLAB提供函数进行转换。
4.利用双线性变换(或冲击响应不变法)将模拟滤波器转换为数字滤波器。
MATLAB提供函数5.下面利用函数()ωj e H。
用6.用设计好的滤波器对已知序列进行滤波。
MATLAB提供函数Butterworth filter order and cutoff frequency[N,Wn] = buttord(Wp,Ws,Rp,Rs)[N,Wn] = buttord(Wp,Ws,Rp,Rs,'s')可根据给定的滤波器指标Wp,Ws,Rp,Rs,即通带截止频率,阻带截止频率,通带允许最大衰减,阻带允许最小衰减,求得滤波器的阶阶数N。
Wn为巴特沃斯滤波器固有的频率。
s说明所设计的是模拟滤波器。
Butterworth analog lowpass filter prototype这个函数来设计N阶归一化巴特沃斯模拟原型滤波器,其调用格式:为[z,p,k] = buttap(n)只要输入阶数N ,就可返回零点数组z 和极点数组p 以及增益k 。
Convert zero-pole-gain filter parameters to transfer function form 调用格式:[b,a] = zp2tf(z,p,k)它属于线性系统变换函数。
由传递函数变换为零极增益的函数:[z,p,k] = tf2zp(b,a)Change cutoff frequency for lowpass analog filter调用格式:[b,a]=lp2lp(Bap,Aap,Wn)MATLAB 信号处理工具箱提供了从归一化低通滤波器到低通、高通、带通和带阻滤波器的变换函数,只要已经设计好了一个归一化模拟低通滤波器,知道了它们的分子分母系数向量,就可以直接调用这些函数。
共有四个:lp2lp lp2hp lp2bp lb2bs 。
Wn 为截止频率。
[b,a]为按1-z 的升幂排列的多项式的分子和分母的系数向量,[Bap,Aap]也是如此。
()M M MM z a z a z b z b b z X ----++++++= 111101Bilinear transformation method for analog-to-digital filter conversion调用格式:[numd,dend]=bilinear(b,a,fs)MATLAB信号处理工具箱提供一个名为Bilinear的子程序,它用双线性变换法来实现把模拟滤波器变换为数字滤波器。
Fs为采样频率。
调用freqz函数的方式如下:[H,w] = freqz(b,a,N),或N缺省。
输出变元H是系统的频率特性,它是一个N元的复数向量。
π输出变元w是数字频率向量,它把0到pi均分为N份,分辨率为N输入变元b和a分别为分子分母多项式的负幂系数向量,即多项式的首项应是常数项,以后按jwe-的升幂排列,由此形成多项式的系数向量。
输入变元N为所选的频率点数,它决定了频率分辨率的密度,N的默认值为512。
这样求出的频率特性是在正频率区间的特性。
调用格式:y = filter(b,a,X)求系统响应时,有一种方法是递推法,差分方程的递推过程在MATLAB 中用一个称为filter的子程序来实现,调用的最简单形式为:y = filter(b,a,X)。
其中[]bM b b b ,1,0=,[]aN a a a ,1,0=,是差分方程()()∑∑==-=-MI i Nk ki n x b k n y a的系数数组。
而X 则是输入序列。
X 通过一个系统的响应。
利用窗函数法设计FIR 型滤波器的流程:1.按设计要求确定理想的)(ωj d e H 计算出()n h d ,例如低通滤波器单位冲击响应:()()[]()απαω--=n n n h c d sin2. 根据过渡带宽,阻带最小衰减,确定窗函数的形状、长度。
例如:给定抽样频率为Ωst=3π×104(rad/s),通带截止频率为Ωp=3π×103(rad/s),阻带起始频率为Ωs=6π×103(rad/s),阻带衰减比小于50dB 。
计算:第一步:求理想低通滤波器的截止频率c ωπω3.02=Ω+Ω=Ω=Ω=Ω=stps st c st c c c f f f T π2stst f Ω=求出c ω,则可计算()()[]()απαω--=n n n h c d sin ,其中21-=N τ,是保证线性相位所必须的移位。
第二步:由于阻带衰减比小于50dB ,所以根据表可选择海明窗Hamming(N)或布莱克曼窗Blackman(N)。
若选择海明窗,则其过渡带宽为:NN A πω6.6==∆p s Ω-Ω=∆Ωst f T ∆Ω=∆Ω=∆ωππω2.06.6=∆Ω===∆∴stf N N A332.06.6==∴ππN1621=-=N τ 这样,我们确定先选择的窗函数为海明窗,其长度为333. 求所设计的FIR 滤波器的单位抽样响应 ,就完成了FIR 滤波器的设计。
在MATLAB 中,用语句:h=hd.*w1'; 可实现其中,hd 是理想的单位冲击响应,调用函数hd=ideallp(wc,N) 实现,其中wc 为理想低通的截止频率,N 为窗函数长度。