月度归档: 2010年7月
压缩感知
最近研究了一下压缩感知理论。压缩感知大概是近几年里,测试测量领域唯一称得上革命性的理论了。它在理论上证明了信号采集可以突破奈奎斯特-香农采样定理(Nyquist–Shannon sampling theorem)的限制:即,以低于原始信号频率2倍的采样率采集并还原原始信号。
压缩感知的理论是这样的:
一个信号可以拆分成多个不相关的小信号的叠加(小信号称作向量),在不同拆分方法之间转换叫做域变换。如果某一个域上,只有一部分向量的值比较大,其它向量的值接近于0,则这个信号时可压缩的(近似0值的向量可以被去除,却不影响信号整体性质)。
所有的信号都是可压缩的,只要找到合适的转换域。
如果对信号先压缩,再做AD转换,就可以用低速率的AD转换器来采集高带宽的信号了。因为信号压缩后数据量减少,相当于带宽降低了。
在这个理论框架下,实现的采集与传统方法相比,有两点主要不同:
一是,数据采集硬件不同。因为采样函数变了。目前常见的硬件设备,采集一维信号的数据采集卡,相当于使用等距脉冲函数对原始信号做调制;二维图像的采集函数是像素位置函数。而压缩感知理论框架下需要使用高斯随即矩阵或等效的函数作为采样函数,这导致采集硬件必须完全重新设计。
二是,原始信号重建方法不同。传统数据采集可以直接从采集到的样本还原原始信号(受奈奎斯特定理的限制)。但在压缩感知理论下,采集到的样本数,少于可以直接重建原始信号所需的数量,不能直接重建。只能首先重建原始信号在某一稀疏域上的信号(通过最优化算法求得该域的最稀疏解)。再通过域转换,重建原始信号。
压缩感知最大的优势在于可以使用低速率的数据采集设备,来采集时域上高频的信号。这听起来很诱人,不过由于这需要重新设计所有的采集硬件,这一理论到实用也许还有相当长一段距离。
Startup VI 可以包含多个VI
今天发现,在发布产品,生成.exe文件时,Build Specification->Source Files->Startup VIs 栏目中可以包含多个VI。
这样生成的EXE,在一启动时,就会同时打开多个VI的面板。
为列表框控件添加自定义的图标
LabVIEW 中 Listbox, Tree 等控件,每个条目之前都可以显示出一个图标。选中控件的右键菜单 Visible Items->Symbols 就可以把这些图标显示出来。
控件中每个条目的图标可以直接通过控件的 Item Symbol 右键菜单来选择,也可通过才程序中设置控件的 Item Symbols属性来设置。控件自带的图标都比较简陋,并且总共只有40几个。(最后一个图标其实不是“图标”,它是分割线,有时可能是非常有用的)
但是LabVIEW提供了对这些图标的扩展功能。通过编程,可以为Listbox控件添加自定义的图标。设置图标时使用的“Custom Item Symbol –> Set To Custom Symbol” 方法,这个方法有两个输入,Index 表示图标的序号。应给给新图标选一个比较大的序号,以免覆盖掉控件自带的图标。第二个参数是图标的图片。
我在这个例子中,自己做了一张图片 Icon.png,它是一张彩色的LabVIEW标志。打开这个图片文件,得到它的图像数据,然后设置给Listbox控件。效果图如下:
转贴一个笑话
有一只熊猫,它到一家饭店点了菜就开始吃,吃完之后掏出一把枪乱放几枪走了。
饭店的老板就问它,你为什么要这样做?
熊猫就说,你查一下字典。
老板发现字典上写着:
Panda: an animal, eats shoots and leaves