论坛风格切换切换到宽版
  • 469276阅读
  • 2180回复

如何建立自己的时间和频率基准? [复制链接]

上一主题 下一主题
离线bg4kc
发帖
2638
只看该作者 620楼 发表于: 2006-01-11
'
看来搞驯服还真有难度,铷模块内部应该就是ocxo被铷频标“驯服”的。
从dac的分辨力上看,如果5v相当于1e-7,那么要达到1e-10的分辨,就需要10位的dac,留有余量(比如减少数字涨落噪音),此时最好是12位的。换句话说,12位的能到1e-10,16位的能到6e-12...................
'

有些晶振压控范围比较小的可能更合用,可能用不了那么高分辨率的控制电压。 下面这个ocxo就需要更高位数的了。sc切型那个,10v电压可控制2e-6的范围。 2e-10量级需要对10v等分10000份,14位dac,但1lsb电压是1mv,比较好处理。

有没有一种更小控制范围的ocxo呢?
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线bg4kc
发帖
2638
只看该作者 621楼 发表于: 2006-01-11
at切型那个就更难控制了,10v电压能控制30ppm,换算到1e-10要分300000份,要19位分辨率dac,1lsd等于33.3uv

是不是这么个算法?
离线bd1es
发帖
2096
只看该作者 622楼 发表于: 2006-01-18
'
比相的方法,模拟电路的方法要a/d, 数字电路的办法分辨率不容易提高。还真不容易。
数字电路实现的电路分辨率最多到0.01us, 1秒时间累积不出可测的误差, 要累积很长时间才行。
直接用鉴相器比相10khz,取出误差电压,似乎更直接,就是需要高质量的元件和仔细的环路参数设计。 一般的异或鉴相器比较两个极为相近的频率,输出的脉冲会很窄,反映到误差电压上的变化极其微弱,a/d电路也要仔细考虑
'

这几天事情多,没怎么上网。刚好可以琢磨琢磨您的观点。

