基于单光子探测的多相伪随机序列快速生成及解码方法与流程

文档序号:13934290阅读:408来源:国知局
基于单光子探测的多相伪随机序列快速生成及解码方法与流程

本发明属于激光雷达技术领域,特别是涉及到极弱光探测领域,具体地说是一种基于单光子探测的多相伪随机序列快速生成及解码方法。



背景技术:

单光子探测可以在极低的能量(平均每个脉冲回波能量不足一个光子)条件下对远距离非合作目标探测,并获得高精度测距结果。极大的提升了激光雷达系统在有限资源下的性能,是激光雷达领域的前沿技术。

为了快速获取目标信息,系统设计者往往采用高重频激光器,然而高重频在远距离测距时不能判别回波信号与发射信号的对应关系,即不满足单值测距要求;而满足单值测距要求下只能在一个很短的范围内测距,从而导致了距离模糊问题。

伪随机编码序列是一种常见的增加系统探测带宽的方法,可以有效的解决光子计数技术要求的高重频所引起的距离模糊问题,通过伪随机编码对发射信号的调制,极大的扩大了单光子探测系统的测距距离,并具备了一定的抗噪能力,从而进一步提升了测距精度。张宇飞、贺岩等人在2016年发表的论文《three-dimensionalimaginglidarsystembasedonhighspeedpseudorandommodulationandphotoncounting》中详细阐述了用m序列对单光子探测系统调制从而获得目标三维信息的过程,该文采用连续激光器与调制器组合的方案,当采用调制器对连续激光器调制时,不存在储能时间,但单脉冲能量低,时间精度不高,而且调制器价格不菲,增加了系统成本;当采用脉冲激光器时,能够克服以上问题,但受到脉冲激光器最大脉冲重复频率限制。

为了降低调制器件要求,也为了获得更高的单脉冲能量,设计者往往采用脉冲激光器而非连续激光器。然而此时传统的伪随机序列难以解决单光子探测的高速调制与激光器重复频率之间矛盾;实际系统中为了获得更高的时间精度,伪随机序列的发生速率往往高达ghz级,而激光器重复频率难以匹配,传统的伪随机序列如m序列,其中“0”码元和“1”码元所占比例相当,即激光器的重复频率应达到伪随机序列调制速率的一半。故传统的伪随机序列无法在高速调制条件下使用。

传统的伪随机序列多为仅包含“0”、“1”两种码元的二相编码序列;虽然具有易于产生的优点,但由于二相编码不包含强度信息,编码序列自身的相关性还不够强,而且容易被噪声污染并对最终测量结果造成较大影响;传统的伪随机序列生成方法还有难以产生任意码长的编码、难以获得特定的码型的编码等缺点。(例如m序列只能产生长度为2n-1的编码序列,而且所产生的序列为固定序列,不能调整)

当伪随机序列产生后,通过伪随机序列对激光器调制并获得发射激光信号;回波光子携带调制信息与目标信息被接收系统接收,当接收系统接收到足够的稀疏光子信号后即可获得接收序列。对伪随机序列与获得的接收序列做相关即可解算出光子飞行时间,进而获得目标距离。然而相关操作计算量较大,尤其是序列长度较长时,相关操作将占用大量计算资源。

综上所述,目前单光子探测领域亟需一种能够解决上述问题且易于产生的伪随机序列,并且在距离解算模块亟需一种快速算法来降低该操作的计算量。



技术实现要素:

为了解决单光子探测中由于高速编码调制导致的编码产生速率与激光器重复频率之间的速率不匹配、编码形式固定等问题,本发明提出一种基于单光子探测的多相伪随机序列快速生成及解码方法,本发明所产生的伪随机序列还具有可以获得任意码型、携带强度信息(多相序列)、自相关性良好、容易产生等多种优点。在距离解算模块,本发明采用快速傅立叶算法解算相关,通过变换域与快速算法双重加速效果大大提高了运算速度,进而提升了系统性能。

