CN115347980A - 面向5g ldpc码的部分叠加传输方法 - Google Patents
面向5g ldpc码的部分叠加传输方法 Download PDFInfo
- Publication number
- CN115347980A CN115347980A CN202210950793.8A CN202210950793A CN115347980A CN 115347980 A CN115347980 A CN 115347980A CN 202210950793 A CN202210950793 A CN 202210950793A CN 115347980 A CN115347980 A CN 115347980A
- Authority
- CN
- China
- Prior art keywords
- node
- decoding
- ldpc
- time
- sequence
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种面向5G LDPC码的部分叠加传输方法,包括下述步骤:在发送端:考虑待传输的L组传输块u(t);首先,将传输块u(t)等分为B组长度均为k的码块,送入5G LDPC编码器,得到总长度为nB的码字序列v(t),同时存储对应的信息位打孔比特序列接着,将经过补零交织器Π后输出的序列w(t‑1)与v(t)叠加,得到t时刻的发送码字c(t)。在接收端:对于时刻t,当接收端收到接收向量y(t),y(t+1),…,y(t+d‑1)后,采用基于正规图的固定时延为1的滑窗迭代算法执行译码,在窗口内逐层进行信息处理与传递,最终恢复时刻t的传输块数据u(t)。通过本发明的技术方案,能够显著提升LDPC码的性能。
Description
技术领域
本发明属于数字通信的技术领域,具体涉及一种面向5G LDPC码的部分叠加传输方法。
背景技术
低密度奇偶校验(Low-Density Parity-Check,LDPC)码由Gallager在上世纪60年代提出,可逼近加性高斯白噪声(Additive White Gaussian Noise,AWGN)信道容量。由于具有译码性能优良和高吞吐量的特点,LDPC码已被采纳为5G增强型移动宽带(EnhancedMobile Broadband,eMBB)场景中数据信道的编码方案。传统传输方案还利用混合自动重传请求(Hybrid Automatic Repeat Request,HARQ)机制,进一步提升传输的可靠性,但需要消耗额外的传输资源。在文件下载等时延不敏感应用中,希望在允许适当增加译码延迟且保持相似编码器/译码器结构,同时不消耗额外带宽等传输资源的条件下,进一步提升传输的性能。
5G协议中的LDPC码采用了基于基图散列的构造方法。3GPP决定通过打掉部分信息比特来提升5G LDPC码的性能,即基图中的前两个高列重的内置打孔列。这两列与基图的其它列不同,绝大多数元素都为1,高列重的内置打孔列对应的信息位不会被送入信道,接收端译码时将此两列对应的信息位按照打孔比特译码。分析表明该方法可以有效改善SNR门限。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种面向5G LDPC码的部分叠加传输方法,进一步提升5G LDPC码的性能。
为了达到上述目的,本发明采用以下技术方案:
本发明提供的一种面向5G LDPC码的部分叠加传输方法,包括下述步骤:
(1)在发送端,设有L组长度均为kB的传输块u(t)待传输,将传输块u(t)用TB简称,按照以下步骤进行编码:
(1.2)对于t=0,1,…,L-1时刻,执行以下步骤:
(1.2.1)将TBu(t)分割为B组长度均为k的码块,简称为CB,经过5G LDPC编码为子码字,合并得到长度为nB的TB码字序列v(t),同时借助筛选器F,将u(t)中的打孔比特筛选出来,并存储为序列
(1.3)结尾:设置u(L)=0,执行步骤(1.2.1)和步骤(1.2.2),从而产生L时刻发送码字c(L);
(2)在接收端,设接收向量y(t)为发送码字c(t)的噪声版本,对于时刻t,当接收端收到接收向量y(t),y(t+1)后,采用基于正规图的滑窗迭代算法执行译码,一个译码层包括LDPC译码节点、节点Π和节点+这3类节点,译码算法从节点+开始执行,在窗口内逐层进行信息处理与传递,最终恢复时刻t的TB数据u(t)。
作为优选的技术方案,在步骤(1.2.2)中,设当前时刻待传输B个子码字0≤i≤B-1,每个子码字的信息位打孔比特序列长度为z;补零交织器将子码字的打孔序列通过补零扩充为长度均等于码长n的序列后,借助行列交织叠加到下一时刻的TB码字序列v(t+1)上,得到t+1时刻的发送码字c(t+1)。
作为优选的技术方案,在步骤(2)中,在接收端,采用基于正规图的固定时延为1的滑窗迭代算法恢复发送数据。
作为优选的技术方案,步骤(2)具体为:
(2.1)初始化:收到接收向量y(0)后,将其初始化至正规图的第0层;
(2.2)滑窗译码:对于t=0,1,2,…,L-1,若t+1≤L,则在收到接收向量y(t+1),并将其初始化至正规图的第t+1层后,按照以下步骤执行基于正规图的滑窗迭代译码算法,译出对t时刻TB的估计
(2.2.1)初始化迭代次数计数器I=0;
(2.2.2)前向传播:对于j=0,1,按照节点+、节点Π、节点=、LDPC译码节点、节点=、节点Π、节点+的顺序更新节点,处理第t+j层信息;
(2.2.3)后向传播:对于j=1,0,也按照节点+、节点Π、节点=、LDPC译码节点、节点=、节点Π、节点+的顺序更新节点,处理第t+j层信息。在处理信息的过程中,借助LDPC校验,其中的部分子序列可提前终止译码;
(2.2.4)设置I=I+1,如果译码达到最大迭代次数I=Imax,或目标层TB码字序列估计中的所有子序列均通过LDPC校验,则停止迭代,得到v(t)的估计然后滑动窗口,对t+1时刻的信息进行译码;否则,回到步骤(2.2.2),进行下一次迭代,得到估计后,去掉LDPC校验位,便能得到对t时刻TB的估计
作为优选的技术方案,步骤(2.2.3)中,设t时刻下某子码字估计为其中0≤b≤B-1,若通过了LDPC校验,则判定该子序列译码成功,并根据译码结果消除子码字对正规图的影响,在后续的译码中不再更新子码字对应的边消息。
作为优选的技术方案,步骤(2.1)中,所述正规图:由节点+、节点Π、节点=、LDPC译码节点通过连线组成,连线表示变量,节点对应与之连接的变量应满足的约束;在消息传递算法中,节点表示与之对应的处理器,节点间通过连线传递消息,而传递的消息通常为变量的概率分布或与之等价的其他表示。
本发明与现有技术相比,具有如下优点和有益效果:
本发明的一种5G LDPC码的部分叠加传输方法,能够在不牺牲带宽的情况下,发送信息位打孔列。在保留打孔列对译码门限的改善的同时,获得译码增益。本发明还借助LDPC码自身的校验,设计了任意子码字可提前终止译码的准则,在高信噪比下达到与传统LDPC码相当的平均译码复杂度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例面向5G LDPC码的部分叠加传输方法中编码步骤的示意图;
图2为本发明实施例面向5G LDPC码的部分叠加传输方法中译码步骤的示意图;
图3(a)、图3(b)为实施例PS-5G-LDPC方案时BER曲线、FER曲线示意图
图4为实施例中PS-5G-LDPC方案在混合MLC-BICM方案中的BER曲线示意图;
图5为实施例中译码平均迭代次数对比示意图;
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其他实施例相结合。
本实施例一种面向5G LDPC码的部分叠加传输方法,包括在发送端的编码步骤和在接收端的译码步骤,具体为:
如图1所示,在发送端:设有L组长度均为kB的传输块u(t)待传输,将传输块u(t)用TB简称,按照以下步骤进行编码:
(1.2)对于t=0,1,…,L-1时刻,执行以下步骤:
(1.2.1)将TBu(t)分割为B组长度均为k的码块,简称为CB,经过5G LDPC编码为子码字,合并得到长度为nB的TB码字序列v(t),同时借助筛选器F,将u(t)中的打孔比特筛选出来,并存储为序列
(1.3)结尾:设置u(L)=0,执行步骤(1.2.1)和步骤(1.2.2),从而产生L时刻发送码字c(L)。
如图2所示,在接收端,采用基于正规图的固定时延为1的滑窗迭代算法恢复发送数据,其特征在于:设接收向量y(t)为发送码字c(t)的噪声版本。对于时刻t,当接收端收到接收向量y(t),y(t+1)后,采用基于正规图的滑窗迭代算法执行译码。一个译码层包括LDPC译码节点、节点Π、节点=这3类节点,译码算法从节点+开始执行,在窗口内逐层进行信息处理与传递,最终恢复时刻t的TB数据u(t)。具体步骤为:
(2.1)初始化:收到接收向量y(0)后,将其初始化至正规图的第0层;
(2.2)滑窗译码:对于t=0,1,2,…,L-1,若t+1≤L,则在收到接收向量y(t+1),并将其初始化至正规图的第t+1层后,按照以下步骤执行基于正规图的滑窗迭代译码算法,译出对t时刻TB的估计
(2.2.1)初始化迭代次数计数器I=0;
(2.2.2)前向传播:对于i=0,1,按照节点+、节点Π、节点=、LDPC译码节点、节点=、节点Π、节点+的顺序更新节点,处理第t+i层信息;
(2.2.3)后向传播:对于i=1,0,也按照节点+、节点Π、节点=、LDPC译码节点、节点=、节点Π、节点+的顺序更新节点,处理第t+i层信息。在处理信息的过程中,借助LDPC校验,其中的部分子序列可提前终止译码;
(2.2.4)设置I=I+1,如果译码达到最大迭代次数I=Imax,或目标层TB码字序列估计中的所有子序列均通过LDPC校验,则停止迭代,得到v(t)的估计然后滑动窗口,对t+1时刻的信息进行译码;否则,回到步骤(2.2.2),进行下一次迭代。得到估计后,去掉LDPC校验位,便能得到对t时刻TB的估计
在本申请的另一个实施例中,采用[2912,2184]的5G LDPC码,对QPSK调制,AWGN信道下的传输方案进行了蒙特卡洛仿真实验。仿真中5G LDPC码的部分叠加传输方案(Partial Superposition of 5G LDPC,简称PS-5G-LDPC方案)滑窗迭代译码的外部最大迭代次数Imax=1,基本码译码采用SPA算法,最大迭代次数设为30次。结果如图3(a)、图3(b)所示。可以看到,在低SNR区域,PS-5G-LDPC方案的BER比5G LDPC码的稍高,但在高SNR区域,本方案在BER和FER上均体现出优势。
除此以外,本实施例还对采用PS-5G-LDPC方案作为内码的混合MLC-BICM方案在64QAM调制,AWGN信道下进行了蒙特卡洛仿真实验。采用[2912,2184]的5G LDPC码作为基本码。仿真中PS-5G-LDPC方案滑窗迭代译码的最大迭代次数Imax=1,译码时延d=1,基本码译码采用SPA算法,最大迭代次数设为30次。如图4所示,在误比特率为1e-5处,PS-5G-LDPC方案对比5G LDPC码有约0.2dB增益。方案还比较了每层基本码数量B不同。
本实施例还比较了PS-5G-LDPC方案与5G LDPC码的译码复杂度,根据算法实现,它们的译码复杂度均为O((dvk+dcn)I),其中dv,dc为LDPC码等号节点和校验节点的度数,I为基本码译码迭代的次数,根据不同的终止条件,有不同的值。由于译码算法在执行的过程中,复杂度主要取决于基本码的迭代译码,因此主要比较不同方案下每个码字译码时的平均迭代次数Iavg。如图5所示,两者的平均迭代次数相当。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其他介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (6)
1.面向5G LDPC码的部分叠加传输方法,其特征在于,包括下述步骤:
(1)在发送端,设有L组长度均为kB的传输块u(t)待传输,将传输块u(t)用TB简称,按照以下步骤进行编码:
(1.2)对于t=0,1,…,L-1时刻,执行以下步骤:
(1.2.1)将TBu(t)分割为B组长度均为k的码块,简称为CB,经过5G LDPC编码为子码字,合并得到长度为nB的TB码字序列v(t),同时借助筛选器F,将u(t)中的打孔比特筛选出来,并存储为序列
(1.3)结尾:设置u(L)=0,执行步骤(1.2.1)和步骤(1.2.2),从而产生L时刻发送码字c(L);
(2)在接收端,设接收向量y(t)为发送码字c(t)的噪声版本,对于时刻t,当接收端收到接收向量y(t),y(t+1)后,采用基于正规图的滑窗迭代算法执行译码,一个译码层包括LDPC译码节点、节点Π和节点+这3类节点,译码算法从节点+开始执行,在窗口内逐层进行信息处理与传递,最终恢复时刻t的TB数据u(t)。
3.根据权利要求1所述面向5G LDPC码的部分叠加传输方法,其特征在于,在步骤(2)中,在接收端,采用基于正规图的固定时延为1的滑窗迭代算法恢复发送数据。
4.根据权利要求1所述面向5G LDPC码的部分叠加传输方法,其特征在于,步骤(2)具体为:
(2.1)初始化:收到接收向量y(0)后,将其初始化至正规图的第0层;
(2.2)滑窗译码:对于t=0,1,2,…,L-1,若t+1≤L,则在收到接收向量y(t+1),并将其初始化至正规图的第t+1层后,按照以下步骤执行基于正规图的滑窗迭代译码算法,译出对t时刻TB的估计
(2.2.1)初始化迭代次数计数器I=0;
(2.2.2)前向传播:对于j=0,1,按照节点+、节点Π、节点=、LDPC译码节点、节点=、节点Π、节点+的顺序更新节点,处理第t+j层信息;
(2.2.3)后向传播:对于j=1,0,也按照节点+、节点Π、节点=、LDPC译码节点、节点=、节点Π、节点+的顺序更新节点,处理第t+j层信息。在处理信息的过程中,借助LDPC校验,其中的部分子序列可提前终止译码;
6.根据权利要求1所述面向5G LDPC码的部分叠加传输方法,其特征在于,步骤(2.1)中,所述正规图:由节点+、节点Π、节点=、LDPC译码节点通过连线组成,连线表示变量,节点对应与之连接的变量应满足的约束;在消息传递算法中,节点表示与之对应的处理器,节点间通过连线传递消息,而传递的消息通常为变量的概率分布或与之等价的其他表示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210950793.8A CN115347980B (zh) | 2022-08-09 | 2022-08-09 | 面向5g ldpc码的部分叠加传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210950793.8A CN115347980B (zh) | 2022-08-09 | 2022-08-09 | 面向5g ldpc码的部分叠加传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115347980A true CN115347980A (zh) | 2022-11-15 |
CN115347980B CN115347980B (zh) | 2023-06-09 |
Family
ID=83952377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210950793.8A Active CN115347980B (zh) | 2022-08-09 | 2022-08-09 | 面向5g ldpc码的部分叠加传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115347980B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106992841A (zh) * | 2017-03-21 | 2017-07-28 | 中山大学 | 一种分组马尔可夫叠加编码的硬判决迭代译码方法 |
-
2022
- 2022-08-09 CN CN202210950793.8A patent/CN115347980B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106992841A (zh) * | 2017-03-21 | 2017-07-28 | 中山大学 | 一种分组马尔可夫叠加编码的硬判决迭代译码方法 |
Non-Patent Citations (1)
Title |
---|
王千帆等: "分组马尔可夫叠加传输的神经网络译码", 通信学报 * |
Also Published As
Publication number | Publication date |
---|---|
CN115347980B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109660264B (zh) | 高性能极化码译码算法 | |
US7747934B2 (en) | Method for selecting low density parity check (LDPC) code used for encoding of variable length data | |
US20200136648A1 (en) | Method and apparatus for data processing with structured ldpc codes | |
US8533556B2 (en) | Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes | |
CN109257148B (zh) | 一种基于高斯近似阈值判断的极化码bp译码方法 | |
Jeong et al. | SC-Fano decoding of polar codes | |
WO2018157854A1 (zh) | Polar码编译码方法及装置 | |
CN108023672B (zh) | 用于通信系统中的数据处理的方法和装置 | |
CN111193519B (zh) | 一种基于辅助译码比特的Polar码编译码方法 | |
US11239945B2 (en) | Encoding method, decoding method, apparatus, and device | |
CN111726202B (zh) | 一种极化码置信传播译码的提前终止迭代方法 | |
Pillet et al. | On list decoding of 5G-NR polar codes | |
US9219501B2 (en) | LDPC encoding/decoding method and device using same | |
CN109391356B (zh) | 编码方法、译码方法、编码装置和译码装置 | |
CN112953569B (zh) | 译码方法及装置、存储介质、电子设备、译码器 | |
EP1656759B1 (en) | Data compression with incremental redundancy | |
CN115347980B (zh) | 面向5g ldpc码的部分叠加传输方法 | |
CN111130564B (zh) | 译码方法及装置 | |
CN111771336B (zh) | 生成极化码的设备和方法 | |
US11824654B2 (en) | Method and apparatus for decoding polar code in communication and broadcasting system | |
CN115694515A (zh) | 基于关键比特的神经网络辅助极化码译码方法及装置 | |
CN114430279A (zh) | 一种列表维特比译码方法、装置、译码器和存储介质 | |
CN115347981B (zh) | 面向多个ldpc码叠加传输方法 | |
CN114124108A (zh) | 基于低密度奇偶校验的编码方法、译码方法和相关装置 | |
CN112737600A (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 |