CN103870238B - 基于fpga的伪随机序列发生器及其生成方法 - Google Patents

基于fpga的伪随机序列发生器及其生成方法 Download PDF

Info

Publication number
CN103870238B
CN103870238B CN201210528488.6A CN201210528488A CN103870238B CN 103870238 B CN103870238 B CN 103870238B CN 201210528488 A CN201210528488 A CN 201210528488A CN 103870238 B CN103870238 B CN 103870238B
Authority
CN
China
Prior art keywords
pseudo
random sequence
edge
unit
phase code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210528488.6A
Other languages
English (en)
Other versions
CN103870238A (zh
Inventor
丁新宇
王悦
王铁军
李维森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rigol Technologies Inc
Original Assignee
Rigol Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rigol Technologies Inc filed Critical Rigol Technologies Inc
Priority to CN201210528488.6A priority Critical patent/CN103870238B/zh
Publication of CN103870238A publication Critical patent/CN103870238A/zh
Application granted granted Critical
Publication of CN103870238B publication Critical patent/CN103870238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例提供了一种基于FPGA的伪随机序列发生器及其生成方法,所述的伪随机序列发生器包括控制单元、时钟单元以及FPGA,其中,所述的控制单元,用于采集用户输入的伪随机序列参数,根据所述的伪随机序列参数生成用户指令,并将所述的用户指令发送至所述的FPGA;所述的时钟单元,用于向所述的FPGA提供时钟脉冲;所述的FPGA具体包括:处理器接口、周期累加器、伪随机序列生成单元、边沿生成单元以及序列成形单元。以FPGA作为主要功能部件,辅以少量的模拟器件,解决了现有技术中的伪随机序列发生器产生的码元速率的分辨率和精确度均较差的技术问题。

Description

基于FPGA的伪随机序列发生器及其生成方法
技术领域
本发明关于测试测量技术领域,特别是关于信号发生技术,具体的讲是一种基于FPGA的伪随机序列发生器及其生成方法。
背景技术
伪随机序列发生器属于信号发生器的一种,可产生伪随机序列(Pseudo-RandomBinary Sequence,PRBS),其在信息安全、数字网络、移动通信、导航、雷达和保密通信、通信系统性能的测量领域中有着广泛的应用。伪随机序列是一种可以预先确定并可以重复产生和复制,且具有随机统计特性的二进制码序列。
m序列是最大长度线性反馈移位寄存器序列的简称,属于伪随机序列的一种。m序列具有白噪声采样序列的统计特性,同时又便于重复产生和处理,因此它的应用最为成熟和广泛。伪随机序列有多种实现方式,图1以m序列为例,说明产生伪随机序列的基本原理。N个寄存器构成N阶移位寄存器,N称为m序列的序列阶数。在参考时钟clk控制下,各级寄存器的输出为x0、x1…xN-2、xN-1,反馈单元将公式1的输出反馈给第1级寄存器。其中,Ci称为反馈系数,其值为0或1,反馈系数不同,xN-1就产生不同序列顺序的m序列。公式1如下所示:
一个周期的m序列包含2N-1比特的伪随机序列,伪随机序列中的一个比特称为一个码元。用TC表示图1中参考时钟clk的周期,则m序列的周期为TC*2N-1,参考时钟clk的频率就是m序列的码元速率。对于给定阶数的m序列,要改变其周期或者码元速率,只能调整参考时钟clk的频率。伪随机序列的码元速率也就是比特速率,通过修改参考时钟的频率来调整,现有技术中主要有如下三种控制方法:
1、专用芯片
传统的伪随机序列发生器采用专用芯片实现,如2004年09期的《电子元器件应用》中,陈德国等人的论文《一种伪随机信号发生器的研制》中即描述了一种通过专用芯片来实现伪随机序列发生器的方案。图2为该文献产生参考时钟的结构框图,由图2可知,该发生器由多谐振荡器和分频器构成,其中多谐振荡器由芯片CC40106完成,分频器由芯片CC4024完成。此种方式的缺陷主要包括:(1)专用芯片的灵活性差;(2)分频器的工作时钟最高仅有12MHz、7比特的精度,因此所产生参考时钟的频率范围小、精度差。
2、FPGA分频
随着可编程技术的发展,FPGA(可编程逻辑阵列)常被用于产生伪随机序列。如申请号为201110435166.2的专利文献中提供了一种基于FPGA的伪随机序列发生方法,采用数据率控制模块以产生参考时钟。图3为该专利文献中产生参考时钟的结构图。其中,clk为50MHz时钟信号,数据率控制模块以加信号、减信号控制分频比,对clk进行分频,产生参考时钟。所产生的参考时钟的频率步进值为10KHz,数据率的误差为1%。此种方式产生的码元速率的分辨率和精确度均较差。
3、锁相环PLL
采用锁相环PLL可产生频率高、抖动小的参考时钟,但是频率分辨率和转换速率均不高,且锁相环的压控振荡器的频率范围是有限的,因此,所产生参考时钟的频率范围也有限。此外,使用锁相环PLL还会造成设计复杂、成本高的问题。
发明内容
本发明实施例提供了一种基于FPGA的伪随机序列发生器及其生成方法,以FPGA作为主要功能部件,辅以少量的模拟器件,解决了现有技术中的伪随机序列发生器产生的码元速率的分辨率和精确度均较差的技术问题。
本发明的目的之一是,提供一种基于FPGA的伪随机序列发生器,所述的伪随机序列发生器包括控制单元、时钟单元以及FPGA,其中,所述的控制单元,用于采集用户输入的伪随机序列参数,根据所述的伪随机序列参数生成用户指令,并将所述的用户指令发送至所述的FPGA;所述的时钟单元,用于向所述的FPGA提供时钟脉冲;所述的FPGA具体包括:处理器接口,用于解析所述的用户指令,得到伪随机序列参数,所述的伪随机序列参数包括频率控制字、序列阶数、反馈系数、边沿幅度系数以及边沿时间阈值;周期累加器,用于根据所述的时钟脉冲以及所述的频率控制字生成相码;伪随机序列生成单元,用于根据所述的反馈系数以及所述的相码生成伪随机序列;边沿生成单元,用于根据所述的相码、所述的伪随机序列以及所述的边沿幅度系数构造所述伪随机序列的上边沿以及下边沿;序列成形单元,用于根据所述的相码、所述的上边沿以及下边沿、所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
本发明的目的之一是,提供一种基于FPGA的伪随机序列生成方法,所述的方法具体包括:采集用户输入的伪随机序列参数,所述的伪随机序列参数包括频率控制字、序列阶数、反馈系数、边沿幅度系数以及边沿时间阈值;采集时钟单元提供的时钟脉冲;根据所述的时钟脉冲以及所述的频率控制字生成相码;根据所述的反馈系数以及所述的相码生成伪随机序列;根据所述的相码、所述的伪随机序列以及所述的边沿幅度系数构造所述伪随机序列的上边沿以及下边沿;根据所述的相码、所述的上边沿以及下边沿、所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
本发明的有益效果在于,提供了一种基于FPGA的伪随机序列发生器及其生成方法,以FPGA作为主要功能部件,辅以少量的模拟器件,解决了现有技术中的伪随机序列发生器产生的码元速率的分辨率和精确度均较差的技术问题,本发明提供的序列发生器结构简单、容易实现、集成度高、成本低,边沿时间可控,捷变性好,伪随机序列的参数灵活可设,提高了码元速率的分辨率,且精确度仅受时钟单元提供的时钟性能的影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为以m序列为例生成伪随机序列的基本原理图;
图2为现有技术中产生参考时钟的结构框图;
图3为现有技术中另一种产生参考时钟的结构框图;
图4为本发明实施例提供的一种基于FPGA的伪随机序列发生器的实施方式一的结构示意图;
图5为本发明实施例提供的一种基于FPGA的伪随机序列发生器的实施方式二的结构示意图;
图6为本发明实施例提供的一种基于FPGA的伪随机序列发生器中FPGA的结构示意图;
图7为本发明实施例提供的一种基于FPGA的伪随机序列发生器中周期累加器的结构示意图;
图8为本发明实施例提供的一种基于FPGA的伪随机序列发生器中伪随机序列生成单元的结构示意图;
图9为本发明实施例提供的一种基于FPGA的伪随机序列发生器中边沿生成单元的结构示意图;
图10为本发明实施例提供的一种基于FPGA的伪随机序列发生器中序列形成单元的结构示意图;
图11为本发明实施例提供的一种基于FPGA的伪随机序列生成方法的流程图;
图12为由相码构造伪随机序列的边沿的示意图;
图13是伪随机序列生成单元产生任意阶伪随机序列的原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图4为本发明实施例提供的一种基于FPGA的伪随机序列发生器的实施方式一的结构示意图,由图4可知,所述的伪随机序列发生器包括控制单元100、时钟单元200以及FPGA300,
其中,所述的控制单元100,用于采集用户输入的伪随机序列参数,根据所述的伪随机序列参数生成用户指令,并将所述的用户指令发送至所述的FPGA。在具体的实施方式中,控制单元主要实现系统控制,可由人机界面和处理器构成。用户通过人机界面设置伪随机序列参数,处理器根据用户输入的伪随机序列参数进行运算后生成用户指令,发送给FPGA。控制单元100与FPGA之间的通信总线可以灵活定义。
所述的时钟单元200,用于向所述的FPGA提供时钟脉冲。即时钟单元用于向FPGA内部的所有模块提供高精度的稳定时钟源,在具体的实施方式中,时钟频率以fs表示,周期用Ts表示。
所述的FPGA300具体包括:处理器接口301,用于解析所述的用户指令,得到伪随机序列参数,所述的伪随机序列参数包括频率控制字、序列阶数、反馈系数、边沿幅度系数以及边沿时间阈值。在具体的实施方式中,频率控制字用K表示、序列阶数用N表示、反馈系数用Ci表示、边沿幅度系数用Ar表示、边沿时间阈值用Kr表示。
其中,频率控制字K通过码元速率fm按照公式2、公式3得到。中间量f0为一个周期的伪随机序列的频率,码元速率的分辨率为fs/2M,以M=32,fs=100MHz为例,则分辨率达到0.09mHz。
K=(2N-1)*2M*f0/fs (公式2)
fm=(2N-1)*f0 (公式3)
用tr表示边沿时间,则根据按照公式4计算边沿时间阈值Kr。其中,fm为码元速率。边沿时间的定义是码元变化时间的80%,因此公式4需要乘以1.25的系数。
Kr=fm*2M*1.25*tr (公式4)
周期累加器302,用于根据所述的时钟脉冲以及所述的频率控制字生成相码;
伪随机序列生成单元303,用于根据所述的反馈系数以及所述的相码生成伪随机序列;
边沿生成单元304,用于根据所述的相码、所述的伪随机序列以及所述的边沿幅度系数构造所述伪随机序列的上边沿以及下边沿;
序列成形单元305,用于根据所述的相码、所述的上边沿以及下边沿、所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
图5为本发明实施例提供的一种基于FPGA的伪随机序列发生器的实施方式二的结构示意图,由图5可知,在实施方式二中,所述的伪随机序列发生器还包括数模转换器400,用于将所述数字化的伪随机序列转换为模拟形式的伪随机序列。FPGA输出的伪随机序列是多个位宽的,不是1比特位宽的二进制码。伪随机序列的位宽等于数模转换器400的位宽,在本实施例中用P表示,即伪随机序列的数值范围为0~2P-1。将FPGA输出的数字化伪随机序列转换为模拟形式。当FPGA输出的伪随机序列的数值为0时,数模转换器转换后,可视为伪随机序列的0码;当FPGA输出的伪随机序列的数值为2P-1时,数模转换器转换后,可视为伪随机序列的1码;位于二者之间的数值点,可视为伪随机序列的边沿。
伪随机序列的幅度最大值为2P-1,P为数模转换器的位宽,根据公式5计算边沿幅度系数Ar
Ar=(2P-1)/Kr (公式5)
所述的伪随机序列发生器还包括模拟电路500,用于将所述模拟形式的伪随机序列进行滤波、衰减、放大处理后输出。
图6为本发明实施例提供的一种基于FPGA的伪随机序列发生器中FPGA的结构示意图,由图6可知,在该实施方式中,所述的FPGA还包括时钟管理单元,用于接收所述的时钟脉冲,将所述的时钟脉冲转换为高频的时钟脉冲后提供至所述的FPGA。也即将FPGA外部的时钟单元提供的低频时钟转换为高频的时钟脉冲,然后再提供给FPGA的内部模块。
图7为本发明实施例提供的一种基于FPGA的伪随机序列发生器中周期累加器的结构示意图,由图7可知,所述的周期累加器具体包括:
时钟脉冲接收单元3021,用于接收所述的时钟脉冲;
第一判断单元3022,用于根据所述的时钟脉冲判断上升沿是否到来,当判断为是时,执行相码生成单元3023;
所述的相码生成单元3023,用于累加所述的频率控制字以生成相码。即在每一个时钟脉冲Ts上升沿到来时,累加一次频率控制字K以产生相码。周期累加器、频率控制字K所产生相码的位宽均为(N+M)位。
发送单元3024,用于将所述相码的低M位发送至所述的边沿生成单元;
第二判断单元3025,用于判断所述相码的低M位是否超过(2M-1),当判断为是时,执行移位使能信号生成单元;
所述的移位使能信号生成单元3026,用于生成移位使能信号,并将所述的移位使能信号发送至所述的伪随机序列生成单元。移位使能信号的宽度为一个时钟脉冲Ts的宽度。
图8为本发明实施例提供的一种基于FPGA的伪随机序列发生器中伪随机序列生成单元的结构示意图,由图8可知,所述的伪随机序列生成单元具体包括:
时钟脉冲接收单元3031,用于接收所述的时钟脉冲;
移位使能信号接收单元3032,用于接收所述的移位使能信号;
第一判断单元3033,用于根据所述的时钟脉冲判断上升沿是否到来,当判断为是时,执行第二判断单元3034;
所述的第二判断单元3034,用于判断所述的移位使能信号是否为高电平,当判断为是时,执行生成单元;
所述的生成单元3035,用于产生一比特的伪随机序列。
也即伪随机序列生成单元根据反馈系数Ci产生二进制的伪随机序列,在每一个时钟脉冲Ts上升沿到来时,检测移位使能信号,如果为高电平,则产生一比特的伪随机序列;如果为低电平,则保持当前输出状态。
下面结合图13详细介绍伪随机序列生成单元产生任意阶伪随机序列的原理,由移位寄存器和反馈单元构成。与图1相比,增加了移位使能信号的控制,反馈系数Ci可由控制单元配置。
移位使能信号作为各级寄存器的使能信号,为1时寄存器才移位输出,为0时保持当前状态。移位使能信号的速率也就成了所产生伪随机序列的码元速率。在实际应用中,23阶、21阶以及一些更低阶数的伪随机序列是经常用到的。本发明使用固定长度的32级移位寄存器,可以满足实际应用的序列阶数。对于小于32阶的序列阶数,本发明都使用图13所示的固定结构,无需重新设计FPGA。
反馈单元要实现公式1的功能。代码为:
D0=x0&C0+x1&C1+…+x31&C31
D0为反馈单元给第1级寄存器的输入,为二进制码元;反馈系数Ci的位宽为32比特,分别用C0、C1、…C31表示。
举例说来,23阶m序列的生成多项式系数为[23,18],则控制单元将反馈系数Ci设置为32比特位宽的0x00420000;21阶m序列的生成多项式系数为[21,19],则控制单元将反馈系数Ci设置为32比特位宽的0x00180000。
控制单元根据生成的多项式系数,将反馈系数对应的比特设置为1,其它设置为0,超过序列阶数的反馈系数对应的比特也设置为0。因此,本发明可采用固定长度的移位寄存器,通过设置反馈系数,就可实现任意阶的伪随机序列。
此外,虽然上述实施例中FPGA内部的伪随机序列生成单元提供了m序列,除了m序列,常用的伪随机序列还包括M序列、RS序列等。采用FPGA实现这些序列的二进制码是比较容易的。
图9为本发明实施例提供的一种基于FPGA的伪随机序列发生器中边沿生成单元的结构示意图,由图9可知,所述的边沿生成单元具体包括:
码元标志位生成单元3041,用于比较所述的伪随机序列的相邻码元以得到码元标志位。在具体的实施方式中,码元标志位为二比特位宽,高比特表示当前码元电平,低比特表示前一码元时刻的码元电平,则在该实施方式中码元标志位可能的数值为00、01、10、11,其中01表示码元从1码下降到0码,10表示码元从0码上升到1码。
码元标志位发送单元3042,用于将所述的码元标志位发送至所述的序列成形单元;
系数调整单元3043,用于根据所述的码元标志位对所述的边沿幅度系数进行系数调整。其中,系数调整单元可通过如下方式来实现:
判断单元,用于判断所述的码元标志位对应的前后码元是否处于上升时间范围内,当判断为是时,执行反向处理单元,否则执行系数保留单元;
所述的反向处理单元,用于将所述的边沿幅度系数进行反相处理;
所述的系数保留单元,用于保留所述的边沿幅度系数。
在具体的实施方式中,码元标志位为二比特位宽,高比特表示当前码元电平,低比特表示前一码元时刻的码元电平,则在该实施方式中码元标志位可能的数值为00、01、10、11,当码元标志位为01时,将边沿幅度系数Ar进行反后处理;当码元标志位为00、10、11时,保留边沿幅度系数Ar。再该实施方式中所产生伪随机序列的上、下边沿时间是相同的。
在本发明的其他实施方式中,如果给FPGA内部的反向处理单元设置两个边沿幅度系数,分别用于上、下边沿,就能实现上、下边沿时间的分别控制。设置两个边沿幅度系数的方式与上述设置一个边沿幅度系数的方式类似,此处不再赘述。
边沿构造单元3044,用于将所述相码的低M位与调整后的边沿幅度系数相乘以构造所述伪随机序列的上边沿以及下边沿。
下面结合图12具体说明如何从相码构造伪随机序列的上边沿以及下边沿。图12上半部分是相码的低M位,它由周期累加器累加产生,是周期性的,在一个码元周期内呈线性递增,其值范围[0,2M-1]。为了分别说明上下边沿的构造原理,图12中画出了2个码元周期的相码,时间t为[0,t2]为第1个码元周期,其中[0,t1]为第1个码元周期的上边沿时间范围;时间t为[t2,t4]为第2个码元周期,其中[t2,t3]为第2个码元周期的下边沿时间范围。
在第1个码元周期,相码≤Kr时,相码与415输出的Ar相乘。因为相码是递增的,Ar未取反,因此乘积是递增的,乘积将作为伪随机序列的上升沿包络。
在第2个码元周期,相码≤Kr时,相码与取反后的边沿幅度系数Ar相乘。因为相码是递增的,但Ar是取反的,相当于负数,因此乘积是递减的,乘积将作为伪随机序列的下降沿包络。
图10为本发明实施例提供的一种基于FPGA的伪随机序列发生器中序列形成单元的结构示意图,由图10可知,序列形成单元具体包括:
边沿标志位生成单元3051,用于比较所述相码的低M位与所述的边沿时间阈值,得到边沿标志位。在具体的实施方式中,将周期累加器产生的相码的低M位与位宽为M的边沿时间阈值Kr进行比较,比较结果为一比特位宽,称为边沿标志位。当相码的低M位≤Kr时,边沿标志位设置为“0”;当低M位相码>Kr时,边沿标志位设置为“1”。
码元标志位接收单元3052,用于接收所述的码元标志位;
幅值确定单元3053,用于根据所述的边沿标志位、所述的上边沿以及下边沿、所述的码元标志位确定伪随机序列的幅值;
序列生成单元3054,用于根据所述的幅值以及所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
下面结合表1详细介绍伪随机序列的成形原理。在该实施方式中,码元标志位为二比特位宽,高比特表示当前码元电平,低比特表示前一码元时刻的码元电平,则在该实施方式中码元标志位可能的数值为00、01、10、11。
当码元标志位为00时,则说明前后码元不变,伪随机序列幅值保持为0;
当码元标志位为11时,则说明前后码元不变,伪随机序列幅值保持为2P-1;
当码元标志位为01时,则说明码元从1码变化到0码,在下降时间范围内,即边沿标志位为0时,选择边沿生成单元输出的递减包络作为伪随机序列的下降沿;当边沿标志位为1时,伪随机序列幅值保持为0,如图12的[t3,t4]时间范围内所示;
当码元标志位为10时,说明码元从0码变化到1码,在上升时间范围内,即边沿标志位为0时,选择边沿生成单元输出的递增包络作为伪随机序列的上升沿;当边沿标志位为1时,伪随机序列幅值保持为2P-1,如图12的[t1,t2]时间范围内所示。
表1
图11为本发明实施例提供的一种基于FPGA的伪随机序列生成方法的流程图,由图11可知,该方法具体包括:
S101:采集用户输入的伪随机序列参数,所述的伪随机序列参数包括频率控制字、序列阶数、反馈系数、边沿幅度系数以及边沿时间阈值。在具体的实施方式中,频率控制字用K表示、序列阶数用N表示、反馈系数用Ci表示、边沿幅度系数用Ar表示、边沿时间阈值用Kr表示。
其中,频率控制字K通过码元速率fm按照公式2、公式3得到。中间量f0为一个周期的伪随机序列的频率,码元速率的分辨率为fs/2M,以M=32,fs=100MHz为例,则分辨率达到0.09mHz。
用tr表示边沿时间,则根据按照公式4计算边沿时间阈值Kr。其中,fm为码元速率。边沿时间的定义是码元变化时间的80%,因此公式4需要乘以1.25的系数。
S102:采集时钟单元提供的时钟脉冲。时钟单元用于向FPGA内部的所有模块提供高精度的稳定时钟源,在具体的实施方式中,时钟频率以fs表示,周期用Ts表示。
S103:根据所述的时钟脉冲以及所述的频率控制字生成相码;
S104:根据所述的反馈系数以及所述的相码生成伪随机序列;
S105:根据所述的相码、所述的伪随机序列以及所述的边沿幅度系数构造所述伪随机序列的上边沿以及下边沿;
S106:根据所述的相码、所述的上边沿以及下边沿、所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
在本发明的其他实施方式中,该方法还包括:
S107:将所述数字化的伪随机序列转换为模拟形式的伪随机序列。
FPGA输出的伪随机序列是多个位宽的,不是1比特位宽的二进制码。伪随机序列的位宽等于数模转换器400的位宽,在本实施例中用P表示,即伪随机序列的数值范围为0~2P-1。将FPGA输出的数字化伪随机序列转换为模拟形式。当FPGA输出的伪随机序列的数值为0时,数模转换器转换后,可视为伪随机序列的0码;当FPGA输出的伪随机序列的数值为2P-1时,数模转换器转换后,可视为伪随机序列的1码;位于二者之间的数值点,可视为伪随机序列的边沿。
伪随机序列的幅度最大值为2P-1,P为数模转换器的位宽,根据公式5计算边沿幅度系数Ar
S108:将所述模拟形式的伪随机序列进行滤波、衰减、放大处理后输出。
在本发明的又一种实施方式中,该方法还包括:将所述的时钟脉冲转换为高频的时钟脉冲。也即将FPGA外部的时钟单元提供的低频时钟转换为高频的时钟脉冲,然后再提供给FPGA的内部模块。
本发明的步骤S103具体包括:
根据所述的时钟脉冲判断上升沿是否到来,当判断为是时,累加所述的频率控制字以生成相码。即在每一个时钟脉冲Ts上升沿到来时,累加一次频率控制字K以产生相码。周期累加器、频率控制字K所产生相码的位宽均为(N+M)位。
步骤S104具体包括:
判断所述相码的低M位是否超过(2M-1),当判断为是时,生成移位使能信号。移位使能信号的宽度为一个时钟脉冲Ts的宽度。
根据所述的时钟脉冲判断上升沿是否到来,当判断为是时,继续判断所述的移位使能信号是否为高电平;
当判断为是时,产生一比特的伪随机序列。
也即伪随机序列生成单元根据反馈系数Ci产生二进制的伪随机序列,在每一个时钟脉冲Ts上升沿到来时,检测移位使能信号,如果为高电平,则产生一比特的伪随机序列;如果为低电平,则保持当前输出状态。
下面结合图13详细介绍伪随机序列生成单元产生任意阶伪随机序列的原理,由移位寄存器和反馈单元构成。与图1相比,增加了移位使能信号的控制,反馈系数Ci可由控制单元配置。
移位使能信号作为各级寄存器的使能信号,为1时寄存器才移位输出,为0时保持当前状态。移位使能信号的速率也就成了所产生伪随机序列的码元速率。在实际应用中,23阶、21阶以及一些更低阶数的伪随机序列是经常用到的。本发明使用固定长度的32级移位寄存器,可以满足实际应用的序列阶数。对于小于32阶的序列阶数,本发明都使用图13所示的固定结构,无需重新设计FPGA。
反馈单元要实现公式1的功能。代码为:
D0=x0&C0+x1&C1+…+x31&C31
D0为反馈单元给第1级寄存器的输入,为二进制码元;反馈系数Ci的位宽为32比特,分别用C0、C1、…C31表示。
举例说来,23阶m序列的生成多项式系数为[23,18],则控制单元将反馈系数Ci设置为32比特位宽的0x00420000;21阶m序列的生成多项式系数为[21,19],则控制单元将反馈系数Ci设置为32比特位宽的0x00180000。
控制单元根据生成的多项式系数,将反馈系数对应的比特设置为1,其它设置为0,超过序列阶数的反馈系数对应的比特也设置为0。因此,本发明可采用固定长度的移位寄存器,通过设置反馈系数,就可实现任意阶的伪随机序列。
此外,虽然上述实施例中FPGA内部的伪随机序列生成单元提供了m序列,除了m序列,常用的伪随机序列还包括M序列、RS序列等。采用FPGA实现这些序列的二进制码是比较容易的。
步骤S105具体包括:
比较所述的伪随机序列的相邻码元以得到码元标志位。在具体的实施方式中,码元标志位为二比特位宽,高比特表示当前码元电平,低比特表示前一码元时刻的码元电平,则在该实施方式中码元标志位可能的数值为00、01、10、11,其中01表示码元从1码下降到0码,10表示码元从0码上升到1码。
根据所述的码元标志位对所述的边沿幅度系数进行系数调整。该步骤可通过如下方式来实现:
判断所述的码元标志位对应的前后码元是否处于上升时间范围内,当判断为是时,将所述的边沿幅度系数进行反相处理,否则保留所述的边沿幅度系数。
在具体的实施方式中,码元标志位为二比特位宽,高比特表示当前码元电平,低比特表示前一码元时刻的码元电平,则在该实施方式中码元标志位可能的数值为00、01、10、11,当码元标志位为01时,将边沿幅度系数Ar进行反后处理;当码元标志位为00、10、11时,保留边沿幅度系数Ar。再该实施方式中所产生伪随机序列的上、下边沿时间是相同的。
在本发明的其他实施方式中,如果给FPGA内部的反向处理单元设置两个边沿幅度系数,分别用于上、下边沿,就能实现上、下边沿时间的分别控制。设置两个边沿幅度系数的方式与上述设置一个边沿幅度系数的方式类似,此处不再赘述。
将所述相码的低M位与调整后的边沿幅度系数相乘以构造所述伪随机序列的上边沿以及下边沿。
下面结合图12具体说明如何从相码构造伪随机序列的上边沿以及下边沿。图12上半部分是相码的低M位,它由周期累加器累加产生,是周期性的,在一个码元周期内呈线性递增,其值范围[0,2M-1]。为了分别说明上下边沿的构造原理,图12中画出了2个码元周期的相码,时间t为[0,t2]为第1个码元周期,其中[0,t1]为第1个码元周期的上边沿时间范围;时间t为[t2,t4]为第2个码元周期,其中[t2,t3]为第2个码元周期的下边沿时间范围。
在第1个码元周期,相码≤Kr时,相码与415输出的Ar相乘。因为相码是递增的,Ar未取反,因此乘积是递增的,乘积将作为伪随机序列的上升沿包络。
在第2个码元周期,相码≤Kr时,相码与取反后的边沿幅度系数Ar相乘。因为相码是递增的,但Ar是取反的,相当于负数,因此乘积是递减的,乘积将作为伪随机序列的下降沿包络。
步骤S106具体包括:
比较所述相码的低M位与所述的边沿时间阈值,得到边沿标志位。在具体的实施方式中,将周期累加器产生的相码的低M位与位宽为M的边沿时间阈值Kr进行比较,比较结果为一比特位宽,称为边沿标志位。当相码的低M位≤Kr时,边沿标志位设置为“0”;当低M位相码>Kr时,边沿标志位设置为“1”。
根据所述的边沿标志位、所述的上边沿以及下边沿、所述的码元标志位确定伪随机序列的幅值;
根据所述的幅值以及所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
下面结合表1详细介绍伪随机序列的成形原理。在该实施方式中,码元标志位为二比特位宽,高比特表示当前码元电平,低比特表示前一码元时刻的码元电平,则在该实施方式中码元标志位可能的数值为00、01、10、11。
当码元标志位为00时,则说明前后码元不变,伪随机序列幅值保持为0;
当码元标志位为11时,则说明前后码元不变,伪随机序列幅值保持为2P-1;
当码元标志位为01时,则说明码元从1码变化到0码,在下降时间范围内,即边沿标志位为0时,选择边沿生成单元输出的递减包络作为伪随机序列的下降沿;当边沿标志位为1时,伪随机序列幅值保持为0,如图12的[t3,t4]时间范围内所示;
当码元标志位为10时,说明码元从0码变化到1码,在上升时间范围内,即边沿标志位为0时,选择边沿生成单元输出的递增包络作为伪随机序列的上升沿;当边沿标志位为1时,伪随机序列幅值保持为2P-1,如图12的[t1,t2]时间范围内所示。
综上所述,本发明的有益成果是:提供了一种基于FPGA的伪随机序列发生器及其生成方法,以FPGA作为主要功能部件,辅以少量的模拟器件,解决了现有技术中的伪随机序列发生器产生的码元速率的分辨率和精确度均较差的技术问题,本发明提供的序列发生器结构简单、容易实现、集成度高、成本低,边沿时间可控,捷变性好,伪随机序列的参数灵活可设,提高了码元速率的分辨率,且精确度仅受时钟单元提供的时钟性能的影响。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (18)

1.一种基于FPGA的伪随机序列发生器,其特征是,所述的伪随机序列发生器包括控制单元、时钟单元以及FPGA,
其中,所述的控制单元,用于采集用户输入的伪随机序列参数,根据所述的伪随机序列参数生成用户指令,并将所述的用户指令发送至所述的FPGA;
所述的时钟单元,用于向所述的FPGA提供时钟脉冲;
所述的FPGA具体包括:
处理器接口,用于解析所述的用户指令,得到伪随机序列参数,所述的伪随机序列参数包括频率控制字、序列阶数、反馈系数、边沿幅度系数以及边沿时间阈值;
周期累加器,用于根据所述的时钟脉冲以及所述的频率控制字生成相码;
伪随机序列生成单元,用于根据所述的反馈系数以及所述的相码生成伪随机序列;
边沿生成单元,用于根据所述的相码、所述的伪随机序列以及所述的边沿幅度系数构造所述伪随机序列的上边沿以及下边沿;
序列成形单元,用于根据所述的相码、所述的上边沿以及下边沿、所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
2.根据权利要求1所述的伪随机序列发生器,其特征是,所述的伪随机序列发生器还包括数模转换器,用于将所述数字化的伪随机序列转换为模拟形式的伪随机序列。
3.根据权利要求2所述的伪随机序列发生器,其特征是,所述的伪随机序列发生器还包括模拟电路,用于将所述模拟形式的伪随机序列进行滤波、衰减、放大处理后输出。
4.根据权利要求1所述的伪随机序列发生器,其特征是,所述的FPGA还包括时钟管理单元,用于接收所述的时钟脉冲,将所述的时钟脉冲转换为高频的时钟脉冲后提供至所述的FPGA。
5.根据权利要求1或3所述的伪随机序列发生器,其特征是,所述的周期累加器具体包括:
时钟脉冲接收单元,用于接收所述的时钟脉冲;
第一判断单元,用于根据所述的时钟脉冲判断上升沿是否到来,当判断为是时,执行相码生成单元;
所述的相码生成单元,用于累加所述的频率控制字以生成相码;
发送单元,用于将所述相码的低M位发送至所述的边沿生成单元;
第二判断单元,用于判断所述相码的低M位是否超过(2M-1),当判断为是时,执行移位使能信号生成单元;
所述的移位使能信号生成单元,用于生成移位使能信号,并将所述的移位使能信号发送至所述的伪随机序列生成单元。
6.根据权利要求5所述的伪随机序列发生器,其特征是,所述的伪随机序列生成单元具体包括:
时钟脉冲接收单元,用于接收所述的时钟脉冲;
移位使能信号接收单元,用于接收所述的移位使能信号;
第一判断单元,用于根据所述的时钟脉冲判断上升沿是否到来,当判断为是时,执行第二判断单元;
所述的第二判断单元,用于判断所述的移位使能信号是否为高电平,当判断为是时,执行生成单元;
所述的生成单元,用于产生一比特的伪随机序列。
7.根据权利要求1或6所述的伪随机序列发生器,其特征是,所述的边沿生成单元具体包括:
码元标志位生成单元,用于比较所述的伪随机序列的相邻码元以得到码元标志位;
码元标志位发送单元,用于将所述的码元标志位发送至所述的序列成形单元;
系数调整单元,用于根据所述的码元标志位对所述的边沿幅度系数进行系数调整;
边沿构造单元,用于将所述相码的低M位与调整后的边沿幅度系数相乘以构造所述伪随机序列的上边沿以及下边沿。
8.根据权利要求7所述的伪随机序列发生器,其特征是,所述的系数调整单元具体包括:
判断单元,用于判断所述的码元标志位对应的前后码元是否处于上升时间范围内,当判断为是时,执行反向处理单元,否则执行系数保留单元;
所述的反向处理单元,用于将所述的边沿幅度系数进行反相处理;
所述的系数保留单元,用于保留所述的边沿幅度系数。
9.根据权利要求7所述的伪随机序列发生器,其特征是,所述的序列成形单元具体包括:
边沿标志位生成单元,用于比较所述相码的低M位与所述的边沿时间阈值,得到边沿标志位;
码元标志位接收单元,用于接收所述的码元标志位;
幅值确定单元,用于根据所述的边沿标志位、所述的上边沿以及下边沿、所述的码元标志位确定伪随机序列的幅值;
序列生成单元,用于根据所述的幅值以及所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
10.一种基于FPGA的伪随机序列生成方法,其特征是,所述的方法具体包括:
采集用户输入的伪随机序列参数,所述的伪随机序列参数包括频率控制字、序列阶数、反馈系数、边沿幅度系数以及边沿时间阈值;
采集时钟单元提供的时钟脉冲;
根据所述的时钟脉冲以及所述的频率控制字生成相码;
根据所述的反馈系数以及所述的相码生成伪随机序列;
根据所述的相码、所述的伪随机序列以及所述的边沿幅度系数构造所述伪随机序列的上边沿以及下边沿;
根据所述的相码、所述的上边沿以及下边沿、所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
11.根据权利要求10所述的方法,其特征是,所述的方法还包括将所述数字化的伪随机序列转换为模拟形式的伪随机序列。
12.根据权利要求11所述的方法,其特征是,所述的方法还包括将所述模拟形式的伪随机序列进行滤波、衰减、放大处理后输出。
13.根据权利要求10所述的方法,其特征是,所述的方法还包括将所述的时钟脉冲转换为高频的时钟脉冲。
14.根据权利要求10或12所述的方法,其特征是,根据所述的时钟脉冲以及所述的频率控制字生成相码具体包括:
根据所述的时钟脉冲判断上升沿是否到来;
当判断为是时,累加所述的频率控制字以生成相码。
15.根据权利要求10或12所述的方法,其特征是,根据所述的反馈系数以及所述的相码生成伪随机序列具体包括:
判断所述相码的低M位是否超过2M-1;
当判断为是时,生成移位使能信号;
根据所述的时钟脉冲判断上升沿是否到来;
当判断为是时,继续判断所述的移位使能信号是否为高电平;
当判断为是时,产生一比特的伪随机序列。
16.根据权利要求10所述的方法,其特征是,根据所述的相码、所述的伪随机序列以及所述的边沿幅度系数构造所述伪随机序列的上边沿以及下边沿具体包括:
比较所述的伪随机序列的相邻码元以得到码元标志位;
根据所述的码元标志位对所述的边沿幅度系数进行系数调整;
将所述相码的低M位与调整后的边沿幅度系数相乘以构造所述伪随机序列的上边沿以及下边沿。
17.根据权利要求16所述的方法,其特征是,根据所述的码元标志位对所述的边沿幅度系数进行系数调整具体包括:
判断所述的码元标志位对应的前后码元是否处于上升时间范围内;
当判断为是时,将所述的边沿幅度系数进行反相处理;
否则,保留所述的边沿幅度系数。
18.根据权利要求16所述的方法,其特征是,根据所述的相码、所述的上边沿以及下边沿、所述的伪随机序列生成边沿时间可控的数字化的伪随机序列具体包括:
比较所述的伪随机序列的相邻码元以得到码元标志位;
根据所述的边沿标志位、所述的上边沿以及下边沿、所述的码元标志位确定伪随机序列的幅值;
根据所述的幅值以及所述的伪随机序列生成边沿时间可控的数字化的伪随机序列。
CN201210528488.6A 2012-12-10 2012-12-10 基于fpga的伪随机序列发生器及其生成方法 Active CN103870238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210528488.6A CN103870238B (zh) 2012-12-10 2012-12-10 基于fpga的伪随机序列发生器及其生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210528488.6A CN103870238B (zh) 2012-12-10 2012-12-10 基于fpga的伪随机序列发生器及其生成方法

Publications (2)

Publication Number Publication Date
CN103870238A CN103870238A (zh) 2014-06-18
CN103870238B true CN103870238B (zh) 2018-03-16

Family

ID=50908818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210528488.6A Active CN103870238B (zh) 2012-12-10 2012-12-10 基于fpga的伪随机序列发生器及其生成方法

Country Status (1)

Country Link
CN (1) CN103870238B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635027B (zh) * 2014-11-06 2019-12-31 苏州普源精电科技有限公司 可以生成伪随机序列正交幅度调制信号的测量装置及其调制方法
CN110457008B (zh) * 2018-05-08 2021-08-03 北京小米松果电子有限公司 m序列生成方法、装置及存储介质
CN109002277B (zh) * 2018-11-05 2019-03-22 湖南继善高科技有限公司 一种伪随机信号动态配置系统及方法
WO2021142830A1 (zh) * 2020-01-19 2021-07-22 京东方科技集团股份有限公司 随机数生成电路、随机数生成方法和电子设备
CN112054942B (zh) * 2020-09-15 2021-12-17 中电科思仪科技股份有限公司 一种用于高位宽成帧误码测试的任意长度随机数据包生成方法
CN115424391B (zh) * 2022-07-20 2024-05-07 兰州大学 一种基于fpga的随机小数发生器及其生成方法
CN117217139B (zh) * 2023-11-09 2024-01-30 成都翌创微电子有限公司 一种用于数字芯片验证的时钟生成方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1858999A (zh) * 2005-08-17 2006-11-08 华为技术有限公司 伪随机序列发生装置
CN102622205A (zh) * 2012-03-09 2012-08-01 无锡华大国奇科技有限公司 随机数发生器
CN102736891A (zh) * 2011-12-22 2012-10-17 云南大学 一种并行可调节的伪随机序列发生器设计

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3314181B2 (ja) * 2000-04-07 2002-08-12 独立行政法人通信総合研究所 擬似乱数列の出力装置、送信装置、受信装置、通信システム、フィルタ装置、擬似乱数列の出力方法、送信方法、受信方法、フィルタ方法、ならびに、情報記録媒体
JP2002312161A (ja) * 2001-04-18 2002-10-25 Chaos Sangyo Gijutsu Kenkyusho:Kk カオス・タイムシリーズの生成方法
DE102008048292B4 (de) * 2008-09-22 2012-07-12 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1858999A (zh) * 2005-08-17 2006-11-08 华为技术有限公司 伪随机序列发生装置
CN102736891A (zh) * 2011-12-22 2012-10-17 云南大学 一种并行可调节的伪随机序列发生器设计
CN102622205A (zh) * 2012-03-09 2012-08-01 无锡华大国奇科技有限公司 随机数发生器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《伪随机序列发射电路设计与实验》;孙淑琴 等;;《电子测量技术》;20041231(第3期);第14-21页; *
《基于m序列的可重构线性反馈移位寄存器研究》;王澜涛 等;;《电脑与信息技术》;20090430;第17卷(第2期);第9-12页; *

Also Published As

Publication number Publication date
CN103870238A (zh) 2014-06-18

Similar Documents

Publication Publication Date Title
CN103870238B (zh) 基于fpga的伪随机序列发生器及其生成方法
CN103117732B (zh) 多路视频脉冲信号发生装置及方法
KR100732141B1 (ko) Pwm 출력 회로
CN102788891B (zh) 一种复杂的波形序列发生器
CN201548603U (zh) 具有等效采样功能的数字示波器
CN103812447B (zh) 高斯白噪声发生方法及装置
CN105718404A (zh) 一种基于fpga的方波发生器及方法
CN107819456B (zh) 一种基于fpga进位链的高精度延时产生器
CN104954015A (zh) 时钟生成方法以及半导体装置
CN1232031C (zh) 基于fpga的高精度任意波形发生器
CN104660220B (zh) 一种产生整数频率脉冲的信号发生器及信号产生方法
CN102332924A (zh) 并行至串行转换装置
CN102025389B (zh) 一种伪随机序列的生成方法及装置
CN108227828A (zh) 一种序列信号发生器及序列信号产生方法
WO2003073244A3 (en) Frequency divider
CN109525365A (zh) 一种应用于无人机图传的信道编码与调制系统与方法
CN103178843A (zh) 一种具有扫频功能的信号源及其生成方法
CN105680800A (zh) 一种具有扫频功能的信号发生器
CN105187052A (zh) 一种可编程小数分频电路
CN108599758A (zh) 基于gps产生高精度触发脉冲的算法及装置
CN208999990U (zh) 真随机数发生器
CN103873025A (zh) 一种三角波信号产生方法及三角波发生器
CN100356735C (zh) 伪随机数产生装置及利用其实现的测试系统
CN105515551A (zh) 一种具有任意波编辑功能的信号发生器
CN103095297B (zh) 直接数字频率合成器产生精准频率的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant