0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使matlab在内部运行周期函数并绘制图形

454398 来源:网络整理 作者:网络整理 2019-11-21 11:28 次阅读

步骤1:启动Matlab

第一步是启动并运行matlab,以便我们可以开始使用它。初次启动matlab时,它应类似于以下屏幕截图。第一步是为matlab分配一个工作目录。这是程序将从中提取所有文件的位置,也是应保存所有matlab工作的位置。

我建议在一个您会记住它的位置创建一个新文件夹,并为它命名,以便您识别。创建新文件夹后,单击屏幕右上方的“ 。..”,如第二张图片中突出显示的那样。如第三张图片所示,这将弹出一个浏览框。找到您在计算机上创建的新文件夹,然后选择它。对于此示例,该文件名为“ 370”,位于桌面上。

步骤2:创建M文件

现在我们需要做的是创建一个新的M文件。 M文件的功能与直接在matlab中键入代码完全一样,但是您可以保存和修改代码,然后重复运行。将代码直接输入到matlab中时,您分别键入每一行代码。在M文件中,您可以编写整个代码,然后立即运行它。

要打开新的M文件,请单击文件。将光标放在“新建”上,然后单击“空白M文件”,如第一张图片所示。打开的内容应该看起来像第二张图片。

由于此代码可以重复运行,因此最好在每次运行之前关闭所有内容并清除所有变量。这是通过两行代码完成的:

关闭所有

清除所有

如第三张图所示,确保清除并关闭了所有内容。

步骤3:创建时间向量

我们要做的第一件事要做的是在matlab中创建函数图。第一步是创建独立变量。在这种情况下,我们称其为“ t”。我们将用于创建此变量的方法是创建向量。向量基本上是一系列数字。例如,1,2,3,4将是一个短向量。创建此向量的代码是:

t = 0.1:0.01:10;

第一个数字0.1表示起点。第二个数字0.01是步长。第三个数字10表示终点。因此,此向量一直对应于0.1,0.11,0.12 。..一直到10。

要查看创建向量是否起作用,请单击第二张图中突出显示的绿色运行按钮。这将运行程序。要查看我们的矢量,请转到主Matlab窗口。单击桌面,然后将鼠标悬停在桌面布局上,然后单击第三张图片中概述的默认。现在您的屏幕应该看起来像第四张图片。在右侧,您将看到我们新创建的变量t。双击它,就像在第五张图片中一样,您将看到创建的一系列数字。

步骤4:运行和绘制函数图

现在,我们将绘制在matlab中创建的函数的图形。第一步是创建函数。这就像写出所需的数学函数一样简单。第一幅图中显示了一个示例。用于此功能的代码为:

y = sin(t)+ 4 * cos(5. * t)。^ 2;

在余弦中乘法之前的时间,并且在余弦的平方告诉Matlab之前,仅对时间向量的有价物执行这些功能,而不是将时间向量视为矩阵并尝试对其进行矩阵函数。

下一步是创建图本身。这是使用第二幅图中所示的代码完成的。 plot命令中变量的顺序非常重要,因此请确保按照下面的设置来设置代码。

h = axes(‘fontsize’,14);

plot(t,y,‘linewidth,2)

xlabel(’Time(s)‘) ylabel(’Y Value‘)

Title(’Y Value vs Time‘)

网格上

最后,只需再次单击绿色的运行箭头,图形便会像第三张图片一样弹出。

步骤5:从Excel中提取数据

我们现在将创建与之前相同的图形,但是要从中导入函数数据一个Excel电子表格。第一张图片是将要使用的excel电子表格的屏幕截图。它与在上一步中在matlab中创建的数据点完全相同,只是在excel中创建的。

首先,我们可以从上一步中删除创建时间向量的代码和函数的代码。现在,您的代码应该看起来像第二张图片。

插入代码,如第三张图片的顶部红色框所示。这是读取excel文件的代码。 “ A”是指将包括电子表格中所有数字的矩阵,而“ B”包括电子表格中所有的文本。 t和y变量从第一个和第二个列中提取,如代码所示。

[A,B] = xlsread(’excelexample.xlsx‘);

t = A(:,1 );

y = A(:,2);

还可以修改图形代码,如第三张图片的下部红色框所示。实际上,这将从电子表格中提取图表标题和轴标签,并将它们放在图形上。

xlabel(B(2))

ylabel(B(3))

Title(B( 1))

要做的最后一件事是再次运行该程序,您将看到弹出与最终图片相同的图形。

步骤6:创建频谱图

在这一步中,我们将使用matlab通过读取wav声音文件来创建频谱图。频谱图有时称为“ 2.5D图形”,因为它使用二维图形,并附加了颜色以显示振幅。颜色提供了比简单的2D图形更多的细节,但没有提供3D图形的细节,因此提供了术语“ 2.5D”。matlab的specgram函数从wav文件中获取一组数据点并执行傅立叶对这些点进行变换以确定信号中存在的频率。对于这个可指导的人员,了解傅里叶变换的工作原理,知道频谱图将显示存在的频率以及它们相对于时间的强度并不重要。该函数在X轴上绘制时间,在Y轴上绘制频率。每个频率的强度通过颜色显示。

在这种情况下,wav文件是敲击一块金属的声音记录,然后将金属的振动记录为声音。使用该频谱图,我们可以轻松确定金属片的共振频率,因为该共振频率将随时间而持久。

要执行此任务,请首先让matlab使用以下代码读取wav文件:

[x,fs] = wavread(’flex4.wav‘);

在这种情况下,flex4.wav是我们wav文件的标题,变量x是数据点在文件中,fs表示采样频率。要执行频谱图,只需键入以下代码:

