首页 > 专利 > 杭州电子科技大学 > 一种基于FPGA的QR31码译码方法专利详情

一种基于FPGA的QR31码译码方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2018-12-25
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-06-14
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-05-18
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2038-12-25
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201811592240.X 申请日 2018-12-25
公开/公告号 CN109787717B 公开/公告日 2021-05-18
授权日 2021-05-18 预估到期日 2038-12-25
申请年 2018年 公开/公告年 2021年
缴费截止日
分类号 H04L1/00H03M13/15 主分类号 H04L1/00
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 9
权利要求数量 10 非专利引证数量 0
引用专利数量 6 被引证专利数量 0
非专利引证
引用专利 CN103716058A、CN103957264A、CN105680882A、CN106656215A、CN101262231A、US2016173801A1 被引证专利
专利权维持 4 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 黄继业、刘鹏、谢尚港、张新球、周涛 第一发明人 黄继业
地址 浙江省杭州市下沙高教园区2号大街1号 邮编 310018
申请人数量 1 发明人数量 5
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
浙江永鼎律师事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
陆永强
摘要
本发明公开了基于FPGA的QR31码译码方法,包括以下步骤:S10,数据选择模块将接收码字转换成三种不同码字;S20,分别送入三条流水线中进行并行译码;S30,数据选择模块根据译码情况最后输出译码结果;所述S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。本发明通过将整个译码过程分解为独立的三路译码过程,实现高速的并行译码。
  • 摘要附图
    一种基于FPGA的QR31码译码方法
  • 说明书附图:图1
    一种基于FPGA的QR31码译码方法
  • 说明书附图:图2
    一种基于FPGA的QR31码译码方法
  • 说明书附图:图3
    一种基于FPGA的QR31码译码方法
  • 说明书附图:图4
    一种基于FPGA的QR31码译码方法
  • 说明书附图:图5
    一种基于FPGA的QR31码译码方法
  • 说明书附图:图6
    一种基于FPGA的QR31码译码方法
  • 说明书附图:图7
    一种基于FPGA的QR31码译码方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-05-18 授权
2 2019-06-14 实质审查的生效 IPC(主分类): H04L 1/00 专利申请号: 201811592240.X 申请日: 2018.12.25
3 2019-05-21 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
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,该单元产生校验子 对于S22,该单元产生
种校验子组合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所述的方法,其特征在于,所述译码模块,根据触发信号,启动或停止译码电路,用于译码的错误位置信息包含在指示序列当中,将待译码的码字和指示序列异或即可得到正确码字。
说明书

技术领域

[0001] 本发明属于信道纠错码领域,涉及一种基于FPGA的QR码译码方法。

背景技术

[0002] 近年来,物联网和车联网等技术逐步兴起,这些技术的应用场景中,无线信道中的指令数据包长度较短,可靠性要求很高,因此迫切需要一种适用于短帧长通信业务的纠错编码。QR码(Quadratic Residue code,平方剩余码)作为一种高效的短码纠错码,因其最小汉明距离很大,有很强的纠错能力,因而在短帧通讯领域中被采用。在实际应用中,往往利用QR码的循环特性,采用cpu译码方法,由于软件的顺序执行特点,在速度上有一定的限制。

发明内容

