一种格雷互补码的产生电路的制作方法

文档序号:7525879阅读:404来源:国知局
专利名称:一种格雷互补码的产生电路的制作方法
技术领域
本发明涉及一种格雷互补码的产生电路,用于产生码长为2i的格雷互补码。

背景技术
光时域发射计(OTDR)可以确定光纤处的损耗、光纤故障点及断点的位置,对测量点进行定位,因此也可称为光纤激光雷达。基于OTDR原理的分布式光纤拉曼温度传感器利用光纤的拉曼光谱温度效应,光纤所处空间各点温度场调制了光纤中传输的拉曼光散射波,经解调后,将空间温度场的信息实时显示出来。但随着光学器件的引入,光纤传输距离不断增加及光纤的损耗,使得背向散射光非常微弱,噪声干扰严重。为了解决这个问题,有人提出发送一伪随机序列脉冲,接收端利用序列脉冲的相关特性来提高光时域发射计及分布光纤拉曼温度传感器的性能。由于伪随机序列的自相关函数会产生大量的旁瓣,对测量结果影响严重,这就迫使人们突破单个序列的束缚,进而研究用2个序列的自相关函数之和来构造理想的相关特性。格雷互补码就是这样的一种序列并且得到了应用。
格雷互补码的定义为码长为N的一对序列Ak、Bk,如果它们的自相关函数之和除了零位移外,处处为零,那么这两个序列为格雷互补序列。实际上,格雷互补码中的一对码的自相关函数都存在着旁瓣,只不过相加后对消掉了。Ak和Bk的自相关函数分别为 以一组数据长度为128位格雷互补码为例,格雷互补码中一个自相关函数的峰值等于码元的个数,旁瓣大约有峰值的10%左右,而当两组相关结果相加后,峰值增加为原来的2倍;旁瓣完全对消掉了。
格雷互补码的产生原理为设有2个长为N的格雷互补码A=a0a1...aN-1和B=b0b1...bN-1,则码S1=AB=a0a1...aN-1b0b1...bN-1和S2=AB=a0a1...aN-1b0b1...bN-1互补,式中bi表示bi取补。
根据格雷互补码的产生原理例如其中A,B为一对码长为8的格雷互补码,则码长为32位的格雷互补码为码长64的格雷互补码为……根据以上原理可以保证构造一切码长为2i的格雷互补码,r为任意正整数。
传统格雷互补码的实现方式为采用FPGA设计原理,设计单级编码器(单级的格雷互补码编码逻辑),即由n位编码成2n位的逻辑电路,然后再由单级编码器逐级级联形成多级编码器。其中单级编码器的编码逻辑电路如附图1所示,该单级编码器的编码逻辑电路由二个二选一的数据选择器MUX1、MUX2、一个二分频的分频器DFF和三个反相器NOT1、NOT2、NOT3构成。其设有两路输入信号ain、bin,两路输出信号aout、bout;二个数据选择器MUX1、MUX2分别输出两路的编码信号aout、bout。数据选择器MUX1、MUX2的控制端sel由分频器DFF的输出信号Q提供。当Q为“0”时,aout、bout输出均为ain,当Q为“1”时,aout输出ain,bout输出bin。
这样,单级编码器只能将n位的格雷互补码编码成2n位的格雷互补码。而要完成完整的格雷互补码编码过程需要从1位输入开始。因此,要产生2i位的格雷互补码则需要i级单级编码器级联。例如,从1位码产生8位的格雷互补码需要3级单级编码器级联,如附图2所示,其中golay_1表示单级编码器,ain、bin分别输入‘0’或者‘1’这样的常数,clkin则输入周期为码元宽度的时钟信号,aout、bout则会连续输出8位的格雷互补码。
上述传统的格雷互补码的实现方法,在实现较长码长(比如64位)时,效率较低,电路结构复杂,时钟依次级联,存在时钟偏移,稳定性不够好,而且,需要级联较多的单级编码器,需要消耗较多的FPGA资源。


