CN110233629B - 改进的汉明码纠错方法 - Google Patents

改进的汉明码纠错方法 Download PDF

Info

Publication number
CN110233629B
CN110233629B CN201910426799.3A CN201910426799A CN110233629B CN 110233629 B CN110233629 B CN 110233629B CN 201910426799 A CN201910426799 A CN 201910426799A CN 110233629 B CN110233629 B CN 110233629B
Authority
CN
China
Prior art keywords
code
check
data
bit
check 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
Application number
CN201910426799.3A
Other languages
English (en)
Other versions
CN110233629A (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.)
Shanghai Institute of Microsystem and Information Technology of CAS
Original Assignee
Shanghai Institute of Microsystem and Information Technology of CAS
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 Shanghai Institute of Microsystem and Information Technology of CAS filed Critical Shanghai Institute of Microsystem and Information Technology of CAS
Priority to CN201910426799.3A priority Critical patent/CN110233629B/zh
Publication of CN110233629A publication Critical patent/CN110233629A/zh
Application granted granted Critical
Publication of CN110233629B publication Critical patent/CN110233629B/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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明涉及一种改进的汉明码纠错方法,其中改进的汉明码纠错方法包括以下步骤:将待传输数据依次划分为4位一组的子数据;根据子数据生成4位第一校验码和4位第二校验码;将第一校验码和第二校验码插入到子数据中;将重组后的数据传输到校验码的接收端;在接收端,根据接受到的子数据和校验码的值生成检验状态码,用于检验传输的数据中存在的码位错误。

Description

