信号采集系统中获取每个采样点采样时刻的方法与流程

文档序号:26589035发布日期:2021-09-10 20:16阅读:340来源:国知局

1.本发明涉及信号处理技术领域,具体地说,是一种信号采集系统中获取每个采样点采样时刻的方法。


背景技术:

2.信号采集系统中,原始数据的采集和上传通常都基于fpga处理。某些应用中,需要fpga将信号采集的原始数据进行分片,然后对每一片数据打时间戳,即记录获取到的数据块的第一个采样点的时间,将带时间戳的数据块传到上位机系统,上位机根据采样率以及数据块的时间戳,从而计算出每一个采样点的精确采样时间。但是有些场景不是连续的采样数据上传,用户也可能会根据需要采用触发的方式上传数据块,因此每个数据块记录的时间戳是随机的。fpga打时间戳就需要有本地rtc(real time clock),rtc的源头是gps/北斗或者上游时间分发设备。
3.fpga实现rtc功能,其精度依赖两个条件:(1)时间源送来的秒脉冲。秒脉冲定义了精确1s时间的起始时刻,本地fpga中rtc的运转需要依赖秒脉冲来确定当前秒的精准起始时刻;(2)rtc运行时钟的精度。fpga的时序电路跳转需要时钟,而要实现高精度的rtc则需要精度和稳定度都特别高的时钟源,如恒温晶振,其硬件成本高。如果时钟源的精度达不到要求,则rtc与绝对时间就存在偏差,且每个秒脉冲只可以矫正一次。每一次秒脉冲的到来,可以把本地rtc与绝对时间的差值δt纠正一次。但是在1秒的时间间隔内,随着离矫正点越远,时间偏差越大。rtc是靠时钟驱动计时的,时钟有精度偏差,比如时钟源精度为正负1ppm,如果是用100m的时钟驱动rtc,则1秒钟可能偏差100个周期,导致计时的偏差在不断累积,越是远离秒秒冲的时间,其准确度越差。同时,信号采集系统的采样钟也存在精度问题。上位机在收到带时间戳的数据块时,仅能通过时间戳获取到数据块的第一个采样点的时间,知道这个时间后,还要根据数据块的采样率来推算每一个采样点的时刻。但是采样时钟的频率本身也存在精度问题,比如标称93.333mhz的采样时钟,实际上可能正负10ppm,由此在推算采样点的时间就会引入更大的误差。


技术实现要素:

4.本发明的目的在于提供一种信号采集系统中获取每个采样点采样时刻的方法,用于解决现有技术中信号采集系统由于采集原始数据块的第一采样时刻存在偏差同样采样时钟的准确度也存在偏差,上位机无法解析每个采样点的精准时刻的问题。
5.本发明通过下述技术方案解决上述问题:一种信号采集系统中获取每个采样点采样时刻的方法,包括:步骤s100,设置数据块的封装头中包含时间戳、上一秒的rtc亚秒计数器最大值和上一秒采样时钟的频率计数最大值,时间戳包括秒级以上时间和亚秒计数值,时间戳的目的是用来表征每个数据块的第一个采
样点的精确采样时刻;步骤s200,对fpga本地rtc的运行时钟和信号采样时钟进行频率计数,每个采样钟周期加1,秒脉冲到来即新的一秒开始时清零;同时保存上一秒的rtc亚秒计数器最大值和上一秒采样时钟的频率计数最大值;步骤s300,发送数据块至上位机,上位机系统在收到数据块后,缓存至少1秒的数据;上位机根据第二秒上传的数据块所携带的上一秒的rtc亚秒计数器最大值,并根据上一秒每个数据块所携带的时间戳中的亚秒计数值,获得上一秒每个数据块第一个采样点的亚秒级时间:其中单位为ns(纳秒);计算出上一秒采样时钟单个时钟周期为:其中,单位为ns(纳秒);得到数据块第一个采样点的采样时刻:上位机计算获得数据块中任意采样点n的采样时刻:。
6.本发明中fpga中本地rtc秒级以上仍然采样常规方式,即年









秒,收到外部秒秒冲时按照计时规律跳转。而秒级以下的部分采用计数器的方式定义这个计数器为亚秒计数器,则收到秒脉冲时亚秒计数器清零,然后开始跳转,同时每一次清零时都需要将上一秒的计数值记录下来。当用户需要上传数据块时,则记录“年











亚秒数据值”到数据块的封装头中,传给上位机。上位机系统在收到数据块后,需要缓存至少1秒的数据,然后根据第二秒上传的数据,来计算前一秒的时刻。在每秒上传的多个数据块中,计算每个数据块的第一个采样点的采样时刻即基准时间由第一秒数据块中的秒级以上计数值、时间亚秒计数值以及第二秒数据块中获取的上一秒亚秒计数器最大值计算得到,有了基准点之后,再计算这个数据块内部采样点n与基准点的时间差即可,这时需要用到采样时钟的频率计数,得到每两个采样点之间的时间间隔。本方案采用第一采样时间和频率计数,避免了偏差的累计导致的计时准确度低的问题。
7.为了实现方便,fpga的本地rtc运行时钟频率并没有特殊限制具体可根据实际情况决定,理论上时钟频率越高越好。而采样时钟的频率则是根据中频数字信号处理的需要决定的,不同的场景有不同的时钟。
8.本发明与现有技术相比,具有以下优点及有益效果:本发明解决了由于采集原始数据块的第一采样时刻存在偏差同样采样时钟的准确度也存在偏差,上位机无法解析每个采样点的精准时刻的问题;在不使用高精度和高稳定度晶振的设备中,采用本方案,将获得比常规方案更优的采样点时刻值。
具体实施方式
9.下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
10.实施例:一种信号采集系统中获取每个采样点采样时刻的方法,包括:步骤s100,设置数据块的封装头中包含时间戳、上一秒的rtc亚秒计数器最大值和上一秒采样时钟的频率计数最大值,时间戳包括秒级以上时间和亚秒计数值,时间戳的目的是用来表征每个数据块的第一个采样点的精确采样时刻;步骤s200,对fpga本地rtc的运行时钟和信号采样时钟进行频率计数,每个采样钟周期加1,秒脉冲到来即新的一秒开始时清零;同时保存上一秒的rtc亚秒计数器最大值和上一秒采样时钟的频率计数最大值;步骤s300,发送数据块至上位机,上位机系统在收到数据块后,缓存至少1秒的数据;上位机根据第二秒上传的数据块所携带的上一秒的rtc亚秒计数器最大值,并根据上一秒每个数据块所携带的时间戳中的亚秒计数值,获得上一秒每个数据块第一个采样点的亚秒级时间:其中,单位为ns;计算出上一秒采样时钟单个时钟周期为:其中,单位为ns;得到数据块第一个采样点的采样时刻:上位机计算获得数据块中任意采样点n的采样时刻:。
11.本发明中fpga中本地rtc秒级以上仍然采样常规方式,即年









秒,收到外部秒秒冲时按照计时规律跳转。而秒级以下的部分采用计数器的方式定义这个计数器为亚秒计数器,则收到秒脉冲时亚秒计数器清零,然后开始跳转,同时每一次清零时都需要将上一秒的计数值记录下来。当用户需要上传数据块时,则记录“年











亚秒数据值”到数据块的封装头中,传给上位机。上位机系统在收到数据块后,需要缓存至少1秒的数据,然后根据第二秒上传的数据,来计算前一秒的时刻。在每秒上传的多个数据块中,计算每个数据块的第一个采样点的采样时刻即基准时间由第一秒数据块中的秒级以上计数值、时间亚秒计数值以及第二秒数据块中获取的上一秒亚秒计数器最大值计算得到,有了基准点之后,再计算这个数据块内部采样点n与基准点的时间差即可,这时需要用到采样时钟的频率计数,得到每两个采样点之间的时间间隔。
12.为了实现方便,fpga的本地rtc运行时钟频率并没有特殊限制,具体可根据实际情况决定,理论上时钟频率越高肯定越好。而采样时钟的频率则是根据中频数字信号处理的需要决定的,不同的场景有不同的时钟。
13.某些上游时间分发设备,支持将秒冲频率提高,如1秒产生10次秒冲,采用本方案将获得更好的时间精度,因为各计数器统计的时间间隔更小,引入的误差也更小。
14.尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本技术公开的原则范围和精神之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1