CN110233629B - 改进的汉明码纠错方法 - Google Patents
改进的汉明码纠错方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/19—Single 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> |
检验码的生成方式为:
在数据经过编码后,把编码后的数据和生成的校验码一起存入存储器,之后在需要读取数据时,首先对取出来的数据进行解码,生成状态位S0S1S2,若数据在存储过程中发生了一位错误,则可以根据生成的状态位的状态把出错的数据纠正过来。其中状态位S0S1S2的生成关系式为:
此外,还可以在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的生成方式为:
之后在对读取出的数据进行解码时,也需要多生成一位状态位S3,它的生成方式为:
接下来就可以根据生成的四位状态位S0S1S2S3来实现纠一检二的功能。我们记这种纠一检二的为8-4汉明码。
虽然8-4汉明码能够实现纠一检二的功能,但是当存储的数据发生两位错误的情况下,不能恢复正确的数据,限制了汉明码的进一步使用。
发明内容
本发明的目的在于提供一种汉明码纠错方法和具有纠错功能的数据传输系统,能够纠正数据中随机出现的一位或者两位错误。
为解决上述技术问题,以下提供了一种改进的汉明码纠错方法,包括以下步骤:将待传输数据依次划分为4位一组的子数据;根据子数据生成4位第一校验码和4位第二校验码;将第一校验码和第二校验码插入到子数据中,以待传输。
可选的,还包括以下步骤:将子数据、第一校验码和第二校验码传输至接收端;根据接收端接收到的已传输数据生成检验状态码;根据生成的校验状态码的值,检验是否存在传输错误,并且确认数据中错误出现的位置。
可选的,根据以下规则获取第一校验码:
其中,R0至R3分别为第一至第四位第一校验码,D0至D3分别为子数据的第一位至第四位。
可选的,根据以下规则获取第二校验码:
其中,P0至P3分别为第一至第四位第二校验码。
可选的,在子数据中插入第一校验码和第二校验码的规则为:在子数据后依次插入第一校验码和第二校验码。
可选的生成检验状态码的规则为:
其中,S0至S7为检验状态码的第一位至第八位,R0’至R3’分别为到达接收端的已传输数据中的第一至第四位第一校验码,P0’至P3’分别为到达接收端的已传输数据中的第一至第四位第二校验码,D0’至D3’为到达接收端的已传输数据的第一至第四位原始数据。
本发明的改进的汉明码纠错方法采用第一校验码和第二校验码,共八位校验码,增强了汉明码的纠错能力,至多能够纠正两位错误,简单方便。
附图说明
图1为本发明一种具体实施方式中改进的汉明码纠错方法的步骤示意图。
图2为MATLAB仿真图。
具体实施方式
以下结合附图和具体实施方式对本发明提出的一种改进的汉明码纠错方法作进一步详细说明。
请参阅图1,为本发明一种具体实施方式中汉明码纠错方法的步骤示意图。在该具体实施方式中,提供了一种汉明码纠错方法,包括以下步骤:S11将待传输数据依次划分为4位一组的子数据;S12根据子数据生成4位第一校验码和4位第二校验码;S13将第一校验码和第二校验码插入到子数据中,以待传输。
在该具体实施方式中,还包括以下步骤:S14将子数据、第一校验码和第二校验码传输至接收端;S15根据接收端接收到的已传输数据生成检验状态码;S16根据生成的校验状态码的值,检验是否存在传输错误,并且确认数据中错误出现的位置。
在一种具体实施方式中,根据以下规则获取第一校验码:
其中,R0至R3分别为第一至第四位第一校验码,D0至D3分别为子数据的第一位至第四位。
在一种具体实施方式中,根据以下规则获取第二校验码:
其中,P0至P3分别为第一至第四位第二校验码。
在一种具体实施方式中,在子数据中插入第一校验码和第二校验码的规则为:在子数据后依次插入第一校验码和第二校验码。
在一种具体实施方式中生成检验状态码的规则为:
其中,S0至S7为检验状态码的第一位至第八位,R0’至R3’分别为到达接收端已传输数据中的第一至第四位第一校验码,P0’至P3’分别为到达接收端已传输数据中的第一至第四位第二校验码,D0’至D3’为到达接收端的已传输数据的第一至第四位原始数据。
本发明的改进的汉明码纠错方法采用第一校验码和第二校验码,共八位校验码,增强了汉明码的纠错能力,至多能够纠正两位错误,简单方便。
由于具有八位校验码,因此,当传输过去的包含8位校验码的子数据中存在1位错误时,共有种情况,存在两位错误时,共有种情况,通过列出真值表的方式,这80种情况对应的检验状态码S0S1S2S3S4S5S6S7的值都不同,因此可以简单的对比检验状态码和真值表的值来判断出是哪些位出现了错误,然后把出现错误的数据纠正过来,实现了纠一纠二的功能。
在一种具体实施方式中,还可利用MATLAB来验证了该方法的正确性,仿真结果如图2所示,其中横坐标为12位数据中出现错误的比特数,纵坐标为经过汉明码解码之后,错误数据所占的比率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种改进的汉明码纠错方法,其特征在于,包括以下步骤:
将待传输数据依次划分为4位一组的子数据;
根据子数据生成4位第一校验码和4位第二校验码;根据以下规则获取第一校验码:
其中,R0至R3分别为第一至第四位第一校验码,D0至D3分别为子数据的第一位至第四位;
根据以下规则获取第二校验码:
其中,P0至P3分别为第一至第四位第二校验码;
将第一校验码和第二校验码插入到子数据中,以待传输;
将子数据、第一校验码和第二校验码传输至接收端;
根据接收端接收到的已传输数据生成检验状态码;生成检验状态码的规则为:
其中,S0至S7为检验状态码的第一位至第八位,R0’至R3’分别为到达接收端的已传输数据中的第一至第四位第一校验码,P0’至P3’分别为到达接收端的已传输数据中的第一至第四位第二校验码,D0’至D3’为到达接收端的已传输数据的第一至第四位原始数据;
根据生成的校验状态码的值,检验是否存在传输错误,并且确认数据中错误出现的位置。
2.根据权利要求1所述的改进的汉明码纠错方法,其特征在于,在子数据中插入第一校验码和第二校验码的规则为:
在子数据后依次插入第一校验码和第二校验码。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111786745B (zh) * | 2020-07-03 | 2023-07-25 | 中科院南京天文仪器有限公司 | 一种新型数据校验方法 |
Family Cites Families (6)
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 | 深圳市汇顶科技股份有限公司 | 码字生成方法、错误位确定方法及其电路 |
-
2019
- 2019-05-21 CN CN201910426799.3A patent/CN110233629B/zh active Active
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 |