一种基于扩展汉明码的二维乘积码编码装置及编码方法 |
|||||||
申请号 | CN201510073415.6 | 申请日 | 2015-02-11 | 公开(公告)号 | CN104601180A | 公开(公告)日 | 2015-05-06 |
申请人 | 东南大学; | 发明人 | 张萌; 李保申; 李红; 郭仲亚; 黄成; 田茜; | ||||
摘要 | 本 发明 公开了一种基于扩展汉明码的二维乘积码编码装置及编码方法。该编码装置包括:信息输入缓存模 块 、编码信息存储 电路 模块、子码编码 逻辑电路 模块、编码控制电路模块,子码编码逻辑电路模块包括:可重构行码编码运算电路和可重构列码编码运算电路。该装置通过采用寄存器组进行信息存储,再利用编码运算电路模块进行二维乘积编码,同时通过编码控制电路模块对每个时序进行控制使得行、列编码同步进行以及在编码信息输出的同时进行双重校验位的生成,大大降低了编码延时,提高编码电路的吞吐率。 | ||||||
权利要求 | 1.一种基于扩展汉明码的二维乘积码编码装置,其特征在于,该装置包括:信息输入缓存模块、编码控制电路模块、编码信息存储电路模块和子码编码逻辑电路模块,所述信息输入缓存模块用于利用FIFO存储器将编码原始信息进行存储并输出编码数据流至所述编码信息存储电路模块,同时输出编码使能信号至所述编码控制电路模块;所述编码控制电路模块,用于在所述编码使能信号有效后启动电路内部的计数器,并在时钟周期内利用选择器控制信号和地址控制信号对所述编码信息存储电路模块进行控制,最终输出编码信息和编码输出使能信号;所述编码信息存储电路模块,用于在所述时钟周期内对所述编码数据流进行存储,然后根据所述选择器控制信号和所述地址控制信号利用所述子码编码逻辑电路模块进行子码编码,并将信息位数据流和校验位数据流输送至所述编码控制电路模块用于输出所述编码信息。 |
||||||
说明书全文 | 一种基于扩展汉明码的二维乘积码编码装置及编码方法技术领域背景技术[0002] 无线通信是把要发送的消息以某种形式进行处理,通过天线射频技术将要发送的信息可靠准确的发送给接收方。发送信息传输的可靠性、准确性一直是无线通信技术所追求的目标。纠错编码技术是为了提高无线通信系统传输可靠性、降低信道噪声的干扰而对原始发送信息进行一定数学运算的技术。纠错编码又称信道编码,在发射端根据一定的数学算法在发送的原始信息码元后加入一定量的校验码元,在接收端根据相应的解码算法利用校验码字实现对信息码字的错误发现及纠正,进而提高原始信息码元的传输准确性。在纠错编码技术中,待发送的码字为信息码字,经编码之后添加的码字为校验码字,又称冗余信息。纠错编码的目的为以最少的编码代价换取最高的纠错性能和编码增益以提高系统传输的有效性及可靠性。 [0003] 乘积码是一种纠错性能优异的纠错编码。乘积码由Elias于1954年提出,它是香农信息理论提出后第一个在非零码率时可以实现无误码传输的纠错编码。由于当时的硬件水平限制了其应用。1998年Pyndiah等人在Chase算法的基础上提出了一种线性分组码的软输入软输出译码算法,并将其应用于乘积码译码中。其纠错性能优异,且算法复杂度低,为乘积码的广泛应用打下了坚实的理论基础。 [0004] 乘积码以其出色的纠错性能和较低的编译码复杂度目前已在国内外吸引了众多研究学者的眼球。美国、日本以及欧洲一些国家已经将乘积码技术应用在卫星通信上。美国的AHA、ALTERA、XINLNX等公司己经开发了可灵活编程的乘积码编译码芯片,国内还没有这方面的专用芯片。乘积码技术是当前数字通信中的重要技术,引起通信界的极大关注。 [0005] 乘积码可以根据子码数目分为二维、三维及多维乘积码,在实际应用中以二维乘积码为主。乘积码在编码时,按照行列编码的方式进行。因此,乘积码编码器需要一个缓存专门用来存放原始信息和编码信息,最后再进行编码输出。乘积码根据其子码的种类不同,可以分为多种类型,如子码为RS码、LDPC码及扩展汉明码等,亦或是两种码子的合成。在硬件设计时,乘积码的编码延时是一个主要得技术难题。因此,提高编码效率降低编码延时同时降低硬件消耗是需要着重研究的内容。 [0006] 乘积码在编码上采用行列编码的方式,这意味着对于不同子码构成的二维乘积码,其编码要经过行列两个过程,其编码延时很大;同时,对于传统编码电路的硬件设计,在信息存储上采用读写存储器RAM进行数据信息的存储于读取,RAM分为双口和单口RAM,双口的读写可以同时进行,但是一次只能读出一个地址位的信息,因此采用RAM存储的乘积码编码器具有很大延时。当存储量较大时,采用寄存器与RAM的硬件消耗是一样的因此可以在硬件设计中采用寄存器组来实现数据的存储与读取。其在吞吐率方面有很大优势。 发明内容[0007] 发明目的:为了解决现有技术中编码延时大的问题,本发明提供了一种基于扩展汉明码的二维乘积码编码装置及编码方法,通过采用寄存器组进行数据的存储与读取,同时根据乘积码的码字参数进行寄存器的大小及个数的设定,结合相应的时序调度算法,实现了行列编码同步进行,缩短了编码延时,提高了编码电路吞吐率。 [0008] 技术方案:为实现上述目的,本发明提供的基于扩展汉明码的二维乘积码编码装置,包括:信息输入缓存模块、编码控制电路模块、编码信息存储电路模块和子码编码逻辑电路模块,所述信息输入缓存模块用于利用FIFO存储器将编码原始信息进行存储并输出编码数据流至所述编码信息存储电路模块,同时输出编码使能信号至所述编码控制电路模块;所述编码控制电路模块,用于在所述编码使能信号有效后启动电路内部的计数器,并在时钟周期内利用选择器控制信号和地址控制信号对所述编码信息存储电路模块进行控制,最终输出编码信息和编码输出使能信号;所述编码信息存储电路模块,用于在所述时钟周期内对所述编码数据流进行存储,然后根据所述选择器控制信号和所述地址控制信号利用所述子码编码逻辑电路模块进行子码编码,并将信息位数据流和校验位数据流输送至所述编码控制电路模块用于输出所述编码信息。 [0009] 其中,根据扩展汉明码的编码规则,确定了寄存器的大小和个数,所述编码信息存储电路模块包括:所述编码信息存储电路模块包括:四个选择器、含有k个k位的信息位寄存器的信息位寄存器组、含有k个n-k位的行校验寄存器的行校验寄存器组、含有k个n-k位的列校验寄存器的列校验寄存器组、含有n-k个n-k位的双重校验寄存器的双重校验寄存器组,每个寄存器组的输入端都连接相应选择器的输出,其中n为所述编码信息子码长度,k为所述信息位数据的长度。 [0010] 其中,根据编码信息的长度以及校验位的个数进行时序调度的计算,得出所述编码控制电路模块内部计数器的计数范围为1~n+2k。 [0011] 其中,所述子码编码逻辑电路模块包括: [0012] 可重构行码编码运算电路,用于对所述编码信息存储电路模块存储的行信息数据流进行扩展汉明码编码,并将编码后的行校验数据流反馈给所述编码信息存储电路模块进行存储; [0013] 可重构列码编码运算电路,用于对所述编码信息存储电路模块存储的列信息数据流进行扩展汉明码编码,并将编码后的列校验数据流反馈给所述编码信息存储电路模块进行存储; [0014] 所述可重构列码编码运算电路和所述可重构行码编码运算电路采用相同的电路结构。 [0015] 相应地,本发明还提供了一种基于扩展汉明码的二维乘积码编码方法,该方法包括以下步骤: [0016] (1)信息输入缓存模块利用FIFO存储器将编码原始信息进行存储并输出编码数据流至编码信息存储电路模块,同时输出编码使能信号至编码控制电路模块; [0017] (2)所述编码控制电路模块在所述编码使能信号有效后启动电路内部的计数器,并在时钟周期内利用选择器控制信号和地址控制信号对所述子码编码逻辑电路模块进行控制; [0018] (3)所述编码信息存储电路模块在所述时钟周期内对所述编码数据流进行存储,然后根据所述选择器控制信号和所述地址控制信号利用子码编码逻辑电路模块进行子码编码,并将所得到的校验位信息进行存储,以及将信息位数据流和校验位数据流输送至所述编码控制电路模块。 [0019] (4)所述编码控制电路模块根据所述信息位数据流和所述校验位数据流得到完整的编码信息并进行输出,同时输出编码输出使能信号。 [0020] 其中,所述编码控制电路模块内部计数器的计数范围为1~n+2k,其中n为所述编码信息长度,k为所述信息位数据的长度。 [0021] 其中,所述编码信息存储电路模块包括:选择器、信息位寄存器组、行校验寄存器组、列校验寄存器组、双重校验寄存器组,每个寄存器组分别与对应的选择器连接,所述子码编码逻辑电路模块包括可重构行码编码运算电路和可重构列码编码运算电路,步骤(3)中所述编码信息存储电路模块在所述时钟周期内进行数据存储、子码编码和数据流的输送,包括以下步骤: [0022] 计数值为1~k:依次将所述编码数据流存入编码信息存储电路模块中的信息位寄存器组中,所述信息位寄存器组包含k个k位的信息位寄存器; [0023] 计数值为k+1~2*k:将信息位寄存器组中存储的数据作为行信息数据流依次送至所述可重构行码编码运算电路进行编码得到行校验位数据,并将所述行校验数据依次存储至行校验寄存器组中,所述行校验寄存器组包含k个n-k位的行校验寄存器;同时,将信息位寄存器组的比特数据从最高位到最低位依次取出,且信息位寄存器1的比特位为最高位,信息位寄存器k的相同比特位为最低位合并后作为列信息数据流依次送至所述可重构列码编码运算电路进行编码得到列校验位数据,并将所述列校验位数据依次存储至列校验寄存器组,所述列校验寄存器组包含k个n-k位的列校验寄存器; [0024] 计数值为2*k+1~n+k:每计数一次将所述列校验寄存器组的最高位至最低位作为行信息数据流送入所述重构行码编码运算电路,并将得到的行信息数据流依次存入双重校验寄存器组,所述双重校验寄存器组包含n-k个n-k位的双重校验寄存器; [0025] 同时,在此计数范围内,同步进行编码信息的输出,将信息位寄存器中存储的数据与对应的行校验寄存器中存储的数据,前者作为高位后者作为低位,合并为一个n比特的编码数据送至所述编码控制电路模块,所述编码控制电路模块输出编码信息,同时编码输出使能有效; [0026] 计数值为n+k+1~n+2*k:在计数范围n+k+1~2*k内,继续将所述编码信息存储电路模块中的编码信息输出;在计数范围2*k+1~3*k内,输出的编码信息由信息位寄存器中的数据与行校验寄存器中的数据合并而成的并行n比特数据;在计数范围3*k+1~n+2*k内,输出的编码信息由列校验寄存器和双重校验寄存器中的数据合并而成的并行n比特数据。 [0027] 有益效果:本发明的基于扩展汉明码的二维乘积码编码装置和编码方法,采用寄存器组代替RAM存储器进行数据的存储和读取,避免了因RAM进行数据的存储与读取时所带来的编码延时;同时,根据乘积码的码字参数进行寄存器的大小及个数的设定,并结合相应的时序调度算法,实现了行列编码同步进行,缩短了编码延时,并且实现了双重编码和编码输出的同步,进一步缩短了整个编码控制过程的延时,提高了编码电路吞吐率。附图说明 [0029] 图2为二维乘积码的编码矩阵示意图; [0030] 图3为本发明的基于扩展汉明码的二维乘积码编码装置图; [0031] 图4为实施例中基于(8,4)扩展汉明码的二维乘积码编码装置图; [0032] 图5(a)为实施例中基于(8,4)扩展汉明码的乘积码编码信息存储矩阵;图5(b)为图5(a)中存储矩阵的编码输出时序图。 具体实施方式[0033] 下面结合实施例对本发明作更进一步的说明。 [0034] 图1中,无线通信系统的发射端对信源的原始信号先进行信道编码,再进行调制映射,并通过数模转换,最后利用天线发送射频信号,接收端的天线接收射频信号,随后进行模数转换和解调映射,最后进行相应地信道解码最终得到发射信号信息,本发明中仅涉及信道编码部分,即图中的乘积码编码,采用扩展汉明码作为子码进行编码。 [0035] 对于子码均为同一扩展汉明码的二维乘积码,在编码时,假设其子码码字参数为m(n,k,d),其中n=2,m为正整数,k=n-1-m,表示信息比特位数,d=4表示最小码子距离,为固定值,实际应用中m多大于2。由于扩展汉明码也为线性分组码的一种,因此其编码可以由生成矩阵完成,先将待编码的原始信息进行分组,每组k bit,记为S,则S编码之后的信息N=S*G,G为生成矩阵,N为含有校验位的n比特编码信息。 [0036] 子码编码完毕后,由原来的k bit长度变为n比特长度,在组成编码码字时,k bit原始信息放在前面,后面是(n-k)bit的校验信息。因此,对于由子码参数为(n,k,d)的扩展汉明码构成的二维乘积码,其存储矩阵的大小为n*n。 [0037] 图2中,矩阵的行代表二维乘积码的行码,列代表列码,矩阵主要包括四大部分:信息矩阵,行校验矩阵,列校验矩阵和双重校验矩阵,分别对应相应的数据信息。 [0038] 乘积码在编码时,可以按照先行后列也可以按照先列后行的编码方式。本发明中采用行列信息位同步编码,然后进行校验位编码的方式,可以缩短行列其中之一的编码延时,进而提高编码效率。 [0039] 图3中,基于扩展汉明码的二维乘积码编码装置,包括:信息输入缓存模块、编码控制电路模块、编码信息存储电路模块和子码编码逻辑电路模块,子码编码逻辑电路模块内部主要包括可重构行码编码运算电路和可重构列码编码运算电路。 [0040] 在进行编码之前,编码原始信息首先送入信息输入缓存模块,经过此电路将编码原始信息转换为编码数据流送入编码信息存储电路。编码原始信息的位宽可能与乘积码的子码参数不一样,所以需要利用缓存将其转换为与乘积码子码参数,即子码信息位长度相一致的位宽数据流。信息输入缓存由一个可变位宽FIFO构成,其大小可以由编码原始信息的总量而定。在所有的编码原始信息存储完毕之后,信息输入缓存按k bit位宽,输出编码数据流至编码信息存储电路模块,同时输出编码使能信号至编码控制电路模块。 [0041] 编码控制电路模块内部有一个计数器,在编码使能信号有效后启动,其计数范围为1~(n+2k),(n+2k)个时钟周期循环计数一次,每循环计数一次,代表当前编码和输出完成一次。编码输出完毕后,计数器为0,即可进入下一次的信息输入和编码。 [0042] 子码编码逻辑电路模块内部主要包括可重构行码编码运算电路和可重构列码编码运算电路,由于行码列码采用同一扩展汉明码,因此二者电路结构相同,均为同一扩展汉明码的编码运算电路,该电路可完成码长小于n的任意扩展汉明码的编码。 [0043] 编码信息存储电路模块包括以下部分:(1)四个选择器:选择器1,选择器2,选择器3,选择器4;(2)k个k位的信息位寄存器,即信息位寄存器组;(3)k个(n-k)位的行校验寄存器,即行校验寄存器组;(4)k个(n-k)位的列校验寄存器,即列校验寄存器组;(5)(n-k)个(n-k)位的双重校验寄存器,即双重校验寄存器组。每个寄存器的输入端都连接相应选择器的输出。编码数据流先送入选择器1,选择器1根据编码控制电路的选择器1控制信号和地址控制信号将编码数据流存入相应信息位寄存器。在所有的信息位数据存储完毕,亦即信息位寄存器组存满之后,开始进行校验位的编码。编码完毕之后,编码控制电路从编码信息存储电路中取出整个码字按行输出编码完整信息。 [0044] 整个装置的时序调度流程如下: [0045] 第1步:编码原始信息输入位宽变换FIFO,FIFO存储完毕之后,按照码字参数k比特进行编码数据流的并行输出,至编码信息存储电路模块,同时输出编码使能信号至编码控制电路模块。 [0046] 第2步:编码使能信号有效后,编码控制电路启动其内部的计数器,计数范围为1~(n+2*k),进行编码阶段控制,编码信息存储电路模块根据编码控制器的选择器控制信号和地址控制信号进行相应数据的存储,并输出编码之后的信息,其具体的时序调度控制操作如下: [0047] (1)计数值为1~k:依次将编码数据流存入信息位寄存器1至信息位寄存器k。 [0048] (2)计数值为k+1~2*k:启动子码编码逻辑电路模块,将信息位寄存器1~k数据作为行信息数据流依次送至行码编码运算电路进行编码,行校验数据流依次存储至行校验寄存器1~行校验寄存器k;同时,将信息位寄存器1~k的最高位(共k比特)、次高位(共k比特)直至最低位(共k比特)的比特数据取出,且信息位寄存器1的比特位为最高位,信息位寄存器k的相同比特位为最低位合并,作为列信息数据流依次送至列码编码运算电路进行编码,列校验数据流依次存储至列校验寄存器1~列校验寄存器k。 [0049] (3)计数值为2*k+1~(n+k):在此期间有两个操作同时进行。 [0050] 操作一:行码编码运算电路继续工作,列码编码运算电路停止工作。同时,每计数一次将列校验寄存器1~k的最高位(共k比特)、次高位(共k比特)直至最低位(共k比特)作为行信息数据流送入行码编码运算电路,并将行校验信息流依次存入双重校验寄存器1~双重校验寄存器n-k。 [0051] 操作二:在此计数范围内,同步进行编码信息的输出,即将信息位寄存器1与行校验寄存器1,前者作为高位后者作为低位,合并为一个n比特的编码数据送至编码控制电路,编码控制电路输编码信息,同时编码输出使能有效。 [0052] (4)计数值为(n+k+1)~(n+2*k):此时,编码信息已输出(n-k)组,每组n比特,在此计数范围内,继续讲编码信息存储电路中的编码信息输出。在计数范围为(2*k+1~3*k)内,输出的信息为由信息位寄存器中的数据与行校验寄存器中的内容组合而成,而计数值在(3*k+1~n+2*k)时,输出的则为由列校验寄存器和双重校验寄存器中的数据合并的而成的并行n比特数据。其合成准则是这样的:计数到3*k+1时,将列校验寄存器1~k的最高位即第k位依次取出,以列校验寄存器1的第k位为最高位,列校验寄存器k的第k位为最低位组成k比特信息C1,C1作为高位与双重校验寄存器1组成n比特信息,输出至编码控制电路,并由其输出编码信息。计数到3*k+2时,将列校验寄存器1~k的次高位即第k-1位依次取出,以列校验寄存器1的第k-1位为最高位,列校验寄存器k的第k-1位为最低位组成k比特信息C2,C2作为高位与双重校验寄存器2的比特信息组成n比特信息,输出至编码控制电路,并由其输出编码信息。依次类推,直至列校验寄存器组的最低位比特信息与双重校验寄存器组(n-k)的比特信息组成n比特信息输出。 [0053] 以上即为编码装置的工作流程,编码运算电路在计数值为(2*k~n+2*k-1)之间时,编码输出使能有效,其余时间为无效。 [0054] 由上可以看出,本发明的编码装置完成一整个周期的编码只需要(n+2*k)个时钟周期,在此时间之内即可完成n*n比特的数据的输出。 [0055] 本实施例中,以编码信息的子码码长n=8,信息位长度k=4为例,图4为行码与列码均为(8,4)扩展汉明码的二维乘积码编码装置图。 [0056] 在此装置中,编码数据流以4比特位宽送入编码信息存储矩阵,编码矩阵为8*8的矩阵,其中包含4个4比特位宽的信息寄存器,4个4比特位宽的行校验寄存器,4个4比特位宽的列校验寄存器,4个4比特位宽的双重校验寄存器,寄存器中存储矩阵元素信息。 [0057] 在编码开始时,信息矩阵存放编码信息,耗时k=4个周期;然后再经过k=4个周期,行校验矩阵和列校验矩阵中都存满了校验信息;在进行双重校验编码时,同步进行行编码信息的输出,具体为首先输出第一行的信息,即由信息位寄存器1与行校验寄存器1组成一行,进行输出,在n-k=4个时钟周期之后,输出了4行的编码信息,同时双重校验信息编码完毕;在接下来的k=4个时钟周期内,继续进行行编码信息的传输。 [0058] 此编码装置在整个时序调度周期内的具体流程如下: [0059] 第一步:将信息经过位宽变换FIFO进行数据比特位宽的变换,转化为4比特并行数据输入值编码信息存储电路。同时向编码控制电路输入编码使能信号。 [0060] 第二步:编码控制电路内部的计数器在收到编码使能信号之后开始计数,计数范围为1~16。每一个计数阶段有以下操作: [0061] (1)计数值为1~4,信息位寄存器依次存储原始编码信息。 [0062] (2)计数值为4~8:行码编码与列码编码同步进行,并将编码之后的校验信息存入至行校验寄存器1~4,列校验寄存器1~4。 [0063] (3)计数值为9~12:双重校验编码开始,将列校验寄存器1~4的第4位(最高位)取出组成4比特数据,进行编码,编码之后的校验信息存入至双重校验寄存器1中。如此进行,直至4个双重寄存器全部存满。同时进行第1~4行编码矩阵的信息输出。信息位寄存器为高4位,行校验信息寄存器为低4位输出。 [0064] (4)计数值为13~16:进行列校验信息与双重校验信息的输出,具体输出操作如图5所示,图5(a)和图5(b)中,信息矩阵中的信息以I为开头,行校验信息以R为开头,列校验信息以C为开头,双重校验信息以D为开头。在编码矩阵中,各数据存放如该图所示,输出时按行输出,则对应的输出编码信息依次为矩阵每一行的信息。 [0065] 如此,经过16个时钟周期,编码与编码输出全部完成,共输出64比特信息。 |