其实您说的测量精度问题也是我比较头痛的。这和做频率计一样。比如作等精度频率计,使用100mhz采样频率的话只有0.01us的精度,再高就要使用特殊技术了。就是说如果我们只是做一个0.01us精度的这种频率计的话,只需要一块速度足够的altera 7128或7256就可以实现全部频率计核心电路,只要能适配进芯片就可以。其他的外围电路无非就是用单片机实现长整数除法和人机界面之类(当然这略去了制作模拟部分的难度。要是想做更高精度的,就需要“误差放大器”。

如何放大呢?也无非就是我们前面贴子里提到的模拟内插电路还是模拟延迟线。不过这些电路的实现都很难,虽说模拟内插电路只是一个电容的快充慢放,可真要实现起来怕是要了俺老命了。 这大概就是一些高档频率计里面的模拟内插芯片全部贵得上天的原因。

所幸的是gps驯服钟可以允许锁定时间很长,比如惠普和trimble的产品都在1个小时左右,这样就可以允许较长时间采样,使用高精度高阶数大时间常数数字滤波器来充当环路滤波器,去驱动精密dac,用很高精度的控制电压去控制vc-ocxo。这就构成一个类似于数字锁相环的东东,把ocxo的10mhz或是其他什么频率锁定在gps的1pps输出上。

举个例子,不一定对,没有仔细计算过:
1、使用100mhz采样频率采集gps的1pps与ocxo 10mhz两个信号的相位差(当然10mhz需要适当分频,别出现相位模糊 )。为了避免后续计算出错,可以取相位判别点为1秒的偏后一些的位置。如果是使用16位计数器的话,就可以指定读数为32768时相位完全锁定。这样的比相器线性范围约是正负160微妙,分辨度10纳秒。

2、使用8051单片机(如速度不够的话就用avr)实现40到80阶的fir低通滤波器,具体滤波器参数可以使用matlab算出来,然后变成程序,在单片机中实现乘加乘加这类的运算。这就好像一个dsp,只不过我们的处理速度很低,用单片机就够了。当然为了保证精度我们也许需要用c编程,以利用c库现成的32位乘法和加法运算。应该不用更高位数的计算了吧,如果用的话可以去昆士兰大学的数论网页找找,

3、单片机输出滤波以后的相位误差序列,这东西推一个12位dac,产生4096级的控制电压。如果10mhz ocxo在这个范围内可调1hz,则频率阶越为0.06hz,折合以后是6e-9,6ppb。

这样的驯服钟已经够我们用了,因为我们能买到的“大众”价格ocxo充其量也就是1e-8,10ppb罢了。当然别忘了做一件事,调整输出10mhz的相位,使其某一个初始点与gos的1pps均值点对齐。

如果需要提高控制精度,只需要在12-16位之间改换dac,因为前端使用了16位的相位比较器,差不多够了。

一个简单的推算,这几天瞎琢磨的,没有精确推算过,应该差不多。看来使用数字鉴相器也够“精确”了。

数字鉴相器使用的100mhz时钟使用一般的钟振就差不多。如果是1e-5的普通钟振,它对16位鉴相器的影响只是正负32768范围内的正负3。
离线bd1es
发帖
2096
只看该作者 623楼 发表于: 2006-01-18
还忘了提一件事情,gps 1pps的坏值问题。

大多数gps板的1pps输出都有抖动,当然这抖动范围不大时,其随机性会被fir滤波器吃掉。但过大的抖动会把滤波器拉偏,很长时间回不来,这就造成了输出频率的抖动。因此还应使用均值判决等手段从鉴相器输出中(fir滤波器输入序列中)踢掉偏离均值甚远的数据,宁肯这次采样废掉(使用滤波器的输出值)。当然如果有了卡尔曼滤波器就更好了,可是我还是没搞清那东东咋用,太复杂了。我们有几位搞市场调研的人会用卡尔曼滤波算法,用来做一些统计和分析,有时间我去请教他们去。

按照trimble公司文档的说法,http://www.hellocq.net/forum307/attachment.php?attachmentid=169649 我们做个第一代驯服钟就够用了,
离线bg4kc
发帖
2638
只看该作者 624楼 发表于: 2006-01-18
这个指标不太高啊,最后实际实现出来肯定还会低。 能不能再提高点,达到比我们手里现有的trimble低一个数量级。

市面上的恒温晶振5e-9的低于1000元, 我们起码要高过它两三个数量级才好。最好是超越所有市面上能容易找到的恒温晶振,才比较有意义。
离线bg2ihr
发帖
572
只看该作者 625楼 发表于: 2006-01-18
打个比方,用16bit d/a控制分辨率,可以用二个8bit d/a转换,一个粗调一个细调。如考虑成本,甚至一个10-12bit d/a转换通过硬件扩展可达到16bit d/a的分辨率。
离线bd1es
发帖
2096
只看该作者 626楼 发表于: 2006-01-18
'
这个指标不太高啊,最后实际实现出来肯定还会低。 能不能再提高点,达到比我们手里现有的trimble低一个数量级。
市面上的恒温晶振5e-9的低于1000元, 我们起码要高过它两三个数量级才好。最好是超越所有市面上能容易找到的恒温晶振,才比较有意义。
'

嘿嘿,我觉得确实可以再高一些,用更高分辨率的dac,虽然高位数dac配上输出电路之后,特别是在板子上布线之后信噪比可能达不到计算的指标,但总比低位数的dac好。

如果再高的话就难了,连前面的鉴相器(上面说的鉴相器在1pps整周期内相当于26位的,俺还是觉得够用了)到滤波算法都需要反复推算、实验和增强,甚至会逼自己走上绝路啊, 。不过放心,我是不会轻易上吊的,!

如果今年我有时间的话,就想从简单的试起,希望能为大家伙提供点儿参考数据,也希望有时间,哦,在我前面那个trimble钟的盒子做成以后,我出个实现的例子然后仔细算一下,看看到底有戏没, 心里没底。

不吹牛了,俺先睡觉去咧。
离线bg4kc
发帖
2638
只看该作者 627楼 发表于: 2006-01-19
'
举个例子,不一定对,没有仔细计算过:
1、使用100mhz采样频率采集gps的1pps与ocxo 10mhz两个信号的相位差(当然10mhz需要适当分频,别出现相位模糊 )。为了避免后续计算出错,可以取相位判别点为1秒的偏后一些的位置。如果是使用16位计数器的话,就可以指定读数为32768时相位完全锁定。这样的比相器线性范围约是正负160微妙,分辨度10纳秒。:
'

这个是说 用等精度的方法测量吗? 测量10s可以到纳秒了, 然后用2vo说的滑动方法,每秒都会出来纳秒分辨率。

感觉肯定行,具体的电路原理俺还想不明白。
离线bd1es
发帖
2096
只看该作者 628楼 发表于: 2006-01-19
'
这个是说 用等精度的方法测量吗? 测量10s可以到纳秒了, 然后用2vo说的滑动方法,每秒都会出来纳秒分辨率。
感觉肯定行,具体的电路原理俺还想不明白。
'

2vo说的滑动法我也没想明白。

如果用10秒的话确实有1ns的精度,不过采样周期如果是10秒的话如何1秒出一个读数呢?应该还是10秒一个数吧。

如果是1秒的采样周期,求10秒内的平均值的话倒是可以一秒一个读数的,但这是10纳秒精度,也不能说是1ns,所以我也没想明白。

还有我上面说的是一种数字鉴相器,不是等精度频率计了。可以用门或触发器求两个信号的相位差,然后用高速时钟和计数器计量相位差,把他量化。显然越高频率的时钟就得到越高的测量精度。两个信号初步锁定之后可以只测量每个周期内相位差的一小部分,这类似于先粗测再精测的方法。我上面描述的是精细测量的一个细节,并非全部电路的工作原理。实际上需要使用压控扫描的方法把vco牵引到鉴相器的线性范围内电路才能正常工作。我看过老外火腿自制驯服钟的文章,是在1秒的整周期内完整鉴相的,鉴相器线性范围达到2pi,这样不需要精测啦扫频牵引之类的电路,不过在使用相同位数计数器的情况下分辨率低一些。

另外视vc-ocxo的频率调整范围,鉴相器的精度适度即可。使用一个正负160微秒内16位精度的鉴相器(上面贴子里的例子),相当于在完整的1秒周期内使用了26到27位的鉴相器。他提供的精度是2e-8。假设vcocxo的调整范围是1e-6,则理想的控制精度已经达到2e-14,鉴相器的误差可以忽略不计。希望这个计算方法是对的。即使使用10mhz采样频率,这个精度也够用了。

所以影响驯服钟性能的关键部件还是dac,嘿嘿,麻烦的东东,或者vco的可调范围小一些就更好,
离线bd1es
发帖
2096
只看该作者 629楼 发表于: 2006-01-19
'
超前输出时间信息报文的只有mot和rockwell两种吧,garmin的是吗?
'

这个我一直都忘了回复,太久了,今天翻老帖子才发现,不好意思!

我后来试过,要是把gps接收板的通信速率提到9600以上就可以使用1pps区同步钟面了。大部分的gps板都是4800bps的缺省值,这可能在报文还没发完的时候,下一个1pps已经到来了。有些gps板,像motorola的oncore或罗克韦尔的9比特,哦,jupiter,带有2进制报文输出,使用这些报文的话在时间显示上比较靠得住。还有些gps板允许关闭一些nmea0183的会话,这可以减少串行数据的传送量,保证实时性能。

这些需要查看手册,不同的gps接收板不全一样,
离线BG2VO
发帖
5764
只看该作者 630楼 发表于: 2006-01-19
两日没来,讨论的这么深入了。
误差检测,我所谓的滑动法也是我随便想的,就是一种滑动平均,以便减少单次测量的误差。主要用在自动控制里,是否能用在这里我也说不好。
比如图中蓝色的方法(高度代表权重),就是取最近的10次做平均,每次做法是增加一个最新的、减去一个最老的,内存里要保存最新的这10个数。
再比如红色的比例衰减法,是取加权平均,最新的权重大一些,每次做法是把老的平均值乘上一个系数(图中0.9),再加上最新的值(的1/10),无须保存全部/部分系列值。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线bg4kc
发帖
2638
只看该作者 631楼 发表于: 2006-01-19
滑动的方法了解, 这就如同用10个测量单元轮流工作,目的是做到每秒钟都有输

出结果。

1es的相位测量方法还有点弄不清楚, 看我理解的对不对:10mhz分频为1pps,两

个1pps进行异或(鉴相), 得到误差脉冲,这个脉冲的宽度就代表相位误差,但

如何测量一个脉冲的宽度精确到纳秒呢。用1ghz的频率采样它也会产生正负1纳秒

的误差,结果是:对于被测的10mhz来说,1秒测量达到2e-10.


如果累计10秒,则误差脉冲宽度的测量可以放宽到10纳秒分辨率,累计100秒的话

就能放宽到100纳秒分辨率。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线bd1es
发帖
2096
只看该作者 632楼 发表于: 2006-01-20
椰丝,是滴,就是您说的意思!

不过我的计算结果与您不同,我是这样计算地:
忽略晶体vco、lpf和dac精度或者稳定度问题,假设他们都无限理想,则驯服钟稳定度只与鉴相器有关。此时计算公式是:实际稳定度=晶体可调范围x鉴相器精度;

比如一个晶体的可调范围是10ppm,而鉴相器的精度(一个周期内)是100ppm,则实际稳定度是1ppb。

或者反过来求,假设需要实际稳定度0.01ppb的驯服钟,即1e-11,且晶振的可调范围是10ppm,则我们需要鉴相器精度为1ppm,折合成二进制位=20位。

就是说只要有20位精度的鉴相器就行了,这个在1pps下相当于时间分辨度1us,用1.048576mhz的采样频率即可。

可见鉴相器还是比较好设计的,又因为它是纯数字电路,我们可以使用远远高于实际精度需要的电路予以实现,这时我们达到的目标是:鉴相器精度可以忽略不计,我们只需要关心vco、lpf和dac精度。又因为vco精度受制成品约束,是一个常数,因此我们需要在lpf和dac上下功夫。又因为lpf可以使用dsp技术实现,也可以实现比较高的精度,且lpf是一个软件,如果有问题可以立即修正或增强,因此最后一关就剩下dac了。可怕的dac,却又可爱的要命,

以上观点是否正确就完全取决于我的那个公式,我觉得应该是对的,不过并没有什么把握。当然,鉴相器的精度要与lpf和dac配套,要不然,比如输入到16位fir的是小于16位的相位差采样序列,产生截断误差就是另外一回事了。从lpf输出到dac是允许截断的,这取决于我们使用了多少位的dac。

要是这个公式不对的话就吹了, :confused: !就这些,希望俺说明白咧。
离线bd1es
发帖
2096
只看该作者 633楼 发表于: 2006-01-23
俺又来掺合了。昨天我在网上偶然发现了一篇介绍德国dcf77的文章,里面有dcf77的时间码详细格式。看样子这篇文章的原文是dcf77的内部人员写的,或者是btp的人。文章被一个瑞典人译成了英文,我是把这个英国烈士的版本翻成中文了。这是不是会扩散误差,以讹传讹?

想到我们国内也有一个电波钟台,叫做bp68,使用长波68.5khz的频率,每天工作几个小时。这个台使用的时间码格式据说与dcf77差不多,所以我就把文章的主要内容翻译成中文了,供喜欢研究长波电波钟的朋友们对照研究吧。顺便的话,帮我纠正翻译错误,先谢过了。

我电脑的拼音输入法老是把电波钟打成颠簸中,每次都要修改,好玩。:):)
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线bg4kc
发帖
2638
只看该作者 634楼 发表于: 2006-01-23
'
俺又来掺合了。昨天我在网上偶然发现了一篇介绍德国dcf77的文章,里面。。。。。。
'

很好,香港那边能见到有这类的模拟器卖,可以使用现成的电波钟做成小范围的自动校时系统。 但因为板权问题,不能公开卖。
俺也有个这种小钟表(格式dcf77):
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线世纪
发帖
2155
只看该作者 635楼 发表于: 2006-01-24
看看我才搞到的2种gps板,做工非常好应该是时间信号专用的!
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线世纪
发帖
2155
只看该作者 636楼 发表于: 2006-01-24
。。。。。。。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线世纪
发帖
2155
只看该作者 637楼 发表于: 2006-01-24
。。。。。。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线世纪
发帖
2155
只看该作者 638楼 发表于: 2006-01-24
。。。。。。。。。。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线bd1es
发帖
2096
只看该作者 639楼 发表于: 2006-01-24
'
很好,香港那边能见到有这类的模拟器卖,可以使用现成的电波钟做成小范围的自动校时系统。 但因为板权问题,不能公开卖。
俺也有个这种小钟表(格式dcf77):
'

好钟钟!非常可爱。

加一张dcf77的台址图,那嘎达距离俺家7780公里,忒远咧:
本主题包含附件,请 登录 后查看, 或者 注册 成为会员