CN111726124A - 用于纠错的电路及其方法 - Google Patents

用于纠错的电路及其方法 Download PDF

Info

Publication number
CN111726124A
CN111726124A CN201910218505.8A CN201910218505A CN111726124A CN 111726124 A CN111726124 A CN 111726124A CN 201910218505 A CN201910218505 A CN 201910218505A CN 111726124 A CN111726124 A CN 111726124A
Authority
CN
China
Prior art keywords
syndrome
symbols
communicatively coupled
multiplexer
symbol stream
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
CN201910218505.8A
Other languages
English (en)
Other versions
CN111726124B (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.)
Botom Integrated Circuit Shanghai Co ltd
Original Assignee
Botom Integrated Circuit Shanghai Co ltd
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 Botom Integrated Circuit Shanghai Co ltd filed Critical Botom Integrated Circuit Shanghai Co ltd
Priority to CN201910218505.8A priority Critical patent/CN111726124B/zh
Priority to US16/377,907 priority patent/US10715180B1/en
Publication of CN111726124A publication Critical patent/CN111726124A/zh
Application granted granted Critical
Publication of CN111726124B publication Critical patent/CN111726124B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • 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
    • 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/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • 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
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • 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/65Purpose and implementation aspects
    • H03M13/6575Implementations based on combinatorial logic, e.g. Boolean circuits
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes

Landscapes

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

Abstract

一种用于纠错的电路,包括第一RS校验子生成器,被配置为根据要解码的接收码元流为RS(n,k)码产生第一RS校验子,其中k和n分别是要解码的接收码元流中的数据码元数和代码码元总数;第一判决单元,通信地耦合到第一RS校验子生成器,并且被配置为确定第一RS校验子中是否存在至少N个的码元等于0,其中N与RS(n,k)码的码距有关;以及通信地耦合到第一判决单元的第一加法器,并且被配置为如果第一RS校验子中存在至少N个码元等于0,则通过将第一RS校验子加到要解码的接收码元流来输出纠正解码码字。

Description

