MATLAB通信仿真(一)
此系列资料为我的matlab通信仿真学习笔记以及通院科协授课用资料
内容参考蔡凡老师的公众号和CSDN博客
MATLAB基础知识
MATLAB概述
MATLAB简介
MATLAB(matrix&laboratory) 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB系统结构
开发环境
MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。它是一个集成的 用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。
数学函数
MATLAB数学函数库包括了大量的计算算法。从基本算法如四则运算、三角函数,到复杂算法如矩阵求逆、快速傅里叶变换等。
语言
MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、函数、数据结构、输入/输出和面向对象编程等特色。用这种语言能够方便快捷建立起简单运行快的程序,也能建立复杂的程序。
图形处理
图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强大的二维三维图形函数、图像处理和动画显示等函数。
程序接口
MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其它高级编程语言进行交互的函数库。该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程序,以及在MATLAB与其它应用程序间建立客户、服务器关系。
MATLAB界面介绍
打开MATLAB可见如下主界面
主界面分为五个区域:工具栏、文件路径,当前文件夹,命令行窗口以及工作变量区域
工具栏
工具栏区域包括文件、变量、代码、simulink、坏境设置和资源六大部分
文件路径
文件路径是当前文件夹的地址,在该区域可以实现文件路径的切换
当前文件夹
当前文件夹是显示当前文件路径下所有文件的窗口,可以在此双击打开所需要的不同格式文件
命令行窗口
命令窗口是进行一系列命令输入的地方,当有指令输入并按下Enter键时,软件会自动执行该条指令,并显示出该命令的结果
工作变量区
工作变量区域是存放所执行程序中涉及到的所有变量值的空间,可以在该区域双击某变量查看其具体的变量表示情况
MATLAB的变量、运算符与表达式、常用命令
MATLAB中的变量
MATLAB并不要求事先对所使用的变量进行声明,也不需要指定变量类型,MATLAB语言会自动依据所赋予变量的值或对变量所进行的操作来识别变量的类型。在赋值过程中如果赋值变量已存在时,MATLAB语言将使用新值代替旧值,并以新值类型代替旧值类型。
在MATLAB语言中变量的命名应遵循如下规则:
(1)变量名区分大小写,myvar和myVar表示两个不同的变量。
(2)变量名长度不超63位,第31个字符之后的字符将被MATLAB语言所忽略。
(3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点和空格。
与其他的程序设计语言相同,在MATLAB语言中也存在变量作用域的问题。在未加特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的M文件内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global。一般来说全局变量均用大写的英文字符表示。
MATLAB 中的运算符与表达式
MATLAB中的常用命令
clc
清空命令窗口clear
清空工作区数据- clf 清除当前图形窗口内容
- close all 关闭所有打开的图形窗口
- who/whos 显示MATLAB工作空间中的变量/变量及信息
- type<文件名.m> 显示指定m文件内容
- help<命令名> 查询所列命令的帮助信息
exit/quit
关闭软件
MATLAB M文件知识
脚本式m文件
脚本就是自动执行逐条命令的文件。如果编写了一个脚本式M文件,点击run就会自动一条一条命令顺序执行。和在命令窗写一条命令、执行一次的效果相同,过程中的变量都会被保存。
函数式m文件
函数式m文件封装好特定功能的函数以供调用。此类m文件开头一般为如下格式,用以表明该m文件为函数式m文件。
|
|
新建m文件的方法
1.直接在命令行窗口输入edit
即可新建一个Untitled m文件并直接编写
2.点击工具栏中的New Script新建脚本,或者点击New 选择New Script或者New Function
MATLAB绘图知识
二维图形绘制
常用基本函数
plot()
(1)plot(x,y)
(其中,x和y分别用于存储x坐标和y坐标数据。通常,x和y为长度相同的向量。)
|
|
(2)最简单的plot函数调用格式plot(x)
当plot函数的参数x是复数向量时,则分别以该向量实部和虚部为横、纵坐标绘制出一条曲线。
|
|
(3)plot(x,y)函数参数的变化形式
当x是向量,y是矩阵时
1.如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数。
2.如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数。1234例2 绘制sin(x)、sin(2x)、sin(x/2)的函数曲线。x=linspace(0,2*pi,100); %创建一个0到2pi的含有100个元素的列向量y=[sin(x); sin(2*x); sin(0.5*x)]; %y为含有三个元素的行向量plot(x,y)当x,y为同型矩阵时
以x、y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
|
|
(4)含多个输入参数的plot函数
|
|
其中,每一向量对构成一组数据点的横、纵坐标,绘制一条曲线。
|
|
(5)含选项的plot函数
plot函数可以增加一个参数用于指定曲线的线型、颜色和数据点标记。
|
|
线型 | — | 实线 |
---|---|---|
: | 虚线 | |
—. | 点划线 | |
双划线 | ||
颜色 | r | 红色 |
g | 绿色 | |
b | 蓝色 | |
w | 白色 | |
k | 黑色 | |
数据点标记 | * | 星号 |
o | 圆圈 | |
s | 方块 | |
p | 五角星 | |
^ | 朝上三角符号 |
坐标轴调整
axis函数:
1.基本函数:
axis([xmin,xmax,ymin,ymax,zmin,zmax])` 用于控制坐标轴的选择范围
2.常用指令: axis equal:纵横坐标轴采用等长的刻度 axis square:产生正方形坐标系(默认为矩形) axis auto:使用默认设置 axis off:取消坐标轴 axis on:显示坐标轴 grid on/grid off/grid box on/box off/box :给坐标系加网络、边框 hold on/hold off/hold :图形保持
窗口分割
subplot(m,n,p)
,其中m和n指定将图形窗口分成m*n个绘图区,p指定当前活动区。 默认顺序从左到右,自上而下。
图形标识
在title()、xlabel()、ylabel()、zlabel()、text () 等函数中填入正确参数为绘制的图形添加标题、坐标轴标注 、文本标注。
|
|
坐标系选取
极坐标系
polar(theta, rho, ‘选项’)
其中,theta为极角,rho为极径,选项的内容与plot函数相同。
|
|
对数坐标
通信仿真中常用于绘制误码率曲线
|
|
MATLAB流程控制
if switch for while语句结构和C语言基本一致
|
|
另外还有一种流控结构:试探结构
这种结构可自查错误并提前做好预备方案
|
|
用例详见matlab帮助文档中的try-catch页面
https://ww2.mathworks.cn/help/matlab/ref/try.html
MATLAB文件操作
matlab可对音频文件进行采样、也可对图像、视频文件进行处理,可以在这些文件基础上运用数字信号处理的知识以及进行算法研究。
以下给出基础文件操作函数,需要用时使用help<函数名>查询matlab帮助文档。
此处新版本可用audioread()函数读取多种格式的音频文件