CN103166649B - 用于解码循环码的方法、装置和解码器 - Google Patents

用于解码循环码的方法、装置和解码器 Download PDF

Info

Publication number
CN103166649B
CN103166649B CN201110427968.9A CN201110427968A CN103166649B CN 103166649 B CN103166649 B CN 103166649B CN 201110427968 A CN201110427968 A CN 201110427968A CN 103166649 B CN103166649 B CN 103166649B
Authority
CN
China
Prior art keywords
cyclic code
syndrome
code
cyclic
displacement
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.)
Expired - Fee Related
Application number
CN201110427968.9A
Other languages
English (en)
Other versions
CN103166649A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201110427968.9A priority Critical patent/CN103166649B/zh
Priority to US13/705,528 priority patent/US8996968B2/en
Publication of CN103166649A publication Critical patent/CN103166649A/zh
Application granted granted Critical
Publication of CN103166649B publication Critical patent/CN103166649B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/159Remainder calculation, e.g. for encoding and syndrome calculation
    • H03M13/1595Parallel or block-wise remainder calculation

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

提供了对循环码进行解码的方法、装置和解码器,其中解码的方法包括:接收传输的循环码;获得所述循环码的初始校正子;利用所述初始校正子和预先存储的连续w个移位操作算子,并行地分别获得循环码的宽度为w的窗口内连续w个移位校正子;以及基于所获得的各个校正子,确定循环码中的错误。解码的装置与上述方法对应。还提供了相应的解码器。根据本发明的方法、装置和解码器,能够并行处理一个窗口宽度内的循环码,从而提高解码效率。

Description

用于解码循环码的方法、装置和解码器
技术领域
本发明涉及循环码的编解码,更具体而言,涉及用于解码循环码的方法、装置和解码器。
背景技术
循环冗余校验码是数据通信领域中常用的一种差错检测和校验方式。在这样的校验方式中,基于预先约定的生成算法生成校验码,并将校验码附加到原始信息码后面,从而形成循环码。为了表述和计算的方便,通常将二进制码表达为x的多项式的形式。在一种表示方式中,使得x的最高幂次对应二进制码的最高位,以下各位对应多项式的各幂次。通信双方为了进行循环冗余校验,会预先约定一个生成多项式g(x),假定其最高幂次为R,对应的二进制码的长度为R+1。在此基础上,对于K位的原始信息码m(x),可以生成R位的校验码p(x),p(x)满足:
p(x)=xRm(x)modg(x)
也就是说,校验码p(x)是将原始信息码m(x)向左移动R位之后除以生成多项式g(x)所得的余数多项式。接下来,将原始信息码m(x)与生成的校验码p(x)拼接在一起,就可以得到循环码c(x):
c(x)=xRm(x)+p(x)
于是,c(x)的长度为N=K+R。因此,常常将这样的循环码表示为c(N,K)。N,R的大小决定了循环码的纠错能力。
在将这样的循环码c(x)进行发送之后,接收方会接收到接收码r(x)。为了判断发送过程中是否产生了错误,并对错误进行纠正从而恢复出原始信息码,接收方需要对接收到的代码r(x)进行解码。
随着VLSI技术的发展,许多电路能够实现这种循环码的解码。然而,根据现有技术,在将数据帧接收到本地缓冲器之后,解码电路通常需要一位一位地逐个对数据帧的代码进行解码,因而花费大量的时间周期,导致了很大的延迟。此外,现有技术中的解码方式通常只利用了循环码的一部分纠错能力,利用效率不够高。因此,期望一种更好的解码方式,在解码的效率和/或精度上进行改进。
发明内容
鉴于以上提出的问题,提出本发明,旨在解决现有技术中存在的至少一项不足。
根据本发明第一方面,提供了一种对循环码进行解码的方法,包括:接收传输的循环码;获得所述循环码的初始校正子;利用所述初始校正子和预先存储的连续w个移位操作算子,并行地分别获得循环码的宽度为w的窗口内连续w个移位校正子;以及基于所获得的各个校正子,确定循环码中的错误。
根据本发明第二方面,提供了一种对循环码进行解码的装置,包括:接收单元,配置为接收传输的循环码;初始校正子获取单元,配置为获得所述循环码的初始校正子;窗口处理单元,配置为利用所述初始校正子和预先存储的连续w个移位操作算子,并行地分别获得循环码的宽度为w的窗口内连续w个移位校正子;以及错误确定单元,配置为基于所获得的各个校正子,确定循环码中的错误。
根据本发明第三方面,提供了一种对循环码进行解码的解码器,包括:数据缓冲器,用于存储接收到的循环码和初始校正子;并行计算电路,包括w个乘法器,用于将预先存储的连续w个移位操作算子施加到初始校正子,从而并行输出循环码的宽度为w的窗口内连续w个移位校正子;以及错误检测电路,包含零检测模块,用以检测各个校正子中0的数目,基于检测结果,输出错误样式。
根据本发明的方法、装置和解码器,能够并行处理一个窗口宽度内的循环码,从而提高解码效率。进一步地,本发明的实施例还可以在解码速度和/或精度上进行进一步提高。
附图说明
图1示出根据本发明一个实施例的对循环码进行解码的方法的流程图;
图2示出滑动窗口情况下回绕效应的示意图;
图3示出根据本发明一个实施例的用于对循环码进行解码的装置的框图;
图4示出根据本发明一个实施例的解码器的总体结构;
图5A和图5B示出并行计算电路的两种示例性结构;
图6示出根据本发明一个实施例的错误检测电路的结构;
图7A和图7B示出错误预测电路的两种示例性结构;
图8示出根据本发明一个实施例的错误估计电路的结构;以及
图9示出了适于用来实现本发明实施方式的示例性计算系统的框图。
具体实施方式
下面对本发明的具体实施方式进行详细描述。所属技术领域的技术人员知道,本发明的多个方面可以体现为系统、方法或计算机程序产品。因此,本发明的多个方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明的多个方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序码。
可以使用一个或多个计算机可读的介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或任何以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任何合适的组合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序的有形的介质,该程序被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括——但不限于——电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者任何合适的上述组合。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如“C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
以下结合附图和例子描述本发明的具体实施方式。但是应该理解,以下对具体实施例的描述仅仅是为了解释本发明的执行示例,而不对本发明的范围进行任何限定。
在本发明的实施例中,为了提高解码效率,利用基于滑动窗口的解码方式对循环码进行解码。在这样的解码方式中,可以并行地同时针对循环码中窗口宽度内的代码位置进行校正子的计算,从而对其中的错误进行判断和纠正。
图1示出根据本发明一个实施例的对循环码进行解码的方法的流程图。如图1所示,该实施例的方法包括以下步骤:在步骤11中,接收传输的循环码;在步骤12,获得所述循环码的初始校正子;在步骤13,利用初始校正子和预先存储的连续w个移位操作算子,并行地分别获得循环码的宽度为w的窗口内连续w个移位校正子;以及在步骤14,基于所获得的各个校正子,确定循环码中的错误。下面结合循环码的具体例子描述上述步骤的执行方式。
假定发送端基于生成多项式g(x)对原始信息进行循环编码后得到循环码c(x),并将该代码c(x)发送给接收端。在代码传输的过程中,假定在传送的代码c(x)的位置j处出现了错误E(x)=e0+e1x+e2x2+...+eL-1xL-1。于是,接收方接收的代码r(x)可以表示为:
r(x)=c(x)+xjE(x)。(1)
因此,在步骤11中,获得该传输的循环码r(x)。在一个实施例中,获得整个数据帧的代码,并将其存储在本地缓存中。在通信领域中,在将二进制码表示为多项式时,通常将x的高次幂对应到二进制码的右侧代码,也就是,可以将接收到的循环码r(x)表示为如下两种形式:
r(x)=r0r1r2...rn-1=r0+r1x+r2x2+...+rn-1xn-1(2)
其中ri为0或1。相应地,在循环码前面乘以xi就表示将该代码向右循环移动i位,在前面乘以x-i就表示将该代码向左循环移动i位。
基于以上获得的循环码r(x),就可以在步骤12中获得该循环码的初始校正子。
本领域技术人员了解,将接收码r(x)除以生成多项式g(x)所得的余数多项式称为校正子多项式S(x),即:
S(x)=r(x)modg(x)(3)
因此,S(x)的次数必然低于g(x)的次数,也就是说,S(x)是一个次数为n-k-1或更小的多项式。在步骤12中,可以以循环码r(x)的任意位置为起点计算校正子多项式,并将该起点处获得的校正子作为初始校正子。一般地,通常在接收到的循环码的开始位置r0处计算初始校正子,此时的初始校正子可记为S0(x)。然而,初始校正子的计算并不局限于以r0作为开始。
基于获得的初始校正子,可以进一步计算移位校正子,也就是将循环码r(x)进行循环移位所得到的校正子。例如,Si(x)表示将原r(x)循环右移i位后,利用公式(3)得到的校正子。尽管通过r(x)的移位可以直接获得移位校正子,但是更便利的方法是利用循环码的校正子特性,例如Meggitt定理。根据该定理,对于i>=0,
Si+1(x)=[xSi(x)]modg(x)。(4)
因此,在获得校正子Si的基础上,可以通过以上的公式(4)迅速获得下一移位校正子Si+1。于是,可以基于步骤11获得的初始校正子S0,逐一计算S1(x),S2(x),S3(x),...,Sn-1(x)。
为了使得校正子的计算更加快速有效,在步骤13中,构造宽度为w的滑动窗口,利用初始校正子和预先存储的连续w个移位操作算子,并行地分别获得循环码的窗口范围内的移位校正子。
具体地,对于给定的生成多项式g(x),可以预先计算ximodg(x),其中1<=i<=w。可以将计算结果作为移位操作算子分别存储在w个计算单元中。在执行步骤13时,将初始校正子同时发送到这w个计算单元,使得各个计算单元将初始校正子与自己存储的移位操作算子进行结合,从而获得对应的移位校正子。例如,通过在w个计算单元中分别将初始校正子S0与移位操作算子ximodg(x)进行结合,可以并行地分别获得S1(x),S2(x),S3(x),...,Sw(x)。接着,将Sw(x)作为初始校正子,再一次利用这些移位操作算子进行计算,可以获得S1+w(x),S2+w(x),S3+w(x),...,S2w(x),相当于把窗口向右移动了一次。通过这样在循环码上移动窗口,可以根据需要获得所有移位校正子S1(x),S2(x),S3(x),...,Sn-1(x)。
由此可以看到,在基于窗口的校正子计算的情况下,可以一次产生w位的输出,该输出不依赖于帧数据的大小,仅与窗口宽度有关。由于对移位校正子进行并行计算,解码效率可以得到明显提高。
在计算机系统中,考虑到总线宽度,窗口宽度w通常限定为2的指数,即w=2b
另一方面,由于循环码的特性,xiS(x)=x-(n-i)S(x),也就是说,对于循环码来说,向右移i个比特位与向左移(n-i)个比特位结果是相同的。因此,在一种实施方式下,可以将x-imodg(x)(其中1<=i<=w)作为移位操作算子,也就是获得并存储向左移位的移位操作算子。在执行步骤13时,将初始校正子同时与w个向左移位的操作算子进行结合,从而获得对应的向左移位的移位校正子。例如,通过将初始校正子S0与移位操作算子x-imodg(x)进行结合,可以并行地分别获得S-1(x),S-2(x),S-3(x),...,S-w(x)。进一步地移动窗口,同样可以获得循环码的所有移位校正子。
基于所获得的移位校正子,就可以对循环码中出现的错误进行判断和纠正,也就是执行步骤14。确定错误的原理可说明如下。
将上述公式(1)和(3)进行结合可以得到:
S(x)=r(x)modg(x)=[c(x)+xjE(x)]modg(x)(4)
显然,根据c(x)的编码原理,c(x)除以g(x)的余数必然为0。因此可以将公式(3)进一步写为:
S(x)=c(x)modg(x)+xjE(x)modg(x)=xjE(x)modg(x)(5)
进一步地,根据循环码的性质,公式(5)可以写成:
x-jS(x)=xn-jS(x)=E(x)(6)
根据Meggitt定理,对于获得的各个校正子S(x),如果校正子的二进制码中第一个1与最后一个1之间的间距(可以将该间距称为最大码距)小于或等于该循环码所能校正的错误长度L,那么可以认为该校正子S(x)对应于错误多项式E(x),计算该校正子时的位置j就是发生错误的位置j。由此,可以对步骤12获得的各个校正子逐一进行判断,从而获得错误样式E(x)和错误位置j。
如前所述,校正子的长度为n-k-1,而错误的长度为L。基于此,可以简化错误的判断方式。在一个实施例中,核查校正子S(x)中前n-k-L-1位或者后n-k-L-1位是否都是0;如果都是0,那么1只可能出现在剩下的L位中,第一个1与最后一个1之间的间距必然小于或等于L,因此该校正子S(x)就可能对应于错误样式E(x)。
在获得错误样式和错误位置的基础上,就可以对错误进行校正。因此,图1的方法还可以包括纠正错误的步骤(未示出)。例如,如果确定了Sj(x)=E(x),就可以在位置j处停止,用E(x)对接收的数据码r(x)进行异或运算,从而校正突发错误。
由此,根据图1中的步骤11-14,并行地同时获得窗口范围内的连续多个校正子,并基于这些校正子进行错误的检测和纠正。
在此基础上,在一种实施方式下,进一步引入错误预测的步骤来加速解码的过程。进行错误预测的目的是排除滑动窗口方法有可能带来的回绕效应。
图2示出滑动窗口情况下回绕效应的示意图。在一种情况下,数据帧的开始和末尾附近的代码中均存在错误。由于循环码的循环特性,开始和末尾中的错误会被认为是一整串常规错误从循环码的末尾绕回到了开始。这样的情况可以称为回绕效应。图2具体示出了错误样式覆盖第一个窗口和最后一个窗口的情况,其中阴影部分示出存在错误的代码段。在图2的情况下,可以将第一个窗口中的错误和最后一个窗口中的错误共同认为是一整串错误从最后一个窗口绕回到了第一个窗口。为此,可以在图1的步骤11-14的基础上进一步引入错误预测的步骤,来避免这样的回绕效应。
具体地,可以在处理第一个窗口的时候,计算最后L-1个比特位,也就是预测循环码末尾附近的可能错误。与最后L-1个比特位对应的校正子为S-(n-L+1)(x),S-(n-L+2)(x),S-(n-L+3)(x),...,S-(n-1)(x)。根据循环特性,校正子也可以写为SL-1(x),SL-2(x),SL-3(x),...,S1(x)。为了计算这些校正子,可以采用与步骤12类似的方法。也就是,预先计算移位操作算子ximodg(x),1<=i<=L-1,通过将移位操作算子作用于S(x)来获得S1(x),S2(x),S3(x),...,SL-1(x)。基于获得的校正子,就可以对这L-1个比特位中是否有可能存在错误进行预测和估计。
在另一实施例中,计算最开始的L-1个比特位,也就是预测循环码开始位置附近的可能错误。类似地,可以预先计算移位操作算子x-imodg(x),1<=i<=L-1,通过将移位操作算子作用于S(x)来获得并测试S-1(x),S-2(x),S-3(x),...,S-L+1(x)。
通过对循环码的开始和/或末尾进行预先计算,可以提早发现和排除回绕效应。一旦排除了回绕效应,就可以一边移动窗口一边输出解码结果,从而实现快速解码。在不存在回绕效应的情况下,如果在某个窗口内检测到错误并且该错误能够被纠正,就可以直接输出该窗口中的校正结果。否则,继续计算S-w(x),S-w-1(x),S-w-2(x),...,S-w*2+1(x),直到检验了数据帧中的所有位。这样,解码的时间延迟仅仅依赖于窗口的大小。由于不必等待所有窗口都处理完毕才输出解码结果,解码过程的延迟得到了进一步减小,效率得到进一步提高。
在滑动窗口方法的基础上,在一种实施方式下,进一步引入估计最大似然性错误的步骤来更好地利用循环码的解码能力,提高解码精度。
目前,大多数的解码电路和装置仅仅利用了循环码的解码能力的一部分。在通信领域中,通信传输的错误率具有行业标准。基于行业标准的要求,会针对某种类型的循环码C(n,k)规定其能够解码的错误长度L。然而实际上,长度为L的错误仅仅有n*(2L-1)种,而循环码C(n,k)具有2n-k-1种校正样式。规定的可校正错误通常只占据循环码能够校正的整体错误类型的一小部分。例如,根据错误率标准,前向纠错码FEC(2112,2080)具有对11位的突发错误进行纠正的能力。然而,突发错误的数目仅为2112*(211-1)≈222,而该循环码能够校正的错误样式的总数为232。可见,大多数的现有解码装置仅仅开发了这种循环码的纠错能力的千分之一。因此,在此引入估计最大似然性错误的步骤来更大程度地利用循环码的解码能力,将其纠错能力扩展到更大的空间。
具体地,根据图1的步骤13和14,可以并行地获得窗口范围w内的多个校正子。对于获得的各个校正子,如果校正子的二进制码的最大码距小于或等于规定的错误长度L,那么就认为检测到了错误,错误样式对应于该校正子的表达式。基于检测到的错误就可以对循环码进行校正。但是如果,校正子的最大码距大于规定的错误长度L,那么通常会认为检测到了无法校正的错误。此时,常规的解码方法会发出一个信号,通知检测到一个无法校正的错误。然而,根据本实施例中的估计最大似然性错误的步骤,在出现上述情况时,不仅发出检测到无法校正的错误的信号,而给出错误校正的最大似然性结果。
为了获得错误校正的最大似然性结果,在步骤12中通过将窗口移动覆盖整个数据帧获得每个备选位置对应的移位校正子。接着,比较所有移位校正子,从而获得其中最短的移位校正子。最短的移位校正子也就是最大码距最小的校正子。然后,根据该最短的移位校正子估计循环码中的错误码,也就是,将该最短的校正子对应的错误样式认为是最大似然性错误。相应地,基于该最大似然性错误进行的校正结果就是错误校正的最大似然性结果。
可以看到,最大似然性解码需要测试整个循环码的每一个比特位,之后才能做出判定,因此其解码速度可能不及一边移动窗口一边输出解码结果的方式。但是,最大似然性解码将循环码可解码的错误长度从规定的L扩展到大于L,更好地利用了循环码的解码能力,提高了解码的精度,从另一方面提高了解码的效率。
综合以上,根据本发明的实施例,提出滑动窗口的概念,并行地同时获得循环码中窗口宽度内的校正子,从而提高解码的效率。在滑动窗口的方法的基础上,还可以选择性地引入错误预测步骤和最大似然性解码步骤,从而在解码的速度或精度上获得进一步的提高。
基于同一发明构思,本发明的实施例还提供一种对循环码进行解码的装置。图3示出根据本发明一个实施例的用于对循环码进行解码的装置的框图。如图3所示,该装置总体示为30。具体地,装置30可以包括:代码接收单元31,配置为接收传输的循环码;初始校正子获取单元32,配置为获取所述循环码的初始校正子;窗口处理单元33,配置为利用初始校正子和预先存储的连续w个移位操作算子,并行地分别获得循环码的宽度为w的窗口内连续w个移位校正子;以及错误确定单元34,配置为基于所获得的各个校正子,确定循环码中的错误码。
在一个实施例中,窗口处理单元33预先存储ximodg(x)作为移位操作算子,其中i=1,2,...w,g(x)为循环码的生成多项式。在另一个实施例中,窗口处理单元33预先存储x-imodg(x)作为移位操作算子,用以并行获得w个移位校正子。
在一个实施例中,装置30还包括错误预测单元(未示出),配置为预先估计循环码的开始和/或末尾处的错误,从而排除滑动窗口解码方式有可能带来的回绕效应。在一个例子中,错误预测单元预先获得循环码的开始L-1位对应的移位校正子,通过所获得的移位校正子确定循环码开始处的错误,其中L为循环码对应的错误长度。在另一个例子中,错误预测单元预先获得循环码的末尾L-1位对应的移位校正子,通过所获得的移位校正子确定循环码末尾处的错误,其中L为循环码对应的错误长度。错误预测单元通过这样的方式预先估计循环码的末尾L-1位中的错误,从而排除末尾附近出现的错误。
在一个实施例中,装置30还包括错误估计单元(未示出),配置为估计循环码中的最大似然性错误。具体地,在窗口处理单元33通过移动窗口获得循环码对应的所有移位校正子的基础上,错误估计单元比较所有移位校正子,从而获得其中最短的移位校正子,根据该最短的移位校正子估计循环码中的最大似然性错误码。通过该估计单元,可以使得装置30更好地利用循环码的解码能力。
装置30的执行方式与结合具体循环码的例子进行描述的图1的方法步骤的执行方式相同,在此不再赘述。
可以理解,在一种实施方式中,图1的方法步骤和图3的装置均可以主要通过软件代码的方式实现。或者,在其他实施方式下,上述方法步骤和装置也可以利用硬件和软件的结合得以执行。
根据本发明的另一方面,还可以主要通过硬件的方式来实现循环码的高效解码。为此,本发明的实施例还提供一种解码器,用于对循环码进行解码。
图4示出根据本发明一个实施例的解码器的总体结构。如图4所示,解码器40包括数据缓冲器41,并行计算电路42和错误检测电路43。
数据缓冲器41用于存储接收到的循环码。在一个实施例中,初始校正子S(x)是从存储的数据帧中提取的校验样式,也可以存储在缓冲器41中。在另一实施例中,通过一电路计算初始校正子,并将其存储于缓冲器41中。数据缓冲器41的结构与现有技术中的缓冲器相似,因此不再具体描述其内部结构。
图5A和图5B示出并行计算电路42的两种示例性结构。
图5A所示的并行计算电路用于从循环码的开始到末尾计算校正子。具体地,并行计算电路包括w个乘法器,用于进行初始校正子与移位操作算子的运算。可以理解,w为窗口宽度,是并行计算电路能够同时获得的校正子的数目。在图5A的具体例子里,乘法器采用MG乘法器,即GaloisField(伽罗华域)乘法器。但是可以理解,在其他例子里,也可以采用其他具体的乘法器实现移位操作算子的运算。
如前所述,一旦给定了g(x),可以预先计算x-1,x-2,x-3,...,x-w以及x-imodg(x)。每一个MG乘法器将x-imodg(x)施加于获得的初始校正子S(x),从而得到S-i(x)。在第一轮迭代中,j=0,初始校正子S(x)=S0(x)。通过w个MG乘法器的计算,并行获得S0(x),S-1(x),S-2(x),S-3(x),...,S-w+1(x)。在第二轮迭代中,j=1,初始校正子更新为S-w-1(x)。类似地,通过MG乘法器的计算,并行获得S-w(x).S-w-1(x),S-w-2(x),S-w-3(x),...,S-2w+1(x),如此继续,多次并行获得S-jw-1(x),S-jw-2(x),S-jw-3(x),...,S-(j+1)w(x),直到循环码的所有位都进行了计算。
类似地,图5B所示的并行计算电路用于从循环码的末尾到开始计算校正子。在图5B的具体例子里,同样采用w个MG乘法器来进行初始校正子的移位操作运算。
如前所述,在给定g(x)的情况下,可以预先计算x1,x2,x3,...,xw以及ximodg(x)。每一个MG乘法器将ximodg(x)施加于获得的初始校正子S(x),从而得到Si(x)。假定循环码长度为N,当j为最大值时,可以得到N=j*(W+1)。由于是从末尾开始计算,在第一轮迭代中,初始校正子S(x)=S-(j+1)w(x)。通过w个MG乘法器的计算,并行获得S-jw-1(x),S-jw-2(x),S-jw-3(x),S-jw-4(x),...,S-(j+1)w(x)。在第二轮迭代中,j=j-1,初始校正子更新为S-jW(x)。类似地,通过MG乘法器的计算,并行获得S-(j+1)w-1(x).S-(j+1)w-2(x),S-(j+1)w-3(x),S-(j+1)w-4(x),...,S-jw(x),如此继续,多次并行获得S-jw-1(x),S-jw-2(x),S-jw-3(x),...,S-(j+1)w(x),直到循环码的所有位都进行了计算。
通过图5A或图5B的并行计算电路,可以并行输出窗口宽度w内的连续多个校正子。基于这些校正子,就可以对窗口内是否存在错误进行判断。因此,错误检测电路43从并行计算电路42获得输出的校正子,对这些校正子进行分析,由此检测循环码中的错误。
图6示出根据本发明一个实施例的错误检测电路的结构。该错误检测电路从并行计算电路42获得并行输出的多个校正子。根据循环码错误判定的原理,错误检测电路43主要对校正子中的0的位置和数目进行判定。具体地,错误检测电路43可以包含零检测模块,用以检测S(x)中前n-k-L-1位或者后n-k-L-1位是否都是0,并基于检测结果输出错误位置样式Ei。错误位置样式E0,E1,...,E-w+1对应于窗口内的错误位置0,1,2,...W-1。例如,E0=1表示突发错误E(x)中的第一个错误发生在整个窗口的第一个比特位。如果该窗口内没有错误发生,那么这次迭代中E0,E1,...,E-w+1均为零。
可以理解,图4的解码器还可以包含纠错电路(未示出)。纠错电路可以从错误检测电路43获得错误位置样式Ei,基于Ei对接收到的循环码的相应位置进行抑或运算,从而对循环码进行纠错。
在一个实施例中,为了进一步提高解码速度,在解码器中引入错误预测电路,用以预先估计循环码的开始和/或末尾处的错误,从而排除滑动窗口有可能引起的回绕效应。
图7A和图7B示出错误预测电路的两种示例性结构。
图7A所示的错误预测电路用于估计循环码的末尾附近的错误。该错误预测电路的结构与图5A的并行计算电路有些类似,不同的是,该错误预测电路仅针对循环码末尾的L-1个比特位进行计算。具体地,错误预测电路包括L-1个乘法器,用于进行校正子与移位操作算子的运算。类似地,预先计算x1,x2,x3,...,xL-1以及ximodg(x)。通过对初始校正子施加上述移位运算,可以获得S1(x),S2(x),S3(x),...,SL-1(x)。将获得的校正子输入到错误检测模块。该错误检测模块可以复用图6的错误检测电路43,也可以是结构相似的另一错误检测电路。错误检测模块对校正子S1(x),S2(x),S3(x),...,SL-1(x)进行分析,输出错误位置样式E1,E2,...,EL-1。类似地,错误位置样式E1,E2,...,EL-1对应于错误位置N-1,N-2,...,N-L+1。例如,E1=1表示突发错误样式中出现的第一个错误在整个代码的第N-1位的位置处。如果第一个错误并不存在于循环码的最后L位中,那么E1,E2,...,EL-1都是零。
类似地,图7B所示的错误预测电路用于估计循环码的开始附近的错误。在图7B的错误预测电路中,预先计算x-1,x-2,x-3,...,x-L+1以及x-imodg(x)。通过对初始校正子施加上述移位运算,可以获得S-1(x),S-2(x),S-3(x),...,S-L+1(x)。将获得的校正子输入到错误检测电路。类似地,错误检测电路对校正子S-1(x),S-2(x),S-3(x),...,S-L+1(x)进行分析,输出错误位置样式E1,E2,...,EL-1。错误位置样式E1,E2,...,EL-1对应于错误位置0,1,...,-L+1。例如,E1=1表示突发错误样式中出现的第一个错误在整个代码的第1位的位置处。如果第一个错误并不存在于循环码的开始L位中,那么E1,E2,...,EL-1都是零。
以上的错误检测电路可以在并行计算电路42处理第一个窗口的同时开始执行。在通过图7A或7B的错误预测电路排除了回绕效应的基础上,并行计算电路42和错误检测电路43就可以相互配合,一旦获得了一个窗口的校正子,就输出该窗口内的错误,以进行循环码的纠错。由此,解码过程的延迟得到缩短,速度得到进一步提高。
在一个实施例中,为了提高解码器的解码能力,在解码器中引入错误估计电路,用以估计循环码中的最大似然性错误,从而更好地利用循环码的解码能力,提高解码精度。
图8示出根据本发明一个实施例的错误估计电路的结构。该错误估计电路用于从所有校正子中找出最短的校正子,也就是最大码距最小的校正子。为此,错误估计电路从并行计算电路42获得并行输出的一个窗口内的多个校正子,将每个校正子输入到一个1计数模块中。1计数模块用以计数输入的校正子中的1的数目。错误估计电路还包括若干级的比较器,通过多次比较找出一个窗口内最短的校正子,其具有最少的1的数目。将该窗口内最短校正子的1的数目存储在最小计数器中,用于与下一窗口的最短校正子进行比较。由此,通过多次比较,错误估计电路可以找出所有校正子中最短的校正子,将该校正子对应的错误认为是最大似然性错误。
通过以上的错误估计电路,解码器能够对超出标准错误长度L的错误进行估计,得到最大似然性错误,从而扩展解码器的解码空间。
可以理解,尽管以上示出的解码器主要通过硬件方式实现,但并不排除可以在解码器的某些电路、单元或模块中采用硬件和软件的结合。并且,解码器的实施方式并不局限于以上的具体示例。
综合以上,本发明的实施例在多个方面提供了对循环码进行解码的方法、装置和解码器。这些方法、装置和解码器可以通过各种形式来执行。在一种实施方式下,以上所述的解码的方法和装置可以利用计算系统来实现。图9示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU101、RAM102、ROM103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图9所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
此外,附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然以上结合具体实施例,对本发明的方法、装置以及各个单元进行了详细描述,但本发明并不限于此。本领域普通技术人员能够在说明书教导之下对本发明进行多种变换、替换和修改而不偏离本发明的精神和范围。应该理解,所有这样的变化、替换、修改仍然落入本发明的保护范围之内。本发明的保护范围由所附权利要求来限定。

Claims (17)

1.一种对循环码进行解码的方法,包括:
接收传输的循环码;
获得所述循环码的初始校正子;
利用所述初始校正子和预先存储的连续w个移位操作算子,并行地分别获得循环码的宽度为w的窗口内连续w个移位校正子;以及
基于所获得的各个移位校正子,确定循环码中的错误;
该方法还包括,预先估计循环码的开始和/或末尾处的错误。
2.根据权利要求1的方法,其中w为2的指数。
3.根据权利要求1的方法,其中所述连续w个移位操作算子为ximodg(x),其中i=1,2,…w,g(x)表示所述循环码的生成多项式。
4.根据权利要求1的方法,其中所述连续w个移位操作算子为x-imodg(x),其中i=1,2,…w,g(x)表示所述循环码的生成多项式。
5.根据权利要求1的方法,其中基于所获得的各个移位校正子确定循环码中的错误码包括,通过移动所述窗口获得循环码对应的所有移位校正子,通过比较所述所有移位校正子获得其中最短的移位校正子,根据该最短的移位校正子估计循环码中的错误码。
6.一种对循环码进行解码的装置,包括:
接收单元,配置为接收传输的循环码;
初始校正子获取单元,配置为获得所述循环码的初始校正子;
窗口处理单元,配置为利用所述初始校正子和预先存储的连续w个移位操作算子,并行地分别获得循环码的宽度为w的窗口内连续w个移位校正子;以及
错误确定单元,配置为基于所获得的各个移位校正子,确定循环码中的错误;
错误预测单元,配置为预先估计循环码的开始和/或末尾处的错误。
7.根据权利要求6的装置,其中窗口宽度w为2的指数。
8.根据权利要求6的装置,其中所述连续w个移位操作算子为ximodg(x),其中i=1,2,…w,g(x)表示所述循环码的生成多项式。
9.根据权利要求6的装置,其中所述连续w个移位操作算子为x-imodg(x),其中i=1,2,…w,g(x)表示所述循环码的生成多项式。
10.根据权利要求6的装置,还包括错误估计单元,其配置为,通过移动所述窗口获得循环码对应的所有移位校正子,通过比较所述所有移位校正子获得其中最短的移位校正子,根据该最短的移位校正子估计循环码中的错误码。
11.一种对循环码进行解码的解码器,包括:
数据缓冲器,用于存储接收到的循环码和初始校正子;
并行计算电路,包括w个乘法器,用于将预先存储的连续w个移位操作算子施加到初始校正子,从而并行输出循环码的宽度为w的窗口内连续w个移位校正子;以及
错误检测电路,包含零检测模块,用以检测各个校正子中0的数目,基于检测结果,输出错误样式;以及
错误预测电路,其包括L-1个乘法器和错误检测模块,所述L-1个乘法器用于施加预先存储的连续L-1个移位操作算子从而获得L-1个校正子,所述错误检测模块基于所述L-1个校正子预先估计循环码的开始和/或末尾处的错误,其中L为循环码对应的错误长度。
12.根据权利要求11的解码器,其中w为2的指数。
13.根据权利要求11的解码器,其中所述连续w个移位操作算子为ximodg(x),其中i=1,2,…w,g(x)表示所述循环码的生成多项式。
14.根据权利要求11的解码器,其中所述连续w个移位操作算子为x-imodg(x),其中i=1,2,…w,g(x)表示所述循环码的生成多项式。
15.根据权利要求11的解码器,其中所述L-1个乘法器分别对初始校正子施加移位操作算子ximodg(x)而获得L-1个校正子,其中i=1,2,…L-1,g(x)表示所述循环码的生成多项式,所述错误检测模块基于获得的L-1个校正子确定循环码末尾处的错误。
16.根据权利要求11的解码器,其中所述L-1个乘法器分别对初始校正子施加移位操作算子x-imodg(x)而获得L-1个校正子,其中i=1,2,…L-1,g(x)表示所述循环码的生成多项式,所述错误检测模块基于获得的L-1个校正子确定循环码开始处的错误。
17.根据权利要求11的解码器,还包括错误估计电路,其包括w个1计数模块,多个比较器以及最小计数器,其中w个1计数模块分别计数所述w个移位校正子中1的数目,多个比较器对w个1计数器中的计数进行比较,将最短的移位校正子存储在所述最小计数器中。
CN201110427968.9A 2011-12-19 2011-12-19 用于解码循环码的方法、装置和解码器 Expired - Fee Related CN103166649B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110427968.9A CN103166649B (zh) 2011-12-19 2011-12-19 用于解码循环码的方法、装置和解码器
US13/705,528 US8996968B2 (en) 2011-12-19 2012-12-05 Method, apparatus and decoder for decoding cyclic code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110427968.9A CN103166649B (zh) 2011-12-19 2011-12-19 用于解码循环码的方法、装置和解码器