本发明的技术解决方案是提供一种基于单光子探测的多相伪随机序列快速生成及解码方法,包括以下步骤:

步骤一:预设相关参数;

包括序列生成算法参数与mersennetwister算法参数;

其中序列生成算法参数包括编码长度、调制位置比例阈值、强度范围及对应的强度值、缓冲位数;

步骤二:获得多相伪随机编码;

2.1)、设置种子序列,根据mersennetwister算法生成随机数;

2.2)、根据预设的调制位置比例阈值,判断该随机数在伪随机序列中对应的位置是否为调制位置,若为调制位置,则根据预设的强度范围确定该调制位的强度值,并将该调制位之后的缓冲位置的强度值设为零;若为非调制位置,则将其强度值设为零;调制位置及其后面的缓冲位置对应的强度值构成部分编码;

2.3)、重复步骤2.1)与步骤2.2),直到达到设定编码长度完整的多相伪随机编码;

步骤三:通过单光子探测装置获取发射编码与接收编码,所述发射编码即为步骤二获得的多相伪随机编码;再对发射编码与接收编码做相关,从而解算出目标距离。

优选地,上述步骤2.1)具体为:

2.11)、根据设定的序列生成算法参数与mersennetwister算法参数以及种子序列初始化随机数序列;

2.12)、通过重新组合新序列及将新序列与旋转矩阵相乘更新随机数序列;

2.13)、通过将更新后的随机数序列移位、按位异或抽取最终输出的随机数。

优选地,循环下式n-1次产生除种子序列外的其余n-1个码字,构成初始化随机序列x;

其中为“按位异或”操作,>>为按位右移操作,f为初始化参数,w为码字长度,x为随机序列中的随机数,j为第j个码字,j从1取到n-1,n为递归度。

优选地,步骤2.12)具体为:

a)、在初始化随机序列x中,取xk的较高的w-r位与xk+1的较低的r位组合成新序列xnew;

其中r为码子切割点,u、l均为回火位移;

b)、xnew与旋转矩阵a相乘,其中a是矩阵的有理标准型,

步骤2.13)具体为:

c)、xnewa与xk+m按位异或,获取xk+n,重复步骤a)至步骤b)n-1次,更新x序列;

其中m为中间值;

d)、设y为当前序列的下一个取值,按照如下操作获取最终抽取的随机数:

z即为最终输出的随机数,<<表示按位左移,b,c、s,t、u,d,l均为回火位移。

本发明的有益效果是:

1、本发明所产生的伪随机序列可以获得任意码型、携带强度信息(多相序列)、自相关性良好、容易产生等多种优点;

2、在距离解算模块,本发明采用快速傅立叶算法解算相关,通过变换域与快速算法双重加速效果大大提高了运算速度,进而提升了系统性能。

附图说明

图1为基于单光子探测的多相伪随机序列快速生成算法流程图;

图2为单光子探测系统距离解算模块工作流程图;

图3为本发明基于单光子探测的多相伪随机序列快速生成方法产生的序列自相关性展示;

图4为传统的m序列的自相关性展示;

图5为生成m序列与生成基于单光子探测的多相伪随机序列所耗费时间对比图;

图6为传统相关解算方法与fft解算相关方法所耗费时间对比图。

具体实施方式

以下结合附图及具体实施例对本发明做进一步的描述。需要说明的是说明书中加粗符号代表向量。

如图1,本发明伪随机序列通过下述快速生成:

步骤一:根据单光子探测系统参数设置伪随机序列长度ls、调制位置所占比例p、强度级数i及其划分区间(t1,t2),(t2,t3),…(ti-1,ti)以及用于激光器储能时间的缓冲位数buff;

步骤二:设置mersennetwister算法参数:码字长度w、递归度n、中间值m、码字切割点r、初始化参数f以及旋转线性移位反馈寄存器回火位掩码与回火位移b,c、s,t、u,d,l;

步骤三:设置w位长的序列x0为种子序列,循环下式n-1次产生其余n-1个码字,作为初始化的随机数序列x;

其中为“按位异或”操作,>>为按位右移操作;

