[go: up one dir, main page]

CN102868411A - Crc逆序串行解码算法、扩展的并行逆序解码方法及装置 - Google Patents

Crc逆序串行解码算法、扩展的并行逆序解码方法及装置 Download PDF

Info

Publication number
CN102868411A
CN102868411A CN2012104012136A CN201210401213A CN102868411A CN 102868411 A CN102868411 A CN 102868411A CN 2012104012136 A CN2012104012136 A CN 2012104012136A CN 201210401213 A CN201210401213 A CN 201210401213A CN 102868411 A CN102868411 A CN 102868411A
Authority
CN
China
Prior art keywords
crc
decoding
center dot
centerdot
sequence
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.)
Granted
Application number
CN2012104012136A
Other languages
English (en)
Other versions
CN102868411B (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.)
Changshu Institute of Technology
Original Assignee
Changshu Institute of Technology
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 Changshu Institute of Technology filed Critical Changshu Institute of Technology
Priority to CN201210401213.6A priority Critical patent/CN102868411B/zh
Publication of CN102868411A publication Critical patent/CN102868411A/zh
Application granted granted Critical
Publication of CN102868411B publication Critical patent/CN102868411B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种CRC逆序串行解码算法、扩展的并行逆序解码方法及装置,采用后进先出LIFO的方式,不仅能够实现零初态CRC编码的正确解码,并且能够实现非零初态的CRC编码的正确解码,能够一个时钟对多个输入比特进行快速地CRC解码。与现有技术相比,本发明充分利用了CRC编解码的特点,逆序解码,无须补零操作,能够对寄存器任意初态的CRC编码进行解码;采用并行结构,运算速度快,实现了鲁棒的、高速可变并行长度的CRC解码,便于硬件集成与实现,节省了电路系统开销,提高了系统的解码效率。

Description

