8.5.3 频率的频域测量
频域测量的基本概念
测量被测对象在不同频率时的特性,即把它看成是一个频率的函数S(w)来测量称为频域测量。例如用频谱分析仪显示并测量信号在不同频率下的功率分布谱。它与时域测量相互之间有唯一的对应关系,彼此可互相换算。
LabVIEW提供的频率测量函数
模拟信号的频率测量我就使用这个vi。在函数面板〉信号处理〉波形测量〉中可以找到这个Extract single Tone Information.vi。该vi就是通过频域的测量分析直接获得被测信号的频率、幅值、相位信息。是一个非常好用的频率测量vi。
这个vi是一个多态vi。
关于这个vi的一些描述
在使用LabVIEW7.1版时,这个vi的程序框图还处于保密状态,需要输入密码才可以查看。后来在那个版本开始解禁也没太注意,反正现在是可以看到程序框图了。
那时可以看到的有关这个vi的表述除了帮助文件,也就是这本清华大学出版的《LabVIEW7.1编程与虚拟仪器设计》这本书中较要提到过。
“LabVIEW提供的函数 Extract single Tone Information,它可以用来测量信号频率、幅值和相位,使用效果非常好。”
“应该说,在相同的条件下,Extract single Tone Information 函数的计算误差比较小,而且它还能同时计算出幅值和相位,因此它是一个值得推荐的算法。遗憾的是LabVIEW对该函数进行了加密,Help文件也没有对其算法做任何说明。”
摘自—--《LabVIEW7.1编程与虚拟仪器设计》P355
本书还给出了一些使用该函数进行频率测量的试验数据。另外,本书对频率测量也专门列为一章,并给出了多种频率测量的方法、测量方法的分析和试验数据,有兴趣的不妨找来看看。
在NI的论坛上看到这样的提问:
“labview中的extract single tone information这个模块非常好用,但是因为不知道该模块是用什么算法实现的,所以不清楚输出的误差有多大。希望各位指点。”
解答者是这样说的:
“通常tone detection算法是通过FFT和峰值提取的办法实现的。但是labview的tone detection模块却不是用这么简单的办法做的,而是使用NI独创的算法计算的。NI有好几个专利和这个算法有关。这一算法的计算精度非常高,尤其是 对于接近于DC的频率和接近于Nyquist频率的频率。”
关于上面所提到的该vi的频率测量精度的问题,在北京大学出版的《LabVIEW图形编程》一书中作者是这样讲述的:
“在LabVIEW分析库中有一个名字为Extract single Tone Information的vi,可以实现大约优于1ppm高准确度的频率测量,但必须保证采样时钟也要具有同样的高精度。”
摘自—--《LabVIEW图形编程》
这段话的意思是:函数算法的准确度可以达到1ppm,但是要想在测量中实现这个准确度还必须使采样时钟的准确度达到同样的水平或更高。
NI绝大多数板卡的时基准确度如例图所示,例图给出的是6251的参数指标。
所以在使用板载时钟时,该vi的频率测量准确度也就在50ppm左右。
如果想获得1ppm的测量准确度,那就必须使用外部的高准确度时钟作为采样时钟,这点是要注意的。
这个函数的确非常好用,上图是信号(信号包含三个频率分量)频域分析的基本图示。利用频域分析可以解决许多实际应用中所遇到的难题。
由于它是基于频域测量(FFT)所以不受信号中的谐波分量对测量的影响。我曾做过试验即使信号中含有高达25%的二次或三次谐波,其基波频率f0的测量结果仍然是十分准确的。这是使用数字频率计测量频率所无法做到的。在振动测量中应用非常方便,因为振动信号中往往谐波分量是很大的。
它还可以用来测量同频率的两个信号间的相位差。
在其它方面,我们也做了许多新颖的应用,效果十分理想,鉴于职务成果技术保密的原因,这里就不多谈了。
关于它的具体使用方法,很简单随便找个例子一看就会,所以也就不介绍了。