步骤四:在初始化随机数序列x中取xk的较高的w-r位与xk+1的较低的r位组合成新序列xnew;

步骤五:xnew与旋转矩阵a相乘,a是矩阵的有理标准型,即

其中iw-1是一个(n-1)*(n-1)的单位矩阵,又由于本算法是基于有限二进制字段上的矩阵线性递归,故新序列xnew与矩阵a相乘可以简化

步骤六:xnewa与xk+m按位异或,获取xk+n;

步骤七:重复步骤四至步骤六n-1次,更新x序列;

步骤八:设y为当前序列的下一个取值,则按照如下操作获取最终抽取的随机数:

z即为最终输出的随机数,<<表示按位左移;

步骤九:若z>p,则将该随机数在伪随机序列中对应位置的强度值赋值为0,即非调制位,否则该位为调制位;

步骤十:若为调制位,则需再判定该随机数属于哪个强度区间,并依据强度区间对应的强度值对该随机数在伪随机序列中对应位置的强度赋值,即强度i取值如下:

步骤十一:当一个调制位置vmod出现时,将位于区间(vmod,vmod+buff]的位的强度值全部赋为0;并从第vmod+buff+1位开始重复步骤三到步骤十的过程,直到生成的序列长度达到设置的序列长度ls;

步骤十二:输出最终获得的伪随机序列e(n)。

步骤十三:将伪随机序列e(n)通过激光器转化为光信号并重复发射若干次,再由接收系统接收回波光子,累积并量化后获得接收编码序列r(n);将接收序列重新映射回强度区间,重新映射后即可获得和发射序列类似的序列;

步骤十四:基于快速傅立叶变换算法(fft)求发射伪随机序列e(n)的n点离散傅立叶变换

步骤十五:基于快速傅立叶变换算法(fft)求接收伪随机序列r(n)的n点离散傅立叶变换

步骤十六:求接收序列离散傅立叶变换r(k)的共轭r*(k),

步骤十七:求相关函数的离散傅立叶变换her(k)=e(k)r*(k)

步骤十八:对相关函数的离散傅立叶变换her(k)做n点傅立叶逆变换ifft,

步骤十九:求序列her的最大值,设最大值所在位置为g,系统时间分辨率为tbin,则发射序列与接收序列之间的延迟τ=g*tbin。

步骤二十:用c表示光速,根据下公式求得最终测距距离d:

图3和图4横轴为回波序列与发射序列的相对延迟,纵轴为不同延迟位置的相关值;对比图3与图4可以明显看出,本方法所产生的序列自相关性更好,相关峰更容易分辨。本测试均以伪随机序列调制速率为2ghz,激光器采用picoquant公司的pdl800-d,ldh-d-c-850脉冲激光器,最高重复频率为80mhz,等效重复频率设置为10mhz。即调制位置所占比例p=5*10^(-3),用于激光器储能时间的缓冲位数buff=25。且用于测试的m序列与本发明所产生的伪随机序列长度ls均为16383,强度范围为[0,30]。

图5横轴为序列长度,范围从127位至16383位,纵轴为算法所耗费的时间,下方较粗的线条为生成基于单光子探测的多相伪随机序列所耗费时间的变化曲线;可见本发明所提出的基于单光子探测的多相伪随机序列快速生成算法速度更快,虽然受到随机性的影响略有浮动,但时间始终保持在几十微秒量级,而且算法耗费时间并未随序列长度增大而明显升高。应注意本坐标系为对数坐标系。

图6横轴为序列长度,范围从127位至16383位,纵轴为算法所耗费的时间,下方较粗的线条为fft解算相关方法随序列长度增大所耗费时间的变化曲线。可见采用fft算法明显加快了相关解算的速度,尤其是在序列长度较长时,且并未随序列增长而明显增大时间代价,始终保持在毫秒级左右。应注意本图中纵轴为对数坐标。

用于图5与图6测试的测试工具均为matlab2016a,测试用计算机为联想thinkcentrem8600t-d064。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1