最近在学习关于甚高频通信的知识,为了完成一些重复性的工作实现自动化,做了个小工具来辅助做一些运行维护工作。这也符合笔者的价值观:学习应该有漂亮的输出,而不仅仅是无效的输入。
本来基于AM调幅的分析使用python来搭建仿真会比较简单,因为有现成的库可以调用,但是无法方便的做成GUI来可视化提供给用户。于是就想到以前的老本行Labview,顺便把一些常用的计算和分析功能集成在上面。
在使用Labview之前,笔者也使用开源的python脚本生成AM调幅额基本原理,代码GitHub - Guogeda/Modulate: 关于python模拟调制 ,笔者就不再阐述了。
![](https://img.haomeiwen.com/i24447700/8cd120a783247a2c.gif)
那么基于Labview,笔记根据实际运行情况写了五个模块的功能:AM调幅仿真、得换算、电路计算、电压驻波比损耗、自由空间损耗,各个功能下面的算法其实就是根据公式完成简单的数学计算。界面经过笔者的精心布局和美工,看起来还算简洁、舒心。后续根据运行需求再慢慢添加功能吧!
程序框图方面,关于程序结构方面笔者这一次没有为了追求高级而高级,而是使用一个循环一个事件结构,相同功能使用一个事件分支,通过按钮的标签文本来区分,减少事件结构分支过多,后期改进维护困难。写过许多程序,发现过于追求好的程序设计模式并不是最合适,应该立足于需求,找个较为合适的,复杂化的设计模式可能成本更高。笔者最近就喜欢简洁的东西,以前那种“十全大补”的方式,为了一点点性能而去鄙弃局部变量,转而使用专门构造的功能全局变量,使程序丧失了简洁性,接口也变得复杂。
废话不多说了,来看看笔者的界面吧,还算好看实用吧。以后慢慢优化增加新功能,为运行带来一点帮助。
AM调幅仿真的界面如下:
![](https://img.haomeiwen.com/i24447700/bc9dc1b73bea201f.png)
电压驻波比界面如下:
![](https://img.haomeiwen.com/i24447700/00b7733b38ad36f2.png)
单位换算界面如下:
![](https://img.haomeiwen.com/i24447700/dc7a3276438af023.png)
网友评论