[0003] 本发明针对现有技术的不足,提出一种基于FPGA的QR31码译码方法,通过将整个译码过程分解为独立的三路译码过程,实现高速的并行译码。
[0004] 所谓QR31码,即指码长为31位,数据长为16位,最小汉明距离为7的QR码,在一些文献中也记为(31,16,7)QR码。
[0005] 为实现上述目的,本发明的技术方案为一种基于FPGA的QR码译码方法,包括以下步骤:
[0006] S10,数据选择模块将接收码字转换成三种不同码字;
[0007] S20,分别送入三条流水线中进行并行译码;
[0008] S30,数据选择模块根据译码情况最后输出译码结果;
[0009] 所述S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。
[0010] 优选地,在所述S10中三种不同码字分别为,原码字r,原码字r循环左移15位产生的码字cr,原码字第15位取反得到的码字nr。
[0011] 优选地,在所述S20中,三条并行流水线均包括以下两个步骤,
[0012] S21,产生接收码字的校验子S,并对错误全在校验位的情况进行纠错;
[0013] S22,产生16种校验子,纠正信息位中有1位错误的情况。
[0014] 优选地,所述校验子检查单元包括,校验子计算模块,重量计算模块,指示序列生成模块。
[0015] 优选地,所述校验子计算模块,用于生成一系列校验子,对于S21,该单元产生校验子 对于S22,该单元产生 种校验子组合s∧sm,i,i=0,1,…,15,其中,p是r中的校验位部分,rm,i是信息位的第i位,sm,i是信息位中只有一个错误的错误图样对应的校验子,∧代表异或运算。
[0016] 优选地,所述重量计算模块,用于对前级生成的各种校验子进行重量计算,进而确定各种校验子是否满足译码条件,为生成指示序列做准备,对于S21,译码条件为s的重量w(s)≤3,对于S22,译码条件为w(s∧sm,i)≤2。
[0017] 优选地,所述指示序列生成模块,根据重量计算结果生成一个指示序列,用以驱动纠错单元,其每位指示相应的校验子重量是否满足解码条件,满足置1,不满足置0。
[0018] 优选地,所述纠错单元包括:触发模块和译码模块。
[0019] 优选地,所述触发模块,同时接收来自校验子检查单元的指示序列和来自前级的译码结果信号,根据其逻辑关系给触发信号赋值,用于触发译码电路。
[0020] 优选地,所述译码模块,根据触发信号,启动或停止译码电路,用于译码的错误位置信息包含在指示序列当中,将待译码的码字和指示序列异或即可得到正确码字。
[0021] 本发明的有益效果如下:
[0022] 将原本只能顺序执行的三种码字情况拆分成三种不同的情况,同时送入三路流水线中,实现了并行译码。基于流水线的设计,可以有效提高系统运行频率,大大提高译码速度。

实施方案