specgram [x(:。1),256,fs];

256对应于分析数据时执行FFT的频率。 Matlab基本上是将声音文件切成块,并对每个块进行FFT。256告诉它每个块应该有多大。细节并不重要,对于大多数应用程序来说,256是一个安全值。现在,如果您运行代码,您将看到一个弹出的图,如第二张图所示。由此很容易看出,谐振频率对应于该图右下角的红色峰值。这是相对于时间而言最长的峰。
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    182

    文章

    2960

    浏览量

    230078
  • 软件
    +关注

    关注

    69

    文章

    4731

    浏览量

    87119
收藏 人收藏

    评论

    相关推荐

    在TAS5706和TAS5716上,哪些供电引脚用于在内部为耳机和超重低音PWM输出供电?

    在 TAS5706 和 TAS5716 上,哪些供电引脚(电源与接地)用于在内部为耳机和超重低音 PWM 输出供电?
    发表于 09-26 07:26

    鸿蒙开发接口图形图像:【WebGL2】

    WebGL2支持图形绘制,包括对当前绘制图形的位置、颜色等进行处理,其中相对WebGL来说对渲染管道和着色语言进行了增强。
    的头像 发表于 05-30 15:19 487次阅读
    鸿蒙开发接口<b class='flag-5'>图形</b>图像:【WebGL2】

    鸿蒙开发接口图形图像:【WebGL】

    WebGL提供图形绘制的能力,包括对当前绘制图形的位置、颜色等进行处理。
    的头像 发表于 05-30 09:31 461次阅读
    鸿蒙开发接口<b class='flag-5'>图形</b>图像:【WebGL】

    MATLAB信号处理常用函数详解

    MATLAB是一款功能强大的数学软件,尤其在信号处理领域,它提供了众多的函数和工具箱,使得信号的分析、处理、仿真变得简单而高效。本文将详细介绍MATLAB在信号处理中常用的函数
    的头像 发表于 05-17 14:31 1646次阅读

    stm8l151在内部低速时钟能够使用spi和串口吗?

    有没有大神遇到过,能不能实现这个目的。在内部低速时钟能够使用spi和串口吗?
    发表于 04-24 06:02

    在stm32f103上做ic读卡器,有没有办法让他执行库函数的时候强制在内部执行,而不会跳转到外部函数中去?

    在stm32f103上做ic读卡器,读卡部分调用了封装好的lib库,通过单步调试,在执行库里面的函数的时候,会出现遇到相同函数跳转到外面的函数执行,而没有在库内完成整个操作,有没有办法让他执行库
    发表于 04-22 07:54

    STM32H750+STEMWIN+FreeRTOS调用绘图函数绘制位图进入HardFault的原因?

    如题,在工程中需要调用GUI_DrawBitmap()、GUI_DrawBitmapEx()等函数绘制图片,当位图尺寸小的时候可以正常显示,但是位图尺寸超过一定尺寸就进入HardFault故障(这里
    发表于 04-10 06:29

    h750+STEMWIN+FreeRTOS调用绘图函数绘制位图进入HardFault的原因?

    如题,在工程中需要调用GUI_DrawBitmap()、GUI_DrawBitmapEx()等函数绘制图片,当位图尺寸小的时候可以正常显示,但是位图尺寸超过一定尺寸就进入HardFault故障(这里
    发表于 04-09 07:09

    AD软件原理图中怎么镜像元器件呢?

    原理图中只是电气性能在图纸上的表示我,可以对绘制图形进行水平或者垂直翻转而不影响电气属性。
    的头像 发表于 03-18 09:06 1548次阅读
    AD软件原理图中怎么镜像元器件呢?

    鸿蒙原生应用元服务开发-WebGL网页图形库开发无着色器绘制2D图形

    无着色器绘制2D图形 使用WebGL开发时,为保证界面图形显示效果,请使用真机运行。 此场景为未使用WebGL绘制的2D
    发表于 03-12 15:42

    AURIX TC332LP-32F300F能否在内部产生1.25V的核心电源?

    对于 AURIX TC332LP-32F300F,我们能否在内部产生 1.25V 的核心电源? 还是我们需要使用外部推挽式 MOSFET电感器来产生 1.25V 内核电源?
    发表于 01-26 06:24

    如何让Adafruit 320x240 IPS TFT显示屏在PSoC上运行

    我有一台 Adafruit 320x240 IPS TFT 显示屏,希望它能够使用我的 PSoC 4200 主板绘制图像。 来自 Adafruit 的代码库是为 Arduino 设计的,我不确定如何让它在 PSoC 上运行
    发表于 01-22 06:33

    m480在spiflash跑程序要比在内部flash跑慢100倍是为什么?

    在spiflash跑要比在内部flash要慢100倍。cache打开和不开速度都是一样。遇到的,指点一下
    发表于 01-16 08:10

    ADV7513芯片是否支持DE模式的RGB输入,是否可以在内部产生Hsync和Vsync信号呢?

    目前我们有需求将RGB信号转成HDMI信号,但是RGB信号输出有DE信号但是没有Hsync和Vsync信号,咨询下官方,ADV7513芯片是否支持DE模式的RGB输入,是否可以在内部产生Hsync和Vsync信号呢?
    发表于 01-05 06:39

    AD7622在内部参考Vref=2.048、伪差分的输入下,分辨率还会是62.5uV吗?

    你好!请问AD7622在内部参考Vref=2.048、伪差分的输入下(IN-接地),它的分辨率还会是62.5uV吗?并且在伪差分的输入模式下,它的量程范围会变成0-Vref吗?希望有大神解释下,谢谢!
    发表于 12-15 06:39