博客写作背景----项目中解决的问题
最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
编程知识点–信号处理算法先进性比较–做题思路
接上篇笔记:
对于n阶的回文数,其基数为10n,10n+1,…,10n+1-1。对于某个基数,都是将其先转化成字符串,随后利用字符串的反转和拼接功能得到回文数。注意,对于A类回文数,要舍弃基数的最后一位数字。构造A类回文数VI的程序框图如图13.3所示。基于上述的分析和介绍,算法二VI的总体程序框图如图4所示,可见,它的功能是先生成回文数,之后再判断这些回文数是否是质数。需要注意的是,由于生成回文数时只生成了奇数位的回文数,所以在最后要将数字11补上。
对上述三种算法的性能进行比较,在相同的计算机条件下,两种算法的比较结果提供在表
对不同算法的运算时间进行测试的VI的程序框图如图5所示。具体地,首先对上述算法都建立相应的子程序,然后搭建如图5所示VI的程序框图,调用顺序结构,并在其中间一帧调用不同算法的子程序,这样就可以测试出不同算法所耗用的时间了。
从表可以看出,算法二虽然需要使用的内存比算法一的稍大一些,但是其计算速度快了49倍,即计算时间从秒级变到了毫秒级。当然,对于上述算法,还可以根据一些条件做进一步优化,比如尾数为2或者5的一定不是质数,等等。针对这方面的数学考虑,本书不再做展开介绍,感兴趣者可自行做更深入的思考。
从上述这个例子可以体会到,为实现同一个目标,有多种不同的算法可以实现;各种算法有优劣之分;而一个好的算法,可以让计算量大为减少,从而使计算速度大大加快。
如何查看VI内存的使用情况。
在LabVIEW中,查看VI内存使用的一种方法如下:在前面板工具条中选择“文件”→“VI属性”,会弹出“VI属性”对话框,在“类别”下拉菜单中选择“内存使用”,界面如图6所示。该页用于显示VI占用的磁盘和系统内存,均以KB为单位。其中,内存数据仅显示VI使用的内存,不反映子VI使用的内存。
该页包括以下部分:前面板对象:显示该VI前面板对象使用的内存容量;程序框图对象:显示该VI的程序框图对象使用的内存容量;代码:显示VI已编译的代码字节数;数据:显示该VI的数据空间字节数;总计:显示VI占用的内存容量;磁盘中VI大小总计:显示VI的总文件大小。