Publications (2)

Publication Number Publication Date
CN103166649A CN103166649A (zh) 2013-06-19
CN103166649B true CN103166649B (zh) 2016-06-15

Family

ID=48589417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110427968.9A Expired - Fee Related CN103166649B (zh) 2011-12-19 2011-12-19 用于解码循环码的方法、装置和解码器

Country Status (2)

Country Link
US (1) US8996968B2 (zh)
CN (1) CN103166649B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806309B2 (en) * 2011-06-13 2014-08-12 Silicon Motion Inc. Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof
CN103716058B (zh) * 2014-01-20 2016-08-10 谢东福 一种基于补码的循环码译码方法
US10826533B2 (en) 2015-11-02 2020-11-03 Chongqing University Of Posts And Telecommunications Methods, systems, and computer-readable media for decoding a cyclic code
JP6693187B2 (ja) * 2016-03-11 2020-05-13 富士ゼロックス株式会社 復号化装置、プログラム、及び情報伝送システム
CN106788463B (zh) * 2016-12-03 2019-09-17 天津大学 一种基于重编码的短码长循环码译码器装置
CN109245777B (zh) * 2017-07-10 2021-11-12 中兴通讯股份有限公司 一种阶梯码解码方法和阶梯码解码装置
CN108958114B (zh) * 2018-07-12 2020-03-24 四川赛科安全技术有限公司 内置在mcu中用于实现工业总线通讯的硬件编解码方法
US11082062B2 (en) * 2019-09-17 2021-08-03 SK Hynix Inc. Hardware implementations of a quasi-cyclic syndrome decoder
CN111628788B (zh) * 2020-05-29 2023-04-28 江汉大学 一种极快速纠错译码方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329535A (en) * 1992-04-30 1994-07-12 International Business Machines Corporation Variable block lengths on-the-fly error correcting decoder
CN1126397A (zh) * 1994-03-25 1996-07-10 三菱电机株式会社 纠错编码器、纠错解码器和具有纠错码的数据传输系统
CN1140277A (zh) * 1995-06-29 1997-01-15 现代电子产业株式会社 检测和校正循环冗余校验错误的装置
CN101409565A (zh) * 2008-09-04 2009-04-15 上海华为技术有限公司 一种译码方法、装置和编译码系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100265769B1 (ko) 1998-05-19 2000-09-15 윤종용 광 디스크 시스템에서의 에러 정정 장치 및 그 에러 정정 방법
US6321357B1 (en) 1998-05-31 2001-11-20 Innomedia Pte Ltd Method and apparatus for burst error correction
US7007223B2 (en) 2002-06-30 2006-02-28 Intel Corporation Efficient method and apparatus for low latency forward error correction
WO2006085488A1 (ja) 2005-02-09 2006-08-17 Mitsubishi Denki Kabushiki Kaisha 誤り訂正符号化装置及び誤り訂正復号装置
US7644338B2 (en) 2005-09-13 2010-01-05 Samsung Electronics Co., Ltd. Method of detecting and correcting a prescribed set of error events based on error detecting code
KR100835134B1 (ko) 2006-08-22 2008-06-04 한국과학기술원 순방향 오류정정 복호화 방법 및 복호화기.
US7962839B1 (en) 2007-02-27 2011-06-14 Link—A—Media Devices Corporation Single burst error correction
KR101433620B1 (ko) 2007-08-17 2014-08-25 삼성전자주식회사 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법
US8230316B2 (en) 2008-01-25 2012-07-24 Nevion Usa, Inc. Forward error correction for burst and random packet loss for real-time multi-media communication
US8386894B2 (en) * 2009-03-23 2013-02-26 Applied Micro Circuits Corporation Parallel forward error correction with syndrome recalculation
US8578256B2 (en) 2009-04-22 2013-11-05 Agere Systems Llc Low-latency decoder

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329535A (en) * 1992-04-30 1994-07-12 International Business Machines Corporation Variable block lengths on-the-fly error correcting decoder
CN1126397A (zh) * 1994-03-25 1996-07-10 三菱电机株式会社 纠错编码器、纠错解码器和具有纠错码的数据传输系统
CN1140277A (zh) * 1995-06-29 1997-01-15 现代电子产业株式会社 检测和校正循环冗余校验错误的装置
CN101409565A (zh) * 2008-09-04 2009-04-15 上海华为技术有限公司 一种译码方法、装置和编译码系统

