作者 | 蔡老师 仿真秀专栏作者

首发 | 仿真秀平台

导读:正文之前,我在此详细说明一下,因为本文包含的程序太难得,网上肯定找不到这样的程序。随着讲课的越来越深入,我给出的程序会越来越实用,接近于实际产品。在本次课中我就给出了一个实用的算法程序,程序名是dqpsk_IF_wholeframe_Release.m。

那么这个程序和网上的顺序有什么差别呢?可以明确的说网上的程序大多就是一个理论仿真,根本不考虑实际环境的因素。那这样的程序是培养不了大家的算法思维的。而在这个程序里,关于信号的捕获、跟踪、解调、交织解交织、译码等内容都在程序里面详细写了。

大家在网上想找到这方面的程序,几乎是白日做梦!

再次强调这个程序可以用于产品的研发,因此需要大家仔细的阅读,比较和其他理论程序的差异!比如第一章的内容和本章的其他程序。后面的课程中我还会给出用于产品研发的程序。

dqpsk_IF_wholeframe_Release.m 是下行信道的程序,那么上行信道的程序会是什么样呢?dqpsk_IF_wholeframe_Release.m只是控制信道的程序,那么业务信道的程序会是什么样子的呢?后续会接着讲,程序也会跟着上,欢迎大家跟着加入算法工匠Matlab技能专训微课堂(见下文)。

本人当年写这个程序花了两周左右的时间,大家要消化这个程序需要多长时间呢?大家也许心里都大概清楚!

以下是正文

现在很多学科都要用到MATLAB,为什么呢?因为人们很难直观的从一大堆数据中发现它们的含义或者规律,而数据图形能够使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。

MATLAB可以表达出数据的二维、三维的图形。通过图形的线型、色彩、视角等属性的控制,可把数据的内在特征表现出来。所以自然成为很多学科画图的首选工具。

下面我们一起来学习Matlab绘图的基本知识和相关命令。

这么多用处,大家一定要学好哦!

MATLAB拥有强大的绘图功能,软件提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能画出所需图形。这类画图函数称为高层绘图函数。

而且MATLAB还提供了直接对图形句柄进行操作的低层绘图操作,这样就可以直接对画好的图形直接操作。这类操作是将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,通过句柄对该图形元素进行操作,而不影响其他部分。是不是很牛啊?

二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。

最基本也是最重要的函数登场了!plot函数!怎么用?有没有实例?我们接着往下学习。

二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。上堂课讲到绘制二维曲线的基本函数为plot,怎么用呢?plot函数是最基本而且应用最为广泛的绘图函数,利用它可以在二维平面上绘制出不同的曲线。怎么个不同法呢?

讲完理论,该来动手演练了。无实践、无工科。

这样的程序会出什么结果呢?subplot有什么功能呢?linspace又有什么功能呢?请大家到help里面查找这两个函数的说明文件。至于如何使用?咱们接着学习。

同学们是不是得到这样的图形呢?

再给出一个例子。在[0 , 2pi]区间,绘制一条曲线。什么曲线呢?

程序如下:在命令行窗口中输入以下命令

>> x=0:pi/50:2*pi;

>> y=2*exp(-0.5*x).*sin(2*pi*x);