[0030] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0031] 相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
[0032] 参见图1,为本发明实施例的步骤流程图,本发明的技术方案为基于FPGA的QR码译码方法,包括以下步骤:
[0033] S10,数据选择模块将接收码字转换成三种不同码字;
[0034] S20,分别送入三条流水线中进行并行译码;
[0035] S30,数据选择模块根据译码情况最后输出译码结果;
[0036] S20中,三条并行流水线均包含两个步骤,每个步骤均包含两个单元:校验子检查单元和纠错单元,其中,所述校验子检查单元用于产生一系列不同的校验子,并且检查这些校验子是否满足译码条件;纠错单元接收来自校验子检查单元的指示序列,决定是否触发译码。
[0037] 具体实施例中,在S10中三种不同码字分别为,原码字r,原码字r循环左移15位产生的码字cr,原码字第15位取反得到的码字nr。
[0038] S20中,三条并行流水线均包括以下两个步骤,
[0039] S21,产生接收码字的校验子S,并对错误全在校验位的情况进行纠错;
[0040] S22,产生16种校验子,纠正信息位中有1位错误的情况。
[0041] 校验子检查单元包括,校验子计算模块S201,重量计算模块S202,指示序列生成模块S203。校验子检查单元用于生成一系列校验子,对于S21,该单元产生校验子对于S22,该单元产生 种校验子组合s∧sm,i,i=0,1,…,15,其中,p是r中的校验位部分,rm,i是信息位的第i位,sm,i是信息位中只有一个错误的错误图样对应的校验子,∧代表异或运算。
[0042] 重量计算模块S202,用于对前级生成的各种校验子进行重量计算,进而确定各种校验子是否满足译码条件,为生成指示序列做准备,对于S21,译码条件为s的重量w(s)≤3,对于S22,译码条件为w(s∧sm,i)≤2。
[0043] 指示序列生成模块S203,根据重量计算结果生成一个指示序列,用以驱动纠错单元,其每位指示相应的校验子重量是否满足解码条件,满足置1,不满足置0。
[0044] 纠错单元包括:触发模块S301和译码模块S302。
[0045] 触发模块S301,同时接收来自校验子检查单元的指示序列和来自前级的译码结果信号,根据其逻辑关系给触发信号赋值,用于触发译码电路。
[0046] 译码模块S302,根据触发信号,启动或停止译码电路,用于译码的错误位置信息包含在指示序列当中,将待译码的码字和指示序列异或即可得到正确码字。
[0047] 其顶层模块架构如图2所示,该架构包括:
[0048] 码字转换模块S101将接收到的31位长的码字转换成三种不同码字。
[0049] 一般的,码字转换模块将接收码字分别转换为原码字r,原码字r循环左移15位产生的码字cr,原码字第15位(最低位为第0位)取反得到的码字nr,分别送入流水线1S102,流水线2S103,流水线3S104中。
[0050] 码字选择模块S105将三条流水线中译码完成指示信号switch置1的那条流水线作为译码输出:对于流水线1S102、流水线3S104截取其输出的高16位作为译码结果,对于流水线2S103,将其输出循环左移16位后再截取其高16位作为译码输出结果。
[0051] 下面具体介绍各流水线模块的组成。
[0052] 各条流水线都包括两个步骤,S21,产生接收码字的校验子s,并对错误全在校验位的情况进行纠错。S22,产生16种校验子,纠正信息位中有1位错误的情况。
[0053] 进一步的,每个步骤包含两个单元:校验子检查单元和纠错单元。校验子检查单元又有三个部分,校验子计算模块S201,重量计算模块S202,指示序列生成模块S203。
[0054] 具体的,因为图2中S102的流水线1和S104的流水线3的结构完全相同,下面结合图示,给出它们的具体硬件结构。
[0055] 对于S21,校验子检查单元结构如图3所示,按公式 所述,通过异或运算,校验子计算模块S201对码字r或cr计算得到校验子s。对于重量计算模块S202,如果w(s)≤3,则S21中的指示序列置1,反之指示置0,送入S21的纠错单元。
[0056] 对于S21,其纠错单元如图4所示,指示序列传入触发模块S301,译码触发条件为sequence==1,同时switch置1,反之switch置0。由于步骤1仅仅对校验位进行译码,所以不论switch信号是否为1,都直接传递前级码字。
[0057] 对于S22,校验子检查单元结构如图5所示,校验子计算模块S201通过S21传来的s,通过异或运算,产生 种校验子组合s∧sm,i,i=0,1,…,15。重量计算模块S202计算各组合的重量,只要w(s∧sm,i)≤2,即代表信息位的第i位出错,由指示序列生成模块S203将各位拼接成错误指示序列,送入S22的纠错单元。
[0058] 对于S22,其纠错单元结构如图6所示,触发模块S301的译码触发逻辑为前级switch==0且sequence中有1。当该逻辑为真时switch置1,并且触发译码模块S302进行译码,反之,switch信号传递前级switch值。当触发译码时,译码模块S302直接将前级codeword与sequence异或即可,反之,不触发纠错,直接传递前级codeword。
[0059] 可以看出,流水线1S102、流水线3S104仅仅对信息位进行纠错,而不对校验位进行纠错。对于流水线2S103,由于需要将输出码字循环左移16位,所以对其信息位和校验位都要纠错。
[0060] 除S22的纠错单元部分,流水线2S104的结构和流水线1S102、流水线3S104完全相同,下面针对流水线2S104的步骤S22的纠错单元进行介绍。如图7所示,纠错单元中触发模块S301和前述完全相同,译码模块S302中信息位纠错方法和前述完全相同,而校验位纠错方法为rp∧s∧sm,i,其中w(s∧sm,i)≤2,i=0,1,…,15。
[0061] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

附图说明

[0023] 图1为本发明实施例的基于FPGA的QR码译码方法的步骤流程图;
[0024] 图2为本发明一个实施例的硬件顶层结构;
[0025] 图3为本发明一个实施例的S21校验子检查单元硬件结构;
[0026] 图4为本发明一个实施例的S21纠错单元硬件结构;
[0027] 图5为本发明一个实施例的S22校验子检查单元硬件结构;
[0028] 图6为本发明一个实施例的S22纠错检查单元硬件结构;
[0029] 图7为本发明一个实施例的流水线2中S22纠错检查单元硬件结构。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号