CRC逆序串行解码算法、扩展的并行逆序解码方法及装置
技术领域
本发时涉及通信技术领域中编解参天技术,其涉及一种循环冗余校验(CRC,Cyclic Redundancy Check)解码算法、逆序解码方法及装置。
背景技术
CRC编码是一种常用的错误检验码,宽带码分多址/时分-同步码分多址/长期演进系统(WCDMA/TD-SCDMA/LTE)等各版本的协议中都使用了多种不同长度的CRC编码,以保证各种传输格式下信息传输的正确性。
CRC编码是一种系统循环码,编码后的数据分为信息序列和校验序列两部分,信息序列在左,校验序列在右。CRC编码作为一种循环码,其校验序列每循环一位,都可能作为某一特定消息序列的校验序列。
一般编解码原理:
发送信息序列b0b1…bn-1bn对应多项式为M(X)=b0Xn+b1Xn-1…+bn-1X+bn,生成多项式G(X)=pmXm+pm-1Xm-1…+p1X+p0,校验序列R(X)=M(X)×Xm mod G(X)对应多项式为R(X)=rm-1Xm-1+rm-2Xm-2…+r1X+r0,发送序列MS(X)=M(X)×Xm+R(X);接收序列MR(X),如果无差错接收MR(X)=MS(X),则MR(X)mod G(X)=0,否则出错。
由上可知生成CRC校验位和对接收序列进行校验都通过以G(X)为模做除法的方式来实现;除法电路通常使用反馈移位寄存器来实现,图1为现有m级反馈移位寄存器来实现CRC编码器的结构示意图,寄存器初始状态一般情况下为全零(即零初态),G1、G2为两个开关电路,当G1闭合、G2断开时,生成校验序列;当G1断开、G2闭合时,输出校验序列。图2为现有m级移位寄存器来实现解码的CRC解码器结构示意图,解码器为零初态,当G1闭合、G2断开时,进行差错校验;当G1断开、G1闭合时,输出校验结果,全零序列表示接收序列无差错。
现行CRC解码器多数都是基于该原理实现的,采用该结构的CRC解码器是一种先进先出(FIFO)的正序处理方式;该解码器可以实现零初态的解码,但无法完成非零初态CRC编码的信道差错判定工作。
现有技术也有采用并行解码的方式,如申请号为200910085524.4、名称为“快速循环冗余校验编码方法及装置”,其公开了一种并行顺序解码的方式,该种方式限定解码序列长度应为并行运算位宽的整数倍,故当输入比特流个数不是并行位宽的整数倍时,需要根据输入比特流长度在其前面添加一定数量的零比特位构成解码序列,处理方法相对复杂,影响处理速度。
发明内容
针对现有技术中存在的不足,本发明要解决的技术问题是提供一种CRC逆序串行解码算法和依据该逆序串行解码算法扩展的并行逆序解码方法,其采用后进先出(LIFO)的方式,不仅能够实现零初态CRC编码的正确解码,并且能够实现非零初态的CRC编码的正确解码,能够一个时钟对多个输入比特进行快速地CRC解码。
为达到上述目的,本发明所提供的技术方案为:一种CRC逆序串行解码算法,包括如下步骤:
A:设置(p0,p1…,pm-1,pm)(p0=1、pm=1)为生成多项式G(X)=pmXm+pm-1Xm-1…+p1X+p0的低次项到高次项的系数,设置t时刻寄存器i的状态序列为xm(t)xm-1(t)...x2(t)x1(t),设置t时刻输入的处理数据为b(t),X(t+1)为CRC编码电路由信息序列b(t)生成t+1时刻的寄存器状态,对应状态序列为xm(t+1)xm-1(t+1)...x2(t+1)x1(t+1);
B:定义多项式G(X)的i次项的系数pi为m×1阶矩阵P′的第i行第1列,其中i=1,2,...m-1,P′的第m行第1列为1,即 P ′ = p 1 p 2 · · · p m - 1 1 ; 定义m阶方阵Γ的第j行第1列为P′的第j行第1列,基中j=1,2,...m,定义Γ的第j行第j+1列为1,其中,j=1,2,...m-1,定义Γ的其它位置为0,即 Γ = p 1 1 0 · · · 0 p 2 0 1 · · · 0 · · · · · · · · · · · · · · · p m - 1 0 0 · · · 1 1 0 0 · · · 0 ;
C:将X(t+1)逆序排列为x1(t+1)x2(t+1)...xm-1(t+1)xm(t+1)并定义为X′(t+1),根据关系式 X ′ ( t ) = Γ ⊗ X ′ ( t + 1 ) ⊕ 0 · · · 0 b ( t ) 计算得到t时刻寄存器状态x1(t)x2(t)...xm-1(t)xm(t),并定义为X′(t),式中
Figure BSA00000791813300034
为模2乘法、为模2加法运算;
D:如果步骤C中所得X′(t)的逆序与编码时的状态序列X(t)一致,则解码正确,否则解码错误。
当CRC编码寄存器状态序列X(t)为全零时,判断X′(t)是否为全零,若是则CRC解码正确,否则解码错误;当CRC编码寄存器状态序列X(t)为非零时,判断X′(t)的逆序是否与X(t)相等,若是则CRC解码正确,否则解码错误。
本发明还提供一种依据上述CRC逆序串行解码算法扩展的并行逆序解码方法,包括如下步骤:
A:定义CRC编码的m级寄存器的初始状态为Xm…X1,并行处理位宽为w,所述w满足条件1≤w≤l-m,其中,l为解码序列长度;定义接收序列MR(X),其逆序定义为解码序列a1…al
B:基于矩阵P′、Γ,计算出查询矩阵 P w = [ Γ w - 1 ⊗ P ′ Γ w - 2 ⊗ P ′ · · · Γ ⊗ P ′ P ′ ] ;
C:进行CRC并行逆序解码处理,即R=crc-1(m,w,Pw,a1…αl),步骤如下:
设L=l-m;
Figure BSA00000791813300042
Figure BSA00000791813300043
为取整运算;
根据如下公式进行循环计算:
R = P w ⊗ a i * w + 1 · · · q ( i + 1 ) * w T ,
a ( i + 1 ) * w + 1 · · · a ( i + 1 ) * ( w ) + m = a ( i + 1 ) * w + 1 · · · a ( i + 1 ) * ( w ) + m ⊕ R T ,
L=L-w,其中,i为变量,其值为从0到k-1的整数;
若L≠0,继续按照如下公式计算:
R = P L ⊗ a k * w + 1 · · · q k * w + L T ,
a l - m + 1 · · · a l = a l - m + 1 · · · a l ⊕ R T ,
最终,得到R=[al-m+1…αl],表示为R=[sm…s1];
D:将状态序列R的逆序s1…sm与Xm…X1比较,相等表示CRC解码正确,不等表示CRC解码错误。
进一步地,步骤C可通过分组或一次解码实现。
当CRC编码寄存器状态序列Xm…X1为全零时,判断s1…sm是否为全零,若是则CRC解码正确,否则解码错误;当CRC编码寄存器状态序列Xm…X1为非零时,判断s1…sm是否与Xm…X1相等,若是则CRC解码正确,否则解码错误。
本发明还提供一种CRC并行逆序解码装置,其包括:
CRC映射转移矩阵生成模块,用于将CRC生成多项式G(X)的系数(p0,p1…,pm-1,pm)中的pm-1至p1生成m×1列矩阵P′和m阶方阵Γ;
CRC映射查询矩阵生成模块,用于将P′矩阵和Γ矩阵根据设定关系式生成多项式映射查询矩阵Pw
CRC逆序解码处理模块,用于利用CRC并行逆序解码算法
R=crc-1(m,w,Pw,α1…αl)获得CRC寄存器状态序列sm…s1
解码序列逆序比较模块,用于将获得的状态序列sm…s1的逆序s1…sm与Xm…X1比较,相等表示CRC解码正确,不等表示RC解码错误。
本发明所提供的技术方案,具有以下主要特点:
(1)采用后进先出(LIFO)的方式解码,即对接收序列进行逆序解码;
(2)对于零初态、非零初态CRC编码,均可进行解码;通过调整寄存器初态能够提高CRC编码信道传输的安全性,具有一定的防破解能力。
(3)采用并行运算方式,运算所需时钟约为现有串行计算所需时钟的1/w,提高了运算效率,其中w为并行运算带宽;
(4)查询矩阵通过生成多项式生成,可根据w大小任意拓展并行解码位数;
(5)无需补零操作,可以单次解码,也可分组解码;
与现有技术相比,本发明充分利用了CRC编解码的特点,逆序解码,能够对寄存器任意初态的CRC编码进行解码;采用并行结构,运算速度快,实现了鲁棒的、高速可变并行长度的CRC解码,便于硬件集成与实现,节省了电路系统开销,提高了系统的解码效率。
附图说明
图1为pmXm+pm-1Xm-1|+...+p1X1+p0(p0=1、pm=1)对应的串型编码电路;
图2为pmXm+pm-1Xm-1+...+p1X1+p0(p0=1、pm=1)对应的FIFO串型解码电路;
图3为pmXm+pm-1Xm-1+...+p1X1+p0(p0=1、pm=1)对应的LIFO串型解码电路;
图4为查询矩阵P定义;
图5为当w≤m时,分组CRC逆序解码算法示意图;
图6为当w>m时,分组CRC逆序解码算法示意图;
图7为当w=l-m时,单次CRC逆序解码算法示意图;
图8为CRC逆序并行解码流程图;
图9为CRC逆序并行解码装置图。
具体实施方式
下面结合附图对本发明作进一步详细的说明:
本发明首先提供一种CRC逆序串行解码算法,该算法适用于一位或多位串行接收信号,具体分析如下:
定义(p0,p1…,pm-1,pm)(p0=1、pm=1)为生成多项式G(X)的低次项到高次项的系数;校验序列长度为m;并行处理长度为w;现行的CRC编码一般都是寄存器零初状态,此处设xi(t)(1≤i≤m)为t时刻寄存器i的状态;b(t)为t时刻输入的处理数据,对应需要处理信息序列b0b1…bn
对图1进行状态分析可得
x m ( t + 1 ) x m - 1 ( t + 1 ) · · · x 2 ( t + 1 ) x 1 ( t + 1 ) = p m - 1 1 0 · · · 0 p m - 2 0 1 · · · 0 · · · · · · · · · · · · · · · p 1 0 0 · · · 1 p 0 0 0 · · · 0 ⊗ ( x m ( t ) x m - 1 ( t ) · · · x 2 ( t ) x 1 ( t ) ⊗ b ( t ) 0 · · · 0 0 ) ,
F = p m - 1 1 0 · · · 0 p m - 2 0 1 · · · 0 · · · · · · · · · · · · · · · p 1 0 0 · · · 1 p 0 0 0 · · · 0 ,
上式可简写为 X ( t + 1 ) = F ⊗ ( X ( t ) ⊕ b ( t ) · · · 0 0 ) - - - ( 1 )
通过计算可得行列式det(F)=p0=1≠0,F存在逆矩阵F-1,通过初等列变换得
F - 1 = 0 · · · 0 0 1 1 · · · 0 0 p m - 1 · · · · · · · · · · · · · · · 0 · · · 1 0 p 2 0 · · · 0 1 p 1 ,
因此可由(1)式推导得
X ( t ) = F - 1 ⊗ X ( t + 1 ) ⊕ b ( t ) · · · 0 0 ,
Γ = p 1 1 0 · · · 0 p 2 0 1 · · · 0 · · · · · · · · · · · · · · · p m - 1 0 0 · · · 1 1 0 0 · · · 0 ,
上式可变换为
x 1 ( t ) x 2 ( t ) · · · x m - 1 ( t ) x m ( t ) = p 1 1 0 · · · 0 p 2 0 1 · · · 0 · · · · · · · · · · · · · · · p m - 1 0 0 · · · 1 1 0 0 · · · 0 ⊗ x 1 ( t + 1 ) x 2 ( t + 1 ) · · · x m - 1 ( t + 1 ) x m ( t + 1 ) ⊗ 0 0 · · · 0 b ( t ) ,
简写为
X ′ ( t ) = Γ ⊗ X ′ ( t + 1 ) ⊕ 0 · · · 0 b ( t ) - - - ( 2 )
(1)式中X(t)为CRC编码寄存器t时刻的状态,X(t+1)为CRC编码电路由一位信息序列b(t)生成的校验序列;通过(2)式,由X′(t+1)、b(t)计算得X′(t),若X′(t)的逆序与编码时的状态X(t)一致,说明传输过程中无错误,否者有错误发生。对应的串行解码电路(解码器为零初态)如图3所示,要求输入序列与状态序列都反向,最后得到系统初态X′(t)也是反向的,据此可判断传输过程是否有错误发生。
如图8所示,根据如上分析,本发明提供的CRC串行逆序解码方法,包括如下步骤:
A:设置(p0,p1…,pm-1,pm)(p0=1、pm=1)为生成多项式G(X)=pmXm+pm-1Xm-1…+p1X+p0的低次项到高次项的系数,设置t时刻寄存器i的状态序列为xm(t)xm-1(t)…x2(t)x1(t),设置t时刻输入的处理数据为b(t),X(t+1)为CRC编码电路由信息序列b(t)生成t+1时刻的寄存器状态,对应状态序列为xm(t+1)xm-1(t+1)…x2(t+1)x1(t+1);
B:定义多项式G(X)的i次项的系数pt为m×1阶矩阵P′的第i行第1列,其中i=1,2,...m-1,P′的第m行第1列为1,即 P ′ = p 1 p 2 · · · p m - 1 1 ; 定义m阶方阵Γ的第j行第1列为P′的第j行第1列,其中j=1,2,...m,定义Γ的第j行第j+1列为1,其中,j=1,2,...m-1,定义Γ的其它位置为0,即 Γ = p 1 1 0 · · · 0 p 2 0 1 · · · 0 · · · · · · · · · · · · · · · p m - 1 0 0 · · · 1 1 0 0 · · · 0 ;
C:将X(t+1)逆序排列为x1(t+1)x2(t+1)...xm-1(t+1)xm(t+1)并定义为X′(t+1),根据关系式 X ′ ( t ) = Γ ⊗ X ′ ( t + 1 ) ⊕ 0 · · · 0 b ( t ) 计算得到t时刻寄存器状态X′(t);
D:如果步骤C中所得X′(t)的逆序与编码时的状态序列X(t)一致,则解码正确,否则解码错误。
当CRC编码寄存器状态序列X(t)为全零时,判断X′(t)是否为全零,若是则CRC解码正确,否则解码错误;当CRC编码寄存器状态序列X(t)为非零时,判断X′(t)的逆序是否与X(t)相等,若是则CRC解码正确,否则解码错误。
根据上述CRC串行逆序解码算法,本发明还提出了一种扩展的CRC并行逆序解码方法,包括如下步骤:
A:定义CRC编码的m级寄存器的初始状态为Xm...X1,并行处理位宽为w,所述w满足条件1≤w≤l-m,其中,l为解码序列长度;定义接收序列MR(X),其逆序定义为解码序列a1…al
B:基于矩阵P′、Γ,计算出查询矩阵 P w = [ Γ w - 1 ⊗ P ′ Γ w - 2 ⊗ P ′ · · · Γ ⊗ P ′ P ′ ] ;
C:进行CRC并行逆序解码处理,即R=crc-1(m,w,Pw,a1…al),最终,得到R=[al-m+1…al],表示为R=[sm…s1];
D:将状态序列R的逆序s1…sm与Xm…X1比较,相等表示CRC解码正确,不等表示CRC解码错误。
上述步骤C中,CRC并行逆序解码R=crc-1(m,w,Pw,a1…al)处理方式具体如下流程:
设L=l-m;
Figure BSA00000791813300102
Figure BSA00000791813300103
为取整运算;根据如下公式进行循环计算:
R = P w ⊗ a i * w + 1 · · · q ( i + 1 ) * w T ,
a ( i + 1 ) * w + 1 · · · a ( i + 1 ) * ( w ) + m = a ( i + 1 ) * w + 1 · · · a ( i + 1 ) * ( w ) + m ⊕ R T ,
L=L-w,其中,i为变量,其值为从0到k-1的整数;
若L≠0,继续按照如下公式计算:
R = P L ⊗ a k * w + 1 · · · q k * w + L T ,
a l - m + 1 · · · a l = a l - m + 1 · · · a l ⊕ R T ;
最终,得到R=[al-m+1…al],表示为R=[sm…s1]。在软件实现上,可通过下表进行:
注:由于PL中L<w,由图4可知PL包含在Pw中,无须重新生成。
当w≤m时,CRC逆序解码算法通过分组实现,如图5所示;
当w>m时,CRC逆序解码算法也通过分组实现,如图6所示;
当w=l-m时,CRC逆序解码算法可以一次解码完成,一次解码包含一次矩阵运算和一次加法运算,如图7所示;
所以CRC逆序解码的并行位宽需满足如下条件1≤w≤l-m,w=1时即为图3中的串行方案。
特别地,当CRC编码为零初态时,步聚D中判断R是为全零,若是则CRC校验正确,否则接收序列有错误发生。
本发明的基本思想是,利用CRC串行逆运算原理,提出一种护展的CRC逆序并行解码算法,由CRC生成多项式映射查询矩阵,通过设置并行CRC逆序解码的位宽进行分组处理,最后获得CRC编码器的寄存器初始状态,完成CRC编码的逆序校验。
本发明可以在WCDMA/TD-SCDMA/LTE等基带芯片的CRC解码单元使用,节省CRC解码所需时钟,提高芯片整体效率;也可设置CRC编码器的初始状态,提高传输序列的安全性。
为了能使本发明的技术方案及其技术优势更加清晰,下面结合实施例进一步说明本发明用于基带芯片的快速CRC解码方法。
实施例1(零初态):
以WCDMA/TD-SCDMA/LTE中基带芯片都用到得编码长度为m=8的CRC编码为例,并行位宽w=4,CRC编码生成多项式为G(x)=X8+X7+X4+X3+X+1,信息序列M(x)=X13+X12+X9+X8+X5+X4+X2+X,对应序列为:M(x)=[11001100110110],G(x)=[110011011]。本实施例分零初态、非零初态两种情况。
在零初态下,[Xm…X1]=[0...0],采用图1所示CRC编码方法计算后得R(x)=X7+X4+X2+X,对应R(x)=[10010110]。
根据本发明的并行循环冗余校验逆序解码方法解码:
步骤A、[Xm…X1]=[0...0];信息序列 M(x)=[11001100110110],校验序列R(x)=[10010110],
无差错接收序列MR(X)的逆序[a1…al]=[0110100101101100110011];w=4;l=22;m=8;
步骤B、 P ′ = 1 0 1 1 0 0 1 1 , Γ = 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 , P 4 = 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 0 1 1 1 ;
步骤C、调用R=crc-1(m,w,Pw,a1…al)得[sm…s1]=[0...0]全零序列;
步骤D、[s1…sm]=[Xm…X1],CRC校验正确。得到结论为正确解码。
如果采用图2所示正序CRC解码方法解码:
无差错接收校验序列解码序列为MR(x)=(b9…bnrm-1··r0),MR(X)=[1100110011011010010110],计算得[Xm…X1]=[00000000],全零序列。得到的结论也为正确解码。
实施例2(非零初态):
其它条件同实施例1,在非零初态下设[Xm…X1]=[00110110],采用图1所示CRC编码方法计算后得R(x)=[0110001 1]。
根据本发明的并行循环冗余校验逆序解码方法解码:
步骤A中[a1…al]=[1100011001101100110011],步骤B中P′Γ、P4与实施例1一致,步骤C调用R=crc-1(m,w,Pw,a1…al]计算得[sm…s1]=[01101100]与[Xm…X1]的逆序相同,CRC校验正确。得到结论为正确解码。
采用图2所示正序CRC解码方法解码:
无差错接收校验序列MR(X)=[1100110011011001100011],计算得[Xm…X1]=[11110101]。得到结论为错误解码,由此可见,正序CRC解码方法仅适用于零初态,不适用于非零初态。
用现有串行方法获得上述CRC校验结果需要22个时钟,而本发明方法获得CRC校验结果仅需4个时钟,逆序解码且能够对非零初态CRC编码进行解码。
本发明所述并行CRC逆序解码方法可以通过硬件电路或软硬件结合的方式实现。
当为硬件实现时,芯片设计完成后,不能再进行修改。因此由于WCDMA/TD-SCDMA/LTE等系统均支持多种长度CRC编码,只须将通过本发明方法获得的对应于各CRC生成多项式的查询矩阵参数固化在系统中,硬件按照寄存器配置来选择其中一个硬件逻辑模块进行运算即可实现可变长度CRC解码。
当为硬件和软件结合实现时,芯片内部采用软件计算的方式计算CRC解码,则可以通过更新存储在存储器中的查询矩阵参数来实时修改其所对应的CRC生成多项式,以满足版本升级,模块通用等要求。
本发明还提供了一种并行循环冗余校验逆序解码装置,如图9所示,包括:
CRC映射转移矩阵生成模块,用于将CRC生成多项式G(X)的系数(p0,p1…,pm-1,pm)中的pm-1至p1生成m×1列矩阵P′和m阶方阵Γ;
CRC映射查询矩阵生成模块,用于将P′矩阵和Γ矩阵根据设定关系式生成多项式映射查询矩阵Pw
CRC逆序解码处理模块,用于利用CRC并行逆序解码算法R=crc-1(m,w,Pw,a1…al)获得CRC寄存状态序列sm…s1
解码序列逆序比较模块,用于将获得的状态序列sm…s1的逆序s1…sm与Xm…X1比较,相等表示RC解码正确,不等表示CRC解码错误。
所述CRC逆序解码算法可通过分组或一次解码实现。
特别地,当CRC编码为零初态时,判断[sm…s1]是否为全零,若是则CRC校验正确,否则接收序列有错误发生。
与现有技术相比,本发明充分利用了CRC编解码的特点,逆序解码,能够对寄存器任意初态的CRC编码进行解码;采用并行结构,运算速度快,实现了鲁棒的、高速可变并行长度的CRC解码,便于硬件集成与实现,节省了电路系统开销,提高了系统的解码效率。
当然,本发明还可有其它多种实施例,在不违背本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的保护范围。

