掌桥专利:专业的专利平台
掌桥专利
首页

一种多通道伪随机噪声调制装置

文献发布时间:2024-04-18 19:58:53


一种多通道伪随机噪声调制装置

技术领域

本发明属于伪随机噪声调制技术领域,更为具体地讲,涉及一种多通道伪随机噪声调制装置。

背景技术

多通道伪随机噪声调制装置需要产生多通道的伪随机序列去调制,然而在传统的基于FPGA的混沌迭代计算模块中,不同的方程间以及同一方程不同计算部分之间存在延时不匹配的现象。为避免出现迭代次序错乱的现象,传统的FPGA混沌迭代计算模块主要采用busy-free的结构,即当前迭代未计算完成时,将整个混沌迭代计算模块置于busy状态,拒绝所有的数据输入。对于同一方程,先完成计算部分的计算结果存入寄存器中,等待其他计算部分完成后,再读出与其他计算部分进行,对于不同的方程,则先计算的方程的次态值通过寄存器寄存起来,待所有方程计算完毕后,再将统一输出,随后置混沌迭代计算模块于free状态,准备进入下一次迭代。

上述方法可以避免数据迭代混沌,但是平均计算耗时较长,如果混沌迭代计算需要数N个时钟(通常需要数百个时钟),则需要N个时钟才能输出一组混沌模型的次态值,效率较低。

此外,混沌迭代计算模块输出的路数有限,以三维混沌迭代计算模块为例,其输出就三路,即三个通道,这样在需要多通道输出的情况下,就不能满足需要。

发明内容

本发明的目的在于克服现有技术的不足,提供一种多通道伪随机噪声调制装置,以实现对多个通道信号的均匀、高速伪随机噪声的调制。

为实现上述发明目的,本发明多通道伪随机噪声调制装置,其特征在于,包括:

基于流水线型的混沌迭代模型模块,由混沌方程组子模块、参数ROM读取子模块、混沌状态值RAM读写子模块组成,混沌方程组子模块中各个混沌方程内部以及之间迭代计算需要同步进行延时时,采用移位寄存器进行延时移位寄存,移位寄存器中寄存器的数量等于需要延时的时钟个数,这样混沌方程组子模块可以进行流水迭代计算,参数ROM读取子模块用于存放m组混沌方程参数,混沌状态值RAM读写子模块用于存放m组混沌现态值,混沌现态值的初始值来自上位机,每个时钟从参数ROM读取子模块读取一组混沌方程参数给混沌方程组子模块,从混沌状态值RAM读写子模块读取一组混沌现态值给混沌方程组子模块,混沌方程组子模块依据接收的混沌方程参数和混沌现态值进行迭代计算,计算出的结果即混沌次态值一方面输出,另一方面作为下一次迭代计算的混沌现态值更新混沌状态值RAM读写子模块中的混沌现态值,这样在每个时钟混沌方程组子模块输出一组混沌次态值,同时,输出更新混沌状态值RAM读写子模块混沌现态值的写地址,其中,m大于一组混沌次态值计算所需的时钟个数;

M序列更新控制模块,用于接收混沌方程子模块输出的混沌次态值以及相应更新混沌状态值RAM读写子模块混沌现态值的写地址的,并执行两项操作:①数据拼合:将混沌方程子模块输出的混沌次态值拼合为一个数据即拼合数据,并输出,②序列模块选择性更新:将写地址作为混沌序号驱动M序列更新状态机使更新使能信号有效;

多个M序列模块,每个M序列模块包括多个M序列发生器以及各自对应的M序列反馈系数ROM,用于接收拼合数据和更新使能信号,并将拼合数据拆分重组为多组反馈系数读地址以及M序列发生器初值,每组反馈系数读地址以及M序列发生器初值对应一个M序列发生器,每个M序列模块在其接收的更新使能信号有效时,根据反馈系数读地址在对应的M序列反馈系数ROM中读取M序列反馈系数,然后与M序列发生器初值一起更新M序列发生器的反馈系数和初值;M序列发生器每个时钟输出一位数据信号,将多个M序列发生器每个时钟输出的一位数据信号组成一个通道的多位数据信号;每个M序列模块输出一个通道的多位数据信号,多个M序列模块输出的多位数据信号构成多个通道的多位伪随机数据信号;