改进的汉明码纠错方法
技术领域
本发明涉及数据传输纠错领域,具体涉及一种改进的汉明码纠错方法。
背景技术
汉明码是由R.Hamming于20世纪60年代提出的,它的主要思想是根据存储数据产生与其有特定编码关系的校验码,将得到的校验码与存储数据一起存入到SRAM中,当存储的数据发生错误时,编码时的特定编码关系就会被破坏,即可以发现错误,设计人员还可以根据编码关系来进行错误的纠正。可是汉明码只能纠正一比特错误和检测二比特错误,这限制了汉明码的进一步应用。
传统纠一汉明码的基本原则是在p位原码的基础上增加q位的校验码,并且p与q的关系需满足以下关系:
2q≥p+q+1
当P为4位时,校验码q的位数为3,并且在整个12位的数列中校验码位于整个传输数据的第1、2、4位。
以四位数据D0D1D2D3为例,为了能纠正一位错误,需要三位校验码P0P1P2,并且他们之间的排列关系如下表所示:
位数 1 2 3 4 5 6 7
数据 P<sub>0</sub> P<sub>1</sub> D<sub>0</sub> P<sub>2</sub> D<sub>1</sub> D<sub>2</sub> D<sub>3</sub>
检验码的生成方式为:
Figure GDA0003175978560000011
Figure GDA0003175978560000012
Figure GDA0003175978560000013
其中,
Figure GDA0003175978560000014
为异或运算。记上述纠一汉明码编码为7-4汉明码。
在数据经过编码后,把编码后的数据和生成的校验码一起存入存储器,之后在需要读取数据时,首先对取出来的数据进行解码,生成状态位S0S1S2,若数据在存储过程中发生了一位错误,则可以根据生成的状态位的状态把出错的数据纠正过来。其中状态位S0S1S2的生成关系式为:
Figure GDA0003175978560000021
Figure GDA0003175978560000022
Figure GDA0003175978560000023
此外,还可以在7-4汉明码的基础上再增加一位校验位来实现纠一检二的功能。记增加的校验位为P3,增加该校验位后,数据的排列方式如下表所示:
位数 1 2 3 4 5 6 7 8
数据 P<sub>0</sub> P<sub>1</sub> D<sub>0</sub> P<sub>2</sub> D<sub>1</sub> D<sub>2</sub> D<sub>3</sub> P<sub>3</sub>
校验码P3的生成方式为:
Figure GDA0003175978560000024
之后在对读取出的数据进行解码时,也需要多生成一位状态位S3,它的生成方式为:
Figure GDA0003175978560000025
接下来就可以根据生成的四位状态位S0S1S2S3来实现纠一检二的功能。我们记这种纠一检二的为8-4汉明码。
虽然8-4汉明码能够实现纠一检二的功能,但是当存储的数据发生两位错误的情况下,不能恢复正确的数据,限制了汉明码的进一步使用。
发明内容
本发明的目的在于提供一种汉明码纠错方法和具有纠错功能的数据传输系统,能够纠正数据中随机出现的一位或者两位错误。
为解决上述技术问题,以下提供了一种改进的汉明码纠错方法,包括以下步骤:将待传输数据依次划分为4位一组的子数据;根据子数据生成4位第一校验码和4位第二校验码;将第一校验码和第二校验码插入到子数据中,以待传输。
可选的,还包括以下步骤:将子数据、第一校验码和第二校验码传输至接收端;根据接收端接收到的已传输数据生成检验状态码;根据生成的校验状态码的值,检验是否存在传输错误,并且确认数据中错误出现的位置。
可选的,根据以下规则获取第一校验码:
Figure GDA0003175978560000031
Figure GDA0003175978560000032
Figure GDA0003175978560000033
Figure GDA0003175978560000034
其中,R0至R3分别为第一至第四位第一校验码,D0至D3分别为子数据的第一位至第四位。
可选的,根据以下规则获取第二校验码:
Figure GDA0003175978560000035
Figure GDA0003175978560000036
Figure GDA0003175978560000037
Figure GDA0003175978560000038
其中,P0至P3分别为第一至第四位第二校验码。
可选的,在子数据中插入第一校验码和第二校验码的规则为:在子数据后依次插入第一校验码和第二校验码。
可选的生成检验状态码的规则为:
Figure GDA0003175978560000039
Figure GDA00031759785600000310
Figure GDA00031759785600000311
Figure GDA00031759785600000312
Figure GDA00031759785600000313
Figure GDA00031759785600000314
Figure GDA0003175978560000041
Figure GDA0003175978560000042
其中,S0至S7为检验状态码的第一位至第八位,R0’至R3’分别为到达接收端的已传输数据中的第一至第四位第一校验码,P0’至P3’分别为到达接收端的已传输数据中的第一至第四位第二校验码,D0’至D3’为到达接收端的已传输数据的第一至第四位原始数据。
本发明的改进的汉明码纠错方法采用第一校验码和第二校验码,共八位校验码,增强了汉明码的纠错能力,至多能够纠正两位错误,简单方便。
附图说明
图1为本发明一种具体实施方式中改进的汉明码纠错方法的步骤示意图。
图2为MATLAB仿真图。
具体实施方式
以下结合附图和具体实施方式对本发明提出的一种改进的汉明码纠错方法作进一步详细说明。
请参阅图1,为本发明一种具体实施方式中汉明码纠错方法的步骤示意图。在该具体实施方式中,提供了一种汉明码纠错方法,包括以下步骤:S11将待传输数据依次划分为4位一组的子数据;S12根据子数据生成4位第一校验码和4位第二校验码;S13将第一校验码和第二校验码插入到子数据中,以待传输。
在该具体实施方式中,还包括以下步骤:S14将子数据、第一校验码和第二校验码传输至接收端;S15根据接收端接收到的已传输数据生成检验状态码;S16根据生成的校验状态码的值,检验是否存在传输错误,并且确认数据中错误出现的位置。
在一种具体实施方式中,根据以下规则获取第一校验码:
Figure GDA0003175978560000043
Figure GDA0003175978560000044
Figure GDA0003175978560000051
Figure GDA0003175978560000052
其中,R0至R3分别为第一至第四位第一校验码,D0至D3分别为子数据的第一位至第四位。
在一种具体实施方式中,根据以下规则获取第二校验码:
Figure GDA0003175978560000053
Figure GDA0003175978560000054
Figure GDA0003175978560000055
Figure GDA0003175978560000056
其中,P0至P3分别为第一至第四位第二校验码。
在一种具体实施方式中,在子数据中插入第一校验码和第二校验码的规则为:在子数据后依次插入第一校验码和第二校验码。
在一种具体实施方式中生成检验状态码的规则为:
Figure GDA0003175978560000057
Figure GDA0003175978560000058
Figure GDA0003175978560000059
Figure GDA00031759785600000510
Figure GDA00031759785600000511
Figure GDA00031759785600000512
Figure GDA00031759785600000513
Figure GDA00031759785600000514
其中,S0至S7为检验状态码的第一位至第八位,R0’至R3’分别为到达接收端已传输数据中的第一至第四位第一校验码,P0’至P3’分别为到达接收端已传输数据中的第一至第四位第二校验码,D0’至D3’为到达接收端的已传输数据的第一至第四位原始数据。
本发明的改进的汉明码纠错方法采用第一校验码和第二校验码,共八位校验码,增强了汉明码的纠错能力,至多能够纠正两位错误,简单方便。
由于具有八位校验码,因此,当传输过去的包含8位校验码的子数据中存在1位错误时,共有
Figure GDA0003175978560000061
种情况,存在两位错误时,共有
Figure GDA0003175978560000062
种情况,通过列出真值表的方式,这80种情况对应的检验状态码S0S1S2S3S4S5S6S7的值都不同,因此可以简单的对比检验状态码和真值表的值来判断出是哪些位出现了错误,然后把出现错误的数据纠正过来,实现了纠一纠二的功能。
在一种具体实施方式中,还可利用MATLAB来验证了该方法的正确性,仿真结果如图2所示,其中横坐标为12位数据中出现错误的比特数,纵坐标为经过汉明码解码之后,错误数据所占的比率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (2)

