使用频率计FA-2测量的频率中的随机数
01【频率计FA-2测量数据】一、背景这是手边的一个有源晶振 它的频率大概是2.45兆赫兹。 使用手边的一个频率计 型号为FA-2 对它的频率进行测量 不过现在测量的并不是它的频率它的频呃信号的频率 而是输入悬空的时候频率计显示的读数。 整体上平率计的读数呈现非常随机的特性 这应该是一个物理系统 受到外部干扰呈现的随机变动 我们查看一下它测量数据。 小数位的波动是否呈现严格的随机分布特性。 下面我们查看一下测量的结果。二、测量结果测量1000个数据可以看到他们在一定范围内产生比较大的波动 所得到的频率值的平均值大概是10.6兆赫兹。 对应的方差大概是113959赫兹。▲ 图2.1 测量1000个数据测量1000个数据 可以看到这一次它的数据的变动有一点点变化 但是测量频率的值平均值仍然是10.6兆赫兹 方差对应的是96501赫兹。▲ 图2.2 重新测试1000个数据这是对1000个数据小数点左侧第1位的分布 大体上可以看到呈现比较随机的分布。 这是小数点右边第1位分布 这是小数点右边第2位随机分布 那对于小数点左右各5个小数点统计 可以看到它们大体上都呈现着非常随机的分布特性。▲ 图2.3 小数点左边第一位统计▲ 图2.4 小数点右边第一位统计▲ 图2.5 小数点右边第2位统计※总结 ※本文通过一个频率计测量干扰信号的频率 它的采样数值呈现比较明显的随机特性。 经过统计可以看到在它的方差范围对应的生字都呈现0~9之间的均匀随机分布。#!/usr/local/bin/python# -*- coding: gbk -*-## TEST1.PY -- by Dr. ZhuoQing 2026-05-28## Note:#fromheadmimport*importserialfrom_astimportOrfromserial.serialutilimportSerialException#------------------------------------------------------------sportserial.Serial()sport.baudrate9600sport.timeout0.05try:sport.portCOM7except:printf(Set sport port COM7 error. )try:sport.open()exceptserial.serialutil.SerialException:printf(Open sport port COM7 error.)else:printf(Open sport port COM7 Ok.)#------------------------------------------------------------deffa2read():sport.write(b$D*\r\n)foriinrange(200):time.sleep(0.1)ifsport.inWaiting()0:breakretsport.read(100).decode(utf-8).split(,)iflen(ret)3:return0fret[1]pret[2]return(float(f),float(p))#------------------------------------------------------------fdim[]foriinrange(1000):for_inrange(10):ffa2read()iftype(f)int:continuebreakfdim.append(f[0])printff(i,f)tspsave(data,fdimfdim)plt.plot(fdim,lw3)plt.xlabel(N,colorsteelblue,fontsize24)plt.ylabel(Frequency(Hz),colorsteelblue,fontsize24)plt.grid(True,whichboth,linestyle--,alpha0.7)plt.tight_layout()plt.show()#------------------------------------------------------------# END OF FILE : TEST1.PY##!/usr/local/bin/python# -*- coding: gbk -*-## TEST2.PY -- by Dr. ZhuoQing 2026-05-28## Note:#fromheadmimport*fdimtspload(data,fdim)defbitnum(d,n,left0):dim[]forddind:dsstr(dd)dssds.split(.)ifleft0:dsssdss[0]nndsss[-(n1)]else:dsssdss[1]nndsss[n]dim.append(nn)returndim#------------------------------------------------------------foriinrange(10):ifi5:left0iiielse:left1iii-5bnbitnum(fdim,ii,left)plt.clf()plt.hist(bn,10)plt.xlabel(NUM,colorsteelblue,fontsize24)plt.ylabel(HIST,colorsteelblue,fontsize24)plt.grid(True,whichboth,linestyle--,alpha0.7)plt.tight_layout()plt.draw()plt.pause(.1)pltgif.append(plt)pltgif.save(period500)#------------------------------------------------------------# END OF FILE : TEST2.PY#● 相关图表链接:图2.1 测量1000个数据图2.2 重新测试1000个数据图2.3 小数点左边第一位统计图2.4 小数点右边第一位统计图2.5 小数点右边第2位统计