Claims (7)

1.一种CRC逆序串行解码算法,其特征在于,包括如下步骤:
A:设置(p0,p1…,pm-1,pm)(p0=1、pm=1)为生成多项式G(X)=pmXm+pm-1Xm-1…+p1X+p0的低次项到高次项的系数,设置t时刻寄存器i的状态序列为xm(t)xm-1(t)...x2(t)x1(t),设置t时刻输入的处理数据为b(t),X(t+1)为CRC编码电路由信息序列b(t)生成t+1时刻的寄存器状态,对应状态序列为xm(t+1)xm-1(t+1)...x2(t+1)x1(t+1);
B:定义多项式G(X)的i次项的系数pi为m×1阶矩阵P′的第i行第1列,其中i=1,2,...m-1,P′的第m行第1列为1,即 P ′ = p 1 p 2 · · · p m - 1 1 ; 定义m阶方阵Γ的第j行第1列为P′的第j行第1列,其中j=1,2,...m,定义Γ的第j行第j+1列为1,其中,j=1,2,...m-1,定义Γ的其它位置为0,即 Γ = p 1 1 0 · · · 0 p 2 0 1 · · · 0 · · · · · · · · · · · · · · · p m - 1 0 0 · · · 1 1 0 0 · · · 0 ;
C:将X(t+1)逆序排列为x1(t+1)x2(t+1)...xm-1(t+1)xm(t+1)并定义为X′(t+1),根据关系式 X ′ ( t ) = Γ ⊗ X ′ ( t + 1 ) ⊕ 0 · · · 0 b ( t ) 计算得到t时刻寄存器状态x1(t)x2(t)...xm-1(t)xm(t),并定义为X′(t),式中
Figure FSA00000791813200014
为模2乘法、
Figure FSA00000791813200015
为模2加法运算;
D:如果步骤C中所得X′(t)的逆序与编码时的状态序列X(t)一致,则解码正确,否则解码错误。
2.根据权利要求1所述的一种CRC逆序串行解码算法,其特征在于:当CRC编码寄存器状态序列X(t)为全零时,判断X′(t)是否为全零,若是则CRC解码正确,否则解码错误;当CRC编码寄存器状态序列X(t)为非零时,判断X′(t)的逆序是否与X(t)相等,若是则CRC解码正确,否则解码错误。
3.一种采用权利要求1所述CRC逆序串行解码算法扩展的并行逆序解码方法,其特征在于,包括如下步骤:
A:定义CRC编码的m级寄存器的初始状态为Xm...X1,并行处理位宽为w,所述w满足条件1≤w≤l-m,其中,l为解码序列长度;定义接收序列MR(X),其逆序定义为解码序列a1...al
B:基于矩阵P′、Γ,计算出查询矩阵 P w = [ Γ w - 1 ⊗ P ′ Γ w - 2 ⊗ P ′ · · · Γ ⊗ P ′ P ′ ] ;
C:进行CRC并行逆序解码处理,即R=crc-1(m,w,Pw,a1...al),步骤如下:
设L=l-m;
Figure FSA00000791813200022
Figure FSA00000791813200023
为取整运算;
根据如下公式进行循环计算:
R = P w ⊗ a i * w + 1 · · · q ( i + 1 ) * w T ,
a ( i + 1 ) * w + 1 · · · a ( i + 1 ) * ( w ) + m = a ( i + 1 ) * w + 1 · · · a ( i + 1 ) * ( w ) + m ⊕ R T ,
L=L-w,其中,i为变量,其值为从0到k-1的整数;
若L≠0,继续按照如下公式计算:
R = P L ⊗ a k * w + 1 · · · q k * w + L T ,
a l - m + 1 · · · a l = a l - m + 1 · · · a l ⊕ R T ,
最终,得到R=[al-m+1…al],表示为R=[sm…s1];
D:将状态序列R的逆序s1…sm与Xm…X1比较,相等表示CRC解码正确,不等表示CRC解码错误。
4.根据权利要求3所述的CRC逆序串行解码算法扩展的并行逆序解码方法,其特征在于:步骤C可通过分组或一次解码实现。
5.根据权利要求3所述的CRC逆序串行解码算法扩展的并行逆序解码方法,其特征在于:当CRC编码寄存器状态序列Xm…X1为全零时,判断s1…sm是否为全零,若是则CRC解码正确,否则解码错误;当CRC编码寄存器状态序列Xm…X1为非零时,判断s1…sm是否与Xm…X1相等,若是则CRC解码正确,否则解码错误。
6.一种采用权利要求3所述CRC并行逆序解码方法的装置,其特征在于:包括:
CRC映射转移矩阵生成模块,用于将CRC生成多项式G(X)的系数(p0,p1…,pm-1,pm)中的pm-1至p1生成m×1列矩阵P′和m阶方阵Γ;
CRC映射查询矩阵生成模块,用于将P′矩阵和Γ矩阵根据设定关系式生成多项式映射查询矩阵Pw
CRC逆序解码处理模块,用于利用CRC并行逆序解码算法R=crc-1(m,w,Pw,a1…al)获得CRC寄存器状态序列sm…s1
解码序列逆序比较模块,用于将获得的状态序列sm…s1的逆序s1…sm与Xm…X1比较,相等表示CRC解码正确,不等表示CRC解码错误。
7.根据权利要求6所述的并行逆序解码装置,其特征在于:所述CRC逆序解码处理模块可通过分组或一次实现解码。
CN201210401213.6A 2012-10-22 2012-10-22 Crc逆序串行解码算法、扩展的并行逆序解码方法及装置 Expired - Fee Related CN102868411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210401213.6A CN102868411B (zh) 2012-10-22 2012-10-22 Crc逆序串行解码算法、扩展的并行逆序解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210401213.6A CN102868411B (zh) 2012-10-22 2012-10-22 Crc逆序串行解码算法、扩展的并行逆序解码方法及装置

