CN104836634B - 码长n最小距离n‑1的置换码构造方法和码字序列发生器 - Google Patents
码长n最小距离n‑1的置换码构造方法和码字序列发生器 Download PDFInfo
- Publication number
- CN104836634B CN104836634B CN201510073414.1A CN201510073414A CN104836634B CN 104836634 B CN104836634 B CN 104836634B CN 201510073414 A CN201510073414 A CN 201510073414A CN 104836634 B CN104836634 B CN 104836634B
- Authority
- CN
- China
- Prior art keywords
- displacement
- counter
- track
- row
- 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
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开一种有效抵抗电力线窄带和脉冲噪声的置换码构造方法与码字序列发生器。置换码构造方法是指码长为n最小距离为n‑1的置换码(n,n‑1)PC代数结构设计方法,所述码字序列发生器是指码长n为素数、码集合势为Pn,d=n(n‑1)的置换码发生器原理电路。所述(n,n‑1)PC在n!个置换的特定n‑RPGCF排序规则约束下,由n‑1个tn轨道构成,每个tn轨道的首置换构成轨道首阵列,该阵列的每一个置换由等差数列的不同公差和不同分段排序方式来设计,通过对该阵列中每一个置换使用tn操作n‑1次,即生成(n,n‑1)PC。所述码字序列发生器给每个元素分配m位,每个码字占用n×m个存储单元,其循环移位寄存器组由m组n个触发器构成,执行m位并行n位串行的左移输入、循环右移、左移输出和循环左移一系列操作,完成从轨道首阵列到n(n‑1)个置换码字的生成过程。
Description
技术领域
本发明属于通信传输中的信道编码技术领域,更具体地,涉及一种码长n最小距离n-1的置换码构造方法和码字序列发生器。本发明主要针对电力线载波通信中的多径衰落、窄带噪声、脉冲噪声和有色噪声等多种干扰,提供一种有效抵抗这些干扰的高可靠性的纠错码设计方案。
技术背景
因特网信息传输到户的“最后一公里”接入技术可能面临多种方案的竞争,如光纤到户、小区无线基站(无线局域网)和电力线通信(power line communications,PLC)等。与其它两种方式相比,PLC的优势并不大。但针对室内各种电器联网的“最后一公尺”接入技术,PLC体现出成本效益的巨大优势。在家庭、办公室和偏远地区的房屋内,无处不在的电力线插座所构成的基础设施,提供了潜在的分布式数据容量,为PLC室内网络的发展奠定了物质基础。此外,将因特网、无线局域网、移动蜂窝网、有线电话网、卫星电视网和电力线载波通信网,多网合一,共同协作,形成更广泛的物联网设想;以及电能的优化控制分配和远程智能读表对智能电网的迫切需要,构成了促进PLC技术发展的推动力。IEEE标准协会和ITU-T(国际电信联盟电信标准化部)为制定统一的PLC技术工业标准所做的努力,为PLC技术的发展提供了保障。
电力网的输电线是为传输电能而构建的,其设计方案中并没有考虑数据信号的传输条件。即便是早期的电力线载波信息传输通道,也并非针对数据传输,而是为了传输电力线继电保护的控制信号而设计的。面对已经建好的覆盖面广泛的电力网基础设施,其数据传输功能并没有得到充分发挥,这种状况引发了电力和通信行业对这种有潜力的信息传输媒介的开发。近几十年来,人们广泛研究了电力网用于通信的适应性和可行性,发现其有足够的带宽,能够以几乎任意数据率进行通信。妨碍这种媒介达到应有通信能力的关键技术障碍之一是PLC信道受各种噪声的影响。
电力线信道特征既是时间相关的又是频率相关的,还与安装在电力线基础设施上的发射机和接收机的位置有关。网络阻抗受到网络拓扑结构和连接负载的强烈影响,特别是随机接入和切断的负载对阻抗变化起主要作用。信道噪声强烈地随频率、负载、昼夜和地理位置的不同而变化。面对复杂的电力线数据通信环境,将现有成熟的无线和有线通信技术直接搬移到电力线通信信道上来的策略,曾经是工程设计人员们最早的设想,但是现场运行试验表明这些成熟技术在电力线信道上运行时,数据传输的可靠性得不到保障。关键问题是电力线信道上存在两种干扰,是无线和有线信道上不曾出现的,因此没有在传统的通信传输技术的发展过程中得到充分的系统的研究,从这个角度讲,电力载波通信使信道编码和调制技术面临新的挑战。
两种特殊干扰的来源和特征描述如下:1)永久窄带噪声。来源于无线电台调频,以及电视机、计算机和某些电器设备的跟踪频率。这种噪声的特点是运行频带窄、持续 时间长,在信息数据传输的过程中,可能始终存在,因此称为永久窄带噪声。2)宽带脉冲噪声。主要来源于电力设备的随机接入与切断或电力装置开关的随机突发操作。其特点是运行频带宽、持续时间短。
2000年德国埃森大学的Vinck教授将置换阵列引入到电力载波通信中,旨在克服电力线通信信道中的窄带噪声和脉冲噪声。他通过在电子与通信国际期刊上发表“Codedmodulation for powerline communications,AEU int.J.Electron.Commun.,vol.54,no.1,pp:45-49,2000.”一文,提出了基于置换阵列的电力线编码调制解决方案。该方案将M维FSK调制与置换码结合,能够提供常包络调制信号,自然形成简单的非相干解调方案。它的频率扩展特性能够避免频谱坏块,有效地克服由电力线分支的多径效应所造成的频率选择性衰落,它的编码冗余有利于纠正由窄带噪声和脉冲噪声所造成的信息传输错误。总之,该方案由于结合了频率分集和时间分集技术,有希望突破电力载波通信信号受到两类噪声干扰而不能正常接收的技术瓶颈。该方案至2000年问世以来,发展缓慢的关键原因是置换码没有很好的代数结构设计方法和硬件可执行的方案。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种置换码的构造方法,其目的在于用准确代数结构的置换码字集合取代由计算机搜索的不确定的置换码字集合,由此解决置换码字集合的存储和硬件可执行的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种码长为n最小距离为d=n-1的置换码(n,n-1)PC构造方法,所述置换码(n,n-1)PC由n-1个tn轨道构成,置换码的阵列尺寸为n(n-1)×n,其构造方法为:预先构造出每个tn轨道的首置换πτ∈Sn,τ∈[1,n-1],一共有n-1个首置换,形成(n-1)×n的轨道首置换阵列,通过对轨道首置换阵列中的每一个置换使用tn操作n-1次,构成置换码(n,n-1)PC;所述tn轨道是n×n的方阵,它的每一行和每一列都是一个置换,并且下一行置换是上一行置换循环右移一位得到,第一行置换是最后一行置换循环右移一位得到;所述置换是n个元素π1π2...πn的每一个元素在置换中一一出现,并且每一个元素只出现一次;所述tn操作是将一个置换的第n个元素移到最左边的位置,其它元素依次右移;
所述置换码(n,n-1)PC是在n!个置换的特定n-RPGCF排序方式约束下构造出来的;所述n-RPGCF(Recursive complete Permutation Gray code on Finite state machine)排序方式是利用操作函数集Tright={t2,t3,...,tn-1,tn}中的n-1个操作函数,形成由n!个操作函数所构成的嵌套递归操作函数序序列(Sequence Of Function,SOF),将操作函数序列(SOF)作用于一个初始置换πε∈Sn,ε∈[1,n!],得到按照格雷码排列的、用有限状态机执行的n!个置换所形成的完备置换阵列;所述n-RPGCF排序包含(n-1)!个tn轨道,从中选出包含下标为自然数的准单位置换π1=[π1π2...πn]∈Sn的n-1个tn轨道构成本发明的置换码(n,n-1)PC。
按照本发明的另一方面,还提供了一种码长为n最小距离为d=n-1的置换码(n,n-1)PC码字序列发生器,所述码字序列发生器包括存储器、循环移位寄存器组和逻辑控制模块,其中:
所述存储器用于按照规定的码字排列顺序,保存置换码(n,n-1)PC的n(n-1)个码字,当需要产生不同长度n的置换码(n,n-1)PC时,擦除原先码字,再次存入新产生的 码字;所述存储器设置两个控制信号端口Pin和Pout、一个cp时钟脉冲输入端、两个地址输入端口Re和Wr、m位并行数据输入端Pd-in和m位并行数据输出端Pd-out;所述存储器能够完成读出和写入一个置换的功能,Re和Wr共用一组地址线,分别提供置换读出和写入的首地址,每次读出或写入的首地址分别由控制逻辑模块的地址产生器通过ad-in和ad-out端口提供;
所述循环移位寄存器组,由m个长度为n的双向循环移位寄存器组构成,所述循环移位寄存器组具备四种操作功能,即在时钟脉冲控制下,执行m位并行n位串行左移输入、m位并行n位串行循环右移、m位并行n位串行左移输出和m位并行n位串行循环左移的操作;所述循环移位寄存器组设置两个控制信号端口Rin和Rout,一个异步清零端CR,一个cp时钟脉冲输入端,m位并行数据输入端Rd-in和m位并行数据输出端Rd-out,在m个循环左移回路中分别设置m个控制开关G;
所述逻辑控制模块由计数器一、计数器二、计数器三、计数器四、地址产生器和组合逻辑单元所组成,执行如下功能:所述地址产生器为ad-out提供置换读出的首地址和为ad-in提供置换写入的首地址;所述计数器一记录一个tn轨道的产生及其被送到存储器所需要的cp时钟脉冲周期数,用于启动计数器二和地址产生器输出轨道首置换的读出地址到Rd,在计数器一计数期间,计数器二和计数器三分时工作;所述计数器二记录一个轨道首置换从存储器转移到循环移位寄存器组所需要的时间;所述计数器三记录两种操作的组合时间,即循环移位寄存器产生一个新置换所需要的cp时钟周期数和循环移位寄存器左移输出一个置换所需要的cp时钟周期数之和;所述计数器四记录第一个轨道首置换的第一个存储码字输入循环移位寄存器到最后一个轨道首的最后一个存储码字输入循环移位寄存器之间的时钟周期数,通过使Pout=0来停止存储器的数据读出;所述组合逻辑单元分别对计数器一、计数器二和计数器三的输出信号进行逻辑组合产生存储器和循环移位寄存器组的端口控制信号Rin、Rout、Pin和Pout,以及产生循环移位寄存器组中循环左移回路的m个并行开关G的控制信号。
总体而言,由于目前关于置换码的代数结构设计方法和(n,n-1)PC置换码集合的完全代数结构,以及相应的码字序列发生器原理电路,并没有较为理想的研究成果问世,因此,通过本发明所构思的以上技术方案:首先提供一种包含n!个置换的按照格雷码排序的、由有限状态机执行的完备置换码排序方式n-RPGCF,然后从基于n-RPGCF排序方式的、具有(n-1)!个tn轨道结构的n!个置换码字中,选出包含单位置换的n-1个tn轨道所构成的n(n-1)个置换码(n,n-1)PC码字序列;在此基础上定义了由n-1个tn轨道的首置换所确定的、包含n-1个置换的轨道首置换阵列,接着利用等差数列的不同分段方式和不同排列规则给出由n-1个置换所构成的轨道首置换阵列的设计方法,最后通过对轨道首置换阵列的每一个置换进行tn操作n-1次,完成置换码(n,n-1)PC的生成过程。所提供的完全代数结构置换码(n,n-1)PC在传统的由计算机搜索的置换码基础上有所突破,并且将置换码向实际工程应用推进了一步,有可能成为解决电力线载波通信中抵抗永久窄带噪声和随机开关脉冲噪声这一技术瓶颈的有效解决方案之一。
附图说明
图1是本发明置换码发生器原理框图;
图2是本发明置换码发生器中的存储器工作原理图;
图3是本发明置换码发生器中的虚拟循环移位寄存器工作原理图;
图4是本发明置换码发生器中的逻辑控制模块工作原理图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例,仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
首先对本发明的专业术语及基本原理进行解释和说明:
1)置换码简介
设π=[π1...πi...πn](πi,i∈Zn)是定义在有限符号集Zn={1,2,...,n}上的n维的置换序列(也称为置换矢量、置换码字,或简称为置换),所有n!个置换所形成的集合Sn={π1,π2,...,πk-1,πk,πk+1,...,πn!-1,πn!}(πk∈Sn,k∈[1,n!])称为完备置换阵列(completepermutation array),简称CPA。置换码(n,d)PC(也称为置换阵列(n,d)PA)是集合Sn上的长度为n,最小距离为d的子集Γ(n,μ,d),该子集满足如下特性:在子集中的任意两个码字πα,之间的距离至少是d=|{i∈{1,2,...,n}:πα(i)≠πβ(i)}|,(α,β∈[1,n!]),其中μ表示集合Γ(n,μ,d)所包含的置换码字的数量,也称为(n,d)PC的势,其最大势可表示为μmax=Pn,d。给定n和d,寻找Pn,d的问题是当前置换问题研究中最引入关注的研究课题之一。对n和d的任意取值,数学界已经证明Pn,d存在一个上限Pn,d≤n!/(d-1)!。多篇文章对d=n-1的Pn,n-1求解问题进行了探讨,当n是素数时,这个上限取等号Pn,n-1=n(n-1)。目前,关于(n,n-1)PC置换码的结构设计,并没有很好的方法,更谈不上硬件可执行的码字序列产生器。
针对置换码的结构设计问题,本专利申请发明人采用了与传统研究方法完全不同的策略,其具体的技术路线描述如下:
首先,提出一种全新的n!个完备置换阵列的显性代数枚举方法(传统的方法是利用计算机搜索来完成n!个置换的列写)。具体做法是定义一组循环移位操作函数集,有效地组合操作函数集中的元素,使其形成n!个操作函数的显性序列表达式。如果使该操作函数序列表达式作用于一个初始置换,即可完成n!个置换的列写。
其次,对上述n!个置换构成的集合Γ(n,n!,2)的特性进行研究,发现它具有传统列写方法所不具备的许多优良的结构特征,其中最有价值的特征之一是n!个置换被排列成了(n-1)!个拉丁方(Latin square),也称为(n-1)!个循环轨道(orbit);另一个有价值的结构特征是这(n-1)!个轨道可被分解为(n-2)!组,每一组包含n-1个轨道。一个重要的观察结果是当n为素数时,每一组的n-1个轨道形成一个置换码(n,n-1)PC,n!个置换中一共包含(n-2)!个(n,n-1)PC。
接着,在上述(n-2)!个(n,n-1)PC中选择包含准单位置换π1=[π1π2...πn]的(n,n-1)PC,研究其结构特征。另一个重要的观察结果是:如果事先知道n-1个轨道中每一个轨道的首置换(称为轨道首,orbit leader),那么通过对轨道首置换进行(n-1)次循环移位,就能得到一个用显性方法构造的(n,n-1)PC。这里的n-1个轨道首置换形成一个(n-1)×n的置换阵列,这个阵列具有明显的结构特征。
最后,提出(n-1)×n轨道首置换阵列的代数构造方法。本专利申请的发明者发现等 差数列具有对置换矢量中的元素进行分段排序的功能,又发现每一个轨道首置换中元素的排列规则恰恰具有等差数列分段排序的特征。为此,提出一种基于等差数列的置换矢量的构造方法,从而解决了(n,n-1)PC中每一个轨道首置换的显性代数结构设计问题。
具体设计方法描述如下:
2)操作函数及其序列的定义
在一个置换中,任意元素的位置变化都将触发一个置换转移到另一个置换,因此,需要研究对元素进行操作的何种行为是合理的。很显然,向置换中插入一个元素或从置换中删除一个元素都将破坏一个n维置换的结构,因此,插入和删除操作是不合理的。对置换中的元素进行移位操作和交换位置的操作都不会改变置换的特征。因此,移位操作和交换操作是合理的。
从计算机执行的角度来看,移位操作(直接由硬件电路实施)比交换操作(涉及至少三条赋值语句的软件编程)更容易执行。关键问题是寻找规则的移位操作,应该考虑在硬件可执行情况下,具有最小代价的元素移动操作,如尽可能的使用基本原理电路或现有电路(如循环移位电路)、尽量少使用元素定位等复杂操作(如从一个任意位置取元素插入到另一个任意位置)和尽量使元素做单向(如左移或右移)移动,以及获得新置换所用的操作次数尽可能的少和移动元素的数量是确定的等。不规则的移位操作可以这样描述:从一个置换中的任意位置选出一个元素,并放置到该置换中的任意不同的其它位置上。显然这种不规则操作需要两次定位操作,元素移动的方向也可能具有双向性,移动元素的数量也不能事先确定。综上所述,规则的移位操可以设计成两种形式:元素前置的循环右移操作和元素后置的循环左移操作。本发明只采用元素前置的循环右移操作。
定义1[右移操作函数]:设π=[π1π2...πn]∈Sn为任意置换,Tright为循环右移操作函数集合,如果存在操作函数ti∈Tright,i=2,3,...,n,使tiπ=ti[π1...πi...πn]=[πiπ1...πi-1πi+1...πn]∈Sn,那么ti被称为将置换π的第i个元素前置的操作函数。这意味着置换π中的第i个元素被放置到最左边的位置,第i个位置左边的所有元素被依次右移,第i个位置右边的所有元素保持位置不变。一共有n-1个循环右移操作函数Tright={t2,t3,...,tn-1,tn}。
定义2[操作函数序列(SOF)]:将定义在Tright={t2,t3,...,tn-1,tn}上的不同操作函数按特定约束组合在一起,形成一个操作函数序列,简称SOF。要求施加的特定约束能够保证SOF具有嵌套结构的表达式其中,(t)u表示操作函数t连续作用于置换u次,tn,t2,...,tx∈Tright,u1,u2,...,ux,x∈Zn,tn≠t2≠...≠tx
在集合Tright中的操作函数tn称为对整个置换的循环右移操作,可以构成一个操作函数序列SOF f=(tn)n-1。如果让f=(tn)n-1作用于任意置换π,那么集合{(tn)n-1π}={π,tnπ,(tn)2π,...,(tn)n-1π}构成一个n×n的置换阵列,称为循环拉丁方,简称C-LS(cyclicLatin square)。此外,{(tn)n-1π}也称为长度n的轨道,或一个tn轨道包含n个长度n的置换,形成一个n×n方阵。
3)按照Gray码排序借助有限状态机来枚举n!个置换
格雷码是指n维不同二进制矢量的一个有序集合,在这个集合中从任意一个码字(二进制矢量)到相邻码字的转换只需要翻转1位二进制。更广义地说,格雷码有无数定义方式,从状态空间的角度来看,格雷码可定义为不同状态的有序集合,在这个集合中, 从一个状态si到另一个状态si+1的转移只需要通过一次操作t∈T,其中t∈T是预先定义的满足某种代价最小约束的任意操作,T表示操作行为的集合。本专利申请中代价最小操作是取自Tright={t2,t3,...,tn-1,tn}的操作函数,指对置换状态转移的硬件执行代价最小。
定义3[完备置换格雷码]:对任意正整数n,如果Sn的n!个置换形成一个有序集,其中每个置换πk被最小代价操作函数ti∈Tright={t2,t3,...,tn-1,tn}作用后,转移到相邻的置换πk+1,即满足πk+1=ti(πk),那么这个有序集被称为完备置换格雷码,表示成n-PGC(complete Permutation Gray Code);如果还满足π1=ti(πn!),那么,这个有序集被称为递归完备置换格雷码,表示成n-RPGC(Recursive complete Permutation Gray code)。
很显然,n-RPGC包含n!个操作函数和n!+1个置换,其中有n!个不同置换,最后一个置换重复初始置换(或递归返回到初始置换)。为了使用基本单元电路(如循环移位寄存器)来执行n-RPGC,定义下列有限状态机的模型。
定义4[基于有限状态机的递归完备置换格雷码(Recursive completePermutation Gray Code based on Finite state machine,RPGCF)]:设Zn={1,2,...,n}表示输入符号集;Sn={π1,π2,...,πk-1,πk,πk+1,...,πn!-1,πn!}表示状态集;πk∈Sn(k∈[1,n!])表示初始置换;Tright={t2,t3,...,tn-1,tn}表示状态转移函数集,任意ti∈Tright是操作函数ti:Sn×Tright→Sn;表示输出状态集,它包含n-1个置换,它们的结构是由π1分别插入n-1维的置换[π2π3...πn-1πn]从第二个位置到最后一个位置而得到。那么,五元组(Zn,Sn,πk,Tright,Sout)定义了递归完备置换格雷码的有限状态机模型,简写为n-RPGCF。
下面的定理1给出了基于n-RPGCF排序的n!个置换的枚举结构,即n!个操作函数构成的序列作用于初始置换所得到的递归完备置换阵列Γ(n,n!,2)。
定理1:对任意正整数n,设k∈[1,n!]表示n!个置换的索引,ik∈[2,n]表示n-1个操作函数索引。设是任意操作函数,π=π1=[π1π2...πn]∈Sn是准初始置换。如果一个嵌套递归完备的SOF用fSOF(n,n!)表示,并由下列的序列构成,那么,当fSOF(n,n!)作用于初始置换π1时,必定准确的生成一个基于n-RPGCF排序的Γ(n,n!,2)。
其中,tn-l,tl+2∈Tright={t2,t3,...,tn-1,tn},l=0,1,2,...,m;当n是奇数时,m=(n-3)/2,a=(n+1)/2,当n是偶数时,m=(n-2)/2,a=(n+2)/2;ta∈Tright表示序列中最后出现的操作函数;(n)2l=n(n-1)(n-2)…(n-2l+1)=n!/(n-2l)!表示n的第2l个降阶乘。
定理1及下面的表达式(2)和(3)已发表在“Li Peng1,Pingliang Zeng2,Hao Li1,Xin Li1,Complete permutation Gray code implemented by finite state machine,Published in The Journal of Engineering J Eng 2014,pp:1-3,doi:10.1049/joe.2014.0214,http://creativecommons.org/licenses/by/3.0/”一文中。
在定理1的(1)式中,当置换索引k∈[1,n!]从1递增到n!时,操作函数序列还可以表示成下列嵌套递归函数fSOF(n,n!)的形式。
当n为偶数时,m=(n-2)/2,l=0,1,2,...,m-1,m,满足(1)式的所有n!个构成下列完备嵌套递归SOF:
fSOF(n,n!)=(t(n+2)/2(tn)n-1(tn/2(tn)n-1…(tl+2(tn)n-1(tn-l(tn)n-1…(t2(tn)n-1)n-2…)n-2l-1)n-2l-2…)2)2 (2)
当n为奇数时,m=(n-3)/2,l=0,1,2,...,m-1,m,同样有满足(1)的n!个构成下列完备嵌套递归SOF:
fSOF(n,n!)=(t(n+1)/2(tn)n-1(t(n+3)/2(tn)n-1…(tl+2(tn)n-1(tn-l(tn)n-1…(t2(tn)n-1)n-2…)n-2l-1)n-2l-2…)2)2(3)
显然,定理1的(1),以及(2)式和(3)式给出了一种完备置换阵列的代数排序规则,称为n-RPGCF排序规则,或者说n-RPGCF是一个包含n!个置换的有序集合。当下文使用n-RPGCF缩写时,既表示按照(1)或(2)和(3)式排列n!个置换的代数排序规则,又表示n!个置换的一个有序集合。
例1,针对n=5,设π1=[π1π2π3π4π5]∈S5是一个初始置换,其中πi,i∈Z5={1,2,3,4,5},设计一个5-RPGCF。
由上述操作函数形成基于5-RPGCF排序的SOF是fSOF(5,5!)=(t3(t5)4(t2(t5)4)3(t4(t5)4(t2(t5)4)3)2)2。使fSOF(5,5!)作用于初始置换π1=[π1π2π3π4π5],得到n!=5!=120个置换构成的集合:
观察(4)式,发现5-RPGCF包含许多优良的结构特征,其中对本发明专利申请最有意义的两个结构特征描述如下:第一,5-RPGCF包含(n-1)!=(5-1)!=24个C-LS或者24个n=5的t5轨道,如(4)中的每一个花括号内是一个t5轨道;按照每一个t5轨道的 第一个置换的第一个元素π1,π3,π4,π5进行划分,这24个t5轨道被分成n-1=5-1=4组,每一组包含(n-2)!=(5-2)!=6个t5轨道,每一组的6个t5轨道的第一个元素和对角线上的元素依次是π1,π3,π4,π5,所以每一组拉丁方可以用第一行第一列位置上的元素命名,分别称为π1,π3,π4,π5组;第二,对(n-1)!=(5-1)!=24个t5轨道,还有另一种分组方式,即分解成(n-2)!=(5-2)!=6组,每一组4个t5轨道,花括号外的下标值(即{}αβ)中的第一个下标α=1,2,3,4,5,6表示24个t5轨道分成6组,第二个下标β=1,2,3,4表示每一组包含4个t5轨道。进一步观察表明:每一组的4个t5轨道一定构成码长5最小距离4的置换码,即(5,4)PC,并且这个码字的尺寸是P5,4=5(5-1)=20,(4)式中第一个下标的六个值分别指出在5-RPGCF中包含6个不同的置换码(5,4)PC。
由上述两个特征,可以推知一般情况,第一,对任意n,一个n-RPGCF包含(n-1)!个长度n的tn轨道,每一个tn轨道的第一行第二列的元素和最后一行的第一个元素均是π2,这(n-1)!个tn轨道被分成n-1组,每一组包含(n-2)!个tn轨道,每一组的(n-2)!个tn轨道的第一行第一个元素和对角线上的元素依次是π1,π3,π4,...,πn(不包含π2),所以n-1组的每一组tn轨道可以用第一行第一列位置上的元素命名。第二,对于素数n,从上述n-1组的每一组中抽取合适的一个tn轨道,必定可以形成(n-2)!个不同结构的置换码(n,n-1)PC,每一个置换码(n,n-1)PC的尺寸为Pn,n-1=n(n-1),其中包含单位置换π1=[π1π2...πn]∈Sn的置换码(n,n-1)PC是置换群Sn的一个子群。
上述的第一个结构特征很容易用定理1来加以证明,第二个特征虽然对任意素数n,目前还没有给出证明,但在本专利申请的保护范围内,该结论是正确的。
4)轨道首阵列的定义
针对P5,4=20,码长n=5最小距离d=4的20个置换可以从(4)式中取得,一共有(n-2)!=(5-2)!=6种方式取得,本发明仅以包含恒等元π1=[π1π2π3π4π5]=[12345]的(5,4)PC为例,提出结构设计方法,由于准恒等元π1=[π1π2π3π4π5]中的元素值及其位置索引具有一般特征,即πi,i∈Z5={1,2,3,4,5},因此,下面的结构设计方法对(n-2)!个(n,n-1)PC设计具有普遍意义。
从(4)式中取出第一个下标值为1的4个t5轨道,构成下列置换码(5,4)PC:
如果能够找到设计(5)式中4个t5轨道首置换的方法,用t5对每个首置换操作4次,就能构造出一个(5,4)PC。不失一般性,如果能够找到设计n-1个tn轨道首置换的方法,用tn对每个轨道首置换操作n-1次,就能构造出一个(n,n-1)PC。
定义5[轨道首]:在n-RPGCF中,存在(n-1)!个tn轨道,每一个tn轨道的第一个置换称为轨道首(orbit leader)。
定义6[轨道首阵列]:对任意素数n,基于n-RPGCF排序所产生的置换码(n,n-1)PC具有码势Pn,d=n(n-1),由n-1个tn轨道构成,每一个tn轨道的首置换构成一个轨道首阵列,记为集合L(n,μ,d)=L(n,n-1,n-1)。
例如,由(5)式中的轨道首所构成的轨道首阵列为:
L(5,4,4)=Γ(5,4,4)={π1π2π3π4π5 π3π2π1π5π4 π4π2π5π3π1 π5π2π4π1π3} (6)
根据定理1及其tn轨道的结构特征,用人工枚举方法写出了所有素数n≤31的轨道首置换阵列。由此,总结出对任意素数n的轨道首集合的一般结构特征,发现轨道首集合中的每一个置换具有分段特征,每一个置换的分段数量和每一段中元素的排列服从用等差数列构造置换的规则,见文“Li Peng and Hao Li,Constructions of Permutation Arrayswith arbitrary order n,IPASJ International Journal of Electronics&Communication,vol.2,Issue 9,pp:4-12,Sept.2014”。
5)用等差数列构造轨道首置换阵列
设任意n维置换π=[π1π2...πn]被分解成Λ段,设Π表示对一个置换所有可能分段的集合。假设Π1,...Πk,...,ΠΛ∈Π,(表示空集),Π1U...UΠkU...UΠΛ∈Sn,那么可以得到π=[π1...πi...πn]=[Π1...Πk...ΠΛ]∈Sn。每一段Πk包含L(k)个元素,
等差数列是一个数字序列,在这个序列中连续两个元素的差值保持常数。如果等差数列的初始元素是a1,公差是ρ,那么第n个元素为an=a1+(n-1)ρ。一个定义在Zn={1,2,...,n}上的置换可以用等差数列来排序,这时公差ρ∈[1,n-1]表示置换的分段数量,a1∈[1,ρ]是置换的第一项,an∈[1,n]是置换的最后一项。设i=1,2,...,n表示一个置换中元素的索引,那么由等差数列排序的置换可以表示成[a1a2...ai...an]。
基于等差数列排序的置换具有分段特征,这一点与轨道首集合中每一个置换的结构特征相吻合。在每一段中,每一个位置的元素值可以由一般表达式an=a1+(n-1)ρ准确计算。当ρ=Λ时,意味着置换被分成了ρ段,a1=1表示第一段的第一个元素,a1=2表示第二段的第一个元素,a1=k表示第k段的第一个元素,a1=Λ表示最后一段的第一个元素。设ρ|n表示n能被ρ整除,表示n不能被ρ整除。如果ρ|n为真,那么每一段的长度是b,置换的尺寸是n=bΛ;如果ρ|n不为真,即为真,设r是n/ρ的余数,那么段长有两个值和置换的尺寸为n=b(Λ-r)+(b+1)r,其中r也表示长度为(b+1)的段的数量。本发明规定一段的最小长度是2,那么一个n维置换可得到的段的最大数量是这就确定了等差数列的公差取值范围为
基于等差数列的置换结构:设n,i,j,k,ρ,b,r是正整数,n表示所构造置换的尺寸;i表示该置换中元素的索引;k表示在这个置换中段的索引;j表示任意一段中元素的索引;ρ是段的数量,也是在任意一段中连续元素的公差;r表示n/ρ的余数。在约束ai=k+ρ(j-1)∈[1,n]的条件下,构造矢量Γn(k,j,ρ)=[ai]1≤i≤n,其中对ρ|n,有k=1,2,...,ρ,j=1,2,...,n/ρ和i=(k-1)n/ρ+j∈[1,n];对k=1,2,...,ρ,在前面r段有j=1,2,...,b,b+1,在后面ρ-r段有j=1,2,...,b,在前面r-1段有i=(k-1)(b+1)+j∈[1,n],从后面第ρ-r-1段开始到最后一段需要计算i=(k-1)b+j∈[1,n]并依次递减1。
可以证明基于等差数列的矢量结构是一个n维的置换,见上面提到的“Constructions of Permutation Arrays with arbitrary order n”一文。利用上述基于等差数列的矢量结构,通过对每一个置换中的各分段进行适当排列,可以构造出上述的轨道首集合。
6)码长n最小距离d=n-1的置换码结构设计方法
本发明的主要内容是给出码长为n最小汉明距离为d=n-1的置换码(n,n-1)PC的构造方法,及其置换码(n,n-1)PC码字序列发生器的电路结构。在n-RPGCF排序方式约束下,所使用的初始置换矢量用π=[π1π2...πi...πn]∈Sn(πi,i∈Zn={1,2,...,n})表示。由于在n-RPGCF中,不同排序方式的(n,n-1)PC置换码一共有(n-2)!种,由于π在符号集合Zn={1,2,...,n}上有n!种选择方式,所以,由n-RPGCF排序方式所构造出来的(n,n-1)PC置换码包含n!(n-2)!种选择方式。
为了设计(n,n-1)PC置换码,需要首先给出轨道首置换阵列的结构设计。如果事前构造出维数n的轨道首置换阵列,通过对轨道首置换阵列中的每一个置换使用tn操作n-1次,就可以构成(n,n-1)PC。因此,轨道首置换阵列的结构设计是构造置换码(n,n-1)PC的基础。设轨道首置换阵列用集合符号Γ(n,n-1,n-1)表示,置换码(n,n-1)PC用集合符号Γ(n,n(n-1),n-1)表示,并且有
轨道首置换阵列的结构特征是:阵列尺寸为(n-1)×n;阵列中任意一对相邻元素只准确的出现一次;阵列中任意一行上任意指定的两个不相邻位置上的一对元素不会出现在其它行的对应位置上;每个置换除了第二个位置上的元素值相同外,余下位置上的元素值均不相同。
置换码(n,n-1)PC的结构特征是:置换码(n,n-1)PC由n-1个tn轨道构成,阵列尺寸为n(n-1)×n;任意一对相邻元素,其中包括循环相邻,在阵列中只准确的出现n次;任意一对相邻或非相邻元素在任意一行的任意两个不同位置上,其中包括相邻或非相邻位置,只准确的出现一次;阵列中每一个元素在每一列上均匀的出现n次。
发明内容主要分为两个部分:第一部分是置换码(n,n-1)PC的构造方法,主要包括轨道首置换阵列的构造方法,以及由轨道首置换阵列产生置换码的方法;第二部分是置换码(n,n-1)PC的发生器电路结构设计。
第一部分:置换码(n,n-1)PC的构造方法
轨道首置换阵列的构造方法:设n为任意素数,那么轨道首置换阵列服从下列排列规则
i)第一列按照下标1,3,4,...,n-1,n顺序排列,有n-1个元素,不包含π2,即为[π1π3π4...πn]T其中[]T表示对置换或矩阵的转置运算;
ii)第二列的所有元素是π2;
iii)第三列的排列方式是:第一行元素是π3,第二行元素是π1,余下元素从第三行到最后一行按照逆序πnπn-1...π5π4依次放置,即为[π3π1πnπn-1...π5π4]T,或者按照下标逆序n,n-1,...,4,3,1排列,有n-1个元素,不包含π2,即[πnπn-1...π5π4π3π1]T,在循环上移两次,得到[π3π1πnπn-1...π5π4]T;
iv)第一行所有元素按照自然数顺序排列,或者按照公差为1的等差数列排序,即第一行是单位置换π=[π1π2...πn];
v)第二行所有元素按照自然数顺序的逆序排列,然后用tn作用三次,即(tn)3[πnπn-1...π2π1]=[π3π2π1πnπn-1...π5π4],等号右边是轨道首置换阵列的第二行;
vi)从第三行到最后一行的各行中,元素排列具有分段特征,按照如下规则排列
a)一般规则:轨道首置换阵列的每一行是一个置换,每一行的分段是由等差数列来确定,不同的行是由不同的公差和各分段的不同排列顺序来加以区分。 如上面第一行和第二行公差相同,均为1,但排列顺序不同,第一行是正序,即公差递增加1,第二行是逆序,即公差递减减1,第二行逆序排列还需要被(tn)3作用;
b)各行分段规则:第三行和第n-1行(最后一行)的公差是2,分为两段;第四行和第n-2行(倒数第二行)的公差是3,分为三段;第五行和第n-3行(倒数第三行)的公差是4,分为4段;……;直到第行和第行的公差均为段数为段。
c)各行各分段内元素的排列规则:从第3行到第行的每一行中,各分段中的元素按照公差递减排列;从第行到最后一行的每一行中,各分段中的元素按照公差递增排列。注意无论是递减计算还是递增计算,每段最后一个下标值的计算结果约束在[1,n]的范围内,各段计算到大于n的第一个值则停止计算,并丢弃这个大于n的值;
d)在每一行中各分段的排列规则:从第3行到第行,第一段的第一个元素从当前行的第三个元素起算,每一行中各分段的排列顺序,由各行已知的第二个元素(π2)和已知的第三个元素共同确定。设πx 表示从第三行到第行的第三个元素,也是第一个分段的第一个元素,设πy表示当前段的最后一个元素,设πz表示下一段的第一个元素。显然,π2和πx(第三列的元素,见iii)条规则)都是已知的,由于已知πx可以确定各行第一段的最后一个元素πy,因此πy也是已知的(即πy按照各分段内公差递减求得,见c)条规则),关键是求πz,它满足约束条件πx-π2=πz-πy(或者下标计算x-2=z-y)。由此求出πz(或z),从而可计算从第3行到第行的每一段的起始位置。从第行到最后一行,第一段的第一个元素从π2开始起算,设πu 表示从行到最后一行的第一个元素,它是已知元素(各行第一列元素见i)条规则)。设πv表示当前段的最后一个元素,设πw表示下一段的第一个元素。第一段的最后一个元素πv由第一段的第一个元素π2确定(即πv按照各分段内公差递增求得,见c)条规则),因此,πv是已知的,下一段的第一个元素πw满足πu-π2=πv-πw(或者下标计算u-2=v-w),由此求得πw(或w),从而可计算从第行到最后一行的每一段的起始位置。
当素数n较小时,可以根据上述构造方法,人工列写轨道首置换阵列,当素数n较大时,则需要借助计算机完成轨道首置换阵列的列写。
例2,对于n=7,11,13,17,19,23,29,31,按照上述轨道首置换阵列的排列规则,可以列写轨道首置换阵列L(7,6,6),L(11,10,10),L(13,12,12),L(17,16,16),L(19,18,18),L(23,22,22),L(29,28,28)和L(31,30,30),其中L(31,30,30)演示如下:
由轨道首置换阵列产生置换码(n,n-1)PC的方法:对轨道首置换阵列的每一个置换用tn操作函数分别作用n-1次,即得到由n-1个tn轨道构成的置换码(n,n-1)PC。
第二部分:置换码(n,n-1)PC码字序列发生器电路结构设计
针对任意素数n,本发明所提出的置换码(n,n-1)PC码字序列发生器借用完全循环移位操作函数tn,对轨道首置换阵列的n-1个置换分别进行n-1次循环右移操作,最终得到Pn,n-1=n(n-1)个置换所构成的置换码(n,n-1)PC。所谓(n,n-1)PC码字序列发生器即是生成n(n-1)×n置换阵列的可执行电路。
置换码(n,n-1)PC码字序列发生器的基本工作原理描述如下:首先对任意素数n,根据所述轨道首置换阵列的构造方法构造出n-1个轨道首置换,将其存入存储器。从存储器中取出一个轨道首置换送到虚拟的循环移位寄存器组中,对循环移位寄存器组中的当前置换进行循环右移操作,等效于执行一次tn操作,每执行一次循环右移操作,就得到一个新的置换,将这个新置换存入存储器中。如果对一个轨道首置换进行n-1次循环移位操作,一共得到n-1个新置换,均依次存入存储器中;循环移位寄存器组完成一个tn轨道的生成后,再接受下一个轨道首置换;一直进行下去,直到最后一个轨道首置换经n-1 次tn操作,得到最后一个tn轨道的最后一个置换,将最后一个置换从移存器组送到存储中,这时存储器中包含n(n-1)个置换,它们的最小距离是n-1,这就完成了置换码(n,n-1)PC包含Pn,n-1=n(n-1)个置换的生成工作。
置换码(n,n-1)PC码字序列发生器体系结构:置换码(n,n-1)PC码字序列发生器由三个部分(见图1)组成,存储器、循环移位寄存器组和逻辑控制模块。
所述存储器是可编程存储器要求按照规定的存储码字排列顺序保存置换码(n,n-1)PC的n(n-1)个置换码字,当需要产生不同长度n的置换码(n,n-1)PC时,可以擦除原先码字,再次存储新的码字;所述存储器设置两个控制信号端口Pin和Pout、一个cp时钟脉冲输入端、两个地址输入端口Re和Wr、m位并行输入数据端口Pd-in和m位并行输出数据端口Pd-out;所述存储器能够完成读出和写入一个置换的功能,即对离线生成的、事先存入存储器的轨道首置换阵列,由地址指针Re提供置换读出的首地址;需要存储由循环移位寄存器组新产生的置换时,由地址指针Wr提供置换写入的首地址,Re和Wr共用一组地址线,每次读出与写入的首地址由控制逻辑模块的地址产生器通过ad-in和ad-out端口提供。
所述循环移位寄存器组具备四种操作功能,即在同步时钟脉冲控制下,完成m位并行n位串行左移输入、m位并行n位串行循环右移、m位并行n位串行左移输出和m位并行n位串行循环左移的操作;所述循环移位寄存器组设置两个控制信号端口Rin和Rout,一个异步清零端CR,一个cp时钟脉冲输入端,m位并行数据输入端Rd-in和m位并行数据输出端Rd-out,在m个循环左移回路中设置m个并行控制开关G。
所述逻辑控制模块由计数器一、计数器二、计数器三、计数器四、地址产生器和组合逻辑单元构成,具有如下功能:所述地址产生器用于控制两个地址输出端口ad-out和ad-in分别向存储器的Re和Wr提供需要存储的置换的首地址,读出和写入置换的首地址根据实际要求所规定的码字存储顺序,以及码字长度n、轨道首阵列的置换数量n-1和码字数量n(n-1)来设计,离线设计好需要写入和读出的置换的首地址后,存入地址产生器的寄存器中;所述计数器一用于置换码(n,n-1)PC码字序列发生器的启动,并记录产生一个tn轨道的所有置换所需要的脉冲数,以便控制下一个轨道首置换从存储器读出的时刻,所述计数器一设置异步清零端CR,当计数器一输出0值时,启动发生器,并给地址产生器提供读出首地址的信号,当计数器一输出非0值时,启动计数器二,在计数器一工作的时间内,计数器二和计数器三分时工作;所述计数器二需要与计数器一配合,记录一个轨道首置换从存储器转移到循环移位寄存器组所需要的cp时钟脉冲周期数,通过控制Rin、Rout和Pout端子执行由地址指针Re所指定的置换码字从存储器到循环移位寄存器组的m位并行n位串行左移输入操作,这时循环移位寄存器组中的循环左移开关断开,不执行m位并行n位串行循环左移操作,所述计数器二返回0值时,启动计数器三;所述计数器三记录两种操作的组合所需要的cp时钟周期数,即循环移位寄存器产生一个新置换所需要的cp时钟周期数和循环移位寄存器左移输出一个置换所需要的cp时钟周期数之和,所述计数器三由计数器二启动,当输出0值时,通过控制Rin和Rout使循环移位寄存器组执行m位并行n位串行循环右移操作,产生新置换,当输出非0值时,通过控制Rin、Rout和Pin使循环移位寄存器组同时执行m位并行n位串行循环左移操作和m位并行n位串行左移输出操作,将新产生的置换从循环移位寄存器组转移到存储器中由地址指针Wr所指定的存储单元,这时循环左移回路中的m个并行控制开关G接通;所述计数器四记录第一个轨道首置换的第一个存储码字输入循环移位寄存器到最后一个轨道首的最后一个存储码字输入循环移位寄存器期间所需要的时钟周期数,当轨道首置换阵列的第n-1个置换读出以后,通过使Pout=0来停止存储器的数据读出;所述组合逻辑单元分别对计数器一、计数器二和计数器三的输出信号进行逻辑组合产生存储器和循环移 位寄存器组所需要的端口控制信号Rin、Rout、Pin和Pout,以及产生循环移位寄存器组中循环左移回路的m个并行开关G的控制信号。
存储器的存储结构和工作原理(见图2):存储器可以是可编程存储器PROM,可擦除可编程存储器EPROM、电可擦除可编程存储器E2PROM或闪存(flash memory),其特征在于,所述存储器的存储结构:一个置换的每一个元素用m位二进制表示,如一个置换的第一个元素用m位二进制b1,1,b2,1,...,bm-1,1,bm,1表示,最后一个元素用m位二进制b1,n,b2,n,...,bm-1,n,bm,n表示,其中bi,j(i=0,1,...,m-1,j=0,1,...,n-1)是取值0和1的二进制数值。一个元素的m位二进制定义为存储器的一个存储码字,一个元素的m位存储码字需要占用m个存储单元;一个置换占用n个存储码字,形成n×m个存储单元的阵列;n-1个轨道首置换需要n-1个n×m的置换存储阵列,相当于n(n-1)个存储码字;n(n-1)个置换码字需要占用存储器n2(n-1)个存储码字。所述存储器存储结构可以按照任意方式排列置换码字,这里给出两种置换码字的排列顺序:第一种,轨道首置换阵列依次占据存储器前面的存储空间,由循环移位寄存器组产生的新置换依次占据存储器后面的存储空间;第二种,按照tn轨道的结构存储n(n-1)个码字序列,每个轨道首置换相隔一个tn轨道的n个置换码字存储;所述存储器的工作原理是将轨道首置换阵列事先手动输入存储器,它不受Re和Wr的地址控制,在轨道首置换阵列输入存储器之后,整个置换码发生器才启动工作,由Re提供读出每个轨道首置换的首地址,由Wr提供写入置换的首地址;所述存储器的具体工作过程为:当Pin=1时,一个存储字的m位数据并行输入;当Pout=1时,一个存储字的m位数据并行输出。当Pout=0时,存储器不输出置换,即轨道首置换阵列的最后一个置换输出以后,存储器的m位并行数据输出端断开,此后,在cp时钟脉冲到来时,存储器不在输出数据。
循环移位寄存器组的电路结构和工作原理(见图3):所述循环移位寄存器组的原理电路结构在于n维置换矢量可以用n组m维的二进制序列来表示,每一个n维置换矢量映射成m×n维的二进制数阵列,对应m×n个触发器构成m行n列的触发器阵列,也就是一个n维置换需要m行n列的触发器阵列来操作,m行的每一行由n个触发器形成既能循环右移又能循环左移的寄存器,即n个触发器构成双向移位寄存器,共需要m组这样的双向循环移位寄存器构成m个循环移位寄存器组,其中第一个循环移位寄存器存储n位二进制数b1,1,b1,2,...,b1,n-1,b1,n,第m个循环移位寄存器存储n位二进制数bm,1,bm,2,...,bm,n-1,bm,n(注意循环移位寄存器的存储阵列是m×n,存储器的存储阵列是n×m,二者的尺寸结构不同)。循环移位寄存器组的工作过程描述如下:
过程a——当Rin=1、Rout=0和Pout=1时,在n个cp时钟脉冲期间,将存储器中的第一个轨道首置换转移到循环移位寄存器组中,此期间循环移位寄存器组执行m位并行n位串行左移输入操作,这时循环左移回路的m个并行开关G断开,循环移位寄存器组不执行m位并行n位串行循环左移操作;
过程b——当Rin=1和Rout=1时,在1个cp时钟脉冲期间,循环移位寄存器组执行m位并行n位串行循环右移操作,产生一个新的置换;
过程c——当Rin=0、Rout=1和Pin=1,并且循环左移回路的m个并行开关G接通,在n个cp时钟脉冲期间,循环移位寄存器组完成两个操作:通过m位并行n位串行左移输出操作,将过程b所产生的当前置换转移到存储器中,同时完成当前置换的m位并行n位串行循环左移操作,使过程b所产生的置换得以保留,准备进行下一次循环右移操作;
过程d——针对控制端Rin=1和Rout=1组合与Rin=0、Rout=1和Pin=1组合,这两种组合情况在n+1个cp时钟脉冲内轮流工作:即在1个cp时钟脉冲期间,针对Rin=1和Rout=1组合,循环移位寄存器组执行一次m位并行n位串行循环右移操作,得到一个当前新置换;在接着的n个cp时钟脉冲期间,针对Rin=0、Rout=1和Pin=1组合,循环移位寄存器组同时执行对当前置换的m位并行n位串行左移输出操作和m位并行n位串行循环左移操作,将当前置换从循环移位寄存器组转移到存储器中。如果将在1个cp时钟脉冲和n个cp时钟脉冲的两个时间段内分别执行的过程b和过程c看成一个过程d,过程d需要执行n-1次,等效于对一个轨道首置换完成(tn)n-1操作,产生一个完整的tn轨道,并在存储器中存储了一个完整的tn轨道。
过程e——置换码(n,n-1)PC码字序列发生器对上述过程a到过程d执行n-1次重复操作,使循环移位寄存器组依次处理第二个轨道首置换,直到最后一个轨道首置换,完成一个置换码(n,n-1)PC的产生过程。
逻辑控制模块的工作原理及框图(见图4):所述逻辑控制模块包括计数器一、计数器二、计数器三、计数器四、地址产生器和组合逻辑单元。逻辑控制模块的作用包含两部分,一是对存储器的控制,由地址产生器通过ad-in和ad-out端口向存储器的读出Re和写入Wr端口提供某些置换首地址的寻址地址值,并通过组合逻辑单元将多个计数器的有效信号进行组合为存储器的端口Pin和Pout提供控制信号,以便控制存储器的工作状态;二是对循环移位寄存器组的控制,通过组合逻辑单元将多个计数器信号进行组合,为循环移位寄存器组的端口Rin、Rout和循环左移回路的m个并行开关G提供控制信号,以便控制移位寄存器组的工作状态。
地址产生器的作用是为存储器提供读出和写入某个置换的首地址。从存储器中读出一个置换,主要是指读出轨道首置换,每个轨道首置换的首地址由地址产生器的ad-out端口向存储器的Rd端口提供,n-1个轨道首置换的首地址是按照置换在存储器中的存储格式离线设计好后,事先存入地址产生器的缓存器中。向存储器写入一个置换,主要是指由循环移位寄存器组生成的新置换需要存入存储器中,所述写入置换的首地址由地址产生器的ad-in端口向存储器的Wr端口提供,n-1个tn轨道中第二个置换的首地址按照存储器的存储格式事先计算好后,存入地址产生器的缓存器中,在每个tn轨道内,其余新产生的置换的地址由存储器内的地址指针自动累加得到。
计数器一是modQ1的加1计数器,从0开始加到Q1时返回0,Q1设置为从存储器转移到循环移位寄存器组的两个相邻轨道首置换之间所需要消耗的cp时钟脉冲数;所述计数器一从Q1返回0时,启动计数器二开始计数,停止计数器三的工作,同时控制地址产生器,使ad-out发出一个轨道首置换的首地址给Re,置换码(n,n-1)PC码字序列发生器执行从存储器到循环移位寄存器组的左移输入操作;所述计数器一从0到Q1的递增计数过程中,计数器二只连续工作n个时钟脉冲周期数1次,计数器三连续工作n+1个时钟脉冲数周期数n-1次,在此期间整个置换码(n,n-1)PC发生器完成一个tn轨道的产生和存储工作;所述计数器一利用异步清零端CR置零,来启动整个置换码(n,n-1)PC码字序列发生器进入工作状态;
计数器二为modn的加1计数器,记录n个时钟脉冲后,返回0,并发出一个控制信号,放弃对存储器和循环移位寄存器组所有端口的控制;在计数器二记录n个时钟脉冲期间,输出非零值,始终保持Rin=1、Rout=0、Pout=1和m个并行的开关G断开的工作状态,使整个发生器执行从存储器到循环移位寄存器组的m位并行n位串行左移输入操作;计数器二由计数器一计数到Q1返回0时启动,开始计数,因此在一个tn轨道的产生过程中,计数器二只启动一次,并只工作n个时钟脉冲的时间,完成将轨道首置换从存储器到循环移位寄存器组的转移任务;计数器二返回0值时,启动计数器三开始工作。
计数器三是mod(n+1)的加1计数器,记录n+1个时钟脉冲后,返回0,并重复进行n+1的计数工作n-1次;计数器三由计数器二反回0值时,启动工作,直到计数器一计数到Q1返回0时,停止工作;计数器三的工作原理是:计数器三输出0值时,通过组合逻辑单元, 在1个cp时钟脉冲内,使Rin=1,Rout=1,循环移位寄存器组执行m位并行n位串行循环右移操作,产生一个新置换;当计数器三从1开始记录到第n+1个时钟脉冲期间,计数器三输出非0值,通过组合逻辑单元的设计,始终保持Rin=0、Rout=1和Pin=1,以及使循环左移回路的m个并行开关G接通,并且向地址产生器发出信号,使ad-in输出一个首地址给Wr,置换码(n,n-1)PC码字序列发生器执行从循环移位寄存器组左移输出向存储器输入一个置换的操作,同时循环移位寄存器组执行循环左移操作。
计数器四是modQ2加1计数器,从0开始加1计数到Q2时,返回0,同时发出控制信号,使Pout=0,存储器不再输出轨道首置换;Q2设置为从第一个轨道首置换的第一个存储码字进入循环移位寄存器中到最后一个轨道首置换的最后一个存储码字进入循环移位寄存器之间所需要消耗的cp时钟脉冲周期数。
组合逻辑单元的作用是将计数器一、计数器二和计数器三输出的信号进行逻辑组合,产生Pin、Pout、Rin、Rout四个端口和m个并行G开关的控制信号。
置换码(n,n-1)PC码字序列发生器的启动,首先离线进行前期数据处理和准备工作,设置码长n为某个素数,计算出轨道首置换阵列,设计在存储器中置换码(n,n-1)PC码字序列的存储格式,计算出n-1个轨道首置换的首地址和n-1个tn轨道第二个置换的首地址,将它们依次存入地址产生器的缓存器中,到此完成了发射器的初始化过程;然后对循环移位寄存器组和计数器一进行手动清零,即置二者的CR端口为0,计数器一启动整个发生器进入工作状态。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种码长为n最小距离为d=n-1的置换码(n,n-1)PC码字序列发生器,其特征在于:
所述置换码(n,n-1)PC由n-1个tn轨道构成,置换码的阵列尺寸为n(n-1)×n,其构造方法为:预先构造出每个tn轨道的首置换πα∈Sn,α∈[1,n-1],一共有n-1个首置换,形成(n-1)×n的轨道首置换阵列,通过对轨道首置换阵列中的每一个置换使用tn操作n-1次,构成置换码(n,n-1)PC;所述tn轨道是n×n的方阵,它的每一行和每一列都是一个置换,并且下一行置换是上一行置换循环右移一位得到,第一行置换是最后一行置换循环右移一位得到;所述置换是n个元素π1π2...πn的每一个元素在置换中一一出现,并且每一个元素只出现一次;所述tn操作是将一个置换的第n个元素移到最左边的位置,其它元素依次右移;
所述置换码(n,n-1)PC是在n!个置换的特定n-RPGCF排序方式约束下构造出来的;所述n-RPGCF(Recursive complete Permutation Gray code on Finite state machine)排序方式是利用操作函数集Tright={t2,t3,...,tn-1,tn}中的n-1个操作函数,形成由n!个操作函数所构成的嵌套递归操作函数序列(Sequence Of Function,SOF),将操作函数序列(SOF)作用于一个初始置换πβ∈Sn,β∈[1,n!],得到按照格雷码排列的、用有限状态机执行的n!个置换所形成的完备置换阵列;所述n-RPGCF排序包含(n-1)!个tn轨道,从中选出包含下标为自然数的准单位置换π1=[π1π2...πn]∈Sn的n-1个tn轨道构成置换码(n,n-1)PC;
所述码字序列发生器包括存储器、循环移位寄存器组和逻辑控制模块,其中:
所述存储器用于按照规定的码字排列顺序,保存置换码(n,n-1)PC的n(n-1)个码字,当需要产生不同长度n的置换码(n,n-1)PC时,擦除原先码字,再次存入新产生的码字;所述存储器设置两个控制信号端口Pin和Pout、一个cp时钟脉冲输入端、两个地址输入端Re和Wr、m位并行数据输入端Pd-in和m位并行数据输出端Pd-out;所述存储器能够完成读出和写入一个置换的功能,Re和Wr共用一组地址线,分别提供置换读出和写入的首地址,每次读出或写入的首地址分别由控制逻辑模块的地址产生器通过ad-in和ad-out端口提供;
所述循环移位寄存器组,由m个长度为n的双向循环移位寄存器组构成,所述循环移位寄存器组具备四种操作功能,即在时钟脉冲控制下,执行m位并行n位串行左移输入、m位并行n位串行循环右移、m位并行n位串行左移输出和m位并行n位串行循环左移的操作;所述循环移位寄存器组设置两个控制信号端口Rin和Rout,一个异步清零端CR,一个cp时钟脉冲输入端,m位并行数据输入端Rd-in和m位并行数据输出端Rd-out,在m个循环左移回路中分别设置m个控制开关G;
所述逻辑控制模块由计数器一、计数器二、计数器三、计数器四、地址产生器和组合逻辑单元所组成,执行如下功能:所述地址产生器用于控制两个地址输出端口ad-out和ad-in分别向存储器的Re和Wr提供需要存储的置换的首地址;所述计数器一记录产生一个tn轨道的所有置换所需要的脉冲数,以便控制下一个轨道首置换从存储器读出的时刻,所述计数器一设置异步清零端CR,当计数器一输出0值时,启动发生器,并给地址产生器提供读出首地址的信号,当计数器一输出非0值时,启动计数器二,在计数器一工作的时间内,计数器二和计数器三分时工作;所述计数器二记录一个轨道首置换从存储器转移到循环移位寄存器组所需要的cp时钟脉冲周期数,所述计数器二返回0值时,启动计数器三;所述计数器三记录两种操作的组合所需要的cp时钟周期数,即循环移位寄存器产生一个新置换所需要的cp时钟周期数和循环移位寄存器左移输出一个置换所需要的cp时钟周期数之和,所述计数器三由计数器二启动;所述计数器四记录第一个轨道首置换的第一个存储码字输入循环移位寄存器到最后一个轨道首置换 的最后一个存储码字输入循环移位寄存器期间所需要的时钟周期数,通过使Pout=0来停止存储器的数据读出;所述组合逻辑单元分别对计数器一、计数器二和计数器三的输出信号进行逻辑组合产生存储器和循环移位寄存器组所需要的端口控制信号Rin、Rout、Pin和Pout,以及产生循环移位寄存器组中循环左移回路的m个并行开关G的控制信号。
2.根据权利要求1所述的置换码(n,n-1)PC码字序列发生器,其特征在于,所述存储器具体为:
在存储器中,一个置换的每一个元素用m位二进制表示,占用m个存储单元,称为存储器的一个存储码字;一个置换占用n个存储码字,n-1个轨道首置换占用n(n-1)个存储码字;一个(n,n-1)PC码集合的n(n-1)个置换码字需要占用存储器的n2(n-1)个存储码字;所述存储器对置换码(n,n-1)PC的存储结构是按照事先设定的任意方式排列置换码字,由Re提供读出每个轨道首置换的首地址,由Wr提供写入置换的首地址;所述存储器用于在Pin=1时,一个存储码字的m位数据并行输入;当Pout=1时,一个存储码字的m位数据并行输出;当Pout=0时,存储器不输出置换。
3.根据权利要求1所述的置换码(n,n-1)PC码字序列发生器,其特征在于,所述循环移位寄存器组具体为:
设m表示一个置换的每一个元素所需要的二进制数值的长度,需要m行n列的触发器阵列来操作一个置换,m行的每一行由n个触发器形成既能循环右移又能循环左移的循环移位寄存器,m个循环移位寄存器构成可进行m位并行操作的双向循环移位寄存器组,所述循环移位寄存器组用于完成下述工作过程:
过程a:当Rin=1、Rout=0和Pout=1时,在n个cp时钟脉冲期间,循环移位寄存器组执行m位并行n位串行左移输入操作,将存储器中的一个轨道首置换转移到循环移位寄存器组中,这时循环左移回路的m个并行开关G断开,循环移位寄存器组不执行m位并行n位串行循环左移操作;
过程b:当Rin=1和Rout=1时,在1个cp时钟脉冲期间,循环移位寄存器组执行m位并行n位串行循环右移操作,产生一个新置换;
过程c:当Rin=0、Rout=1和Pin=1,并且循环左移回路的m个并行开关G接通时,在n个cp时钟脉冲期间,循环移位寄存器组完成两个操作:通过m位并行n位串行左移输出操作,将过程步骤b所产生的当前置换转移到存储器中,同时完成当前置换的m位并行n位串行循环左移操作;
过程d:控制端Rin=1和Rout=1组合与Rin=0、Rout=1和Pin=1组合分别对应于过程b和过程c两种情况,它们轮流运行:即在1个cp时钟脉冲期间,循环移位寄存器组完成一次m位并行n位串行循环右移操作,得到一个当前新置换;在接着的n个cp时钟脉冲期间,循环移位寄存器组完成当前新置换的m位并行n位串行左移输出操作和m位并行n位串行循环左移操作,将当前新产生的置换从循环移位寄存器组转移到存储器中,并在循环移位寄存器中保持这个当前新置换,过程d需要执行n-1次,等效于对一个轨道首置换执行(tn)n-1操作,产生一个完整的tn轨道;
过程e:重复n-1次上述的过程a到过程d,使循环移位寄存器组处理第二个轨道首置换,直到第n-1个轨道首置换,由此完成一个置换码(n,n-1)PC的产生过程。
4.根据权利要求1所述的置换码(n,n-1)PC码字序列发生器,其特征在于,所述逻辑控制模块具体为:
所述地址产生器用于为存储器提供读出置换和写入置换的首地址,读出和写入的首地址根据实际要求所规定的置换码字存储顺序,以及置换码字长度n、轨道首阵列的置换数量n-1和码字数量n(n-1),离线计算出需要写入和读出的置换的首地址,事先存入地址产生器的寄存器中;
所述计数器一为modQ1的加1计数器,从0开始加到Q1时返回0,Q1设置为从存储器转移到循环移位寄存器组的两个相邻轨道首置换之间所需要消耗的cp时钟脉冲数;所述计数器一从Q1返回0时,启动计数器二开始计数,停止计数器三的工作,同时控制地址产生器,使ad-out发出一个轨道首置换的首地址给Re,置换码(n,n-1)PC码字序列发生器执行从存储器到循环移位寄存器组的m位并行n位串行左移输入操作;所述计数器一利用异步清零端CR置零,来启动整个置换码(n,n-1)PC码字序列发生器进入工作状态;
所述计数器二为modn的加1计数器,记录n个时钟脉冲后,返回0,并发出一个控制信号,放弃对存储器和循环移位寄存器组所有端口的控制;在计数器二记录n个时钟脉冲期间,输出非零值,始终保持Rin=1、Rout=0、Pout=1和m个并行的开关G断开的工作状态,使整个发生器执行从存储器到循环移位寄存器组的m位并行n位串行左移输入操作;计数器二由计数器一计数到Q1返回0时启动,开始计数,因此在一个tn轨道的产生过程中,计数器二只启动一次,并只工作n个时钟脉冲的时间,完成将轨道首置换从存储器到循环移位寄存器组的转移任务;计数器二返回0值时,启动计数器三;
所述计数器三为mod(n+1)的加1计数器,记录n+1个时钟脉冲后,返回0,并重复进行n+1的计数工作n-1次;计数器三由计数器二返回0值时,启动工作,直到计数器一计数到Q1返回0时,停止工作;计数器三的工作原理是:计数器三输出0值时,通过组合逻辑单元,在1个cp时钟脉冲内,使Rin=1,Rout=1,循环移位寄存器组执行m位并行n位串行循环右移操作,产生一个新置换;当计数器三从1开始记录到第n+1个时钟脉冲期间,计数器三输出非0值,通过组合逻辑单元的设计,始终保持Rin=0、Rout=1和Pin=1,以及使循环左移回路的m个并行开关G接通,并且向地址产生器发出信号,使ad-in输出一个首地址给Wr,置换码(n,n-1)PC码字序列发生器执行从循环移位寄存器组左移输出向存储器输入一个置换的操作,同时循环移位寄存器组执行循环左移操作;
所述计数器四为modQ2加1计数器,从0开始加1计数到Q2时,返回0,同时发出控制信号,使Pout=0,存储器不再输出轨道首置换;Q2设置为从第一个轨道首置换的第一个存储码字进入循环移位寄存器中到最后一个轨道首置换的最后一个存储码字进入循环移位寄存器之间所需要消耗的cp时钟脉冲周期数;
所述组合逻辑单元用于将计数器一、计数器二和计数器三所产生的输出信号进行逻辑组合,产生Pin、Pout、Rin、Rout四个端口和m个并行G开关的控制信号控制开关G的相应的控制信号。
5.根据权利要求1所述的置换码(n,n-1)PC码字序列发生器,其特征在于,所述轨道首置换阵列具体为,对任意素数n,轨道首置换阵列服从如下排列规则:
(一)第一列按照下标1,3,4,...,n-1,n顺序排列,有n-1个元素,不包含π2;
(二)第二列的所有元素是π2;
(三)第三列的排列方式是:第一行元素是π3,第二行元素是π1,余下元素从第三行到最后一行按照逆序πnπn-1...π5π4依次放置,即第三列为[π3π1πnπn-1...π5π4]T;
(四)第一行所有元素按照自然数顺序排列,或者按照公差为1的等差数列排序,即第一行是单位置换π=[π1π2...πn];
(五)第二行所有元素按照自然数顺序的逆序排列,然后用tn作用三次,(tn)3[πnπn-1...π2π1]=[π3π2π1πnπn-1...π5π4],即等号右边是轨道首置换阵列的第二行;
(六)从第三行到最后一行的各行中,元素排列具有分段特征,按照如下规则排列:
i)一般规则:轨道首置换阵列的每一行是一个置换,每一行的分段是由等差数列来确定,不同的行是由不同的公差和各分段的不同排列顺序加以区分;
ii)各行分段规则:第三行和第n-1行的公差是2,分为两段;第四行和第n-2行的公差是3,分为三段;第五行和第n-3行的公差是4,分为4段;……;直到第行和第行的公差均为段数为段;
iii)每一行各分段内元素的排列规则:从第3行到第行的每一行中,各分段内的元素按照公差递减排列;从第行到第n-1行的每一行中,各分段中的元素按照公差递增排列;无论是递减计算还是递增计算,每段最后一个下标值的计算结果约束在[1,n]的范围内,各段计算到大于n的第一个值则停止计算,并丢弃这个大于n的值;
iv)在每一行中各分段的排列规则:从第3行到第行,第一段的第一个元素是当前行的第三个元素,每一行中各分段的排列顺序,由各行已知的第二个元素π2和已知的第三个元素共同确定;设πx,表示从第三行到行的第三个元素,也是第一个分段的第一个元素,设πy表示当前段的最后一个元素,设πz表示下一段的第一个元素,由已知的πx确定各行第一段的最后一个元素πy,这时πy按照各分段内公差递减求得,因此πy也是已知的,πz满足约束条件πx-π2=πz-πy,由此求出从第3行到第行的每一段的起始位置的元素值πz;从第行到第n-1行,第一段的第一个元素是π2,设πu,n表示从第行到第n-1行的第一个元素,它是已知的各行第一列元素;设πv表示当前段的最后一个元素,设πw表示下一段的第一个元素;第一段的最后一个元素πv由第一段的第一个元素π2确定,即πv按照各分段内公差递增求得,因此,πv是已知的,下一段的第一个元素πw满足πu-π2=πv-πw,由此求得πw,根据上述方法求出从第行到第n-1行的每一段的起始位置的元素值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510073414.1A CN104836634B (zh) | 2015-02-12 | 2015-02-12 | 码长n最小距离n‑1的置换码构造方法和码字序列发生器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510073414.1A CN104836634B (zh) | 2015-02-12 | 2015-02-12 | 码长n最小距离n‑1的置换码构造方法和码字序列发生器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104836634A CN104836634A (zh) | 2015-08-12 |
CN104836634B true CN104836634B (zh) | 2018-02-23 |
Family
ID=53814296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510073414.1A Active CN104836634B (zh) | 2015-02-12 | 2015-02-12 | 码长n最小距离n‑1的置换码构造方法和码字序列发生器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104836634B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022278A (zh) * | 2019-03-06 | 2019-07-16 | 华中科技大学 | 通信调制系统中(n,n(n-1),n-1)-PGC的编码方法及编码器 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105680992B (zh) * | 2016-01-26 | 2019-05-03 | 华中科技大学 | 一种通信信道编码方法及置换码集合产生器 |
CN111384970B (zh) * | 2018-12-29 | 2022-04-15 | 大唐移动通信设备有限公司 | 一种译码方法、装置及通信设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1363144A (zh) * | 2000-02-17 | 2002-08-07 | 三星电子株式会社 | 在码分多址通信系统中指定公用分组信道的设备和方法 |
CN101044709A (zh) * | 2004-11-16 | 2007-09-26 | 英特尔公司 | 用于空间交织多个空间流的多输入多输出正交频分复用发射机以及对应的方法 |
-
2015
- 2015-02-12 CN CN201510073414.1A patent/CN104836634B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1363144A (zh) * | 2000-02-17 | 2002-08-07 | 三星电子株式会社 | 在码分多址通信系统中指定公用分组信道的设备和方法 |
CN101044709A (zh) * | 2004-11-16 | 2007-09-26 | 英特尔公司 | 用于空间交织多个空间流的多输入多输出正交频分复用发射机以及对应的方法 |
Non-Patent Citations (2)
Title |
---|
An Enumerative Method for Runlength-Limited Codes: Permutation Codes;Suparna Datta and Steven W. McLaughlin;《IEEE》;19990930;全文 * |
Implicit Permutation Enumeration Networks and Binary Decision Diagrams Reordering;Stergios Stergiou;《IEEE》;20110609;全文 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022278A (zh) * | 2019-03-06 | 2019-07-16 | 华中科技大学 | 通信调制系统中(n,n(n-1),n-1)-PGC的编码方法及编码器 |
Also Published As
Publication number | Publication date |
---|---|
CN104836634A (zh) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Prime codes with applications to CDMA optical and wireless networks | |
McNulty et al. | Inherently nonfinitely based finite algebras | |
CN102968290B (zh) | 一种异构轻量级的真随机数产生器 | |
CN104836634B (zh) | 码长n最小距离n‑1的置换码构造方法和码字序列发生器 | |
CN102694625A (zh) | 一种循环冗余校验辅助的极化码译码方法 | |
CN108768619B (zh) | 一种基于环形振荡器的强puf电路的工作方法 | |
CN101438501A (zh) | 一种产生交织器/解交织器的方法及其应用 | |
CN102067640B (zh) | 信道交织方法和信道交织器 | |
CN101330487B (zh) | 一种符号交织方法、装置及终端设备 | |
CN109889205A (zh) | 编码方法及系统、解码方法及系统、编解码方法及系统 | |
Gad et al. | Constant-weight Gray codes for local rank modulation | |
CN105680992B (zh) | 一种通信信道编码方法及置换码集合产生器 | |
CN103299576A (zh) | 比特生成装置以及比特生成方法 | |
CN111130646B (zh) | 一种抗时延抖动的高速率mppm星座映射方法 | |
CN106253913A (zh) | 极化码的块编码器及其编码方法 | |
CN100495929C (zh) | 同相移位方式的制约竞争计数码电路 | |
US7185268B2 (en) | Memory system and method for use in trellis-based decoding | |
CN110401489A (zh) | 一种光纤信号产生方法、装置及系统 | |
CN110022278B (zh) | 通信调制系统中(n,n(n-1),n-1)-PGC的编码方法及编码器 | |
CN110855319A (zh) | 一种生成低碰撞区跳频序列集的方法 | |
EP2827516A1 (en) | Scrambling code generation method, apparatus and scrambling code processing apparatus | |
CN111835670B (zh) | 一种n维幅度相位联合调制方法及调制器 | |
CN110022187A (zh) | 通信调制系统中(n,n(n-1),n-1)-PGC代数解码方法及解码器 | |
Daemen et al. | A hardware design model for cryptographic algorithms | |
Kardontchik | 4D Encoding in Level-One's Proposal for 1000BAS-T |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |