CN109787717B - 一种基于fpga的qr31码译码方法 - Google Patents

一种基于fpga的qr31码译码方法 Download PDF

Info

Publication number
CN109787717B
CN109787717B CN201811592240.XA CN201811592240A CN109787717B CN 109787717 B CN109787717 B CN 109787717B CN 201811592240 A CN201811592240 A CN 201811592240A CN 109787717 B CN109787717 B CN 109787717B
Authority
CN
China
Prior art keywords
decoding
syndrome
module
code
error
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
CN201811592240.XA
Other languages
English (en)
Other versions
CN109787717A (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.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
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 Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201811592240.XA priority Critical patent/CN109787717B/zh
Publication of CN109787717A publication Critical patent/CN109787717A/zh
Application granted granted Critical
Publication of CN109787717B publication Critical patent/CN109787717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明公开了基于FPGA的QR31码译码方法,包括以下步骤:S10,数据选择模块将接收码字转换成三种不同码字;S20,分别送入三条流水线中进行并行译码;S30,数据选择模块根据译码情况最后输出译码结果;所述S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。本发明通过将整个译码过程分解为独立的三路译码过程,实现高速的并行译码。

Description

一种基于FPGA的QR31码译码方法
技术领域
本发明属于信道纠错码领域,涉及一种基于FPGA的QR码译码方法。
背景技术
近年来,物联网和车联网等技术逐步兴起,这些技术的应用场景中,无线信道中的指令数据包长度较短,可靠性要求很高,因此迫切需要一种适用于短帧长通信业务的纠错编码。QR码(Quadratic Residue code,平方剩余码)作为一种高效的短码纠错码,因其最小汉明距离很大,有很强的纠错能力,因而在短帧通讯领域中被采用。在实际应用中,往往利用QR码的循环特性,采用cpu译码方法,由于软件的顺序执行特点,在速度上有一定的限制。
发明内容
本发明针对现有技术的不足,提出一种基于FPGA的QR31码译码方法,通过将整个译码过程分解为独立的三路译码过程,实现高速的并行译码。
所谓QR31码,即指码长为31位,数据长为16位,最小汉明距离为7的QR码,在一些文献中也记为(31,16,7)QR码。
为实现上述目的,本发明的技术方案为一种基于FPGA的QR码译码方法,包括以下步骤:
S10,数据选择模块将接收码字转换成三种不同码字;
S20,分别送入三条流水线中进行并行译码;
S30,数据选择模块根据译码情况最后输出译码结果;
所述S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。
优选地,在所述S10中三种不同码字分别为,原码字r,原码字r循环左移15位产生的码字cr,原码字第15位取反得到的码字nr。
优选地,在所述S20中,三条并行流水线均包括以下两个步骤,
S21,产生接收码字的校验子S,并对错误全在校验位的情况进行纠错;
S22,产生16种校验子,纠正信息位中有1位错误的情况。
优选地,所述校验子检查单元包括,校验子计算模块,重量计算模块,指示序列生成模块。
优选地,所述校验子计算模块,用于生成一系列校验子,对于S21,该单元产生校验子
Figure BDA0001920545570000021
对于S22,该单元产生
Figure BDA0001920545570000022
种校验子组合s∧sm,i,i=0,1,…,15,其中,p是r中的校验位部分,rm,i是信息位的第i位,sm,i是信息位中只有一个错误的错误图样对应的校验子,∧代表异或运算。
优选地,所述重量计算模块,用于对前级生成的各种校验子进行重量计算,进而确定各种校验子是否满足译码条件,为生成指示序列做准备,对于S21,译码条件为s的重量w(s)≤3,对于S22,译码条件为w(s∧sm,i)≤2。
优选地,所述指示序列生成模块,根据重量计算结果生成一个指示序列,用以驱动纠错单元,其每位指示相应的校验子重量是否满足解码条件,满足置1,不满足置0。
优选地,所述纠错单元包括:触发模块和译码模块。
优选地,所述触发模块,同时接收来自校验子检查单元的指示序列和来自前级的译码结果信号,根据其逻辑关系给触发信号赋值,用于触发译码电路。
优选地,所述译码模块,根据触发信号,启动或停止译码电路,用于译码的错误位置信息包含在指示序列当中,将待译码的码字和指示序列异或即可得到正确码字。
本发明的有益效果如下:
将原本只能顺序执行的三种码字情况拆分成三种不同的情况,同时送入三路流水线中,实现了并行译码。基于流水线的设计,可以有效提高系统运行频率,大大提高译码速度。
附图说明
图1为本发明实施例的基于FPGA的QR码译码方法的步骤流程图;
图2为本发明一个实施例的硬件顶层结构;
图3为本发明一个实施例的S21校验子检查单元硬件结构;
图4为本发明一个实施例的S21纠错单元硬件结构;
图5为本发明一个实施例的S22校验子检查单元硬件结构;
图6为本发明一个实施例的S22纠错检查单元硬件结构;
图7为本发明一个实施例的流水线2中S22纠错检查单元硬件结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
参见图1,为本发明实施例的步骤流程图,本发明的技术方案为基于FPGA的QR码译码方法,包括以下步骤:
S10,数据选择模块将接收码字转换成三种不同码字;
S20,分别送入三条流水线中进行并行译码;
S30,数据选择模块根据译码情况最后输出译码结果;
S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。
具体实施例中,在S10中三种不同码字分别为,原码字r,原码字r循环左移15位产生的码字cr,原码字第15位取反得到的码字nr。
S20中,三条并行流水线均包括以下两个步骤,
S21,产生接收码字的校验子S,并对错误全在校验位的情况进行纠错;
S22,产生16种校验子,纠正信息位中有1位错误的情况。
校验子检查单元包括,校验子计算模块S201,重量计算模块S202,指示序列生成模块S203。校验子检查单元用于生成一系列校验子,对于S21,该单元产生校验子
Figure BDA0001920545570000041
对于S22,该单元产生
Figure BDA0001920545570000042
种校验子组合s∧sm,i,i=0,1,…,15,其中,p是r中的校验位部分,rm,i是信息位的第i位,sm,i是信息位中只有一个错误的错误图样对应的校验子,∧代表异或运算。
重量计算模块S202,用于对前级生成的各种校验子进行重量计算,进而确定各种校验子是否满足译码条件,为生成指示序列做准备,对于S21,译码条件为s的重量w(s)≤3,对于S22,译码条件为w(s∧sm,i)≤2。
指示序列生成模块S203,根据重量计算结果生成一个指示序列,用以驱动纠错单元,其每位指示相应的校验子重量是否满足解码条件,满足置1,不满足置0。
纠错单元包括:触发模块S301和译码模块S302。
触发模块S301,同时接收来自校验子检查单元的指示序列和来自前级的译码结果信号,根据其逻辑关系给触发信号赋值,用于触发译码电路。
译码模块S302,根据触发信号,启动或停止译码电路,用于译码的错误位置信息包含在指示序列当中,将待译码的码字和指示序列异或即可得到正确码字。
其顶层模块架构如图2所示,该架构包括:
码字转换模块S101将接收到的31位长的码字转换成三种不同码字。
一般的,码字转换模块将接收码字分别转换为原码字r,原码字r循环左移15位产生的码字cr,原码字第15位(最低位为第0位)取反得到的码字nr,分别送入流水线1S102,流水线2S103,流水线3S104中。
码字选择模块S105将三条流水线中译码完成指示信号switch置1的那条流水线作为译码输出:对于流水线1S102、流水线3S104截取其输出的高16位作为译码结果,对于流水线2S103,将其输出循环左移16位后再截取其高16位作为译码输出结果。
下面具体介绍各流水线模块的组成。
各条流水线都包括两个步骤,S21,产生接收码字的校验子s,并对错误全在校验位的情况进行纠错。S22,产生16种校验子,纠正信息位中有1位错误的情况。
进一步的,每个步骤包含两个单元:校验子检查单元和纠错单元。校验子检查单元又有三个部分,校验子计算模块S201,重量计算模块S202,指示序列生成模块S203。
具体的,因为图2中S102的流水线1和S104的流水线3的结构完全相同,下面结合图示,给出它们的具体硬件结构。
对于S21,校验子检查单元结构如图3所示,按公式
Figure BDA0001920545570000051
所述,通过异或运算,校验子计算模块S201对码字r或cr计算得到校验子s。对于重量计算模块S202,如果w(s)≤3,则S21中的指示序列置1,反之指示置0,送入S21的纠错单元。
对于S21,其纠错单元如图4所示,指示序列传入触发模块S301,译码触发条件为sequence==1,同时switch置1,反之switch置0。由于步骤1仅仅对校验位进行译码,所以不论switch信号是否为1,都直接传递前级码字。
对于S22,校验子检查单元结构如图5所示,校验子计算模块S201通过S21传来的s,通过异或运算,产生
Figure BDA0001920545570000061
种校验子组合s∧sm,i,i=0,1,…,15。重量计算模块S202计算各组合的重量,只要w(s∧sm,i)≤2,即代表信息位的第i位出错,由指示序列生成模块S203将各位拼接成错误指示序列,送入S22的纠错单元。
对于S22,其纠错单元结构如图6所示,触发模块S301的译码触发逻辑为前级switch==0且sequence中有1。当该逻辑为真时switch置1,并且触发译码模块S302进行译码,反之,switch信号传递前级switch值。当触发译码时,译码模块S302直接将前级codeword与sequence异或即可,反之,不触发纠错,直接传递前级codeword。
可以看出,流水线1S102、流水线3S104仅仅对信息位进行纠错,而不对校验位进行纠错。对于流水线2S103,由于需要将输出码字循环左移16位,所以对其信息位和校验位都要纠错。
除S22的纠错单元部分,流水线2S104的结构和流水线1S102、流水线3S104完全相同,下面针对流水线2S104的步骤S22的纠错单元进行介绍。如图7所示,纠错单元中触发模块S301和前述完全相同,译码模块S302中信息位纠错方法和前述完全相同,而校验位纠错方法为rp∧s∧sm,i,其中w(s∧sm,i)≤2,i=0,1,…,15。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于FPGA的QR31码译码方法,其特征在于,包括以下步骤:
S10,数据选择模块将接收码字转换成三种不同码字;
S20,分别送入三条流水线中进行并行译码;
S30,数据选择模块根据译码情况最后输出译码结果;
所述S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码;
其中,QR码为Quadratic Residue code平方剩余码;QR31码指码长为31位,数据长为16位,最小汉明距离为7的QR码。
2.根据权利要求1所述的方法,其特征在于,在所述S10中三种不同码字分别为,原码字r,原码字r循环左移15位产生的码字cr,原码字第15位取反得到的码字nr。
3.根据权利要求1所述的方法,其特征在于,在所述S20中,三条并行流水线均包括以下两个步骤,
S21,产生接收码字的校验子S,并对错误全在校验位的情况进行纠错;
S22,产生16种校验子,纠正信息位中有1位错误的情况。
4.根据权利要求1所述的方法,其特征在于,所述校验子检查单元包括,校验子计算模块,重量计算模块,指示序列生成模块。
5.根据权利要求4所述的方法,其特征在于,所述校验子计算模块,用于生成一系列校验子,对于S21,该单元产生校验子
Figure FDA0002888953380000011
对于S22,该单元产生
Figure FDA0002888953380000012
种校验子组合s∧sm,i,i=0,1,…,15,其中,p是r中的校验位部分,rm,i是信息位的第i位,sm,i是信息位中只有一个错误的错误图样对应的校验子,∧代表异或运算。
6.根据权利要求4所述的方法,其特征在于,所述重量计算模块,用于对前级生成的各种校验子进行重量计算,进而确定各种校验子是否满足译码条件,为生成指示序列做准备,对于S21,译码条件为s的重量w(s)≤3,对于S22,译码条件为w(s∧sm,i)≤2。
7.根据权利要求4所述的方法,其特征在于,所述指示序列生成模块,根据重量计算结果生成一个指示序列,用以驱动纠错单元,其每位指示相应的校验子重量是否满足解码条件,满足置1,不满足置0。
8.根据权利要求1所述的方法,其特征在于,所述纠错单元包括:触发模块和译码模块。
9.根据权利要求8所述的方法,其特征在于,所述触发模块,同时接收来自校验子检查单元的指示序列和来自前级的译码结果信号,根据其逻辑关系给触发信号赋值,用于触发译码电路。
10.根据权利要求8所述的方法,其特征在于,所述译码模块,根据触发信号,启动或停止译码电路,用于译码的错误位置信息包含在指示序列当中,将待译码的码字和指示序列异或即可得到正确码字。
CN201811592240.XA 2018-12-25 2018-12-25 一种基于fpga的qr31码译码方法 Active CN109787717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811592240.XA CN109787717B (zh) 2018-12-25 2018-12-25 一种基于fpga的qr31码译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811592240.XA CN109787717B (zh) 2018-12-25 2018-12-25 一种基于fpga的qr31码译码方法

Publications (2)

Publication Number Publication Date
CN109787717A CN109787717A (zh) 2019-05-21
CN109787717B true CN109787717B (zh) 2021-05-18

Family

ID=66498280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811592240.XA Active CN109787717B (zh) 2018-12-25 2018-12-25 一种基于fpga的qr31码译码方法

Country Status (1)

Country Link
CN (1) CN109787717B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262231A (zh) * 2008-04-25 2008-09-10 浙江大学 一种块状低密度校验码的译码方法及可重构多模式译码器
CN103716058A (zh) * 2014-01-20 2014-04-09 谢东福 一种基于补码的循环码译码方法
CN103957264A (zh) * 2014-05-07 2014-07-30 国家电网公司 具备容n-5存储媒介失效的电力大数据分布式储存系统
CN105680882A (zh) * 2016-01-07 2016-06-15 重庆邮电大学 一种平方剩余码的硬判决译码方法
CN106656215A (zh) * 2015-11-04 2017-05-10 谢东福 一种低复杂度的(47,24,11)平方剩余码译码方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7568628B2 (en) * 2005-03-11 2009-08-04 Hand Held Products, Inc. Bar code reading device with global electronic shutter control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262231A (zh) * 2008-04-25 2008-09-10 浙江大学 一种块状低密度校验码的译码方法及可重构多模式译码器
CN103716058A (zh) * 2014-01-20 2014-04-09 谢东福 一种基于补码的循环码译码方法
CN103957264A (zh) * 2014-05-07 2014-07-30 国家电网公司 具备容n-5存储媒介失效的电力大数据分布式储存系统
CN106656215A (zh) * 2015-11-04 2017-05-10 谢东福 一种低复杂度的(47,24,11)平方剩余码译码方法
CN105680882A (zh) * 2016-01-07 2016-06-15 重庆邮电大学 一种平方剩余码的硬判决译码方法

Also Published As

Publication number Publication date
CN109787717A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
US10063347B2 (en) Signal segmentation method and CRC attachment method for reducing undetected error
US10243589B2 (en) Multi-bit error correction method and apparatus based on a BCH code and memory system
US8726137B2 (en) Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes
WO2018141212A1 (zh) 一种信息的传输方法、译码方法和装置
US8032812B1 (en) Error correction decoding methods and apparatus
CN111628780A (zh) 数据编码、解码方法及数据处理系统
US20150372695A1 (en) Method and apparatus of ldpc decoder with lower error floor
US8365054B2 (en) Soft reed-solomon decoder based on error-and-erasure reed-solomon decoder
US20210175908A1 (en) Method and device for decoding staircase code, and storage medium
JP2015177289A (ja) 連接符号を用いた送信装置及び受信装置
CN109787717B (zh) 一种基于fpga的qr31码译码方法
US20210119645A1 (en) Encoder, decoder, encoding method and decoding method based on low-density parity-check code
CN110071780B (zh) 应用于低密度奇偶校检ldpc的校验方法及装置、通信设备
WO2012092902A2 (zh) 一种译码方法和译码装置
Potey et al. Error Detection and Correction Capability for BCH Encoder using VHDL
EP3737013B1 (en) Encoding method, decoding method and device
TWI551060B (zh) Bch解碼方法及其解碼器
CN109217982B (zh) 传输数据的方法、装置、发送设备和接收设备
TWI645683B (zh) 使用代數碼與ldpc碼的部分聯結編碼系統
WO2010049988A1 (ja) 復号装置、受信装置、通信システム、復号方法および受信方法
EP4322411A1 (en) Encoding method, device and system, and decoding method, device and system
TWI527383B (zh) A Fast BCH Code Decoding Method
RU2420870C1 (ru) Способ кодирования-декодирования каскадной кодовой конструкции в системах передачи данных
CN112821984B (zh) 无线局域网数据处理方法、装置及设备
JP4900168B2 (ja) 無線受信装置

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