1.一种改进的汉明码纠错方法,其特征在于,包括以下步骤:
将待传输数据依次划分为4位一组的子数据;
根据子数据生成4位第一校验码和4位第二校验码;根据以下规则获取第一校验码:
Figure FDA0003175978550000011
Figure FDA0003175978550000012
Figure FDA0003175978550000013
Figure FDA0003175978550000014
其中,R0至R3分别为第一至第四位第一校验码,D0至D3分别为子数据的第一位至第四位;
根据以下规则获取第二校验码:
Figure FDA0003175978550000015
Figure FDA0003175978550000016
Figure FDA0003175978550000017
Figure FDA0003175978550000018
其中,P0至P3分别为第一至第四位第二校验码;
将第一校验码和第二校验码插入到子数据中,以待传输;
将子数据、第一校验码和第二校验码传输至接收端;
根据接收端接收到的已传输数据生成检验状态码;生成检验状态码的规则为:
Figure FDA0003175978550000019
Figure FDA00031759785500000110
Figure FDA00031759785500000111
Figure FDA00031759785500000112
Figure FDA00031759785500000113
Figure FDA0003175978550000021
Figure FDA0003175978550000022
Figure FDA0003175978550000023
其中,S0至S7为检验状态码的第一位至第八位,R0’至R3’分别为到达接收端的已传输数据中的第一至第四位第一校验码,P0’至P3’分别为到达接收端的已传输数据中的第一至第四位第二校验码,D0’至D3’为到达接收端的已传输数据的第一至第四位原始数据;
根据生成的校验状态码的值,检验是否存在传输错误,并且确认数据中错误出现的位置。
2.根据权利要求1所述的改进的汉明码纠错方法,其特征在于,在子数据中插入第一校验码和第二校验码的规则为:
在子数据后依次插入第一校验码和第二校验码。
CN201910426799.3A 2019-05-21 2019-05-21 改进的汉明码纠错方法 Active CN110233629B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910426799.3A CN110233629B (zh) 2019-05-21 2019-05-21 改进的汉明码纠错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910426799.3A CN110233629B (zh) 2019-05-21 2019-05-21 改进的汉明码纠错方法

Publications (2)

Publication Number Publication Date
CN110233629A CN110233629A (zh) 2019-09-13
CN110233629B true CN110233629B (zh) 2021-09-03

Family

ID=67861467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910426799.3A Active CN110233629B (zh) 2019-05-21 2019-05-21 改进的汉明码纠错方法

Country Status (1)

Country Link
CN (1) CN110233629B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111786745B (zh) * 2020-07-03 2023-07-25 中科院南京天文仪器有限公司 一种新型数据校验方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293222B2 (en) * 2003-01-29 2007-11-06 Digital Fountain, Inc. Systems and processes for fast encoding of hamming codes
US9116823B2 (en) * 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
CN102117616A (zh) * 2011-03-04 2011-07-06 北京航空航天大学 一种ambe-2000声码器无格式码流的实时编解码纠错方法
CN102427398B (zh) * 2011-12-31 2014-05-14 兆讯恒达微电子技术(北京)有限公司 一种基于双向奇偶校验的纠检错方法和系统及装置
US10447429B2 (en) * 2014-05-28 2019-10-15 Samsung Display Co., Ltd. Methods to transport forward error correction codes in a symbol encoded transmission stream
CN107077402B (zh) * 2017-01-18 2020-09-18 深圳市汇顶科技股份有限公司 码字生成方法、错误位确定方法及其电路

Also Published As

Publication number Publication date
CN110233629A (zh) 2019-09-13

Similar Documents

Publication Publication Date Title
US8032812B1 (en) Error correction decoding methods and apparatus
US20180167088A1 (en) Error-Correcting Code Method and System with Hybrid Block Product Codes
CN110868222B (zh) Lzss压缩数据误码检测方法及装置
CN111628780B (zh) 数据编码、解码方法及数据处理系统
US20160241273A1 (en) Memory control module and control method
US20150155888A1 (en) Concatenated error correction device
US9548761B2 (en) Coding and decoding of error correcting codes
CN110233629B (zh) 改进的汉明码纠错方法
US9831984B1 (en) Method and device for error decision
US6617985B1 (en) Method and/or apparatus for implementing constraint codes with low error propagation
US11050440B2 (en) Encoder, decoder, encoding method and decoding method based on low-density parity-check code
US6714147B2 (en) Method for compressing data
CN110492889B (zh) 检测纠正两位错误的编码解码方法、编码解码器及处理器
CN113452382A (zh) 撕裂保存编码
CN108988990A (zh) 一种处理链路层数据错误的方法
CN111464267A (zh) 通信数据校验方法、装置、计算机设备和存储介质
US20170161141A1 (en) Method and apparatus for correcting data in multiple ecc blocks of raid memory
US9350390B2 (en) Encoder, decoder and semiconductor device including the same
US11398834B2 (en) Encoder, recording device, decoder, playback device with robust data block header
CN103138881B (zh) 编解码方法和设备
Saleh Design of Hamming code for 64 bit single error detection and correction using VHDL
CN111224741B (zh) 卫星导航用bch码译码方法、译码器及卫星导航接收机
CN110489269B (zh) 检测纠正三位错误的编码解码方法、编码解码器及处理器
TWI744679B (zh) 利用錯誤碼進行資料處理的方法與裝置
CN109753369B (zh) 一种寄存器及内存中顺序数组的数据编码及校验方法

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