DDS模块,用于产生多个通道的任意波形数据信号,一个通道的任意波形数据信号对应一个通道的多位伪随机数据信号;

信号调制模块,用接收来自多个通道的多位伪随机数据信号以及各自对应的任意波形数据信号,然后,将每一个通道任意波形数据信号用对应一个通道的多位伪随机数据信号作为噪声按照调制比例k进行加性调制,调制后的任意波形数据信号转化为14位整数格式输出至DAC模块,其中,调制比例k由上位机发送;

DAC模块,用于将信号调制模块输出的每一个通道调制后的整数格式的任意波形数据信号转换为模拟信号,得到多通道伪随机噪声调制信号。

本发明的目的是这样实现的。

本发明多通道伪随机噪声调制装置包括基于流水线型的混沌迭代模型模块、M序列更新控制模块、多个M序列模块、DDS模块、信号调制模块以及DAC模块,其中,基于流水线型混沌迭代模型模块中混沌方程组子模块采用移位寄存器进行延时移位寄存,同时增加参数ROM读取子模块以及混沌状态值RAM读写子模块,构成流水迭代计算,这样在每个时钟混沌方程输出一个混沌次态值,从而高速产生迭代输出值。此外,M序列更新控制模块将各个混沌方程输出的混沌次态值拼合得到拼合数据,并根据写地址产生更新使能信号,多个M序列模块在更新使能信号有效时,将拼合数据拆分重组为多个M序列发生器对应的多组反馈系数读地址以及M序列发生器初值,根据反馈系数读地址得到反馈系数,这样产生一个多个通道多位数据信号,通过这样的方式,从反馈系数和初值两个维度保证了M序列模块构造的随机性,从而保证M序列发生器的输出值始终随机,避免陷入周期性重复。本发明将混沌迭代模型与M序列发生器相结合,实现了多通道多位伪随机数信号的均匀、高速产生。在产生多通道多位伪随机数信号的基础上,结合DDS模块可以产生任意波形数据信号的特点,用伪随机数字信号对任意波形数据信号进行调制,调制后的任意波形数据信号转换为模拟信号,从而得到多通道伪随机噪声调制信号,实现了对多个通道信号的均匀、高速伪随机噪声的调制。

附图说明

图1是本发明多通道伪随机噪声调制装置一种具体实施方式的原理框图;

图2是一组混沌方程的参数和状态初值下的混沌映射相轨图,其中,(a)为x-y之间的混沌映射相轨图,(b)为x-z之间的混沌映射相轨图,(c)为y-z之间的混沌映射相轨图,(d)为x-y-z之间的混沌映射相轨图;

图3是另一组混沌方程的参数和状态初值下的混沌映射相轨图,其中,(a)为x-y之间的混沌映射相轨图,(b)为x-z之间的混沌映射相轨图,(c)为y-z之间的混沌映射相轨图,(d)为x-y-z之间的混沌映射相轨图;

图4是图1所示基于流水线型的混沌迭代模型模块一种具体实施方式的结构示意图;

图5是流水线型迭代计算示意图;

图6是图4中读地址read_addr信号控制的时序图;

图7是图4中RAM写地址write_addr的控制时序图;

图8是图1所示M序列更新控制模块一种具体实施方式的结构示意图

图9是图8所示M序列更新控制模块的控制时序图;

图10是图1所示M序列更新控制模块另一种具体实施方式的结构示意图;

图11是图10所示M序列更新控制模块的控制时序图;

图12是一个M序列模块一种具体实施方式的结构示意图;

图13是本发明多通道伪随机噪声调制装置对不同波形信号进行调制的具体实例波形图;

图14是本发明多通道伪随机噪声调制装置对方波采用不同调制比例进行调制的具体实例波形图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