Publications (2)

Publication Number Publication Date
CN102868411A true CN102868411A (zh) 2013-01-09
CN102868411B CN102868411B (zh) 2015-03-11

Family

ID=47447045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210401213.6A Expired - Fee Related CN102868411B (zh) 2012-10-22 2012-10-22 Crc逆序串行解码算法、扩展的并行逆序解码方法及装置

Country Status (1)

Country Link
CN (1) CN102868411B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103199873A (zh) * 2013-04-23 2013-07-10 常熟理工学院 两级分块crc运算的快速配置方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN85103579A (zh) * 1985-05-08 1986-11-05 索尼公司 纠错码的译码方法和系统
US6141788A (en) * 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN85103579A (zh) * 1985-05-08 1986-11-05 索尼公司 纠错码的译码方法和系统
US6141788A (en) * 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103199873A (zh) * 2013-04-23 2013-07-10 常熟理工学院 两级分块crc运算的快速配置方法
CN103199873B (zh) * 2013-04-23 2016-03-30 常熟理工学院 两级分块crc运算的快速配置方法

Also Published As

Publication number Publication date
CN102868411B (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
CN109379086B (zh) 低复杂度的码率兼容的5g ldpc编码方法和编码器
WO2010115371A1 (zh) 一种循环冗余校验crc码的实现方法和装置
US20200083984A1 (en) Polar code transmission method and apparatus
Gad et al. Repair-optimal MDS array codes over GF (2)
CN103731239B (zh) 一种适用于向量处理器的通用crc并行计算部件及方法
US20120102382A1 (en) Method and Device for Fast Cyclic Redundancy Check Coding
CN103199873B (zh) 两级分块crc运算的快速配置方法
CN110741562B (zh) 向量信令码信道的流水线式前向纠错
CN107239362A (zh) 一种并行crc校验码的计算方法及系统
CN102857236B (zh) 基于求和阵列的cmmb中ldpc编码器和编码方法
EP2309650B1 (en) A systematic encoder with arbitrary parity positions
CN102318250B (zh) 通信系统中的循环冗余校验处理方法、装置和lte终端
CN111224741B (zh) 卫星导航用bch码译码方法、译码器及卫星导航接收机
CN109327276B (zh) 安全编码方法、解码方法及设备
CN111600613B (zh) 一种校验方法、装置、译码器、接收机及计算机存储介质
CN102868411B (zh) Crc逆序串行解码算法、扩展的并行逆序解码方法及装置
US11677419B2 (en) Cyclic redundancy check, CRC, decoding using the inverse CRC generator polynomial
JP2021525976A (ja) 階段符号復号方法及び階段符号復号装置
TWI303931B (en) Method of first interleavering of a two interleaver transmitter
CN100417031C (zh) 宽带无线接入系统中里德索洛门卷积级联码的实现方法
CN1192486C (zh) 一种缩短循环码纠错译码算法的集成电路实现方法及电路
CN103401566A (zh) 参数化的bch纠错码的并行编码方法及装置
KR101436973B1 (ko) 슈퍼차지드 코드들
Shanthi et al. Efficient error detection and correction code based on improved redundant matrix code (IRMC) algorithm
US11748190B2 (en) Cyclic redundancy check computation circuit, communication unit, and method therefor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150311

Termination date: 20191022