[发明专利]基于逆波兰算法的数字示波器数学运算处理方法有效
| 申请号: | 202010610481.3 | 申请日: | 2020-06-30 |
| 公开(公告)号: | CN111767004B | 公开(公告)日: | 2022-02-11 |
| 发明(设计)人: | 黄武煌;张沁川;帅维维;赵勇;叶芃;田书林;王厚军 | 申请(专利权)人: | 电子科技大学 |
| 主分类号: | G06F3/05 | 分类号: | G06F3/05;G06F17/15 |
| 代理公司: | 北京正华智诚专利代理事务所(普通合伙) 11870 | 代理人: | 李林合;何凡 |
| 地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 波兰 算法 数字 示波器 数学 运算 处理 方法 | ||
本发明公开了一种基于逆波兰算法的数字示波器数学运算处理方法,该方法包括输入字符参数,生成运算表达式;对算术运算表达式进行中缀表达式向逆波兰式转换解析,并检测解析过程中表达式的合法性;逐元素对逆波兰形式表达式进行计算;将计算结果存储至对应的数学通道的数据缓冲区内;将运算结果显示于示波器屏幕上。本发明不仅能提供基本的运算方法,还可以使用户根据自身测试需求构造复杂运算表达式,并完成分析计算,满足更多的测量需求。
技术领域
本发明属于电子测量仪器技术领域,具体涉及一种基于逆波兰算法的数字示波器数学运算处理方法。
背景技术
近年来,随着在信号与系统方向的深入研究,以及高速高精度数据采集与处理技术的逐渐成熟,越来越多的功能在电子测试技术及相关仪器中得以实现。在这样的发展背景下,作为一款基础的电子测量仪器,越来越多的领域及行业借助数字示波器完成相关测试工作,随着应用领域的扩展,也出现了各式各样的测试环境,使得测试执行更加困难。同时,不同领域的测试需求也不尽相同,这就要求示波器具备更加全面的波形分析功能,例如可变点数FFT、区域可选直方图分析和追踪图分析等,以满足用户对各类波形的测试需求。
发明内容
针对现有技术中的上述不足,本发明提供了一种基于逆波兰算法的数字示波器数学运算处理方法,对被测信号完成一系列自定义运算处理,实现对采集数据完成更复杂的处理,大大提高了示波器的数据处理能力。。
为了达到上述发明目的,本发明采用的技术方案为:
一种基于逆波兰算法的数字示波器数学运算处理方法,包括以下步骤:
S1、输入字符参数,生成运算表达式;
S2、对算术运算表达式进行中缀表达式向逆波兰式转换解析,并检测解析过程中表达式的合法性;
S3、逐元素对逆波兰形式表达式进行计算;
S4、将计算结果存储至对应的数学通道的数据缓冲区内;
S5、将运算结果显示于示波器屏幕上。
进一步地,所述步骤S1还包括:
将生成的运算表达式转换为半角输入以及小写格式。
进一步地,所述步骤S1之后还包括以下分步骤:
A1、根据测量项字符串以及操作符字符串将运算表达式进行拆分处理;
A2、通过遍历的方式,以“+-*/(),=!|~”为分割符标志,将运算表达式元素进行提取,并使用队列方式进行存储。
进一步地,所述步骤A2中,定义Token数据结构作为数据结构体,所述Token数据结构包括类型、单位、标识符、元素位于表达式的位置,其中类型包括操作数、运算符、函数、分隔符,设置运算表达式字符串为ListToken。
进一步地,所述步骤S2中,对算术运算表达式进行中缀表达式向逆波兰式转换解析具体包括以下分步骤:
B1、创建一存放操作符的数据栈,并按照优先级存放操作符;
B2、依次遍历中缀表达式数据结构,通过检查每个Token元素的类型标识来判断当前元素的类型,直至遍历完整个中缀表达式中的所有元素:
若该元素是操作数,则将该元素输出到逆波兰式队列;否则进行下一判断;
若该元素是函数,使用临时变量保存该元素;否则进行下一判断;
若该元素是运算符,当操作符栈为空或栈顶操作符具有更高的优先级或栈顶为左括号时,将该元素压入栈;否则从栈中弹出一个元素输出至逆波兰式,并重复操作符栈判定步骤,直至将该元素压入栈;否则进行下一判断;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010610481.3/2.html,转载请声明来源钻瓜专利网。