本发明的主要实现思路为:基于流水线型的混沌迭代模型模块实时计算多个混沌模型参数的随机状态输出值(随机混沌输出值),M序列更新控制模块再使用随机状态输出值产生拼合数据以及根据读地址产生更新使能信号驱动多个M序列模块,从而极高速地产生均匀、随机的多个通道多位伪随机数据信号PRNs,并对DDS模块产生多通道任意波形数据信号进行调制,从而得到多通道伪随机噪声调制信号。

图1是本发明多通道多位伪随机数信号产生装置一种具体实施方式的原理框图。

在本实施例中,如图1所示,本发明多通道多位伪随机数信号产生装置包括基于流水线型的混沌迭代模型模块1、M序列更新控制模块2、多个M序列模块3、DDS模块4、信号调制模块5以及DAC模块6。

1、基于流水线型的混沌迭代模型模块

在本实施例中,如图1所示,基于流水线型的混沌迭代模型模块1(简称混沌迭代模型模块)由混沌方程组子模块101、参数ROM读取子模块102以及混沌状态值RAM读写子模块103组成。混沌方程组子模块101中各个混沌方程内部以及之间迭代计算需要同步进行延时时,采用移位寄存器进行延时移位寄存,移位寄存器中寄存器的数量等于需要延时的时钟个数,这样混沌方程组子模块101可以进行流水迭代计算,参数ROM读取子模块102用于存放m组混沌方程参数a、b、c、d、e,混沌状态值RAM读写子模块103用于存放m组混沌现态值x

1.1、混沌方程组子模块

通过将一个或者多个基于三角函数的忆阻器耦合到已有混沌映射中可以进一步增强分叉行为。正因如此,在本实施例中,使用了一个3D基于三角函数的忆阻器超混沌映射,该混沌映射的数学模型可以被写作:

在本实施例中,参数a、b、c、d、e为混沌方程组的参数,在本实施例中,m位245,即有245组混沌方程组参数,存放到参数ROM读取子模块102中。

参数k

例如取a=1.2,b=0.1,c=-1.2,d=1.72,e=π/6,状态初值取x

例如取a=1.2,b=0.1,c=-1.3,d=1.72,e=π/2,状态初值取x

从图2、3可以看出,混沌模型表现出不同的混沌性能。参数a、b、c、d、e为混沌方程组的参数,有245组存放到参数ROM读取子模块102中,相应的245组状态初值x

在本实施例中,将上述混沌映射以流水线的方式在FPGA中加以实现,这样基于流水线型的混沌迭代模型模块1的结构如图4所示。

在本实施例中,如图4所示,混沌方程组子模块101中包括三个混沌方程子模块即x混沌方程子模块、y混沌方程子模块以及z混沌方程子模块来实现三个混沌方程的迭代计算。各个混沌方程子模块内部根据混沌映射中的方程来构建。

混沌方程组子模块101中的x混沌方程子模块、y混沌方程子模块以及z混沌方程子模块根据当前从参数ROM读取子模块102读取出来的参数a、b、c、d、e以及固化在混沌方程组子模块中的固定参数k