发明内容
本发明所要解决的技术问题是针对上述现有技术提供一种电路结构简单、不存在时钟偏移、稳定性好的格雷互补码的产生电路,该格雷互补码的产生电路特别适用于产生码长较长的格雷互补码。
本发明解决上述技术问题所采用的技术方案为该格雷互补码的产生电路,用于产生码长为2i的格雷互补码,i为自然数,其特征在于包括 一数据位数为M的存储器,该存储器内预先保存有码长为2i的互为格雷互补码的两组格雷码序列,并且该存储器的大小至少为
一计数器,该计数器的位数为
一移位寄存器,该移位寄存器的数据位数也为M; 其中,所述存储器、所述计数器、所述移位寄存器的CLOCK引脚输入周期为码元宽度的时钟信号,所述计数器的数据输出端与所述存储器的地址引脚相连,所述存储器的数据输出端与所述移位寄存器的数据输入端相连,所述移位寄存器的数据输出端即输出码长为2i的格雷互补码。
由于在实际应用中,格雷互补码的序列是已知的,因此,可以用存储器存储格雷互补码序列,然后将计数器输出作为地址数据选中存储器中的相应数据,每一个时钟,计数器加1,在时钟上升沿把数据送到总线上,经移位寄存器在时钟控制下一位一位送到输出脚上。该方法可以实现任意码长的格雷互补码,并且只需要修改计数器的位数以及存储器的容量即可。
与现有技术相比,本发明的优点在于通过将互为格雷互补码的两组格雷码序列预先保存在存储器中,通过计数器的输出作为地址数据选中存储器中相应码元,然后通过移位寄存器输出,电路简单,在实现码长较长的格雷互补码时,只需要修改计数器的位数以及存储器的容量即可,由于不是采用单级编码器进行级联,不存在时钟偏移、稳定性好,并且不需要消耗较多的FPGA资源。



图1为现有技术中单级编码器的电路逻辑图; 图2为现有技术中实现8位格雷互补码的电路逻辑图; 图3为本发明实施例中实现64位格雷互补码的电路逻辑图。
图4为本发明实施例中实现128位格雷互补码的电路逻辑图。

具体实施例方式 以下结合附图实施例对本发明作进一步详细描述。
本发明提供的格雷互补码的产生电路,其包括计数器1,存储器2,移位寄存器3,其中存储器2的数据位数为M,存储器2内预先保存有码长为2i的互为格雷互补码的两组格雷码序列,该存储器2的大小至少为

计数器1的位数为

