用MATLAB/Simulink对实验/仿真示波器保存的数据进行THD分析、MATLAB自定义横纵坐标轴绘图

这篇具有很好参考价值的文章主要介绍了用MATLAB/Simulink对实验/仿真示波器保存的数据进行THD分析、MATLAB自定义横纵坐标轴绘图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近年底和师兄交流了数据分析、波形处理问题。一个是将示波器导出的csv数据放到MATLAB中进行THD分析,另一个是自定义横纵坐标轴进行绘图,就这两个问题记录一下。

不需要背代码,简单、易于理解,使用过程中截个图就行了。


一、对示波器导出的波形数据进行THD分析

1、导入数据至MATLAB,修改变量名和数据类型;

  • 点击“导入数据”,选中示波器保存的“csv”数据文件;
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图1 导入示波器csv数据
  • 自定义一下数据名字(数据表示什么就记为什么,方便理解),修改数据类型为“数值矩阵”(便于后面通过调用矩阵的行列,进行程序编写);
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图2 自定义数据名称和类型
  • 以上两点完成后,点击“绿色的对号”导入数据。

2、提取横纵坐标数据,组合成适合Simulink进行FFT分析的数据格式;

明确一点:MATLAB编程只是把数据保存在一个变量内,然后把变量放到Simulink中用Scope展示出来。因此,接下来的编程目的:要确定数据显示的横纵坐标。我们定义x为横坐标,y为纵坐标,横纵坐标组合后的数据为z:

% 数据类型为列数据
data = data1;
x = data(3:2002,1)+0.1;    % ("横坐标范围",“纵坐标范围”),("第i行":"第j行","第k列")
y = data(3:2002,2);    % 取数据的第2列为纵坐标数据
z = [x,y];        % 组合后:Z的第一列为横坐标数据,第二列为纵坐标数据

% 数据类型为行数据,用“transpose”函数将“行”转置为“列”
data = data1;
x = transpose(data(:,1))+0.1;       % 1行n列的数据,转换为n行1列的数据
y = transpose(data(:,2));       % 横坐标范围只打一个冒号:表示默认从第一行到最后一行,即所有行
z = [x,y];