在本实施例中,从该混沌映射的数学模型中可以看到,z维度的计算最为简单,对应在FPGA计算时延时最短,仅需要29个时钟。而x维度计算最为复杂,耗时最长,需244个时钟完成计算。即不同的方程间存在延时不匹配的现象,为避免出现迭代次序错乱的现象,传统的FPGA混沌迭代计算模块主要采用busy-free的结构,即当前迭代未计算完成时,将整个混沌计算模块置于busy状态,拒绝所有的数据输入,同时将先计算完的混沌次态值(如本实施例中的混沌次态值z

为克服busy-free结构效率较低的缺点,本发明中混沌方程组子模块101去除了busy-free结构中的用于暂存数据、等待输出的寄存器单元,去除了拒绝数据输入的busy状态信号,混沌方程组子模块101中各个混沌方程内部以及之间迭代计算需要同步进行延时时,采用移位寄存器进行延时移位寄存,移位寄存器中寄存器的数量等于需要延时的时钟个数,这样混沌方程组子模块101可以进行流水迭代计算。

以计算输出z维混沌次态值z

在本实施例中,对x混沌方程子模块、y混沌方程子模块内部的计算逻辑需要延时时,也进行相似的处理。最终,x混沌方程子模块、.y混沌方程子模块、z混沌方程子模块的输出延时均为244个时钟。在本实施例中,如图5所示,对于一轮混沌次态值计算,在0时钟输入的第0组混沌模型参数和混沌现态值,将在244时刻得到其相应的混沌次态值,而在1时钟输入的第1组混沌模型参数和混沌现态值,将在245时刻得到其相应的混沌次态值,依次类推。流水线型的计算结构可实现每个时钟得到一组混沌次态输出,极大地提升了混沌次态值输出效率,充分利用了FPGA的硬件计算单元。

在本实施例中,混沌模型参数以及混沌次态值的初始值都是64位的双精度浮点数,计算出来的混沌次态值也为64位的双精度浮点数。

1.2、输入输出控制

为实现正确的混沌次态值的流水迭代计算,还需对混沌方程参数的读取、混沌次态值读写进行控制。其中,为保证同一时钟输入混沌方程组子模块101的混沌方程参数与混沌现态值始一致,参数ROM读取子模块102、混沌状态值RAM读写子模块103共享同一个读地址read_addr。当混沌迭代模型模块1复位结束即res_n=1,下一个时钟输入有效时即n_valid=1,读地址read_addr置为0,然后每个时钟增1,保证混沌方程组子模块101每个时钟得到一组参数与混沌现态值,每245个时钟为一个完整循环,即读地址read_addr增加到244后,下一个时钟回到0,重新每个时钟增1。读地址read_addr信号控制的时序图如图6所示。

·在时钟2,复位信号res_n变为高电平,混沌迭代模型模块复位解除;

·随后在时钟3,混沌方程组子模块输入有效即输入有效信号n_valid=1,读地址read_addr置为0,从参数ROM读取子模块地址0处读取第0组混沌模型参数,从混沌状态值RAM读写子模块中地址0处读取第0组混沌现态值输入混沌方程组子模块进行迭代计算;

·在时钟4,读地址read_addr=1,读取出第1组混沌模型参数和混沌现态值,进行迭代计算;

·244个时钟后,对应图的时钟247,基于第0组混沌模型参数和混沌现态值的第一次迭代计算完成,开始输出,同时第244组混沌模型参数和混沌现态值输入至混沌方程组子模块,随后读地址read_addr复位为0;

·在时钟248,读地址read_addr再次等于0,此时混沌方程组子模块的输入为第0组混沌模型参数以及第一次迭代计算出的混沌次态值,同时,基于第1组混沌模型参数和混沌现态值的第一次迭代计算完成,开始输出;

·在时刻249,读地址read_addr等于1,此时混沌方程组子模块的输入为第1组混沌模型参数以及第一次迭代计算出的混沌次态值,同时,基于第2组混沌模型参数和混沌现态值的第一次迭代计算完成,开始输出;

·以此类推,从而完成循环迭代计算。

为使得循环迭代计算的正确进行,除了要保证混沌方程组子模块的输人次序正确,还需要保证混沌状态值RAM读写子模块中存储的混沌现态值得到正确的更新,即保证混沌状态值RAM读写子模块中RAM写地址write_addr正确变化,使得每次迭代得到的混沌次态值能够准确覆盖上一个已使用的混沌现态值,这样新计算出的混沌次态值就可作为下一次混沌迭代的混沌现态值。

在本实施例中,RAM写地址write_addr的控制时序图如图7所示。

在时钟3,混沌方程组子模块输入有效即输入有效信号n_valid=1,读地址read_addr置为0,从参数ROM读取子模块地址0处读取第0组混沌模型参数,从混沌状态值RAM读写子模块中地址0处读取第0组混沌现态值输入混沌方程组子模块进行迭代计算,之后读地址read_addr置开始进行循环自增,不断读取混沌模型参数和混沌现态值进行迭代计算;

·244个时钟后,即时钟247,第0组混沌模型参数和混沌现态值的迭代计算完成,混沌计算模块输出有效即输出有效信号n1_valid=1,此时刻写地址write_addr=0,即表示将当前时刻的混沌方程组子模块输出的混沌次态值作为下一次迭代计算的混沌现态值写入到混沌状态值RAM读写子模块中地址0处的空间,覆盖掉地址0处原有的混沌现态值(第一路迭代计算为状态初值),同时写地址write_addr开始循环自增;

·在时钟248,读地址read_addr再次为0,从参数ROM读取子模块地址0处读取第0组混沌模型参数,从混沌状态值RAM读写子模块中地址0处读取第0组混沌现态值输入混沌方程组子模块进行下一次迭代计算,与此同时,写地址write_addr=1,第1组混沌模型参数和混沌现态值的迭代计算完成,将当前时刻的混沌方程组子模块输出的混沌次态值作为下一次迭代计算的混沌现态值写入到混沌状态值RAM读写子模块中地址1处的空间。

·在时钟249,读地址read_addr=1,同时写地址write_addr=2,读取第1组混沌模型参数和混沌现态值,当前时刻的混沌方程组子模块输出的混沌次态值作为下一次迭代计算的混沌现态值写入到混沌状态值RAM读写子模块中地址2处的空间。以此类推。

通过以上方案,最终实现了混沌迭代模型模块的流水线型迭代计算,每个时钟均可使出一组混沌次态值,大大提高的计算效率与资源利用率。

2、M序列更新控制模块

M序列更新控制模块2用于接收混沌方程子模块输出的混沌次态值以及相应更新混沌状态值RAM读写子模块混沌现态值的写地址的,并执行两项操作:①数据拼合:将混沌方程子模块输出的混沌次态值拼合为一个数据即拼合数据,并输出,②序列模块选择性更新:将写地址作为混沌序号驱动M序列更新状态机使更新使能信号有效。

在本实施例中,混沌迭代模型模块1持续计算输出的混沌次态值x

在本实施例中,M序列更新控制模块2有两种实现方案。

2.1、实现方案1

拼合数据同时发送给多个M序列模块,M序列更新状态机根据写地址不断使多个M序列模块的更新使能信号逐个有效。

在本实施例中,如图8所示,M序列更新控制模块2包括xyz数据拼合子模块201以及M序列更新状态机202,数据拼合子模块201将混沌次态值x

M序列更新状态机在混沌序号xyz_num即写地址write_addr驱动下进行状态转移,同时选择一路更新使能信号有效。在本实施例中,当混沌迭代模型模块输出有效时即输出有效信号n1_valid=1,由M序列更新状态机的状态状态UPDATE_STATE由状态IDLE转移至状态MSEQ0_update(简称为M0_update),当混沌序号xyz_num=1时,xyz数据拼合子模块201将第0组、第1组混沌方程参数和混沌现态值迭代计算输出的混沌次态值x

本发明中,M序列模块更新需要从ROM中读取反馈系数,用于构建新的M序列反馈结构。采用实现方案1对多个M序列模块进行更新时,由于M序列模块在不同的时钟进行更新,故可将存储反馈系数的ROM从单个M序列模块中剥离出来,使多个M序列模块共用同一组存储反馈系数的ROM,在M序列模块各自的更新使能信号update_valid[i]有效时,M序列模块MSEQ[i]访问存储反馈系数的ROM,读取新的反馈系数,更新M序列模块MSEQ[i],实现了单组ROM的时分复用,极大的节省了FPGA硬件资源。

2.2、实现方案2

M序列更新状态机根据写地址不断进行数据拼合,并存储,当拼合数据存储数量大于M序列模块的数量时,所有存储的拼合数据读出,分别输出到各自对应的M序列模块,同时,输出一路更新使能信号到所有M序列模块,使所有M序列模块有效,读取拼合数据。

在本实施例中,如图10所示,M序列更新状态机在当混沌迭代模型模块输出有效时即输出有效信号n1_valid=1,由M序列更新状态机的状态IDLE转移至状态MSEQ0_update(简称M0_update,当混沌序号xyz_num=1时,xyz数据拼合子模块201将第0组、第1组混沌方程参数和混沌现态值迭代计算输出的混沌次态值x

3、多个M序列模块

多个M序列模块3中每个M序列模块包括多个M序列发生器以及各自对应的M序列反馈系数ROM,用于接收拼合数据和更新使能信号,并将拼合数据拆分重组为多组反馈系数读地址以及M序列发生器初值,每组反馈系数读地址以及M序列发生器初值对应一个M序列发生器,每个M序列模块在其接收的更新使能信号有效时,根据反馈系数读地址在对应的M序列反馈系数ROM中读取M序列反馈系数,然后与M序列发生器初值一起更新M序列发生器的反馈系数和初值;M序列发生器每个时钟输出一位数据信号,将多个M序列发生器每个时钟输出的一位数据信号组成一个通道的多位数据信号;每个M序列模块输出一个通道的多位数据信号,多个M序列模块输出的多位数据信号构成多个通道多位伪随机数据信号。

在本实施例中,如图12所示,在每个M序列模块中,包括一个拆分重组子模块301、16个M序列发生器302、16个FIFO存储器303以及各自对应的M序列反馈系数ROM 304,接收到288bit的拼合数据后,将拆分重组子模块301其拆分重组为16组重组数据,每组重组数据包括11位的反馈系数读地址Cread_addr以及16位M序列发生器初值ID,并对应一个M序列发生器,当更新使能信号有效时,将16组重组数据分别存入对应的FIFO存储器303中。然后,对于一个M序列发生器,根据对应组的反馈系数读地址Cread_addr在对应的M序列反馈系数ROM304中读取16位的M序列反馈系数FD,连同对应的16位M序列发生器初值ID对其进行更新。16组M序列反馈系数FD和M序列发生器初值ID分别输入至16个M序列发生器302中,完成对16路M序列的构造与更新,最终,一个M序列模块可以实现在每个时钟周期输出一个通道16位的随机信号PRNs,即1个通道16位伪随机数据信号。

对于16个M序列模块,如图1所示,这样可以输出16个通道16位伪随机数据信号PRN_CH0-PRN_CH15。

4、DDS模块

如图1所示,DDS模块4用于产生多个通道的任意波形数据信号,一个通道的任意波形数据信号对应一个通道的多位伪随机数据信号。DDS模块4可产生正弦波、方波、三角波、三次谐波等任意波形数据信号。在本实施例中,DDS模块4用于产生16个通道的任意波形数据信号,并输入到信号调制模块5中,DDS模块4产生的波形形状、频率、相位由上位机进行控制。DDS模块产生任意波形数据信号的原理属于现有技术,在此不再赘述。

5、信号调制模块

信号调制模块5用接收来自多个通道的多位伪随机数据信号以及各自对应的任意波形数据信号,然后,将每一个通道任意波形数据信号用对应一个通道的多位伪随机数据信号作为噪声按照调制比例k进行加性调制,调制后的任意波形数据信号转化为14位整数格式输出至DAC模块6,其中,调制比例k由上位机发送。在本实施例中,调制后输出16个通道的噪声调制后的任意波形数据信号给DAC模块6。

6、DAC模块

DAC模块6用于将信号调制模块5输出的每一个通道调制后的整数格式的任意波形数据信号转换为模拟信号,得到多通道伪随机噪声调制信号。

图13是不同波形进行调制的波形实例,其中,通道1为正弦波,通道2为三角波,图14是同一波形采用不同调制比例k的波形实例,其中,通道1为调制比例k=0.4的情形,通道2为调制比例k=0.5的情形,从图13、14(图中仅仅展示了第1、2两个通道的波形图)可以看出,本发明可以实现了对多个通道的任意波形信号的均匀、高速伪随机噪声的调制。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

相关技术
  • 一种基于载波相位的多通道伪距测量装置及方法
  • 一种基于载波相位的多通道伪距测量装置及方法
技术分类

06120116507497