用于纠错的电路及其方法
技术领域
本申请涉及数据传输,但不是排他地,涉及用于纠错的电路及其方法。
背景技术
BCH(Bose-Chaudhuri-Hocquenghem)码包括RS(Reed-Solomon)码。用于RS码的传统解码方案通常具有以下步骤:计算要解码的RS码的校验子Sx;计算校验子Sx的错误位置多项式的根;并执行Chien搜索。
例如,对于RS(12,9)码,其中9是要解码的接收码元流(symbol stream)中的数据码元的数量,和n是要解码的接收码元流中的代码码元的总数,解码需要通过确定由校验子(Syndrome)Sx组成的新矩阵是否是奇异矩阵(singular matrix)来确定是否可以纠正该接收码元流(也称为码字)。同时,解码器需要在该确定被完成后计算多项式的根,然后计算错误纠正值。这种传统方法相对容易用软件实现,但是对于硬件实现,例如专用集成电路(ASIC)实现,解码器将引入更复杂的逻辑和状态机。
该传统方法具有适用性,并且可以用于解码BCH码。然而,将这种传统方法应用于缩短的RS(12,9)码,不仅使得解码算法更复杂,而且在RS(12,9)码中的每个数据码元和奇偶码元(或者也称为奇偶校验码元或校验码元)都有一个错误时也无法确定和纠正该RS(12,9)码的错误。
发明内容
根据本发明的实施例,一种用于纠错的电路,包括:第一里德索罗蒙码(RS)校验子生成器,被配置为根据要解码的接收码元流为RS(n,k)码产生第一RS校验子,其中k是要解码的接收码元流中的数据码元的数量,n是要解码的接收码元流中的代码码元的总数;第一判决单元,通信地耦合到第一RS校验子生成器,并且被配置为确定在第一RS校验子中是否存在至少N个码元等于0,其中N与RS(n,k)码的码距有关;第一加法器,通信地耦合到第一判决单元,并且被配置为如果第一RS校验子中存在至少N个码元等于0,则通过将第一RS校验子加到要解码的接收码元流来输出纠正解码码字。
根据本发明的另一实施例,一种用于纠错的方法,包括:通过第一里德索罗蒙码(RS)校验子生成器根据要解码的接收码元流,为RS(n,k)码的产生第一RS校验子,其中k是要解码的接收码元流中的数据码元的数量,n是要解码的接收码元流中的代码码元的总数;通过通信耦合到第一RS校验子生成器的第一判决单元确定第一RS校验子中是否存在至少N个码元等于0,其中N与RS(n,k)码的码距有关;如果第一RS校验子存在至少N个码元等于0,则通过通信地耦合到第一判决单元的第一加法器,通过将第一RS校验子加到要解码的接收码元流中,输出纠正解码码字。
附图说明
参考以下附图描述了本发明的非限制性和非穷举性实施例,其中除非另有说明,否则相同的附图标记在各个视图中指代相同的部分。
图1是根据本发明实施例的用于纠错的电路的电路图。
图2是根据本发明另一实施例的用于纠错的电路的电路图。
图3是根据本发明另一实施例的用于纠错的电路的电路图。
图4是根据本发明实施例的用于RS校验子生成器的电路的电路图。
图5是示出根据本发明的实施例的用于纠错的方法的流程图。
图6是示出根据本发明另一实施例的用于纠错的方法的流程图。
图7是示出根据本发明的实施例的用于由第一RS校验子生成器产生第一RS校验子的方法的流程图。
图8是示出根据本发明的实施例的用于运算多路复用器的方法的流程图。
具体实施方式
现在将描述本发明的各个方面和示例。以下描述提供了用于彻底理解和实现这些示例的描述的具体细节。然而,本领域技术人员将理解,可以在没有许多这些细节的情况下实践本发明。
另外,可能未详细示出或描述一些众所周知的结构或功能,以避免不必要地模糊相关描述。
在下面给出的描述中使用的术语旨在以其最广泛的合理方式解释,即使它与本发明的某些特定示例的详细描述一起使用。以下甚至可以强调某些术语,然而,任何旨在以任何受限制的方式解释的术语将在本详细描述部分中明确且具体地定义。
数字移动无线电(DMR)是由欧洲电信标准协会(ETSI)在2006年定义的数字对讲机(也称为手持收发机)标准。与模拟对讲机相比,它具有带宽更窄,频谱效率更高,相邻频带干扰更低,功耗更低以及支持数据服务的优点。DMR是对讲机未来的发展方向。
在DMR标准中,编码器使用多个通道对数据和控制帧进行编码,而Reed-Solomon(RS)代码就是其中之一。在一个实施例中,编码器使用RS(12,9),用作块乘积Turbo码(BPTC)的内码,主要用于纠正小于8位的连续错误的发生。根据RS(12,9)码的特点,本发明实施例设计了新的解码方法,降低了解码的复杂度,验证了解码算法的可行性。
本发明的至少一个实施例的特征在于交换用于256*8-bit错误纠正值表和27*8-bit错误位置表的ROM空间,以大大降低解码复杂度和解码时间。此外,在数据码元和奇偶校验码元都具有一个错误的情况下,该实施例还可以纠正错误,这增加了编码增益。此外,由于RS编/解码器本身需要构造大的伽罗瓦域(Galois Field,简称:GF)(28)或GF(28)对数表,因此额外牺牲的错误纠正值表和错误位置表的ROM空间,对于ASIC实现,是可以接受的。
用于RS(12,9)码的实施例的主要元件包括校验子Sx生成器,GF(28)指数对数表,校验子Sx判决单元,错误码元位置表和错误纠正值表。
校验子Sx生成器包括三个1字节寄存器,异或器(模二加法器)和GF(28)对数表。Sx生成器需要查询GF(28)指数对数表12次以获得校验子Sx。
校验子Sx判决单元主要用于确定是否存在错误和/或错误是否可纠正。错误可纠正条件意味着至少两个Sx值为0,这也意味着错误码元出现在码字的三个奇偶校验码元中。在这种情况下,数据代码没有错误,可以直接输出。
错误码元位置检测通过查询GF(28)指数对数表将三个奇偶校验校验子Sx转换为指数形式,然后依次找到它与错误位置表中相应值之间的差值。如果三个差值都相等,则电路可以纠正错误,并且电路确定错误码元出现在当前减法位置。如果三个差值中的两个相等,则错误是可纠正的,并且错误码元出现在当前减法位置和奇偶校验码元中。在纠正数据码元之后,电路可以直接输出纠正数据码元流。如果没有相同的差值,则电路无法纠正错误,并且电路报告数据不正确。
对于错误纠正值表,在错误码元位置检测器(其可以由寻址单元实现)检测到错误码元之后,电路根据相同差值的值查询错误纠正值表获得错误纠正值,并且将错误纠正值模二加错误码元(换句话说,(错误码元+错误纠正值)mod2)),以纠正错误。
对于连接,RS(12,9)纠错电路具有9字节数据码元和3字节奇偶校验码元两者的输入,并且校验子Sx生成器产生3字节校验子Sx。
校验子Sx被用于确定码字是否有错误,以及错误是否可纠正,这属于纠错电路的输入。纠错电路还包括索引表,错误位置表和错误纠正值表。纠错电路输出纠错码字,如果纠错失败,则输出原码字。
如果在每个数据码元和奇偶校验码元中都存在一个码元错误,则Sx校验子生成器和判决单元被调用两次,一次用于纠正数据码元错误,一次用于确定/纠正奇偶校验码元错误。
将原码字中的错误码与错误纠正值相加之后,与原无错误码字一起形成新的解码码字。
将参照图1至图4进一步详细讨论纠错电路。
图1是根据本发明实施例的用于纠错的电路100的电路图。
用于纠错的电路100包括第一RS校验子生成器102,第一判决单元104和第一加法器106。第一RS校验子生成器102,用于根据要解码的接收码元流u[0:n-1]产生用于RS(n,k)码的第一RS校验子Sx[0:nk-1],其中k是要解码的接收码元流中的数据码元的数量,n是要解码的接收码元流中的代码码元的总数。
第一判决单元104通信地耦合到第一RS校验子生成器102,并且被配置为确定第一RS校验子Sx[0:nk-1]中是否存在至少N个码元等于0的,其中N与RS(n,k)码的码距有关(或对应于代码的最大纠错能力)。注意,尽管在实施例中,我们使用RS(12,9)码作为示例,在给定错误位置表并且自适应地设计错误纠正值表的情况下,实施例也适用于RS(n,k)码,其中n不等于12且k不等于9。
第一加法器106通信地耦合到第一判决单元104,并且被配置为如果第一RS校验子Sx[0:nk-1]中存在至少N个码元等于0,则通过将第一RS校验子Sx[0:n-k-1]加到要解码的接收码元流u[0:n-1]来输出纠正解码码字c。换句话说,c=u=u[0:n-1]+Sx[0:n-k-1]。
或者,电路100还包括存储器108,第一寻址单元110,第二加法器112,
第二判决单元114和输出端口116。存储器108存储对数表,错误位置表和错误纠正值表。
表1示出了示例对数表,表2示出了示例错误位置表,和表3示出了示例错误纠正值表。这三个表都可用于RS(12,9)码。
表1-示例对数表
0 1 2 3 4 5 6 7 8 9 A B C D E F
00 0 1 25 2 50 26 198 3 223 51 238 27 104 199 75
10 4 100 224 14 52 141 239 129 28 193 105 248 200 8 76 113
20 5 138 101 47 225 36 15 33 53 147 142 218 240 18 130 69
30 29 181 194 125 106 39 249 185 201 154 9 120 77 228 114 166
40 6 191 139 98 102 221 48 253 226 152 37 179 16 145 34 136
50 54 208 148 206 143 150 219 189 241 210 19 92 131 56 70 64
60 30 66 182 163 195 72 126 110 107 58 40 84 250 133 186 61
70 202 94 155 159 10 21 121 43 78 212 229 172 115 243 167 87
80 7 112 192 247 140 128 99 13 103 74 222 237 49 197 254 24
90 227 165 153 119 38 184 180 124 17 68 146 217 35 32 137 46
A0 55 63 209 91 149 188 207 205 144 135 151 178 220 252 190 97
B0 242 86 211 171 20 42 93 158 132 60 57 83 71 109 65 162
C0 31 45 67 216 183 123 164 118 196 23 73 236 127 12 111 246
D0 108 161 59 82 41 157 85 170 251 96 134 177 187 204 62 90
E0 203 89 95 176 156 169 160 81 11 245 22 235 122 117 44 215
F0 79 174 213 233 230 231 173 232 116 214 244 234 168 80 88 175
表2–示例错误位置表
1 2 3 4 5 6 7 8 9
d0 199 73 251 242 232 2 165 249 198
d1 70 180 190 93 206 246 60 103 200
d2 79 2 248 238 8 171 0 204 5
表3-示例错误纠正值表
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0x8E 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 0x1D 0x3A 0x74 0xE8 0xCD 0x87 0x13
16 0x26 0x4C 0x98 0x2D 0x5A 0xB4 0x75 0xEA 0xC9 0x8F 0x03 0x06 0x0C 0x18 0x30 0x60
32 0xC0 0x9D 0x27 0x4E 0x9C 0x25 0x4A 0x94 0x35 0x6A 0xD4 0xB5 0x77 0xEE 0xC1 0x9F
48 0x23 0x46 0x8C 0x05 0x0A 0x14 0x28 0x50 0xA0 0x5D 0xBA 0x69 0xD2 0xB9 0x6F 0xDE
64 0xA1 0x5F 0xBE 0x61 0xC2 0x99 0x2F 0x5E 0xBC 0x65 0xCA 0x89 0x0F 0x1E 0x3C 0x78
80 0xF0 0xFD 0xE7 0xD3 0xBB 0x6B 0xD6 0xB1 0x7F 0xFE 0xE1 0xDF 0xA3 0x5B 0xB6 0x71
96 0xE2 0xD9 0xAF 0x43 0x86 0x11 0x22 0x44 0x88 0x0D 0x1A 0x34 0x68 0xD0 0xBD 0x67
112 0xCE 0x81 0x1F 0x3E 0x7C 0xF8 0xED 0xC7 0x93 0x3B 0x76 0xEC 0xC5 0x97 0x33 0x66
128 0xCC 0x85 0x17 0x2E 0x5C 0xB8 0x6D 0xDA 0xA9 0x4F 0x9E 0x21 0x42 0x84 0x15 0x2A
144 0x54 0xA8 0x4D 0x9A 0x29 0x52 0xA4 0x55 0xAA 0x49 0x92 0x39 0x72 0xE4 0xD5 0xB7
160 0x73 0xE6 0xD1 0xBF 0x63 0xC6 0x91 0x3F 0x7E 0xFC 0xE5 0xD7 0xB3 0x7B 0xF6 0xF1
176 0xFF 0xE3 0xDB 0xAB 0x4B 0x96 0x31 0x62 0xC4 0x95 0x37 0x6E 0xDC 0xA5 0x57 0xAE
192 0x41 0x82 0x19 0x32 0x64 0xC8 0x8D 0x07 0x0E 0x1C 0x38 0x70 0xE0 0xDD 0xA7 0x53
208 0xA6 0x51 0xA2 0x59 0xB2 0x79 0xF2 0xF9 0xEF 0xC3 0x9B 0x2B 0x56 0xAC 0x45 0x8A
224 0x09 0x12 0x24 0x48 0x90 0x3D 0x7A 0xF4 0xF5 0xF7 0xF3 0xFB 0xEB 0xCB 0x8B 0x0B
240 0x16 0x2C 0x58 0xB0 0x7D 0xFA 0xE9 0xCF 0x83 0x1B 0x36 0x6C 0xD8 0xAD 0x47 0x8E
第一寻址单元110通信地耦合到第一判决单元104和存储器108两者,并且被配置为如果第一RS校验子Sx[0:n-k-1]中存在少于N个码元等于0,则通过搜索对数表1来产生第一RS校验子Sxe[0:n-k-1]的指数表示。
第二加法器112通信地耦合到第一寻址单元110,并且被配置为通过每个随后从第一RS校验子Sxe[0:n-k-1]的指数表示中减去错误位置表中的k组错误位置值中的相应一组错误位置值,来产生至少一个减去的第一RS校验子Sxd[0:n-k-1]。
第二判决单元114通信地耦合到第二加法器112,并且被配置为确定在所述至少一个减去的第一RS校验子Sxd[0:n-k-1]中的每一个中的N个码元是否彼此相等。
输出端口116通信地耦合到第二判决单元114,并且被配置为如果k个减去的第一RS校验子Sxd[0:n-k-1]中的任何一个中的N个码元都不彼此相等,则放弃解码并发送错误指示符。
可选地,电路100还包括第二寻址单元118,第三判决单元120和第三加法器122。
第二判决单元114还被配置为如果第二判决单元114确定k个减去的第一RS校验子中的一个中的N个码元彼此相等,则确定具有彼此相等的N个码元的减去的第一RS校验子Sxd[0:n-k-1]的减法序列对应错误数据码元位置。
第二寻址单元118通信地耦合到第二判决单元114,并且被配置为通过使用彼此相等的N个码元的值搜索错误纠正值表3来检索对应于错误数据码元位置的错误bit值。
第三判决单元120通信地耦合到第二寻址单元118,并且被配置为确定至少一个减去的第一RS校验子中的一个中的N+1个码元是否彼此相等。
第三加法器122通信地耦合到第二寻址单元118,并且被配置为如果至少一个减去的第一RS校验子Sxd[0:n-k-1]中的每一个中的N+1个码元彼此相等,则通过将错误bit值加到要解码的接收码元流来产生纠正接收码元流u[0:n-1]。
可选地,电路100还包括第四加法器124,第二RS校验子生成器126,第四判决单元128和第五加法器130。
第四加法器124通信地耦合到第三判决单元120,并且被配置为如果至少一个减去的第一RS校验子Sxd[0:n-k-1]中的每一个中只有N个码元彼此相等,则通过将错误bit值加到要解码的接收码元流来产生奇偶校验纠正接收码元流u[0:n-1]。
第二RS校验子生成器126通信地耦合到第四加法器124,并且被配置为根据奇偶校验纠正接收码元流u'[0:n-1],产生用于RS(n,k)码的第二RS校验子Sx'[0:n-k-1],其中k是奇偶校验纠正接收码元流u'[0:n-1]中的数据码元的数量,n是奇偶校验纠正接收码元流u'[0:n-1]中的代码码元总数。
第四判决单元128通信地耦合到第二RS校验子生成器126,并且被配置为确定在第二RS校验子Sx'[0:n-k-1]中是否存在至少N个码元等于0的,其中N与RS(n,k)码的码距有关。
第五加法器130通信地耦合到第四判决单元128,并且被配置为通过将第二RS校验子Sx'[0:n-k-1]加到奇偶校验纠正接收码元流u'[0:n-1],来输出第二纠正解码码字。
在一个实施例实现中,n等于12,k等于9,即RS(12,9)代码作为例子。
实施例1:
在示例实施例中,第一RS校验子生成器102被配置为根据接收码元流u[0:11]进行解码,为RS(12,9)码产生第一RS校验子Sx[0:2]。其中9是要解码的接收码元流中的数据码元的数量,12是要解码的接收码元流中的代码码元的总数。设u=[0x0D,0x5B,0x9B,0xF3,0x83,0x6D,0x33,0xFC,0xD4,0x11,0x5E,0xDB]。假设第10个数据码元0x0E具有连续错误(错误位为1~5位)并且更改为0x11。相应地,RS校验子生成器102获得第一校验子Sx[0:2]=[0x31,0,0]。
第一判决单元104通信地耦合到第一RS校验子生成器102,并且被配置为确定第一RS校验子Sx[0:2]中是否存在至少N个码元等于0,其中N与RS(n,k)码的码距有关(或者对应于码的最大纠错能力)。在该示例中,N等于2。相应地,第一判决单元104确定Sx中存在至少两个0。
第一加法器106通信地耦合到第一判决单元104,并且被配置为如果第一RS校验子Sx[0:2]中至少有两个码元等于0,则通过将第一RS校验子Sx[0:2]加到要解码的接收码元流u[0:11],来输出纠正解码码字c。换句话说,c=u=u[0:11]+Sx[0:2]。因此,c=u+[0...0,Sx0 Sx1,Sx2]=u+[0...0,0x31,0,0]=[0x0D,0x5B,0x9B,0xF3,0x83,0x6D,0x33,0xFC,0xD4,0x0E,0x5E,0xDB]。解码完成。
实施例2:
第一寻址单元110通信地耦合到第一判决单元104和存储器108,并且被配置为如果第一RS校验子Sx[0:2]中有至少2个码元等于0,则通过搜索对数表1来可选地产生第一RS校验子Sxe[0:2]的指数表示。在这种情况下,设u=[0x0D,0x5B,0xA4,0xF3,0x83,0x6D,0x33,0xFC,0xD4,0x0E,0x5E,0xDB]。假设第三个数据0x9B有连续错误(错误位为1~6位)并改为0xA4。因此,第一校验子生成器得到校验子Sx[0:2]=[99,68,230]=[0x63,0x40,xE6],其中[99,68,230]是校验子的十进制表示,[0x63,0x40,xE6]是该校验子的转换后的十六进制表示。然后,第一寻址单元110检查示例对数表1,并获得第一RS校验子的指数表示Sxe=[163,102,160]。在表1中,第一列表示第一个十六进制数字,第一行表示第二个十六进制数字。例如,0x63地址到第八行(60)和第五列(3),等于163。
第二加法器112通信地耦合到第一寻址单元110并且被配置为通过每个随后从第一RS校验子Sxe[0:n-2]的指数表示中减去错误位置表中的k组错误位置值中的相应一组错误位置值,来产生至少一个减去的第一RS校验子Sxd[0:2]。第二判决单元114通信地耦合到第二加法器112并被配置为确定在所述至少一个减去的第一RS校验子Sxd[0:2]中的每一个中是否有2个码元彼此相等。例如,第二加法器112从Sxe[163,102,160]中减去第一组错误位置值[d0,d1,d2]=[199,70,79],并获得第一组减去的第一RS校验子Sxd1[0:2]=[219,32,81]。由于减去的第一RS校验子的第一组中的值都不彼此相等,第二加法器112继续执行另一组减法。然后,第二加法器112继续从第一RS校验子Sxe[163,102,160]的指数表示中减去第二组错误位置值[d0,d1,d2]=[73,180,2],并获得第二组减去的第一RS校验子Sxd2[0:2]=[90,177,155]。由于减去的第一RS校验子的第二组中的值都不彼此相等,因此第二加法器112继续执行另一组减法。然后,第二加法器112继续从第一RS校验子Sxe[163,102,160]的指数表示中减去第三组错误位置值[d0,d1,d2]=[251,190,248],并获得第三组减去的第一RS校验子Sxd3[0:2]=[167,167,167]。请注意。可以根据表2-示例错误位置表来解决所有错误位置值。也就是说,每次如果先前获得的减去的第一RS校验子的组中没有两个值彼此相等,则第二加法器112继续从第一RS校验子的指数表示中减去相应的错误位置值。请注意,如果减去的值为负,则将255加到该负值。减去的第一RS校验子的组的值可以在下面的表4中示出。表4-对于实施例2的减去的第一RS校验子的组的值
1 2 3 4 5 6 7 8 9
Sxd0 219 90 167 * * * * * *
Sxd1 32 177 167 * * * * * *
Sxd2 81 158 167 * * * * * *
在上表中,星状码元表示不一定执行计算。
第二判决单元114进一步被配置为:如果第二判决单元确定至少一个(在上面的例子中,具体的为3)减去的第一RS校验子中的一个中的2个码元彼此相等,确定具有彼此相等的2个码元的减去的第一RS校验子的减法序列对应于错误数据码元位置。第二寻址单元118通信地耦合到第二判决单元114,并且被配置为通过使用彼此相等的2个码元的值搜索错误纠正值表来检索与错误数据码元位置相对应的错误bit值。例如,第二判决单元114确定减去的第一RS校验子的减法序列,其中2个码元彼此相等的,意味着第三次减法,对应于错误数据码元位置。换一种说法,第二判决单元114确定第3个数据码元有错误,并且根据表3-示例错误纠正值表来检索错误bit值0x3F,在减去的第一RS校验子Sxd3[0:2]=[167,167,167]中使用相同的值167。
第三判决单元120通信地耦合到第二寻址单元118,并且被配置为确定3个减去的第一RS校验子中的一个中的N+1(或具体为3)个码元是否彼此相等。相应地,第三判决单元120确定Sxd3[0:2]=[167,167,167]中的3个码元彼此相等。
第三加法器122通信地耦合到第二判决单元120,并且被配置为如果在至少一个减去的第一RS校验子中的一个中的3个码元彼此相等,则通过将错误bit值加到要解码的接收码元流,来产生纠正接收码元流。相应地,第三加法器122通过将0x3F加到0xA4来获得纠正第3个数据码元,以获得0x9B。相应地,c=u+[0,0,0xA4,0,0...0]=[0x0D,0x5B,0x9B,0xF3,0x83,0x6D,0x33,0xFC,0xD4,0x0E,0x5E,0xDB]。纠错完成。
实施例3:
除了第一RS校验子生成器102,第一判决单元104,存储器108,第一寻址单元110,第二加法器112,第二判决单元114,第二寻址单元118,第三判决单元120,第三加法器122和第三加法器122外,电路100还包括第四加法器128和第五加法器130。
第一寻址单元110通信地耦合到第一判决单元104和存储器108,并且被配置为如果在第一RS校验子Sx[0:2]中至少有2个码元等于0,通过搜索对数表1来产生第一RS校验子Sxe[0:2]的指数表示。在这种情况下,设u=[0x0D,0x5B,0xA4,0xF3,0x83,0x6D,0x33,0xFC,0xD4,0x0E,0x5E,0x24]。假设第三个数据0x9B有连续错误(错误位为1~6位)并且改为0xA4,第十二个数据0xDB有连续错误(错误位为1~8位)并改为0x24。相应地,第一校验子生成器获得校验子Sx[0:2]=[99,68,25]=[0x63,0x44,0x19],其中[99,68,25]是校验子的十进制表示,[0x63,0x44,0x19]是该校验子的转换十六进制表示。然后,第一寻址单元110检查示例对数表1,并得到Sxe=[163,102,193]。在表1中,第一列表示第一个十六进制数字,第一行表示第二个十六进制数字。例如,0x63地址指向八行(60)和第五列(3),等于163。
第二加法器112通信地耦合到第一寻址单元110,并配置为通过随后每个从第一RS校验子Sxe[0:n-2]的指数表示中减去错误位置表中的k组错误位置值中的相应一组错误位置值,产生至少一个减去的第一RS校验子Sxd[0:2]。第二判决单元114通信地耦合到第二加法器112,并且被配置为确定在所述至少一个相减的第一RS校验子Sxd[0:2]中的每一个中的2个码元是否彼此相等。因此,第二加法器112从Sxe[163,102,193]中减去第一组错误位置值[d0,d1,d2]=[199,70,79],并获得第一组减去的第一RS校验子Sxd1[0:2]=[219,32,114]。由于减去的第一RS校验子的第一组中的值都彼此相等,所以第二加法器112继续执行另一组减法。然后,第二加法器112继续从第一RS校验子Sxe[163,102,193]的指数表示中减去第二组错误位置值[d0,d1,d2]=[73,180,2],并获得第二组减去第一RS校验子Sxd2[0:2]=[90,177,191]。由于减去的第一RS校验子的第二组中的值都彼此相等,所以第二加法器112继续执行另一组减法。然后,第二加法器112继续从第一RS校验子Sxe[163,102,193]的指数表示中减去第三组错误位置值[d0,d1,d2]=[251,190,248],并获得第三组减去的第一RS校验子Sxd3[0:2]=[167,167,200]。请注意,可以根据表2示例错误位置表来解决所有错误位置值。也就是说,每次如果在先前获得的第一减法RS校验子组中没有两个值彼此相等,则第二加法器112继续从第一RS校验子的指数表示中减去相应的错误位置值。请注意,如果减去的值为负,则将255加到负值。减去的第一RS校验子的组的值可以在下面的表5中示出。
表5-对于实施例2的减去的第一RS校验子的组的值
1 2 3 4 5 6 7 8 9
Sxd0 219 90 167 * * * * * *
Sxd1 32 177 167 * * * * * *
Sxd2 114 191 200 * * * * * *
在上面的表5中,星状码元表示不一定执行计算。
第四加法器124通信地耦合到第三判决单元120,并且被配置为如果至少一个减去的第一RS校验子中的每一个中只有N个码元彼此相等,则通过将错误bit值加到要解码的接收码元流,产生奇偶校验纠正的接收码元流。例如,在第三组减法中,第四加法器124发现Sxd Sxd3[0:2]=[167,167,200]中的两个值是相同的,并且它们都是167。此时,第三判决单元120判定第三码元不正确。进一步地,由于Sxd中的不同值是第三Sxd2,所以第三判决单元120可以断定第三奇偶校验码元(即接收码元流u的第12个码元)也具有错误。根据值167,
第三判决单元120检查错误纠正值表3,并获得错误位是0x3F(即低6位)。因此,第四加法器124将第3个数据码元的0x3F模二加0xA4,以获得0x9B。第3个数据码元的纠错是成功的。因此,第四加法器124获得奇偶校验纠正接收码元流[0x0D,0x5B,0x9B,0xF3,0x83,0x6D,0x33,0xFC,0xD4,0x0E,0x5E,0x24]。
然后,第二RS校验子生成器126通信地耦合到第四加法器124,并且被配置为根据奇偶校验纠正的接收码元流为RS(n,k)码产生第二RS校验子,其中k是奇偶校验纠正的接收码元流中的数据码元的数量,和n是奇偶校验纠正的接收码元流中的代码码元的总数。例如,第二RS校验子生成器126重新计算RS校验子以获得第二RS校验子Sx'=[0,0,FF]。
第四判决单元128通信地耦合到第二RS校验子生成器126,并且被配置为确定在第二RS校验子中是否存在至少N个码元等于0,其中N与RS(n,k)码的码距有关。在上述情况下,第四判决单元128判定有2个码元等于0的。
第五加法器130通信地耦合到第四判决单元128,并且被配置为通过将第二RS校验子加到奇偶校验纠正接收码元流来输出第二纠正解码码字。因此,第五加法器130将[0,0,FF]模二加奇偶校验纠正接收码元流[0x0D,0x5B,0x9B,0xF3,0x83,0x6D,0x33,0xFC,0xD4,0x0E,0x5E,0x24],并获得第二纠正解码码字[0x0D,0x5B,0x9B,0xF3,0x83,0x6D,0x33,0xFC,0xD4,0x0E,0x5E,0xDB]。因此,解码完成。
实施例4:
第一寻址单元110通信地耦合到第一判决单元104和存储器108两者,并且配置为如果在第一RS校验子Sx[0:2]中至少两个码元等于0,通过搜索对数表1可选地产生第一RS校验子Sxe[0:2]的指数表示,在这种情况下,设u=[0x0D,0x5B,0xA4,0xF3,0x83,0x6E,0x33,0xFC,0xD4,0x0E,0x5E,0xDB]。也就是说,第3个数据码元0x9B具有连续错误(位1至6)并改为0xA4,且第6个数据0x6D具有连续错误(位1至2)并改为0x6E。因此,第一校验子生成器获得校验子Sx[0:2]=[123,220,107]=[0x7B,0xDC,0x6B],其中[123,220,107]是校验子的十进制表示,和[0x7B,0xDC,0x6B]是该校验子转换后的十六进制表示。然后,第一寻址单元110检查示例对数表1,并得到Sxe=[172,187,84]。在表1中,第一列表示第一个十六进制数字,第一行表示第二个十六进制数字。例如,0x7B寻址到第九行(70)和第十三列(B),其等于172。
第二加法器112通信地耦合到第一寻址单元110,并且被配置为通过每个随后从第一RS校验子Sxe[0:n-2]的指数表示中减去错误位置表中的k组错误位置值中的相应一组错误位置值,来产生至少一个减去的第一RS校验子Sxd[0:2]。第二判决单元114通信地耦合到第二加法器112,并且被配置为确定所述至少一个减去的第一RS校验子Sxd[0:2]中的每一个中的2个码元是否彼此相等。因此,第二加法器112从第一RS校验子Sxe[172,187,84]的指数表示中减去第一组错误位置值[d0,d1,d2]=[199,70,79],并获得第一组减去的第一RS校验子Sxd1[0:2]=[228,117,5]。由于减去的第一RS校验子的第一组中的值都不彼此相等,所以第二加法器112继续执行另一组减法。然后,第二加法器112继续从第一RS校验子Sxe[172,187,84]的指数表示中减去第二组错误位置值[d0,d1,d2]=[73,180,2],并获得第二组减去的第一RS校验子的组Sxd2[0:2]=[99,7,82]。由于减去的第一RS校验子的第二组中的值都不彼此相等,所以第二加法器112继续执行另一组减法。然后,第二加法器112继续从第一RS校验子Sxe[172,187,84]的指数表示中减去第三组错误位置值[d0,d1,d2]=[251,190,248],并获得第三组减去的第一RS校验子Sxd3[0:2]=[176,252,91]的组。第二加法器112继续执行直到所有九次减法都已完成,并且第二加法器112通过减去第九组错误来获得减去的第一RS校验子Sxd9[0:2]=[229,242,79]的第九组位置值[d0,d1,d2]=[198,200,5]来自第一RS校验子Sxe[172,187,84]的指数表示。减去的第一RS校验子的组的值可以在下面的表6中示出。
表6-实施例4中减去的第一RS校验子的组的值
1 2 3 4 5 6 7 8 9
Sxd0 228 99 176 185 195 170 7 178 229
Sxd1 117 7 252 94 236 196 127 84 242
Sxd2 5 82 91 101 76 168 84 135 79
在9组减法之后,仍然没有出现相同的Sxd值。此时,解码过程退出,输出端口116报告没有解码的解决方案,和报告解码错误,并放弃解码。
图2是根据本发明另一个实施例的纠错电路200的电路图。与电路100不同,该纠错电路200的电路元件都通过总线202连接。
图3是根据本发明另个一实施例的纠错电路300的电路图。与电路100不同,该纠错电路300的电路元件都通过总线202连接。与其中示出了多个RS校验子生成器,多个加法器,多个寻址单元和多个判决单元的图2不同,图3仅示出了每个元件中的一个。注意这些元件是否可以重复使用取决于在交换或电路区域中是否牺牲了逻辑和时间成本。
图4是根据本发明实施例的RS校验子生成器400的电路图。注意对于RS校验子生成器,其生成器多项式可表示为g(x)=x3+0Ehx2+38hx+40h。该RS校验子生成器400的结构将在下面讨论。
第一RS校验子生成器400包括第六加法器402,其通信地耦合到第一多路复用器408和第一寄存器414,并且被配置为通过将要解码的12字节接收码元流加到第一多路复用器408的输出,来输出第一码元流到第一寄存器414;第七加法器404,通信地耦合到第一寄存器414,第二寄存器416和第二多路复用器410,并且被配置为通过将第一码元流加到第二多路复用器410的输出,来将第二码元流输出到第二寄存器416;第八加法器406,通信地耦合到第二寄存器416,第三寄存器418和第三多路复用器412,并且被配置为通过将第二码元流加到第三多路复用器412的输出,来将第三码元流输出到第三寄存器;第四多路复用器420,通信地耦合到第三寄存器418,第一多路复用器408,第二多路复用器410和第三多路复用器412,并且被配置为将基于第三码元流的第四码元流输出到第一多路复用器408,第二多路复用器410和第三多路复用器412中的每一个。注意根据生成器多项式,第一多路复用器也接收0x40的输入,第二多路复用器也接收0x38的输入,第三多路复用器也接收0x0E的输入,第四多路复用器也接收0x01的输入,这些数字分别对应于生成器多项式的系数。注意,第一,第二和第三寄存器(即Reg1[0],Reg2[1]和Reg3[2])中的每一个存储校验子值Sx1-Sx3,并且可以在12个时钟之后读出这些值。
可选地,RS校验子生成器还包括存储对数表和指数表的存储器,其中第一多路复用器408,第二多路复用器410,第三多路复用器412和第四多路复用器420中的每一个进一步包括被配置为接收第一输入的第一输入端口;被配置为接收第二输入的第二输入端口;被配置为通过将第一输入的指数表示加第二输入的指数表示以产生和来输出输出信号的输出端口,其中,通过搜索对数表获得第一输入的指数表示和第二输入的指数表示;通过将和模数乘以255来生成模数值;并通过搜索指数表将模数值转换为多项式表示。
具体而言,第一,第二,第三和第四多路复用器中的每一个执行以下运算:Mux(α,β)=E((Λ(α)+Λ(β))M(255))。
其中,Λ表示搜索对数表,该对数表如表1所示,并将该值转换为指数表示。E表示搜索下面的指数表7,并将该值转换回多项式表示。M代表模运算。
表7-指数表
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 4 8 10 20 40 80 1D 3A 74 E8 CD 87 13 26
16 4C 98 2D 5A B4 75 EA C9 8F 03 06 0C 18 30 60 C0
32 9D 27 4E 9C 25 4A 94 35 6A D4 B5 77 EE C1 9F 23
48 46 8C 05 0A 14 28 50 A0 5D BA 69 D2 B9 6F DE A1
64 5F BE 61 C2 99 2F 5E BC 65 CA 89 0F 1E 3C 78 F0
80 FD E7 D3 BB 6B D6 B1 7F FE E1 DF A3 5B B6 71 E2
96 D9 AF 43 86 11 22 44 88 0D 1A 34 68 D0 BD 67 CE
112 81 1F 3E 7C F8 ED C7 93 3B 76 EC C5 97 33 66 CC
128 85 17 2E 5C B8 6D DA A9 4F 9E 21 42 84 15 2A 54
144 A8 4D 9A 29 52 A4 55 AA 49 92 39 72 E4 D5 B7 73
160 E6 D1 BF 63 C6 91 3F 7E FC E5 D7 B3 7B F6 F1 FF
176 E3 DB AB 4B 96 31 62 C4 95 37 6E DC A5 57 AE 41
192 82 19 32 64 C8 8D 07 0E 1C 38 70 E0 DD A7 53 A6
208 51 A2 59 B2 79 F2 F9 EF C3 9B 2B 56 AC 45 8A 09
224 12 24 48 90 3D 7A F4 F5 F7 F3 FB EB CB 8B 0B 16
240 2C 58 B0 7D FA E9 CF 83 1B 36 6C D8 AD 47 8E 01
如上所述,RS码解码还包括错误码元纠正。在获得校验子Sx之后,电路进一步确定代码中是否存在任何错误。如果Sx有错误,则电路查询错误位置表以确定错误位置中的错误是否可纠正。如果错误是可纠正的,则电路进一步查询错误纠正值表以纠正错误,最后电路输出码字。
至少一些实施例具有以下优点:A)根据至少一个实施例,对于缩短的RS码,错误纠正值码本似乎不是非常大(由于GF(2^8)转换本身需要一个大的转换表)。
B)与用于解码RS码的传统方法相比,该传统方法对仍需要某个表(例如GF(2))的数字电路使用复杂逻辑,这些实施例不需要复杂逻辑。
C)与通过使用由校验子(例如,S1,S2;S2,S3)形成的矩阵是否是奇异矩阵来确定错误的传统方法相比,这将错误地杀死(确定为不可纠正)数据码元和奇偶校验码元都具有一个错误的情况,本发明可以纠正这种情况,从而增加编码增益。
D)可选地,这些实施例有利地适用于具有GF(2^N)N<=8的RS码。
图5是示出根据本发明的实施例的用于纠错的方法500A的流程图。
用于纠错的方法500A包括:在框502中,通过第一里德索罗蒙码(RS)校验子生成器根据要解码的接收码元流为RS(n,k)码产生第一RS校验子(例如,Sx[0:2]),其中k是要解码的接收码元流中的数据码元的数量,n是要解码的接收码元流中的代码码元的总数;在框504中,通过通信地耦合到第一RS校验子生成器的第一判决单元来确定在第一RS校验子中是否存在至少N个的码元等于0,其中N与RS(n,k)码的码距有关,例如,N=2;在框506中,通过通信地耦合到第一判决单元的第一加法器,如果第一RS校验子中存在至少N个码元等于0,则通过将第一RS校验子加到要解码的接收码元流,来输出纠正解码码字。
可选地,方法500A还包括:在框507中,将对数表,错误位置表和错误纠正值表存储到存储器中;在框508中,如果在第一RS校验子中存在至少少于N个码元等于0,则通过通信地耦合到第一判决单元和存储器两者的第一寻址单元,通过搜索对数表来产生第一RS校验子Sx的指数表示;在框510中,通过通信地耦合到第一寻址单元的第二加法器,通过每个随后从第一RS校验子的指数表示中减去错误位置表中的k(例如,k等于9)组错误位置值中的相应一个,产生至少一个减去的第一RS校验子;在框512中,由通信地耦合到第二加法器的第二判决单元,确定所述至少一个减去的第一RS校验子中的任何一个中的N个码元是否彼此相等;和在框516中,如果k个减去的第一RS校验子中的任何一个中的N个码元都不彼此相等(如在框514中确定),则通过通信地耦合到第二判决单元的输出端口,放弃解码并发送错误指示符。
可选地,方法500A还包括:在框518中,如果第二判决单元确定k个减去的第一RS校验子中的一个中的N个码元彼此相等,则通过第二判决单元确定具有N个码元彼此相等的减去的RS的减法序列对应于错误数据码元位置;在框520中,通过通信地耦合到第二判决单元的第二寻址单元,通过使用彼此相等的N个码元的值搜索错误纠正值表来检索与错误数据码元位置相对应的错误bit值;在框522中,通过通信地耦合到第二寻址单元的第三判决单元,确定在至少一个减去的第一RS校验子Sx中的一个中的N+1个码元是否彼此相等;并且在框524中,如果至少一个减去的第一RS校验子中的每一个中的N+1个码元彼此相等,则通过通信地耦合到第二寻址单元的第三加法器,通过将错误bit值加到要解码的接收码元流来产生纠正接收码元流。
可选地,方法500A还包括:在框526和528中,如果至少一个减去的第一RS校验子的每一个中只有N个码元彼此相等,则通过将通信地耦合到第三判决单元的第四加法器,通过将错误bit值加到要解码的接收码元流来产生奇偶校验纠正接收码元流;在框528中,由第二RS校验子生成器根据奇偶校验纠正接收码元流为RS(n,k)码产生第二RS校验子,其中k是奇偶校验纠正接收码元流中的数据码元的数量,n是奇偶校验纠正接收码元流中的代码码元总数;在框530中,通过通信地耦合到第二RS校验子生成器的第四判决单元,确定在第二RS校验子中是否存在至少N个码元等于0,其中N与RS(n,k)码的码距有关;转到框506中,通过通信地耦合到第四判决单元的第五加法器,通过将第二RS校验子加到奇偶校验纠正接收码元流中,输出第二纠正解码码字。
可选地,图5中示出的一些框可以并行执行,或者采用其他顺序而不是图5中示出的顺序来执行。例如,图6示出了根据本发明另一实施例的用于纠错的方法500B的一个流程图。与图5不同,在框518之后,方法500B还包括:在框522'中,通过通信地耦合到第二寻址单元的第三判决单元确定在至少一个减去的第一RS校验子Sx中的一个中的N+1个码元是否相等彼此;在框520'中,如果至少一个减去的第一RS校验子Sx中的一个中的所有N+1个码元彼此相等,则通过通信地耦合到第二判决单元的第二寻址单元,通过使用彼此相等的N个码元的值搜索错误纠正值表来检索与错误数据码元位置相对应的错误bit值;并且,在框524'中,通过可通信地耦合到第二寻址单元的第三加法器,通过将错误bit值与要解码的接收码元流相加来产生纠正接收码元流。
图7是示出了根据本发明的实施例的用于通过第一RS校验子生成器产生第一RS校验子的方法700的流程图。
可选地,n等于12,k等于9,并且N等于2,以及在方法700中通过第一RS校验子生成器根据要解码的接收码元流为RS(n,k)码产生第一RS校验子,进一步包括:在框710中,通过通信地耦合到第一多路复用器和第一寄存器的第六加法器,通过将要解码的12字节接收码元流加到第一多路复用器的输出,将第一码元流输出到第一寄存器;在框720中,通过通信地耦合到第一寄存器,第二寄存器和第二多路复用器的第七加法器,通过将第一码元流加到第二多路复用器的输出,将第二码元流输出到第二寄存器;在框730中,通过通信地耦合到第二寄存器,第三寄存器和第三多路复用器的第八加法器,将第二码元流加到第三多路复用器的输出,将第三码元流输出到第三寄存器;在框740中,通过通信地耦合到第三寄存器,第一多路复用器,第二多路复用器和第三多路复用器的第四多路复用器,将基于第三码元流的第四码元流输出到第一多路复用器、第二多路复用器和第三多路复用器中的每一个。
图8是示出根据本发明实施例的用于运算多路复用器的方法800的流程图。
方法800还包括:在框810中,将对数表和指数表存储到存储器中;在框820,通过第二输入端口接收第二输入;在框830,通过将第一输入的指数表示加第二输入的指数表示来产生和,其中,通过搜索对数表获得第一输入的指数表示和第二输入的指数表示;在框840中,通过将和模数乘以255来生成模数值;并且在框850中,通过搜索指数表将模数值转换为多项式表示,通过输出端口输出信号。
至少一个实施例实现了能够确定RS(12,9)码字是否具有错误码元的效果,并确定错误是否可纠正,并在DMR中找到RS(12,9)码字的错误码元的位置,这可以减少实现时间和ASIC实现成本。至少另一个实施例实现了在确定存在错误并找到错误码元的位置之后纠正错误码元并确定前向纠错(FEC)的效果。
不同的实施例的特征和方面可以集成到其他实施例中,并且可以在没有示出或描述的所有特征或方面的情况下实现本文档中示出的实施例。本领域技术人员将理解,尽管出于说明的目的描述了系统和方法的特定示例和实施例,但是在不脱离本发明的精神和范围的情况下可以进行各种修改。此外,一个实施例的特征可以结合到其他实施例中,即使在本文档中的单个实施例中没有一起描述那些特征的情况下也是如此。因此,本发明由所附权利要求描述。