以下三点是对程序段进行优化的解释:

  • 在工作区,双击打开刚才导入的变量:(表明从第3行开始数据有效)
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图3 查看导入csv数据的有效范围
  • 横坐标值要补偿0.1:(为了保证Simulink进行波形显示时,时间从0开始波形绘制完整,解决波形显示不全、显示不出来的问题
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图4 确定需要补偿的横坐标值
  •  运行程序段,完成后点击工作区的z变量检查一下,补偿好后如下图所示。
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图5 补偿后变量z横轴时间从0开始

注:data1是第一步里导入数据时自定义的数据名字,将他赋给变量data,此后对示波器导入的不同数据,只需修改等号后面的名字data1即可。

3、在Simulink中放入模块“From workspace”,修改变量名,放入powergui进行FFT分析。

  • 修改“from workspace”模块中的变量名称,与工作区内重新组合好的变量名z一致;
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图6 对应工作区修改变量名

注(波形为折线形、数据点显示不完整):同步修改powergui和系统采样时间,在Configuration Parameters/Solver/Solver selection/,修改为Fixed-step,并给出采样时间。 

  • 点击“powergui”进行波形FFT分析;
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图7 FFT波形分析

注:(①Name内没有选项的情况):在Configuration Parameters/Data Import/Export/Save to workspace or file/,取消勾选"signal simulation output"。

(③Number of cycles周期数的选择):选择为1个周期,则横坐标间隔单位为1;选择2个周期,横坐标间隔单位为0.5。

(④Max frequency最大频率的选择):最大频率与基波频率的倍数,决定了横坐标显示数据的个数。如图中给出1000/41.66 = 24.003,则横坐标显示24个柱状形。

  • 导出波形,微调。把背景线去掉,否则后续在Visio里处理图片很麻烦。
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图8 波形导出及调整

二、用MATLAB自定义横纵坐标轴绘图(plot函数)

  • 与上述组合数据z的过程一致,三个步骤:导入数据、定义横纵坐标数据变量、plot一下:(在电机控制中,可以用于绘制横轴为alpha,纵轴为beta的出图)。
% 数据类型为列数据
data = data1;
x = data(3:2002,1);    % ("横坐标范围",“纵坐标范围”),("第i行":"第j行","第k列")
y = data(3:2002,2);    % 取数据的第2列为纵坐标数据
z = plot(x,y);        % 组合后:plot函数逗号前为横坐标数据,逗号后为纵坐标数据
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图9 将数据点采用plot函数输出
  • 如果觉得数据点太密集,修改为每10个点取一个数据:(要在冒号间再增添一个冒号:看一下对比效果。有没有发现波峰变尖了,这是由于数据点采集不够导致的)
x = data(3:30:2002,1);    %从第3行到第2002行,每30个取一个数据点;取第1列里的数据
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图10 将数据点采用plot函数,以每30个数据为间隔输出
  • 想将示波器分析的THD数据直接用柱状图形式输出:(采用bar函数 ,这里以正弦波示意一下)
z = bar(x,y);
simulink示波器横纵坐标数据怎么改,经验分享,matlab,开发语言,学习,数据库开发,数据结构
图11 采用bar函数输出柱状图

此外,放一个后续visio处理出图的教程: 【导出Simulink中的scope数据,用MATLAB的plot函数进行曲线绘制,以及后续Visio论文出图处理。自定义横纵坐标轴变量,不用背代码。】 https://www.bilibili.com/video/BV1QK411t7zJ/?share_source=copy_web&vd_source=571ee7745d512a8293189d83f511f927文章来源地址https://www.toymoban.com/news/detail-814273.html



如果此篇文章对您有帮助,记得评论告诉我(●'◡'●)
您的点赞和收藏是对写作者最大的鼓励!

到了这里,关于用MATLAB/Simulink对实验/仿真示波器保存的数据进行THD分析、MATLAB自定义横纵坐标轴绘图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【数字示波器设计】——基于FPGA的数字示波器实现

    【数字示波器设计】——基于FPGA的数字示波器实现 数字示波器是电子技术领域中非常重要的仪器之一,可以用来观察电信号的波形,是电子工程师必备的工具。而基于FPGA的数字示波器则具有高速、高精度和可编程性强等优势,成为了现代电子工程师常用的示波器。 本文将介

    2024年01月20日
    浏览(12)
  • ThunderScope开源示波器

    ThunderScope开源示波器

    4CH,1GSa/S 开源示波器。前端很简洁,BUF802+LMH6518,ADC是HMCAD1511,用Xilinx A7 FPGA进行控制,数据通过PCIE总线传输到上位机处理。目前这个项目已经被挂到了Xilinx官网,强。 设计日志:https://hackaday.io/project/180090-thunderscope 开源地址:https://github.com/EEVengers/ThunderScope discord讨论组:

    2024年02月16日
    浏览(9)
  • 示波器带宽

    示波器带宽

    示波器有很多不同规格,确定了可捕获和测量信号的准确度。但是示波器的主要规格是其带宽。 所有示波器都具有以较高频率展示的低通频率响应,如下图所示。大多数带宽规格为 1 GHz 以及更低的示波器通常具有高斯频率响应。示波器高斯频率响应近似于单极点低通滤波器

    2024年02月13日
    浏览(6)
  • 电脑连接示波器读取数据

    电脑连接示波器读取数据

    示波器型号:北京普源的RIGOL MSO4034 首先连接示波器: 连接线与示波器相连的端口如上图USB DEVICE所示,是一个比较奇怪的方形接口。连接线的另一端是标准的USB typeA接口,可以直接插在电脑上,当示波器和电脑连接时,电脑会提示安装驱动。 该型号示波器端口是业界通用的

    2023年04月08日
    浏览(11)
  • STM32示波器设计

    STM32示波器设计

    目录 前言 1、硬件模块 2、示波器基础知识 2.1 当头一棒就是,波形的概念 2 .2 第二就是需要观察的波形参数 2.3 第三就是示波器参数 2.3.1 采样率 2.3.2 带宽 2.3.4 刷新率 3、ADC采集和DAC输出 3.1 ADC 采集实现 3.1.1 配置ADC采集为定时触发DMA采集模式 3.1.2 配置ADC关联的定时器 3.1.3 转

    2023年04月14日
    浏览(7)
  • LabVIEW虚拟数字示波器

    LabVIEW虚拟数字示波器

    1、简易版 1.1、生成虚拟数据 1.2、 数据参数信息 1.3、 调节时间和幅度 1.4、 调节直流偏置和增益 1.5、 数据信号频域分析 1.6、数据信号滤波 1.7、 保存波形数据 1.8、加载波形数据 1.9、停止运行 2、复杂版 2.1、调节数据信号频率、幅度、相位、偏移量和占空比 2.2、调节时

    2024年02月03日
    浏览(9)
  • 嵌入式开发----示波器入门

    嵌入式开发----示波器入门

    对于嵌入式工程师来说,示波器的使用极为重要,他就像是“电子工程师的眼睛”,把被测信号的实际波形显示在屏幕上,以供工程师查找定位问题或评估系统性能等,利用示波器能观察各种不同信号幅度随时间变化的波形曲线,还可以用来测试电量,如电压、电流、频率、

    2024年01月18日
    浏览(15)
  • 基于FPGA的示波器设计

    基于FPGA的示波器设计

    目录 一、设计要求 二、系统架构设计         本次基于FPGA的示波器设计主要技术要求包含以下内容: 系统能够实现模数转换功能,即包含ADC驱动模块; 系统能够实现ADC采集数据的缓存功能; 系统包含辅助测试模块,DAC数模转换模块; 系统能够实现ADC数据和LCD液晶显示数

    2024年02月14日
    浏览(8)
  • 示波器的 带宽、采样率、存储深度

    带宽:示波器上标注的带宽是可测量信号的最大带宽 数字示波器带宽一般都是指其前段放大器的模拟带宽。这里的放大器相当于一个低通滤波器。 示波器的带宽决定了其能测量多大的带宽,也决定了示波器的价格。 如果需要测试100M信号,需要多大带宽的示波器呢? 五倍法

    2024年02月06日
    浏览(10)
  • 简单使用示波器485通讯抓波形

    简单使用示波器485通讯抓波形

    串口通讯经常要用到示波器抓波形分析数据,很多人都熟悉232通讯抓波形,但是不清楚要怎么给485抓包,其实很简单 首先先准备一个120欧和一个33欧的电阻(没有阻值一样的可以使用阻值差不多的) 然后按下图接入到485通讯线上 然后将示波器的触发方式改为欠压   最后将示

    2024年02月16日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包