随机数多用于
仿真过程中,
labview作为一种编程语言,特别适合于仿真过程,因此,与常规语言不同,直接提供了多种创建随机数和随机数序列的方法。但是由于侧重点的不同,LABVIEW在多个函数选板中,提供了多种不同的函数,下面大概总结一下。
一、伪随机数发生器
在LABVIEW数值函数选板中,提供了一个随机数发生器函数,返回一个0-1之间的伪随机数。常规语言中都提供了类似的RAND函数,LV的帮助文件中对该函数没有细节方面的描述。
该函数与常规语言的RAND函数也有不同之处,常规语言的RAND函数一般可以自行选择种子,对于相同的种子,执行相同的算法,因此会返回相同的随机数。
默认的种子通常是系统时钟,估计LABVIEW也是如此。但是LABVIEW函数内部可能是在首次调用时使用系统时间作为种子,再次调用时可能内部使用了前一次的结果作为种子,因为接近相同时刻函数不会返回相同的随机数,如下图所示。
二、任意范围的随机数发生器
LV提供的随机数发生器返回的0-1之间的双精度随机数,实际应用中经常需要的是指定范围的随机数,这可以通过简单的线性运算实现,如下图所示。
三、均匀白噪声
均匀白噪声是一组离散的随机数,随机数的平均值为0,随机数序列的预期标准偏差µ = E{x} = 0
通过LV的随机数发生器,可以很容易生成这样的序列,满足均匀白噪声的标准,如下图所示:
LV在信号生成函数选板中专门提供了几种随机数序列发生器,包括均匀白噪声、周期性随机噪声、高斯噪声、二项式分布的噪声等等,如下图所示。
信号生成模板的几种噪声生成函数使用方法十分类似,下面以均匀白噪声为例,重点分析一下它的用法。
均匀白噪声生成信号函数使用非常简单,但是特别要注意种子和初始化输入端子的用法,该函数可以设置种子值,为-1时表示使用内部随机种子。内部随机种子调用的是基本的随机数发生器函数,由于基本的随机数发生器函数使用内部时钟作为种子,所以使用默认随机数种子时,均匀白噪声实质上是系统时钟相关的。
初始化端子如果为TRUE,每次调用时都可以更新种子值,如果为FALSE,则连续调用时使用前一次生成的种子值,看一下该函数的程序框图。
在给定种子时,因为遵循同样的算法,所以相同种子值返回的随机数序列是相同的,如下图所示:
三、正态分布随机数序列
所谓正态分布随机数序列,就是要求随机数序列必须满足平均值和标准方差的要求,并呈正态分布。
伪随机序列的期望均值µ和期望标准偏差µ = E{x} = 0
= [E{x – µ}
2]
1/2= s
伪随机序列产生约2
90个采样后才会出现重复。
下面创建一个正态分布随机数序列,并计算它的均值和标准方差。
信号生成选板中还提供了其它几种噪声函数,这里就不再详细讨论了,下一篇文章中介绍波形函数选板中的几种随机数发生器,以及概率函数选板中的随机数发生器,这些随机数发生器都是以信号噪声函数为基础的,在此基础上进一步实用化。
2