移位寄存器3的数据位数也为M; 存储器2、计数器1、移位寄存器3的Clock引脚均输入周期为码元宽度的时钟信号clk,计数器1的数据输出端与存储器2的地址引脚相连,存储器2的数据输出端与移位寄存器3的数据输入端相连,移位寄存器3的数据输出端即输出码长为2i的格雷互补码。
由于实际应用中,格雷码的序列是已知的。例如,码长L=1时的初始格雷互补码对为A=[1]、B=[1],而码长L=64时,格雷互补码组A,B的编码情况如下 A=[1 1 1 -1 1 1 -1 1 1 1 1 -1 -1 -1 1 -1 1 1 1 -11 1 -1 1 -1 -1 -1 1 1 1 -1 1 1 1 1 -1 1 1 -1 1 11 1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -11 -1] B=[ 1 1 1 -1 1 1 -1 1 1 1 1 -1 -1 -1 1 -1 1 1 1 -11 1 -1 1 -1 -1 -1 1 1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 -1-1 -1 1 1 1 -1 1 1 1 1 -1 1 1 -1 1 -1 -1 -1 1 1 1-1 1] 64位的格雷互补码由A码组与B码组构成,上述A加B码组的长度为128位码长(64+64=128,这里称呼为AB码组),因为在实际使用中,A码组与B码组是通过同一个硬件电路输出,可以根据实际需要调整A B码组的组合(是先输出A码组再输出B码组,还是A与B轮流输出1位码等方式)。当使用数据长度为8位的存储器ROM时,128位码长数据需要使用16字节的存储器,每一个时钟,计数器加1,计数器输出作为地址数据选中存储器中的相应数据,存储器再在时钟上升沿把选中的相应数据送到数据输出端,再经移位寄存器在时钟控制下一位一位送出,因采用查表法来实现,需要使用位数为4的计数器(24=16)来寻址,参见图3所示,这里移位寄存器输出端输出的output信号即为码长为64位的格雷互补码,根据存储器中A B码组的组合情况,可以分别解析出码长为64的互为格雷互补码序列。
例如,如果存储器中预先保存的码长为64位的互为格雷互补码的两组格雷码序列在存储器中的存放顺序是先存放A序列,再存放B序列,这样,移位寄存器输出端输出的output信号中,前64位即为A序列,后64位即为B序列。
如果存储器中预先保存的码长为64位的互为格雷互补码的两组格雷码序列在存储器中的存放顺序是先存放B序列,再存放A序列,这时,移位寄存器输出端输出的output信号中,前64位即为B序列,后64位即为A序列。
如果存储器中预先保存的码长为64位的互为格雷互补码的两组格雷码序列在存储器中的存放顺序是先存放一位A码,再存放一位B码,再存放一位A码,再存放一位B码……,A、B序列是轮流存放的,这时移位寄存器输出端输出的output信号中,A、B序列也是轮流输出,我们可以通过一个由选择器和分频器组合的逻辑电路将A、B序列解析出来。
同理,128位的格雷互补码,实际码长为256位,需要至少大小为256/8=32byte的存储器,需要使用位数为5的计数器(25=32)来寻址。
同理,256位的格雷互补码,实际码长为512位,需要至少大小为512/8=64byte的存储器,需要使用位数为6的计数器(26=64)来寻址。其逻辑电路图参见图4所示。
该方法可以实现任意码长的格雷互补码,只需要修改计数器的位数以及存储器的容量即可。
权利要求
1、一种格雷互补码的产生电路,用于产生码长为2i的格雷互补码,i为自然数,其特征在于包括
一数据位数为M的存储器,该存储器内预先保存有码长为2i的互为格雷互补码的两组格雷码序列,并且该存储器的大小至少为
一计数器,该计数器的位数为
一移位寄存器,该移位寄存器的数据位数也为M;
其中,所述存储器、所述计数器、所述移位寄存器的Clock引脚均输入周期为码元宽度的时钟信号,所述计数器的数据输出端与所述存储器的地址引脚相连,所述存储器的数据输出端与所述移位寄存器的数据输入端相连,所述移位寄存器的数据输出端即输出码长为2i的格雷互补码。
全文摘要
本发明涉及一种格雷互补码的产生电路,用于产生码长为2i的格雷互补码,i为自然数,其特征在于包括一数据位数为M的存储器,该存储器内预先保存有码长为2i的互为格雷互补码的两组格雷码序列,并且该存储器的大小至少为2i+1/M;一计数器,该计数器的位数为log2(2i+1/M);一移位寄存器,该移位寄存器的数据位数也为M;其中,所述存储器、所述计数器、所述移位寄存器的Clock引脚均输入周期为码元宽度的时钟信号,所述计数器的数据输出端与所述存储器的地址引脚相连,所述存储器的数据输出端与所述移位寄存器的数据输入端相连,所述移位寄存器的数据输出端即输出码长为2i的格雷互补码。本发明的优点在于不存在时钟偏移、稳定性好,并且不需要消耗较多的FPGA资源。
文档编号H03M7/00GK101527571SQ200910097618
公开日2009年9月9日 申请日期2009年4月12日 优先权日2009年4月12日
发明者金如江 申请人:金如江
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1