Claims (12)

1.一种用于纠错的电路,包括:
第一RS校验子生成器,被配置为根据要解码的接收码元流为RS(n,k)码产生第一RS校验子,其中该k是所述要解码的接收码元流中的数据码元的数量,该n是所述要解码的接收码元流中的代码码元的总数;
第一判决单元,通信地耦合到所述第一RS校验子生成器,并且被配置为确定所述第一RS校验子中是否存在至少N个码元等于0,其中所述N与所述RS(n,k)码的码距有关;以及
第一加法器,通信地耦合到所述第一判决单元,并且被配置为如果所述第一RS校验子中存在至少N个码元等于0,则通过将所述第一RS校验子加到所述要解码的接收码元流以输出纠正解码码字。
2.根据权利要求1所述的电路,还包括:
存储对数表,错误位置表和错误纠正值表的存储器;
第一寻址单元,通信地耦合到所述第一判决单元和所述存储器,并且被配置为如果所述第一RS校验子中少于N个码元等于0,则通过搜索所述对数表以产生所述第一RS校验子的指数表示;
第二加法器,通信地耦合到所述第一寻址单元,并且被配置为通过每个随后从所述第一RS校验子的指数表示中减去所述错误位置表中的k组错误位置值中的相应一组,以产生至少一个减去的第一RS校验子;
第二判决单元,通信地耦合到所述第二加法器,并且被配置为确定在所述至少一个减去的第一RS校验子中的一个中的N个码元是否彼此相等;以及
输出端口,通信地耦合到所述第二判决单元,并且被配置为如果k个减去的第一RS校验子中的任何一个中的N个码元都不彼此相等,则放弃解码并发送错误指示符。
3.根据权利要求2所述的电路,其特征在于,
所述第二判决单元还被配置为:如果所述第二判决单元确定所述至少一个减去的第一RS校验子中的一个中的N个码元彼此相等,则确定具有彼此相等的N个码元的减去的第一RS校验子的减法序列对应于错误数据码元位置;其中,
所述电路还包括-
第二寻址单元,通信地耦合到所述第二判决单元,并且被配置为通过使用彼此相等的N个码元的值搜索所述错误纠正值表,以检索与所述错误数据码元位置相对应的错误bit值;
第三判决单元,通信地耦合到所述第二寻址单元,并且被配置为确定在所述至少一个减去的第一RS校验子中的一个中的N+1个码元是否彼此相等;
第三加法器,通信地耦合到所述第二判决单元,并且被配置为如果所述至少一个减去的第一RS校验子中的一个中的N+1个码元彼此相等,则通过将错误bit值加到所述要解码的接收码元流,以产生纠正接收码元流。
4.根据权利要求3所述的电路,还包括:
第四加法器,通信地耦合到所述第三判决单元,并且被配置为如果所述至少一个减去的第一RS校验子中的每一个中只有N个码元彼此相等,则通过将所述错误bit值加到所述要解码的接收码元流以产生奇偶校验纠正接收码元流;
第二RS校验子生成器,通信地耦合到所述第四加法器,并且被配置为根据所述奇偶校验纠正接收码元流为所述RS(n,k)码产生第二RS校验子,其中该k是所述奇偶校验纠正接收码元流中的数据码元的数量,该n是所述奇偶校验纠正接收码元流中的代码码元的总数;
第四判决单元,通信地耦合到所述第二RS校验子生成器,并且被配置为确定在所述第二RS校验子中是否存在至少N个码元等于0,其中所述N与RS(n,k)码的码距有关;
第五加法器,通信地耦合到所述第四判决单元,并且被配置为通过将所述第二RS校验子加到所述奇偶校验纠正接收码元流以输出第二纠正解码码字。
5.如权利要求1所述的电路,其特征在于,所述n等于12,所述k等于9,并且所述N等于2;
所述第一RS校验子生成器还包括
第六加法器,通信地耦合到第一多路复用器和第一寄存器,并且被配置为通过将要解码的12字节接收码元流加到所述第一多路复用器的输出以将第一码元流输出到所述第一寄存器;
第七加法器,通信地耦合到所述第一寄存器,第二寄存器和第二多路复用器,并且被配置为通过将所述第一码元流加到所述第二多路复用器的输出以将第二码元流输出到所述第二寄存器;
第八加法器,通信地耦合到所述第二寄存器,第三寄存器和第三多路复用器,并且被配置为通过将所述第二码元流加到所述第三多路复用器的输出以将第三码元流输出到所述第三寄存器;
第四多路复用器,通信地耦合到所述第三寄存器,所述第一多路复用器,所述第二多路复用器和所述第三多路复用器,并且被配置为将基于所述第三码元流的第四码元流输出到所述第一多路复用器,所述第二多路复用器和所述第三多路复用器中的每一个。
6.如权利要求5所述的电路,还包括
存储对数表和指数表的存储器,其中,所述第一多路复用器,所述第二多路复用器,所述第三多路复用器和所述第四多路复用器中的每一个还包括:
第一输入端口,被配置为接收第一输入;
第二输入端口,被配置为接收第二输入;和
输出端口,被配置为通过将所述第一输入的指数表示加所述第二输入的指数表示以产生和,其中通过搜索所述对数表获得所述第一输入的指数表示和所述第二输入的指数表示;
通过将所述和模数乘以255以产生模数值;和
通过搜索所述指数表将所述模数值转换为多项式表示。
7.一种用于纠错的方法,包括:
通过第一RS校验子生成器根据要解码的接收码元流为RS(n,k)码产生第一RS校验子,其中该k是所述要解码的接收码元流中的数据码元的数量,该n是所述要解码的接收码元流中的代码码元的总数;
通过通信耦合到所述第一RS校验子生成器的第一判决单元确定在所述第一RS校验子中是否存在至少N个的码元等于0,其中所述N与RS(n,k)码的码距有关;以及
如果所述第一RS校验子中存在至少N个码元等于0,则通过通信地耦合到所述第一判决单元的第一加法器,通过将所述第一RS校验子加到所述要解码的接收码元流以输出纠正解码码字。
8.根据权利要求7所述的方法,还包括
将对数表,错误位置表和错误纠正值表存储到存储器中;
如果所述第一RS校验子中少于N个码元等于0,则通过通信地耦合到所述第一判决单元和所述存储器的第一寻址单元,搜索所述对数表以产生所述第一RS校验子的指数表示;
通过可通信地耦合到所述第一寻址单元的第二加法器,通过每个随后从所述第一RS校验子的指数表示中减去所述错误位置表中的k组错误位置值中的相应一组,产生至少一个减去的第一RS校验子;
通过通信地耦合到所述第二加法器的第二判决单元,确定所述至少一个减去的第一RS校验子中的任何一个中的N个码元是否彼此相等;以及
如果k个减去的第一RS校验子中的任何一个中的N个码元都不彼此相等,则放弃解码,并通过通信地耦合到所述第二判决单元的输出端口发送错误指示符。
9.根据权利要求8所述的方法,还包括
如果所述第二判决单元确定所述k个减去的第一RS校验子中的一个中的N个码元彼此相等,则通过所述第二判决单元确定具有彼此相等的N个码元的减去RS的减法序列对应于错误数据码元位置;
通过通信地耦合到所述第二判决单元的第二寻址单元,使用彼此相等的N个码元的值搜索所述错误纠正值表,检索与所述错误数据码元位置相对应的错误bit值;
通过通信地耦合到所述第二寻址单元的第三判决单元,确定所述至少一个减去的第一RS校验子中的一个中的N+1个码元是否彼此相等;以及
如果所述至少一个减去的第一RS校验子中的每一个中的N+1个码元彼此相等,则通过通信地耦合到所述第二寻址单元的第三加法器,将所述错误bit值加到所述要解码的接收码元流以产生纠正接收码元流。
10.根据权利要求9所述的方法,还包括:
如果在所述至少一个减去的第一RS校验子中的每一个中只有N个码元彼此相等,则通过通信地耦合到所述第三判决单元的第四加法器,通过将所述错误bit值加到所述要解码的接收码元流产生奇偶校验纠正接收码元流;
根据所述奇偶校验纠正接收码元流,通过第二RS校验子生成器为RS(n,k)码产生第二RS校验子,其中该k是所述奇偶校验纠正接收码元流中的数据码元的数量,并且该n是所述奇偶校验纠正接收码元流中的代码码元的总数;
通过通信地耦合到所述第二RS校验子生成器的第四判决单元确定在所述第二RS校验子中是否存在至少N个码元等于0,其中所述N与RS(n,k)码的码距有关;
通过通信地耦合到所述第四判决单元的第五加法器,通过将所述第二RS校验子加到所述奇偶校验纠正接收码元流中输出第二纠正解码码字。
11.如权利要求7所述的方法,其特征在于,所述n等于12,所述k等于9,和所述N等于2;
其中,所述第一RS校验子生成器根据所述要解码的接收码元流为RS(n,k)码产生所述第一RS校验子,进一步包括:
通过通信地耦合到第一多路复用器和第一寄存器的第六加法器,通过将要解码的12字节的接收码元流加到所述第一多路复用器的输出以输出第一码元流到所述第一寄存器;
通过通信地耦合到所述第一寄存器,第二寄存器和第二多路复用器的第七加法器,通过将所述第一码元流加到所述第二多路复用器的输出,将第二码元流输出到所述第二寄存器;
通过通信地耦合到所述第二寄存器,第三寄存器和第三多路复用器的第八加法器,通过将所述第二码元流加到所述第三多路复用器的输出,将第三码元流输出到所述第三寄存器;
通过通信地耦合到所述第三寄存器,所述第一多路复用器,所述第二多路复用器和所述第三多路复用器的第四多路复用器,将基于所述第三码元流的第四码元流输出到所述第一多路复用器,所述第二多路复用器和所述第三多路复用器中的每一个。
12.如权利要求11所述的方法,还包括:
将对数表和指数表存储在存储器中,其中所述第一多路复用器,所述第二多路复用器,所述第三多路复用器和所述第四多路复用器中的每一个被配置为:
通过第一输入端口接收第一输入;
通过第二输入端口接收第二输入;以及
通过将所述第一输入的指数表示加所述第二输入的指数表示以产生和,其中通过搜索所述对数表获得所述第一输入的指数表示和所述第二输入的指数表示;通过将所述和模数乘以255以产生模数值;以及通过搜索所述指数表将所述模数值转换为多项式表示,以通过输出端口输出输出信号。
CN201910218505.8A 2019-03-21 2019-03-21 用于纠错的电路及其方法 Active CN111726124B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910218505.8A CN111726124B (zh) 2019-03-21 2019-03-21 用于纠错的电路及其方法
US16/377,907 US10715180B1 (en) 2019-03-21 2019-04-08 Circuit for error correction and method of same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910218505.8A CN111726124B (zh) 2019-03-21 2019-03-21 用于纠错的电路及其方法