>> plot(x,y

程序执行后,打开一个图形窗口,在其中就有程序想要绘制的曲线。注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。很多同学经常不注意整个点,这个点有什么用呢?请同学们去问百度。

一定要知道点乘和乘的差异!!!

作为刚接触MATLAB任何人,还要掌握哪些知识呢?

极坐标是属于高中就学习的数学知识,因此有必要在这里讲一下。

还需要简单的讲一些图像处理的知识。同学们不要担心,都是最基本的知识。

一点都不难!

这些函数必须都要会使用,而且是熟练使用。

还要补充讲解一个函数。semilogx函数

功能:x轴对数图形。对于通信专业的学生而言,这个函数是肯定要用到的。请大家在命令行中写一下下面的代码,看看会出现什么结果?

>>x = 0:.1:10;

>>semilogx(x,cos(10.^x))

那bar函数又怎么使用呢?hist函数又怎么使用呢?stem函数又怎么使用呢?好学的同学可以通过matlab的help来找到问题的答案!顺便再提一句:点乘和乘的差别是什么呢?这里又遇见了点乘了哦!

休息一下!

需要同学们课后找资料来学习哦。哪个函数是用来画二维条形直方图呢?哪个函数是用来画二维垂直条形图呢?

stem函数怎么用?以后大家在学习我的《数字信号处理》的时候,可要用到它哦。本课程讲解了部分二维图形的注释命令,那么还有哪些其他命令呢?

比如legend命令。该函数可以在图形上添加文字。该命令对有多种图形对象类型(线条图、条形图等)的窗口中显示出一个文字框。

讲完理论,就来实践。还是那句老话,无实践,无工科。带病坚持讲课,而且还在课后写文章,真的很累,但我更要坚持,做一个好榜样。即使只有几个员能体会个中辛苦。

函数说明:axis([xmin xmax ymin ymax])

功能:设置当前图形的坐标范围,分别为x轴的最小值和最大值,y轴的最小值和最大值。

axis off:关闭所有的坐标轴标签、刻度、背景。

axis on:打开所有的坐标轴标签、刻度、背景。

title函数功能:给当前轴加上标题。每个axes图形对象可以有一个标题。标题定位于axes的上方正中央。

title('string') 在当前坐标轴上方正中央放置字符串string作为标题。

预先看看电子类、通信类专业的同学们将要画什么图呢?

《通信原理》书本理论知识!

数字信号处理

误码率性能!!!

功率谱图

星座图!!!同学们以后会在《通信原理》中看到它。

同学们也会在《通信原理》中看到它(上图)。同学们做好学习的准备了吗?以后这些图可是都要会画的哦!

以上讲解了很多二维图形注释命令,大家一定要多多实践!

title('string') :在当前坐标轴上方正中央放置字符串string作为标题。

text(x,y,'string'):在图形中指定的位置(x,y)上显示字符串string。

xlabel('string')、ylabel(‘string’) :在当前轴对象中的x、y轴贴标签。

注意:若再次执行xlabel或ylabel命令,则新标签会覆盖旧标签。

grid on:给当前的坐标轴增加分隔线。

grid off :在当前的坐标轴中去掉分隔线。

上述内容就是关于如何画二维图形的知识。那如何画三维图形呢?

matlab三维画图主要有三个命令:plot3命令、mesh命令surf命令。

本课程只是简单介绍一下plot3函数。

plot3是三维画图的基本函数,绘制的是最为主要的3D曲线图,最主要的调用格式是:plot3(X,Y,Z)

当X,Y,Z为长度同样的向量时,plot3命令将绘得一条分别以向量X,Y,Z为(X,Y,Z)坐标值的曲线。

当X,Y,Z均为m*n的矩阵时,plot3命令将绘得m条曲线,每条曲线均为X,Y,Z列向量为(X,Y,Z)坐标值的曲线。

余下的两个函数怎么使用呢?请同学们自行查找资料学习吧。

温馨提示:通信类学生一定要掌握semilogx函数的用法哦,因为你会一直和它打交道。比如上堂课涉及的误码率曲线图就是这个函数画的哦。

增加2.4 专业领域画图。为同学们以后做好铺垫!

scatter可用于描绘散点图。

scatter(X,Y):X和Y是数据向量,以X中数据为横坐标,以Y中数据位纵坐标描绘散点图,点的形状默认使用圈。

例子:

X = [1:100];

Y = X + rand(size(X));

scatter(X, Y)可用于通信仿真中表示信号的星座图,当然也在数据分析的很多地方可以用!!!

bar:条形图

bar3 : 3D条形图

barh : 绘制水平条形图

bar3h : 水平3D条形图

histogram: 直方图

histogram2:二元直方图

polarhistogram:极坐标中直方图

area: 填充区二维绘图

pie : 饼图

pie3 : 三维饼图

请同学们在命令行窗口使用这些函数,一定要掌握!只有通过使用才能掌握!反复强调操作的重要性,不知道有没有效果?我也只能做到这样了!

此时,老师抛出一个问题?matlab能不能制作动图呢?

用一个程序实例来完成画图课程的讲解!

data = normrnd(0,2,1,1000);% 生成随机数(正态分布)

%绘制直方图

hist(data,30); hold on;

%求出概率密度函数参数

[mu,sigma]=normfit(data);

%绘制概率密度函数

[n,x]=hist(data,30);

y = normpdf(x,mu,sigma);

% 处理数据,使得密度函数和最高点对齐

y=y/max(y)*max(n);

plot(x,y,'r-');

学过概率统计课程的人都应该能看懂!正态分布的案例实在是太多了。请记住上述程序中涉及到的函数。这个程序就是为了让同学们感受正态分布和平均分布的差异!有图就非常容易理解!

最后,我只想把我的知识通过网络传播给真正想学的人了!

自2019年11月28日起,蔡老师每周二和周五,在仿真秀平台开展算法工匠Matlab技能专训微课堂,共8期,通过语音+PPT,并且为用户提供即时在线答疑。明晚是第2次课,欢迎大家继续来听。

以下是MATLAB技能专训的课程安排

:11月28日微信多群直播已经讲到了第三课,错过前首播的同学,可以联系我看回放。

温馨提示:电子类、通信类专业的大学生们必看!适合在电子、通信、生物医学、计算机领域工作的研究人员自学MATLAB!

作者:蔡老师,仿真秀专栏作者

声明:原创文章,首发仿真秀,部分图片源自网络,如有不当请联系我们,欢迎分享,禁止私自转载,转载请联系我们。

点击了解算法工匠MATLAB专训营,填写即可报名成功,免费领取​www.fangzhenxiuxiu.com

matlab hist函数_算法工匠MATLAB专训营:Matlab绘图,小试牛刀相关推荐

  1. matlab hist函数_超全Matlab绘图方法整理(建议收藏!)

    你好,我是goldsunC 让我们一起进步吧! 使用Matlab绘图 图像是结果的一种可视化表现,它能直观的体现你的结果,并且能体现你获得结果的准确性,在当前的大数据时代,在做数据分析的时候,将其可视 ...

  2. matlab plot函数_慧图大讲堂 | 一起来认识MATLAB吧!

    慧图大讲堂 岁月流转,时光飞逝.转眼间又开学了,小伙伴们在使用MATLAB吗?想知道漂亮的图表.还原模糊图像.图像识别.模型预测,这些好玩的东西怎么做?快点和慧图君一起认识MATLAB吧! 01 什么 ...

  3. matlab db函数_图灵斑图与反应扩散方程——Matlab的实现

    假设我们在做一个化学反应实验,存在U和V两种化学物质,其中每单位U物质在两单位V物质的催化下,生成新的V物质.那么V物质的浓度将会发生怎样的变化? 设想一下,随着时间的推移,反应皿中 V物质的浓度应该 ...

  4. matlab disp函数_代码 | 求解LP问题单纯形法的Matlab代码

    介绍求解LP问题最优解的Matlab代码. Contents 求LP问题的基本(可行)解Matlab代码 基本原理 Matlab代码 初始化 是否随机生成LP问题还是自己指定LP问题 初始化系数矩阵A ...

  5. matlab rbf函数_基于径向基函数(RBF)的无网格伪谱法与程序实现(2)——微分矩阵...

    参考资料 Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB. P.387 P401 数值实现 Matlab 2019a ...

  6. matlab seed函数_如何用matlab生成随机数函数_matlab随机数生成函数

    如何用matlab生成随机数函数 1. MATLAB 函数 rand 产生在区间 (0, 1)的均匀随机数,它是平均分布在 (0,1)之间.一个称为seed的值则是用来控制产生随机数的次数.均匀随机数 ...

  7. matlab hist函数_MATLAB在绘图时的用法—数据分布图(一)

    (1) 条形图 用单位长度表示一定的数量,各数据变量按照数量的多少化成长短不同的条形,便于比较分析.二维条形图按图形方向可以分为垂直条形图和水平条形图,而每种图形又都存在两种模式:累计式和分组式.其中 ...

  8. matlab cat函数_如何用Matlab编写贪吃蛇游戏?(持续更新)

    今后我们实验室的研究重点将会聚焦在"基于游戏的测评"和"教育游戏化"这两个主题上,因此很有必要研究实现"爆款"游戏的一些基本的技术方法.这篇 ...

  9. python hist函数_虎哥的python小技巧放送之绘制统计图(2)

    先放出第一期让大家回顾一下上次的内容 虎哥的python小技巧放送之绘制统计图(1) 第一期主要给大家讲了一些图形设置的东西.这一次开始正式带大家画图~ 折线图:折线图可以通过matplotlib中的 ...

最新文章

  1. iOS cell 里需要创建n个元素
  2. android 学习笔记(八)building system8.5 shell脚本的学习
  3. 为什么ppt图形卡配置不正确_电脑配置 | 赛博朋克2077什么配置能玩
  4. Linux开发板网线直连电脑配置方法
  5. 【SDOI 2011】Paint 染色
  6. 数据结构之二叉搜索树
  7. 精通Android自定义View(十九)自定义圆形炫彩加载转圈效果
  8. iPhone 13系列整机较iPhone 12更重 最重接近半斤
  9. UI实用素材|优秀的仪表盘对每项业务都很重要
  10. ssh协议是osi_你见过这份864页神仙级的TCP/IP协议吗?,太香了!
  11. 【Nodejs开发】第2章 网站首页的布局
  12. 【VirtualBox】设置NAT端口映射-SSH登录
  13. meteor---在合并打包多个文件ZIP下载的功能
  14. Java编程思想 PDF
  15. 利润表模板excel_让财务人看完心动的369个Excel财务分析图表,老板都忍不住点赞...
  16. linux 解压war到root_unzip命令解压war包方法
  17. 计算机通信网自学笔记(1)
  18. C语言控制台程序添加图标(基于GCC编译器)
  19. 渠道分析 之 渠道分析的价值 -3
  20. 基于金字塔模型的自动化测试设计

热门文章

  1. Linux系统下提升进程优先级的办法
  2. 使用 xCAT 简化 AIX 集群的部署和管理
  3. Redhat 或 CentOS 发行版本号
  4. 使用类前置声明的好处-结合Qt 4一个主窗口实例讲解
  5. 二十万字C/C++、嵌入式软开面试题全集宝典六
  6. [云炬创业管理笔记]第二章成为创业者讨论1
  7. 科大星云诗社动态20210909
  8. Encoder-Decoder (based on RNNS / LSTM)用于序列学习方案
  9. 简单的串口助手程序开发
  10. 关于我对c#的一些看法