Also Published As

Publication number Publication date
US8996968B2 (en) 2015-03-31
US20130159819A1 (en) 2013-06-20
CN103166649A (zh) 2013-06-19

Similar Documents

Publication Publication Date Title
CN103166649B (zh) 用于解码循环码的方法、装置和解码器
US10998921B2 (en) Encoding/decoding method, device, and system
US10187085B2 (en) Decoding method, decoding apparatus and decoder
US8468439B2 (en) Speed-optimized computation of cyclic redundancy check codes
JP5127189B2 (ja) エラー検出コードに基づくエラーの検出と訂正方法、及びそれに適した装置
US9344117B2 (en) Methods and systems for error-correction decoding
US8683293B2 (en) Method and system for fast two bit error correction
US8495478B2 (en) Frame boundary detection and decoding
JP7012479B2 (ja) リード・ソロモン復号器及び復号方法
CN101800560B (zh) Flash控制器中BCH编译码的纠错能力扩展方法
JP2009159482A (ja) 復号装置及び復号方法
CN102160031A (zh) 用以执行线性反馈移位指令的系统及方法
CN105812000A (zh) 一种改进的bch软判决译码方法
JP7116374B2 (ja) 短縮レイテンシ誤り訂正復号
WO2019096184A1 (zh) 阶梯码的解码方法、装置及存储介质
CN106537787A (zh) 译码方法和译码器
CN101060341A (zh) 后维特比纠错装置及其相关方法
US11171673B2 (en) Decoding method and apparatus
Jung et al. Low-complexity non-iterative soft-decision BCH decoder architecture for WBAN applications
CN105790882A (zh) 一种降低误检率的方法及装置
CN101847999A (zh) 一种用循环冗余校验码进行并行校验的方法
CN101848001A (zh) Flash控制器中BCH编译码的数据长度扩展方法
CN103269255A (zh) 一种并行crc电路的生成方法和装置
WO2012109872A1 (zh) 通信系统中的循环冗余校验处理方法、装置和lte终端
CN108471315B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160615

Termination date: 20201219

CF01 Termination of patent right due to non-payment of annual fee