Publications (2)

Publication Number Publication Date
CN111726124A true CN111726124A (zh) 2020-09-29
CN111726124B CN111726124B (zh) 2023-09-29

Family

ID=71519976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910218505.8A Active CN111726124B (zh) 2019-03-21 2019-03-21 用于纠错的电路及其方法

Country Status (2)

Country Link
US (1) US10715180B1 (zh)
CN (1) CN111726124B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642808A (en) * 1983-06-22 1987-02-10 U.S. Philips Corporation Decoder for the decoding of code words which are blockwise protected against the occurrence of a plurality of symbol errors within a block by means of a reed-solomon code, and reading device for optically readable record carriers
US20040019842A1 (en) * 2002-07-24 2004-01-29 Cenk Argon Efficient decoding of product codes
US6694477B1 (en) * 2000-09-28 2004-02-17 Western Digital Technologies, Inc. Communication channel employing an ECC decoder enhanced by likely error events of a trellis sequence detector
CN1625859A (zh) * 2002-04-25 2005-06-08 帕萨夫有限公司 以太网中的前向纠错编码
CN101088224A (zh) * 2004-12-22 2007-12-12 三星电子株式会社 用于解码里德-所罗门码元的装置和方法
CN101692612A (zh) * 2009-05-27 2010-04-07 华为技术有限公司 多规格里德-所罗门编解码方法、装置及系统
CN101702625A (zh) * 2009-10-29 2010-05-05 杭州冠宸科技有限公司 基于rs(255,239)算法的光通信实时纠错电路
CN102684709A (zh) * 2012-05-10 2012-09-19 天津大学 一种译码方法及其译码装置
CN102751995A (zh) * 2012-07-20 2012-10-24 天津工大瑞工光电技术有限公司 一种基于fpga的抗多位错误翻转rs码检错纠错系统
CN107565981A (zh) * 2017-09-26 2018-01-09 天津光电通信技术有限公司 一种基于fpga的rs编译码器实现方法
US20180041229A1 (en) * 2016-08-05 2018-02-08 Taiwan Semiconductor Manufacturing Company Ltd. On-line self-checking hamming encoder, decoder and associated method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5587803A (en) * 1992-04-01 1996-12-24 Mitsubishi Denki Kabushiki Kaisha Digital signal recording and reproducing apparatus and error-correcting apparatus
US7281196B2 (en) * 2003-08-08 2007-10-09 Matsushita Electric Industrial Co., Ltd. Single error Reed-Solomon decoder
US8010875B2 (en) * 2007-06-26 2011-08-30 International Business Machines Corporation Error correcting code with chip kill capability and power saving enhancement

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642808A (en) * 1983-06-22 1987-02-10 U.S. Philips Corporation Decoder for the decoding of code words which are blockwise protected against the occurrence of a plurality of symbol errors within a block by means of a reed-solomon code, and reading device for optically readable record carriers
US6694477B1 (en) * 2000-09-28 2004-02-17 Western Digital Technologies, Inc. Communication channel employing an ECC decoder enhanced by likely error events of a trellis sequence detector
CN1625859A (zh) * 2002-04-25 2005-06-08 帕萨夫有限公司 以太网中的前向纠错编码
US20040019842A1 (en) * 2002-07-24 2004-01-29 Cenk Argon Efficient decoding of product codes
CN101088224A (zh) * 2004-12-22 2007-12-12 三星电子株式会社 用于解码里德-所罗门码元的装置和方法
CN101692612A (zh) * 2009-05-27 2010-04-07 华为技术有限公司 多规格里德-所罗门编解码方法、装置及系统
CN101702625A (zh) * 2009-10-29 2010-05-05 杭州冠宸科技有限公司 基于rs(255,239)算法的光通信实时纠错电路
CN102684709A (zh) * 2012-05-10 2012-09-19 天津大学 一种译码方法及其译码装置
CN102751995A (zh) * 2012-07-20 2012-10-24 天津工大瑞工光电技术有限公司 一种基于fpga的抗多位错误翻转rs码检错纠错系统
US20180041229A1 (en) * 2016-08-05 2018-02-08 Taiwan Semiconductor Manufacturing Company Ltd. On-line self-checking hamming encoder, decoder and associated method
CN107565981A (zh) * 2017-09-26 2018-01-09 天津光电通信技术有限公司 一种基于fpga的rs编译码器实现方法

Also Published As

Publication number Publication date
CN111726124B (zh) 2023-09-29
US10715180B1 (en) 2020-07-14

Similar Documents

Publication Publication Date Title
Ivanov et al. Reversed genetic algorithms for generation of bijective s-boxes with good cryptographic properties
US5724427A (en) Method and apparatus for autokey rotor encryption
EP2442482B1 (en) Method and device for implementing stream cipher
Beierle et al. Skinny-aead and skinny-hash
CN101625653A (zh) 一种多媒体产品本地数据处理校验方法
Zhou et al. Practical key-recovery attacks on round-reduced Ketje Jr, Xoodoo-AE and Xoodyak
CN111726124B (zh) 用于纠错的电路及其方法
Weinmann et al. Analysis of the DVB common scrambling algorithm
US20230336354A1 (en) Data transmission method and data transmission device
US20100040226A1 (en) Device, program and method for generating hash values
Stern et al. Cs-cipher
CN1360773A (zh) 安全发送用于移动站鉴别的分布rand信号的方法和设备
Kuznetsov et al. A new cost function for heuristic search of nonlinear substitutions
Tuychiev New encryption algorithm based on network PES8-1 using of the transformations of the encryption algorithm AES
do Nascimento et al. FlexAEAD-A lightweight cipher with integrated authentication
Derbez et al. Key committing attacks against AES-based AEAD schemes
CN114189324B (zh) 一种消息安全签名方法、系统、设备及存储介质
EP0928526B1 (en) Method and apparatus for enhanced cmea employing enhanced transformations
WO2024078048A1 (zh) 一种数据处理方法和数据处理装置
CN114710285B (zh) 一种面向异构并行架构的高性能sm4比特切片优化方法
US20050084097A1 (en) Apparatus and method for calculatingtkip sbox value
Bishoi Generalized word-oriented feedback shift registers
Tang et al. Awareness and control of personal data Based on the Cyber-I privacy model
Ding et al. Cryptanalysis of Loiss stream cipher
CN114172632B (zh) 一种提高aes加解密效率的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant