CN110741559A - 极化编码器、通信单元、集成电路及其方法 - Google Patents
极化编码器、通信单元、集成电路及其方法 Download PDFInfo
- Publication number
- CN110741559A CN110741559A CN201880039392.9A CN201880039392A CN110741559A CN 110741559 A CN110741559 A CN 110741559A CN 201880039392 A CN201880039392 A CN 201880039392A CN 110741559 A CN110741559 A CN 110741559A
- Authority
- CN
- China
- Prior art keywords
- block
- bits
- polar
- encoder
- kernel
- 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
- 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/1191—Codes on graphs other than LDPC 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/13—Linear 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6513—Support of multiple code types, e.g. unified decoder for LDPC and turbo codes
-
- 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
-
- 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/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
-
- 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
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/38—Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
- H04B1/40—Circuits
-
- 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/0041—Arrangements at the transmitter end
- H04L1/0042—Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
描述了极化编码器内核(102)。极化编码器内核(102)被配置为从内核块大小为N的内核信息块(105)接收一个或多个比特;以及从具有与内核块大小N相匹配的块大小的内核编码块(106)输出一个或多个比特;其中,极化编码器内核(102)包括将极化码图分解为具有多个列(702),并且其中各列进一步分解为一个或多个极化码子图(701),并且所述极化编码器内核(102)被配置为一次一个极化码子图(701)地处理编码比特。
Description
技术领域
本发明的领域涉及极化编码器、通信单元、集成电路和用于极化编码的方法。本发明适用于但不限于用于当前和未来几代通信标准的极化编码。
背景技术
根据前向错误校正(FEC)和信道编码的原理,极化编码[1]可以被用于保护信息免受不完善通信信道中的传送错误的影响,该不完善通信信道可能遭受噪声和其他有害影响。更具体地,在发射器中使用极化编码器对信息进行编码,并且在接收器中使用相应的极化解码器以减轻传送错误并恢复传送信息。极化编码器根据规定的编码过程,将包含K个比特的信息块转换为包含更多数量的比特M>K的编码块。以这种方式,编码块传递来自信息块的K比特的信息以及M-K比特的冗余。为了估计信息块中的原始K比特的值,可以根据规定的解码过程在极化解码器中利用这种冗余。在通信信道的条件不太严重的情况下,极化解码器可以高概率地正确估计信息块中的K比特的值。
极化编码过程包括三个步骤。在第一信息块调节步骤中,在规定的位置中将冗余比特插入到信息块中,以便将其大小从K比特增加到N比特,这里,N是2的幂。在第二极化编码内核步骤中,根据规定的图结构,使用连续异或(XOR)操作以不同组合组合得到的内核信息块的N个比特。该图结构包括n=log2(N)个连续级,每个级包含N/2个XOR操作,这些操作组合特定的比特对。在第三步骤中,对得到的内核编码块应用编码块调节,以便将其大小从N比特调整为M比特。这可以通过根据规定的方法重复或去除内核编码块中的特定比特来实现,以产生编码块。
需要灵活的极化编码器内核以支持各种内核块大小N,每个具有2的幂的值,最高达并包括最大支持的内核块大小Nmax。现有技术的灵活极化编码器内核[7]、[8]将极化码图分解成跨越图的宽度的几个行。极化编码器内核操作包括几个步骤,在这些步骤中,按照从上到下的顺序逐个处理各连续列。但是,需要的硬件的量和通过该硬件的关键(critical)路径长度取决于必须由各行跨越的最大数量的级nmax=log2(Nmax)。当编码短块时,许多硬件将被闲置,从而导致硬件效率低下。
发明内容
本发明提供如所附权利要求所述的极化编码器、通信单元和用于极化编码的方法。
在从属权利要求中阐述本发明的具体实施例。
本发明的这些和其他方面将从下文所述的实施例中显而易见并参考下文所述的实施例加以说明。
附图说明
仅以示例的方式参考附图来描述本发明的进一步的细节、方面和实施例。在附图中,类似的附图标记被用于识别相似或功能相似的要素。为了简单和清晰,示出图中的元素,并且不一定按比例绘制。
图1示出适于根据本发明的示例性实施例的具有极化编码器和极化解码器的通信单元的示例性顶层示意图。
图4示出根据本发明的示例性实施例的提出的极化编码器内核的示例性示意图。
图5示出根据本发明的示例性实施例的生成矩阵的示例性图形表示,该矩阵已分组为C=3列,包括对应于se=2的s=[2;2;1]级。
图6示出根据本发明的示例性实施例的、由提出的极化编码器内核采用的编码处理的示例性流程图,其中,围绕流程图的主环路的每个循环对应于数据编码处理的一个步骤。
图7示出根据本发明的示例性实施例的用于提出的极化编码器内核的示例性定时图。
图8示出根据本发明的示例性实施例的针对se=3和ne=16的例子的提出的极化编码器内核中的数据路径的示例性示意图。
图9示出根据本发明的示例性实施例的针对se=1和ne=4的例子的提出的极化编码器内核的数据路径、存储器和控制器之间的交互的示例性示意图。
图10示出根据本发明的示例性实施例的在N=16、se=1和ne=4的情况下的比特索引到存储器块中的位置的示例性映射。
图11示出根据本发明的示例性实施例的在N=32、se=2和ne=8的情况下的比特索引到存储器块中的位置的示例性映射。
图12示出根据本发明的示例性实施例的在N=16、se=2和ne=8的情况下的比特索引到存储器块中的位置的示例性映射。
图13示出根据本发明的示例性实施例的在N=4、se=2和ne=8的情况下的比特索引到存储器块中的位置的示例性映射。
图14示出根据本发明的一些示例性实施例的可用于电子设备或无线通信单元中以执行极化编码操作的典型计算系统。
具体实施方式
在第一方面中,本发明的示例描述极化编码器内核,该极化编码器内核被配置为从内核块大小为“N”的内核信息块接收一个或多个比特;并且从具有与内核块大小“N”匹配的块大小的内核编码块输出一个或多个比特;其中,极化编码器内核包括极化码图到多个列的分解,这些列被进一步分解成一个或多个极化码子图并且被配置为一次执行与一个极化码子图相关联的处理。
虽然该方法需要比现有技术更多的步骤以完成极化编码器内核操作,但是本发明的示例中的所需的硬件量和关键路径长度仅取决于列中的最大级数,而不是如现有技术中那样取决于极化码图中的最大级数。这确保对于所有内核块大小保持硬件的高使用率,从而实现优于现有技术的硬件效率。
在一些示例中,极化编码器内核可以包括数据路径、存储器块和控制器,其中,控制器被配置为当执行与各极化码子图相关联的处理时,从存储器的第一存储器块或从输入到极化编码器内核的比特读取ne个比特,使用数据路径(601)处理该ne个比特并将得到的ne个比特写入第二存储器块。以这种方式,可以在编码处理的单个步骤内完成与各极化码子图相关联的处理。并且,可以在编码过程的每个步骤中利用数据路径,从而与内核块大小无关地保持高硬件使用率。
在一些示例中,极化编码器内核可以被配置为在从左到右依次前进到极化码图的下一列之前执行与各连续列中的所有极化码子图相关联的处理。以这种方式,可以在不要求数据路径具有大量的具有高关键路径长度的硬件的情况下满足极化编码器内核的数据依赖性,为了完成与跨越极化码图中最大支持的数量的级相关联的处理,这将是必要的。
在一些示例中,可以通过从第一存储器块读取并写入第二存储器块完成与各列相关联的处理,其中第一存储器块和第二存储器块的角色交替用于连续列。以这种方式,无需将存储器内容从一个存储器复制到另一个存储器,如果数据路径被配置为始终从一个存储器读取并且始终写入另一个存储器,则这是必需的。
在一些示例中,可以将各列中的一个或多个子图配置为跨越列的宽度。以这种方式,为了完成与只跨越列中的级相关联的处理,数据路径只需要少量的具有小关键路径长度的硬件。
在一些示例中,各列中的一个或多个子图可以被配置为跨越列的宽度。在一些示例中,各列中的一个或多个子图可由数据路径一次一个地处理,并分布在相应数量的连续处理步骤上。以这种方式,为了在硬件要求和完成极化编码器内核处理所需的时钟周期数之间优化权衡,可以在设计时配置数据路径的块大小。
在一些示例中,各列中的分解子图的数量可依赖于数据路径的块大小ne,其中各子图的块大小等于数据路径的块大小ne,使得数据路径能够在单个步骤中处理子图。在一些示例中,各列中的分解的子图的最大数量是max(N/n_e,1),并且当N<ne时,至少一个零值比特被附加到内核信息块的端部,以将其长度增加到ne。在一些示例中,随后从内核编码块的端部去除所述至少一个零值比特,以将其长度返回到N。以这种方式,更长的内核块大小的处理可以分布在更多的时钟周期数上,而较短的内核块大小的处理可以分布在较少的时钟周期数上,从而保持一致的硬件效率。
在一些示例中,极化码图可以由被分组为多个(C)列的多个(n=log2(N))级组成,这里,各列包括多个连续的级。在一些示例中,“n”个级(207)可以使用对于所有c∈[0,C-1]满足Sc≤Se的任何组合分布在(C)列中,这里,Se指定由数据路径支持的最大数量的级。在一些示例中,除最右边的列外,列数Sc=Se,并且,所有剩余的级被放在最右边的列中。以这种方式,为了在硬件需求和完成极化编码器内核过程所需的时钟周期数之间优化权衡,数据路径的硬件要求取决于可以在设计时配置的各列中的最大级数。
在一些示例中,数据路径和内存可能具有相同的比特宽度。在一些示例中,可以独立于彼此、数据路径和存储器中的至少一个选择极化编码器内核的输入的比特宽度和输出的比特宽度。以这种方式,极化编码器内核和其他连接电路之间的接口的宽度可以独立于数据路径和存储器宽度被选择,这些数据路径和存储器宽度指示极化编码器内核的硬件要求以及完成极化编码器内核处理所需的时钟周期数。
在一些示例中,数据路径可以包括:(i)具有依赖于数据路径级的数量se的维度的第一生成矩阵的ne/2se个图形表示的垂直级联,以及(ii)具有取决于数据路径块大小ne的维度的第二生成矩阵的图形表示中的最左边的Se个级。在一些示例中,数据路径可以包括被配置为沿着具有包括Se个XOR门的关键长度的路径将比特从数据路径的左边缘传播到右边缘、通过Se个数据路径级到右边缘的总共sene/2个XOR门。在一些示例中,当执行与级数sc小于数据路径级数se的列相关联的处理时,可以禁用数据路径中的多个最右边的级。以这种方式,可以在单个时钟周期内完成与各列中的各子图相关联的处理。
在一些示例中,通过极化编码器与各连续列相关联的处理可以通过在以下两者之间交替来进行:(i)从第一存储器块读取和写入第二存储器块;(ii)从第二存储器块读取和写入第一存储器块。以这种方式,在处理一列期间写入一个存储器块的比特可以在处理右边的下一列期间从同一存储器块读取,而不需要将比特从一个存储器块复制到另一个存储器块。
在一些示例中,数据路径可以被配置成使得在与第一列相关联的处理期间写入第一存储器块之后,在与紧靠第一列右侧的第二列相关联的后续处理期间从同一存储器块读取。以这种方式,不需要将比特从一个存储器块复制到另一个存储器块,如果数据路径始终写入一个存储器并从另一个存储器读取,则需要这样做。
在一些示例中,数据路径的输入可以从第一存储器块读取,并且,数据路径的输出可以写入第二存储器块。在一些示例中,可以通过将第一存储器块的读取数据端口与第二存储器块中的相应读取数据端口多路复用以互补的方式执行由极化编码器对各列的处理。以这种方式,根据使用多路复用器控制信号进行的选择,可以从任一存储器块读取数据路径。
在一些示例中,控制器可以提供单独的写入启用信号,以控制由数据路径提供的ne个比特中的每一个是单独写入第一存储器块还是第二存储器块。以这种方式,数据路径可以根据通过断言写入启用信号中的一个或另一个进行的选择写入任一存储器块。在一些示例中,用于第一存储器块的写入启用信号可与第二存储器块共享,但在处理替换列时交替屏蔽。以这种方式,可以独立于正在处理哪一列控制写入启用信号,然后根据正在处理哪一列来共享和屏蔽。
在一些示例中,信息块调节电路可以被配置为:从要编码的块大小为K的数据信息块接收一个或多个比特;生成冗余比特并将冗余比特交错到极化解码器已知的位置;并将一个或多个比特从块大小为N的内核信息块输出到极化编码器内核。在一些示例中,内核信息块(105)可以是包含N个内核信息比特的向量这里,uj∈{0,1}。
在一些示例中,极化编码器内核可以耦合到被配置为将信息比特转换为输入到极化编码器内核的内核信息块的信息块调节电路。在一些示例中,例如,信息块调节电路可以被配置为将信息比特与冻结比特、循环冗余校验(CRC)比特、奇偶校验(PC)-冻结比特、用户设备标识(UE-ID)比特和/或散列比特交错。以这种方式,极化信息比特的数量可以采用任意整数值,而不要求是2的幂。
在一些示例中,极化编码器内核可以耦合到被配置为从由极化编码器内核输出的内核编码块生成编码比特的编码块调节电路。在一些示例中,编码块调节电路可以被配置为使用打孔以去除内核编码块中的“N”个比特中的多个比特,或使用缩短以去除在内核编码块中的“N”个比特中保证具有逻辑值“0”的多个比特,或者使用重复以重复内核编码块中的“N”个比特中的多个比特。以这种方式,极化编码比特的数量可以采用任何整数值,而不要求是2的幂。在一些示例中,信息块调节电路和编码块调节电路中的至少一个可以被配置为执行交错。在一些例子中,内核编码块可以是包含“N”个内核编码比特的向量:这里,xj∈{0,1}。
在第二方面中,本发明的示例描述包括根据第一方面的极化编码器内核的通信单元。
在第三方面中,本发明的示例描述包括根据第一方面的极化编码器内核的集成电路。
在第四方面中,本发明的示例,根据第一方面描述通信单元中的极化编码方法。该方法包括:将极化码图分解为多个列,其中,各列进一步分解为一个或多个极化码子图;从内核块大小为N的内核信息块接收一个或多个比特;一次一个极化码子图地处理编码比特;以及从具有与内核块大小N匹配的块大小的内核编码块输出一个或多个比特。
在第五方面中,本发明的示例描述包括存储于其中的用于在根据第四方面的通信单元中极化编码的可执行代码的非暂时性有形计算机程序产品。
尽管参考被配置为将一个或多个比特从块大小为N的内核信息块输出到极化编码器内核,使得连续的内核信息块具有可以随块而变化的内核块大小N的信息块调节电路描述了本发明的示例,但是可以设想,在其他示例中,描述的极化编码器内核可以作为仅支持一个块大小N的非灵活编码器操作。
尽管参考无线通信发射器的应用中的集成电路实现描述了本发明的示例,但是可以设想,在其它示例中,本发明可以应用于其它实现和其它应用中。例如,本文描述的电路和概念可以构成为专用集成电路(ASIC)、应用特定指令集处理器、应用特定标准产品、现场可编程门阵列、通用图形处理单元、芯片上系统、可配置处理器中的硬件实现。类似地,可以设想,在其它示例中,例如,软件实现可以在中央处理单元、数字信号处理器或微控制器内构成。除了无线通信发射器之外,本发明还可以构成为无线通信收发器或者用于诸如光信道、有线信道或超声波信道的其它通信信道的通信设备。并且,为了例如为存储在光学、磁性、量子或固态介质上的数据提供FEC,本发明可以构成为存储装置。
本发明的示例进一步提供根据极化编码原理对信息进行编码的方法和架构,其目的在于在通过不可靠信道的通信期间或在不可靠介质中的存储期间提供FEC。本发明的示例进一步提供为包括从块到块变化的比特数量的信息块提供灵活支持的方法和架构。
特别地,本发明的示例将极化码图分解为几个列,每列包含一个或多个连续级的不同集合。按从左到右的顺序逐个处理列。各列进一步分解为在一些示例中仅跨越列的宽度的几个子图。各列的处理包括几个步骤,在这些步骤中,列中的子图被逐个地处理。
参考新无线电(NR)标准描述本发明的一些示例,该新无线电(NR)标准目前被第三代合作伙伴计划(3GPP)定义为第五代(5G)移动通信的候选。目前,在NR的增强移动宽带(eMBB)应用的上行链路和下行链路控制信道以及物理广播信道(PBCH)中,选择极化编码和解码以提供FEC。极化编码和解码也被识别为候选,以为NR的超可靠低延迟通信(URLLC)和海量机器类通信(mMTC)应用的上行链路和下行链路数据和控制信道提供FEC。作为替代,在不参考特定标准化应用的情况下描述本发明的一些示例。更广泛地,本发明可应用于选择极化编码和解码以提供FEC的任何未来通信标准中。并且,本发明可应用于非标准化通信应用中,这些非标准化通信应用可以使用极化编码和解码以为无线、有线、光学、超声波或其它通信信道上的通信提供FEC。类似地,本发明可应用于存储应用中,这些存储应用使用极化编码和解码以在光学、磁性、量子、固态和其他存储介质中提供FEC。
在一些示例中,可以通过使用分立组件和电路实现本文描述的电路和功能,而在其他示例中,可以在信号处理器中、例如在集成电路中执行操作。
由于对于大多数的部分可以通过使用本领域技术人员已知的电子组件和电路实现本发明的所示实施例,因此,为了理解和认识本发明的基本概念并且为了不使本发明的教导混淆或偏离,对于细节的解释程度不会比以下所示的认为必要的范围更大。
附图的详细说明
现在参考图1,示出适于根据本发明的示例的包括极化编码器和极化解码器的通信单元116的顶层示意图。在通信单元116的该示例中,本领域技术人员将理解,仅出于简化目的,多个其它组件和电路(诸如频率产生电路、控制器、放大器、滤波器等)未被示出。在其他示例中,设想块116也可以采用包括极化编码器(并且在一些情况下包括块调节和极化解码处理功能)的集成电路的形式,该集成电路例如用于被设计为使用极化编码的通信单元、存储单元或任何电子设备中。在其它示例中,设想块116可以采用在通用计算处理器上运行的软件的形式。
极化编码器包括三个连续组件,即信息块调节101、极化编码器内核102和编码块调节103。在以下段落中讨论这些组件。为了提供本讨论的上下文,图1示出通信或存储信道108以及极化解码器的相应组件,即信息块调节112、极化解码器内核111和编码块调节110,尽管这些组件以相反的顺序操作。如在以下段落中所讨论的,编码器基于信息块104、内核信息块105、内核编码块106和编码块107操作。相应地,极化解码器基于恢复的信息块115、恢复的内核信息块114、软内核编码块113和软编码块109操作,尽管这些是按相反的顺序处理的。
对信息块调节组件101的输入可以被称为具有K的块大小的信息块104。更具体地,该信息块是包含K个信息比特的行向量这里,ai∈{0,1}。在一些替代性示例中,该信息块可以是列向量。信息块调节组件101将K个信息比特与N-K个冗余比特交错,例如,这些冗余比特可以是冻结比特[1]、循环冗余校验(CRC)比特[2]、奇偶校验(PC)-冻结比特[3]、用户设备标识(UE-ID)比特[4]或散列比特[5]。
这里,冻结比特可以始终采用逻辑值“0”,而CRC或PC冻结比特或散列比特可以采用作为信息比特的函数而获得的值,或者采用在处理中之前已经交错的冗余比特的函数而获得的值。信息块调节组件101生成冗余比特,并将其交错到由极化解码器也已知的指定方法识别的位置。信息块调节组件101还可以包括例如可以实现比特反转置换[1]的交错操作。信息块调节组件101的输出可以被称为内核信息块105,其具有N的块大小。更具体地,该内核信息块105是包括N个内核信息比特的行向量这里,uj∈0,1。在一些替代性示例中,内核信息块可以是列向量。这里,如下面所讨论的那样,为了提供与基于具有2的幂的维度的生成矩阵操作的极化编码器内核的兼容性,必须完成信息块调节,使得N是大于K的2的幂。对于极化编码器内核102的输入是内核信息块u 105,并且,极化编码器内核102的输出可以被称为内核编码块106,其具有与内核块大小N匹配的块大小。更具体地,该示例内核编码块106是包含N个内核编码比特的行向量这里,xj∈0,1。在一些替代性示例中,内核编码块可以是列向量。在使用行向量的情况下,根据模2矩阵乘法获得内核编码块106,这里,两个比特值的模2和可以作为其XOR获得。这里,生成矩阵由内核矩阵的[n=log2(N)]次Kronecker幂给出:
注意,可以递归地获得内核矩阵的连续Kronecker幂,这里,各幂是通过用内核矩阵替换前一个幂中的各逻辑“1”并用2×2零矩阵替换各逻辑“0”获得的。因此,内核矩阵的n次Kronecker幂具有2n×2n的维度。例如,
本领域技术人员理解,在某些情况下,电路或组件的集成程度可能依赖于实现。并且,设想在一些示例中信号处理器可以包含于通信单元116中并且适于实现编码器和解码器功能。作为替代,如图1所示,单个处理器可以被用于实现发送和接收信号的处理以及基带/数字信号处理功能的一些或全部。显然,无线或有线通信单元116内的各种组件,诸如所描述的极化编码器,可以以离散或集成组件形式实现,其最终结构因此是应用特定或设计选择的。
在一些示例中,如在图2中示例的那样,极化编码器内核102的操作可以由生成矩阵的图形表示201、202、203表示。现在参考图2,根据本发明的示例示出生成矩阵F201、202和320的示例性图形表示200。
生成矩阵的图形表示包括相互连接以及沿图形表示的左边缘高度与N=2n个信息连接的集合连接并且沿其右边缘高度与N个编码连接的集合连接的Nlog2(N)/2模2加法的网络。从左到右,模2加法被布置到一系列n个级中,各级在其左、右边缘上都有N个连接到任意的另一级或者到图形表示的左、右边缘。或者直接或者通过垂直连接到级中较低的水平连接的模2加法,各级水平地连接其左边缘上的各连接与其右边缘上相应的水平对齐的连接。各级包括总共N/2个垂直对齐的模2加法。在本发明中,n个级的集合被分组为C<n列,这里,各列包括不同的连续级的不重叠集合。
生成矩阵的图形表示201、202、203是小极化码图的示例,而一般来说,极化码图可以大得多并且具有任何维度n>0。因此,图2中的示例示出比在实践中存在的简化得多的配置,这纯粹是为了解释和不混淆本发明的描述的目的。
这里,可以通过使用二进制异或(XOR)运算实现各模2加法注意,该图包括对应于“u”105的“N”个内核信息比特和“x”106的“N”内核编码比特的其左边缘205上的“N”个输入和其右边缘206上的“N”个输出。生成矩阵F 201、202和203的图形表示包括n=log2(N)个级207,每一个包括N/2个垂直对齐的XOR204,从而给出总共N log2(N)=2个XOR。注意,在实施从左到右的处理计划的连续级207之间存在数据依赖性。更具体地,数据依赖性防止特定级207中的XOR的计算,直到计算完其左侧的级207中的XOR之后。
在一些例子中,与连续Kronecker幂的递归性质相同,这些生成矩阵的连续图形表示也具有递归关系。更具体地,用于内核块大小为N=2 201的极化编码内核操作的图形表示200包括单个级207,该级207包含单个XOR 204,注意,在示例性极化编码器中,N=2个内核编码比特中的第一个被获得为N=2个内核信息比特的XOR,而第二个核编码比特等于第二个内核信息比特。对于更大的内核块大小“N”,图形表示可以被认为是两个内核块大小为N/2的图形表示的垂直级联,然后是XOR的额外级207。与上述N=2的内核类似,N个内核编码比特的第一N/2作为从两个N/2内核的输出的对应比特的XOR获得,而第二N/2内核编码比特等于第二N/2内核的输出。
在本示例中,对于极化编码器的编码块调节组件103的输入是内核编码块x 106,并且其输出可以被称为具有块大小M的编码块107。更具体地,该编码块是包含M个编码比特的行向量这里,bk∈{0,1}。在一些替代性示例中,编码块可以是列向量。
这里,得到的极化编码速率由R=K/M给出,这里,编码块调节103必须完成,使得“M”大于“K”。编码块调节组件103可以使用各种技术在编码块b 107中生成“M”个编码比特,这里,M可以高于或低“N”。更具体地,可以使用重复(repetition)[6]来重复内核编码块“x”中的“N”个比特中的一些,而可以使用缩短(shortening)或打孔(puncturing)技术[6]来去除内核编码块“x”中的“N”个比特中的一些。注意,缩短去除保证逻辑值为“0”的比特,而穿孔去除可能任意地具有逻辑“0”或“1”值的比特。编码块调节组件还可以包括交错操作。在极化编码之后,可将编码块“b”107提供给调制器,该调制器通过通信信道108发送该编码块。
现在参考图3,使用生成矩阵203的图形表示300的扩展的示例极化编码处理示出使用特定冻结比特图案以将K=4信息比特a=[1001]104转换为M=8编码比特b=[00001111]107的示例。更具体地,信息块调节101被用于将K=4信息比特a=[1001]104转换为N=8内核信息比特u=[00010001]105。然后,极化编码器内核102通过使用极化码图203将这些比特转换为N=8内核编码比特x=[00001111]106。这里,可以通过各种XOR运算跟踪输入路径以识别输出。最后,编码块调节103保留所有内核编码比特,以提供M=8编码比特b=[00001111]107。
编码器架构示例:
现在参考图4,根据本发明的示例性实施例,示出提出的极化编码器内核600的示例性示意图。提出的极化编码器内核102包括数据路径601、两个存储器块602、603和控制器604。与用于实现编码器的已知处理器架构形成对照,本发明的示例描述了通过从一个存储器读取和写入到另一个存储器对各列的处理,两个存储器的角色交替用于连续列。各列可以包括极化码图的一个或多个级。并且,根据数据路径的块大小,处理在连续的时钟周期中分布。
与已知的极化编码器形成对照,本发明的示例将极化码图分解为几个列,每个列包含一个或多个连续级的不同集合。按从左到右的顺序逐个处理列。每列被进一步分解成几个子图,这里,在一些示例中,各列中的一个或多个子图被配置为跨越列的宽度。
在一些示例中,特定列中的子图包含互斥的XOR集合和互连集合,这里,特定子图中的任何特定XOR或互连未连接到同一列中的任何其他子图中的任何XOR或互连。各列的处理包括几个步骤,在这些步骤中,列中的子图被逐个处理,一次处理一个子图。这与现有技术[7]、[8]形成对照,这些现有技术将极化码图分解为仅仅单个列,该列包含按从上到下的顺序逐个处理的几个行。
虽然本发明需要更多的步骤以完成极化编码器内核操作,但是所需硬件的量和关键路径长度仅取决于列中的最大级数,而不是如现有技术中那样取决于极化码图中的最大级数。这确保对于所有块大小保持硬件的高利用率,从而实现优于现有技术的硬件效率。
在控制器604的控制下,数据路径601被指示为在极化编码器内核操作的各步骤中处理一个列的一个子图。更具体地,从两个存储器块602、603中的一个读取到数据路径601的输入,并且将数据路径601的输出写入到两个存储器块602、603中的另一个。这里,两个存储器块的角色在连续列的处理期间交替,使得在一个列的处理期间写入的存储器块在下一列的处理期间被读取。这些比特在这些存储器块602、603中以允许数据路径601执行无缝读写操作的方式被布置,而不需要复杂的互连网络或复杂的控制信号。
提出的极化编码器内核600使得能够每次一个内核信息块105的灵活编码,其中,连续的内核信息块可以具有随块变化的内核块大小N。更具体地,内核块大小N可以采用2到Nmax之间的2的任意的幂,这里,Nmax是在设计时固定的参数。
在极化编码处理开始时,通过一系列N/min(N;ne)连续步骤,向极化编码器内核102的比特输入605提供内核信息块(比如图1中的内核信息块105)。比特输入具有能够在每个步骤中接受ne比特的宽度,这里,参数ne在设计时被固定。在N<ne的示例中,在将内核信息块提供给提出的极化编码器内核600之前,将零值比特附加到内核信息块的末尾,以将其长度增加到ne。在极化编码处理完成之后,使用一系列N/min(N,ne)连续步骤,从提出的极化编码器内核600的比特输出606上的内核编码块输出一个或多个比特,该内核编码块也具有ne比特的宽度。在N<ne的示例中,可以从极化编码器内核600的输出的端部去除零值比特。
在第一示例中,极化编码器内核600的输入605和输出606可以被配置为具有与存储器602、603和数据路径601相同的ne比特的宽度。但是,在第二示例中,设想极化编码器内核600的输入605和输出606可以被配置为具有与存储器602、603和数据路径601组件不同的宽度,从而允许独立于数据路径601宽度选择与信息和编码块调节组件101、103的接口的宽度。这允许分别优化由块调节组件101、103和极化编码器内核102消耗的硬件资源和时钟周期数。
现在参考图5,根据本发明的示例性实施例,示出生成矩阵的示例性图形表示,其分组成包含对应于se=2的s=[2;2;1]级的C=3列。这里,ne=8,这导致各列被分解为N/ne=4个子图,从而跨着C=3列提供总共12个子图。各列702被封装在绿色框中。各列中的第一个子图701以粗体突出显示。
当对块大小为N的内核信息块105进行编码时,如上文所述,提出的极化编码器内核600基于极化码生成矩阵的图形表示操作。这里,图形表示中的n=log2(N)级207被分组为数量C个列,其中,各列702包括特定数量的连续级207。各列702可由其索引c∈[0,C-1]引用,其中,最左边的列具有索引c=0,最右边的列具有索引c=C-1。各列中的级207的数量可以用行向量表达,其中,s0是最左边列中的级的数量,sC-1是最右边列中的级的数量。这里,必须选择向量s,使得:更明确地说,极化码图中的各级207包括N/2个XOR 204,这些XOR 204可以在不改变图的基本连接性的情况下水平地重新排序。各列702包括一个或多个水平连续级。
在一些示例中,根据内核块大小N以及在一些例子中在设计时固定的参数se选择各列702中的级207的特定数量。这里,se指定各列702中可容纳的最大级数207,其可以采取范围“1”到nmax=log2(Nmax)中的任何值。
在该特定例子中,图被分解成数量的列,其中,n=log2(N)是图中的级数。更具体地,第一C-1列分别包括se级207,而最右边的列包括sC-1=n-(C-1)se级,其中,sC-1可以采用范围“1”到se中的任何值,这取决于内核块大小N。这在图5中举例说明,其中,s=[2;2;1]在图包括n=5级207的示例中从se=2得到。
在一些替代性示例中,n个级207可以通过使用对于所有列满足sc≤se的任何其它组合分布在C列702中,c∈[0,C-1]。在一些例子中,图可以分解成最大个列,其中,最右边的列包括最大sC-1,max=nmax-(Cmax-1)se级207,并且所有其他列包括最大SC,max=Se级207。列集合与所谓的子代码基数的向量相关联,其中,各子代码基数由以下给出:
这里,特定列702的子代码基数rc量化如果图仅包含该列及其左侧列中的级207所产生的内核块大小N。注意,各连续列702的子代码基数rc从左向右增长。各列702被分解为R=max(N/ne,1)个独立子图701,各子图在其左边缘和右边缘上具有N/R=min(N,ne)个水平对齐的连接,但是没有到列内的任何其它子图的连接。这里,ne指定最大子图块大小,该最大子图块大小是在设计时固定的参数并且可以采取在范围2Se到Nmax内的2的任意幂的值。最左边的列中的子图701的左边缘和右边缘上的连接彼此垂直地连续。这在图5的最左边的列中举例说明,其中,R=4在图包括n=5个级207的示例中源自ne=8。如图5的中间列所例示,具有索引c∈[1,C-1]的列702由子图701组成,其左、右边缘上的连接相互垂直偏移rc-1个位置,除非rc-1>R。当rc-1>R时,子图包括N\rc-1组的rc-1/R垂直连续连接,其中,如图5最右边的列所例示,这些组相互垂直偏移rc-1个位置。在一些示例中,垂直偏移被用于选择哪些XOR和互连形成各子图。
现在参考图6,根据本发明的示例示出提出的极化编码器内核102、600所采用的编码处理的流程图800。流程图800在802开始,并且,在804处,各列中的子图的数量被设定为R=max(N/ne;1),并且列的数量被设定为C=ceil(log2(N)/se)。在806处,发起主编码环路,并且计数器t设定为“0”。
在808处,通过使用索引col=floor(t/R)识别当前列,并且通过使用索引row=mod(t,R)识别当前列中的要处理的子图。在810处,确定正在处理的列是否=0。如果在810处,被处理的列不等于0,则流程图移动到812,由此从具有索引mod(col,2)的存储器块602、603加载ne个比特。但是,如果在810处,正在处理的列=0,则流程图移动到814,由此从极化编码器内核输入加载ne个比特。在812或814之后,流程图移动到816,由此,数据路径601被用于处理所选列的当前子图。在818处,ne个比特然后被存储在具有索引mod(col+1,2)的存储器块602、603中。注意,从两个存储器块602、603中的一个读取到数据路径601的输入,并且将数据路径601的输出写入两个存储器块602、603中的另一个。这里,两个存储器块的角色在连续列的处理期间交替,使得在一列的处理期间被写入的存储器块在下一列的处理期间被读取。在820处,然后确定是否col=C-1和row=R-1。如果col=C-1或row=R-1无效,则计数器在822处递增(t=t+1)。此后,流程图循环到808。如果确定col=C-1和row=R-1成立,则计数器在824处复位,使得t=0。在826处,ne个比特从具有索引mod(col+1,2)的存储器块被加载,并且在828处,编码器在极化编码器内核输出606上输出ne个比特。在832处,确定计数器t是否达到R-1。如果t的计数器未在832处到达R-1,则计数器在834处递增。如果计数器t在832处已到达R-1,则流程图在836结束,并且内核信息块到内核编码块的转换完成。
因此,根据前面描述的数据依赖性,提出的极化编码器内核102,600从左到右逐个完成对各列(例如,图5中的列中的一个)的处理。在各列中,按从上到下的顺序逐个处理子图701,其中,如图6所示,各子图的处理构成提出的极化编码处理中的一个步骤。在替代性示例中,可以按任何顺序处理各列702中的子图701,由此,这种替代性示例可需要对上述设计的修改。
这种方法与现有技术[7]、[8]形成对照,该现有技术将极化码图分解为包含几个行的单个列,这些行被逐个地处理,并且具体地按从上到下的顺序进行处理。虽然本发明需要更多的步骤以完成极化编码器内核操作,但是需要的数据路径硬件的量和关键路径长度仅取决于列中的最大级数,而不是如现有技术中那样取决于极化码图中的最大的级数nmax=log2(Nmax)。这确保对于所有的块大小保持硬件的高利用率,从而实现优于现有技术的硬件效率。更具体地,提出的方法在编码过程的几乎每一个步骤中利用其所有并行性,而不管图中的级207的数量,从而导致对于所有块长度的最大化的硬件效率。
现在参考图7,根据本发明的示例性实施例示出用于提出的极化编码器内核102的示例性时序图。
如图7所示,整个过程包括总共 个步骤。注意,内核信息块105可以与图中最左边列的处理同时加载到提出的极化编码器内核102中。但是,需要进一步的N/min(N,ne)个步骤以输出内核编码块106。在替代性示例(未示出)中,从内核编码块106的一个或多个比特的输出可以在最右边列的处理结束时开始,从而允许实现一些并行性。各步骤可以对应于硬件实现中的单个时钟周期,这取决于是否以及如何应用流水线,这可被用于优化极化编码器内核的时钟频率。
编码器数据路径示例:
提出的极化编码器的数据路径601被设计为在极化编码处理的各步骤中执行与极化码图的一个子图相关联的处理。以这种方式,在极化编码处理的连续步骤期间,可以由数据路径将输入在极化编码图的左边缘上的内核信息比特连续组合成中间比特,直到获得输出在极化编码图的右边缘上的内核编码比特。
提出的极化编码器的数据路径601由这里称为数据路径级的数量和数据路径块大小的se和ne参数化,数据路径级的数量se可以采取范围“1”到nmax内的任何值,而数据路径块大小ne可以采取范围2Se到Nmax内的2的任意幂的值。如图8所例示,数据路径601类似于生成矩阵的ne/2Se图形表示的垂直级联,它也类似于生成矩阵的图形表示中的最左边的se个级207。以这种方式,具有较大的ne类似于一次多于一个子图的处理。
在替代性示例性配置(未示出)中,尽管具有与上述的那些不同的RAM和控制器设计,数据路径601可以类似于与生成矩阵的图形表示不同的se个级207的任何顺序。
现在参考图8,针对se=3和ne=16的示例,示出提出的极化编码器内核102中的数据路径601的示例性示意图。如图8所示,数据路径601包括总共sene/2个XOR门1001,这些XOR门1001沿着具有包括se个XOR门的关键长度的路径将比特从数据路径的左边缘1002传播到其右边缘1003。如图5所示并在所附的讨论中所描述,数据路径601的操作也由当前列702中的级的数量sc决定,该数量可以小于最右列的示例中的se。当sc<se时,通过禁用数据路径中的最右边级中的XOR门1001,减少数据路径中的级数以匹配sc。在一些示例中,如图所示,可以通过使用AND门1004实现该禁用操作,以屏蔽数据路径中相应的垂直连接。更具体地,垂直连接可以通过向对应的AND门提供单值控制输入被启用,从而允许由垂直连接承载的比特值通过。作为对照,垂直连接可以通过向对应的AND门提供零值控制输入被禁用,从而迫使垂直连接向对应的XOR门提供零值比特。转而,这迫使XOR门将其左侧输入端提供的比特值直接传递到其输出端,从而有效地禁用XOR门。
在替代示例布置中,为了将级数从se减少到sc,可以禁用级1005(最右边的级除外)。但是,如本领域技术人员所理解的,这些替代性示例布置可能需要与上述控制器设计不同的控制器设计。
在一些替代性示例安排中,设想设计者可以在XOR图中的级1005中的一些或所有之间插入流水线寄存器,这可能需要修改控制器的设计。这里,可以引入流水线以增加极化编码器内核的时钟频率,代价是增加所需的时钟周期数。通过仔细选择是否以及如何应用流水线,可以优化极化解码器内核的吞吐量和延迟,使得增加的时钟频率的优势最大程度地超过需要更多时钟周期的缺点。
编码器存储器示例:
参考图4,所提出的极化编码器内核102使用两个三维存储器块,即存储器“0”602和存储器“1”603。这些存储器块中的每一个包括具有ne比特的宽度和max(Nmax/(2Sene),1)地址的深度的2Se个RAM,其中,RAM、它们的宽度和它们的深度表示存储器块的三个维度。提出的极化编码器内核102的总存储器需求由2max(Nmax,2Sene)比特给出。
在一些替代性示例性配置中,设想设计者可以交换RAM和宽度维度的角色,作为替代例如通过使用宽度为2Se比特的ne个RAM。另外,在一些示例性替代性布置中,不是通过使用两个不同的组的RAM在RAM维度中容纳两个存储器块602、603,而是设想设计者可以通过将两个存储器块的宽度加倍或深度加倍而在一组RAM中容纳两个存储器块,因此作为替代的是在宽度或深度维度上容纳两个存储器块。但是,如本领域技术人员所理解的,这些替代性示例性布置可能需要与上述不同的数据路径接口和不同的控制器设计。
现在参考图9,根据本发明的示例性实施例,示出对于se=1和ne=4的例子,提出的极化编码器内核102的数据路径601、存储器602、603和控制器604之间的交互的示例性示意图。如图所示,各存储器块中的各RAM具有ne比特读取端口1101。该读取端口跨RAM的深度跨max(Nmax/(2Sene),1)个地址中的特定的一个的宽度输出ne比特。这里,如图9所示,通过在地址端口1102上提供的输入选择特定地址。类似地,如图9所示,各RAM具有ne比特写入端口1103。该写入端口接受可以跨特定地址的宽度更新ne比特的输入,该地址由在地址端口1102上提供的输入选择。但是,这些ne个比特仅在断言了相应的写入启用信号607时才被更新。假定可以使用ne个单独写入启用信号以控制ne个比特中的每一个是否被单独写入。如果特定硬件RAM实现原生地(natively)不支持这一点,则可以由ne个多路复用器608驱动写入端口1103,该ne个多路复用器608可以被用于用来自读取端口1101的反馈多路复用输入比特。以这种方式,ne个写入启用信号可以单独控制由这些ne个多路复用器选择的比特,从而或者将新比特值写入RAM或者通过写入从读取端口1101获得的相应比特保持当前比特值。尽管在图4中示出该机制,但是为了简单起见,在图9中未示出该机制。
在从左到右的对图中的各连续列702的处理期间,两个存储器块602、603的角色交替。更具体地,对于具有偶数索引c∈{0,2,4,…}的列,从存储器“0”602(或者在列“0”的示例中,直接从到提出的极化编码器内核102的ne比特输入605)读取比特,提供给数据路径601,并且所得的比特被写入存储器“1”603。作为对照,在具有奇数索引c∈{1,3,5,…]的列的示例中,从存储器“1”603读取比特,提供给数据路径601,并且所得到的比特被写入存储器“0”602。以这种方式,在特定列702的处理期间被写入的存储器块在下一列的处理期间被读取。可以多路复用609存储器“0”602中的RAM的读取数据端口与存储器“1”603中的相应RAM的读取数据端口,实现这两个存储器块602,603的交替操作。类似地,存储器“0”中的RAM的写入启用信号608可以与存储器“1”中的相应RAM的写入启用信号608共享,但交替屏蔽。尽管在图4中示出这些机制,但是为了简单起见,在图9中未示出它们。
存储器块602、603和数据路径601之间的接口被专门设计,以避免对复杂路由网络的要求,允许由数据路径601的输入或输出中的任一者将任何比特读取或写入存储器块602、603。相反,存储器块中的比特的布置被设计为使得在存储器块602、603和数据路径601之间只需要简单的路由网络。类似地,其被设计使得仅需要来自控制器604的有限数量的控制信号。
这是通过以与极化编码器内核的特定数据依赖性相一致(sympathetic)的方式仔细地布置存储器块602、603的三维内的比特来实现的。这是必要的,因为由于各列中的XOR的布置不同,因此如图5例示的那样,极化码图中的连续列必须分解为具有不同布置的子图。结果,数据路径601在处理一个列中的子图期间同时写入的比特将不被数据路径601在处理下一列中的子图时同时读取。但是,不管如何,存储器块中的提出的比特布置允许数据路径601无缝地同时读取它需要的输入比特,并且无缝地同时写入它生成的输出比特。
更具体地,特定存储器块602、603内的2Se个RAM的地址端口被捆绑在一起,从而仅要求控制器604为存储器块602、603中的每一个生成单个地址。并且,如下面详述的那样,数据路径601的左边缘的比特输入1002简单地按宽度从存储器块602、603读取。与此形成对照,如下面详述的那样,数据路径601的右边缘的比特输出1003简单地按RAM写入存储器块602、603。在替代性示例性配置中,按宽度的比特存储器访问可以替换为按RAM访问,反之亦然,尽管这意味着与下面描述的不同的数据路径接口和控制器设计。
对于存储器块602、603和数据路径601之间的按宽度和按RAM的接口,在数据路径601的输入1002或输出1003中具有位置l∈[0,ne-1]的比特从存储器块中的RAM中的特定RAM的深度内的特定地址的宽度内的特定位置被读取或者写入到该特定位置。存储器块602、603中的该位置可以由宽度坐标wl∈[0,ne-1]、深度坐标和RAM坐标rl∈[0,2Se-1]识别。如上所述,各存储器块602、603中的比特的布置和提出的极化编码器内核102的操作使得特定比特存储器块602、603中的2Se个RAM的地址端口可以全部绑定在一起。这意味着对于按宽度和按RAM的接口,一起访问的所有ne个比特的将具有相同的深度坐标,也就是说,dl对于所有l∈[0,ne-1]具有相同的值。并且,按宽度的数据路径输入1002中具有位置l∈[0,ne-1]的比特仅从具有相应宽度坐标wl=l的存储器块602、603中的位置读取。但是,在极化编码过程中的不同定时,数据路径接口中的该比特可能需要从可能的RAM坐标rl∈[0,2Se-1]中的任一个读取。因此,2Se:1多路复用器1104是向按宽度的数据路径输入1002提供第l比特所需的唯一电路。更具体地,如图9所示,该多路复用器1104在由2Se个RAM中的每一个的读取端口1101中的第l位置提供的比特之间进行选择。这里,控制器604需要向存储器块提供ne个RAM读取坐标,其可以被解码,以便向这些ne个多路复用器1104中的每一个提供单独的控制信号。
并且,在数据路径的按RAM的输出1003中具有位置l∈[0,ne-1]的比特仅被写入到具有相应RAM坐标rl=mod(l,2Se)的存储器块602、603中的位置。但是,在极化编码过程中的不同定时,该比特可能需要被写入到可能的宽度坐标wl∈[0,ne-1]中的任一个。因此,如图9所示,ne/2Se:1个多路复用器1105是将ne个输入中的每一个提供给RAM的2Se个写入端口1103所需的唯一电路。这是因为具有RAM坐标rl的RAM的各输入仅从具有满足mod(l,2Se)=rl的位置l∈[0,ne-1]的数据路径输出比特1003的子集中选择。这里,要求控制器604向存储器块602、603提供ne宽度写入坐标,其可以被解码以断言写入启用信号607中的ne个信号,以及为ne个多路复用器1105的相应子组提供控制信号。
在解码处理完成之后,通过具有ne比特宽度的提出的极化编码器内核102的比特输出606,在一系列步骤中读取最近被写入的存储器块602、603。但是,在一般情况下,不按宽度执行这些读取操作,其中,图中的级数n=log2(N)不能被数据路径中的级数se整除。出于这种原因,在一些示例中,如图9所示,提供置换网络1106以将存储器块602、603与提出的极化编码器内核102的比特输出606接口。
编码器控制器示例:
如图7所述,提出的极化编码过程包括总共个步骤。这里,在从左到右依次前进到下一列之前,完成对各连续列702内的子图701的处理。图4的控制器604包括计数器t,该计数器t在编码处理开始时采用逻辑值“0”,并且在各连续步骤中向T-1递增。如上所述,提出的极化编码处理的各步骤涉及:从一个存储器块602、603或从到提出的极化编码器内核102的比特输入605读取ne比特、在数据路径601中处理它们并然后将所得到的ne比特写入另一个存储器块,其中,两个存储器块602、603的角色在连续列702中交替。控制器604被设计使得不管正在处理图中的哪个列702,为了根据图中的连接完成一组XOR运算,各存储器读取操作都无缝地提供可以由数据路径601组合的ne比特的集合。并且,控制器604被设计使得各存储器写入操作在存储器块602、603中无缝地布置得到的ne比特集合,使得当处理前进到下一列702时,能够以上述方式无缝地读取它们。在编码处理的第一N/min(N,ne)个步骤中,与将内核信息块从输入605加载到具有ne比特宽度的极化编码器内核102同时执行该处理。在N<ne的示例中,零值比特在内核信息块105被提供给提出的极化编码器内核102之前附加到内核信息块105的端部,目的是将其长度增加到ne。随后,为了增加比特索引j,在各步骤中,提出的极化编码器内核102的比特输入提供ne比特。更具体地,在加载过程的具有索引t∈[0,N/min(N,ne)-1]的步骤中,在到提出的极化编码器内核102的输入中提供给位置l∈[0,ne-1]的比特是在编码处理的第一N/min(N,ne)个步骤中,如图4所示,将这些比特直接提供给数据路径601的对应比特输入1002。在编码处理中的第一N/min(N,ne)个步骤之后,从存储器块602、603中的一个或另一个加载到数据路径601的输入1002。在编码过程的具有索引t∈[N/min(N,ne),的步骤中,根据下式从相应存储器块的深度dl、RAM rl和宽度wl坐标读取提供给到数据路径601的输入1002中的位置l∈[0,ne-1]的比特:
wl=l.
这里,可以观察到,读取数据路径输入比特1002的宽度坐标wl=l独立于步骤索引t,因此可以根据按宽度的操作进行硬接线。作为对照,深度dl和RAM rl坐标必须由控制器604控制,作为步骤索引t的函数。注意,深度坐标dl独立于比特索引l,从而仅要求控制器604提供由存储器块602、603中的所有RAM共享的单个读取地址。但是,RAM坐标rl依赖于比特索引l,从而要求控制器604为ne比特中的每一个生成单独的控制信号。
在极化编码过程的具有索引的步骤中,根据下式向相应存储器块602、603的深度dl、RAM rl和宽度wl坐标写入在数据路径601的输出1003中由位置l∈[0,ne-1]提供的比特:
这里,可以观察到写入数据路径输出比特1003的RAM坐标rl=mod(l,2Se)独立于步骤索引t,因此可以根据按RAM的操作进行硬接线。作为对照,深度dl和宽度wl坐标必须由控制器604控制,作为步骤索引t的函数。注意,深度坐标dl独立于比特索引l,从而仅要求控制器604提供由存储器块602、603中的所有RAM共享的单个写入地址。但是,宽度坐标wl依赖于比特索引l,从而要求控制器604为ne比特中的每一个生成单独的控制信号。如图7所示,在极化编码处理完成之后,使用进一步的N/min(N,ne)个步骤,以便从适当的存储器块602、603读取编码比特,并将它们提供给具有ne比特宽度的极化编码器内核102的输出606。总的来说,这些比特形成内核编码块 其中,在N<ne的示例中,可以从极化编码器内核102的输出606的端部去除零值比特。计数器t在输出过程开始时被复位为逻辑“0”值,并在各连续步骤中向N/min(N,ne)-1递增。
在输出处理的第t个步骤期间,根据下式从相应存储器块602、603的深度dl、RAM rl和宽度wl坐标读取在提出的极化编码器内核102的输出606中提供给位置l∈[0,ne-1]的比特:
其中,α=2mod(-log2(max(N,ne)),se)。这里,可以观察到,作为步骤索引t的函数,深度dl、RAM rl和宽度wl坐标必须由控制器604控制。注意,深度坐标dl独立于比特索引l,从而只要求控制器604提供由存储器块602、603中的所有RAM共享的单个写入地址。但是,RAMrl和宽度wl坐标依赖于比特索引l,从而要求控制器604对于ne个比特中的每一个产生单独的控制信号。
上述控制存储器读取和存储器写入操作的方法导致存储器块602、603内的比特的特征布置。图10至13提供了在极化码图中的各列702的处理之前和之后的该特征布置的各种示例。各图示出极化图中的两个相邻列702之间的连接的索引j∈[0,N-1],该极化图提供存储在存储器块602、603中的各RAM、深度和宽度坐标处的比特。
现在参考图10,根据本发明的示例,示出在的示例中,特别是在N=16、se=1和ne=4的示例中通过使用包含多个地址的深度的比特索引到存储器块602、603中的位置的示例映射。这里,各存储器块602、603包括2Se=2个RAM,各RAM具有地址的深度和ne=4比特的宽度。总共需要个步骤以完成处理,并且还需要N/min(N,ne)=4个步骤以输出编码比特。这里,可以看到,如上所述,各读取操作是按宽度执行的,各写入操作是按RAM执行的。在图10的特定示例中,极化码图中的级数n=log2(N)可被数据路径se中的级数整除。因此,输出处理可以以按宽度的方式从相应的存储器块602、603读取编码比特。更具体地,可以观察到在本例中简化为wl=l。
现在参考图11,根据本发明的示例说明了在N=32、se=2和ne=8的示例中比特索引到存储器块602、603中的位置的示例性映射。这里,各存储器块602、603包括2Se=4个RAM,每个RAM具有地址的深度和ne=8比特的宽度。总共需要个步骤以完成处理,并且还需要N/min(N,ne)=4个步骤以输出编码比特。图11对应于在图5中提供的示例。在该例子中,N=2Sene并且因此各存储器块602、603仅使用单个地址的深度。在该特定的例子中,存储器块比特的按宽度读取和按RAM写入对应于将图11的连续矩阵中的索引从行第一、列第二排序重新排序为列第一、行第二排序。这里,可以观察到,图5的各列中的第一子图的突出显示对应于由数据路径601分别在三列702中的每一列中处理的ne比特的第一集合,即分别为[0 1 23 4 5 6 7]、[0 4 8 12 16 20 24 28]和[0 16 1 17 2 18 3 19]。这说明了比特的按RAM写入如何无缝地使得比特的按宽度读取能够自然地为数据路径601的下一操作提供比特的正确组合。注意,由于在这个例子中n不能被se整除,输出过程不能以纯按宽度的方式完成。
现在参考图12,根据本发明的示例,示出在N<2Sene的示例中,特别是在N=16、se=2和ne=8的示例中比特索引到存储器块602、603中的位置的示例性映射。这里,各存储器块602、603只需要单个地址的深度,但是内核块长度N不足以填满存储器块602、603的所有RAM中的该单个地址的容量。因此,各存储器块602、603包括2Se=4个RAM,每个RAM具有地址的深度和ne=8比特的宽度。总共需要个步骤以完成处理,并且还需要N/min(N,ne)=2个步骤以输出编码比特。在本示例中,如所示的那样,按宽度读取和按RAM写入操作自然导致存储器块602、603内的比特的对角布置。
现在参考图13,根据本发明的示例示出在N=4、se=2和ne=8的示例中比特索引到存储器块602、603中的位置的示例映射。这里,各存储器块602、603包括2Se=4个RAM,每个RAM具有地址的深度和ne=8比特的宽度。总共需要个步骤以完成处理,并且还需要N/min(N,ne)=1个步骤以输出编码比特。
现在参考图14,示出根据本发明的一些示例性实施例的可用于实现极化编码的典型计算系统1400。这种类型的计算系统可用于无线通信单元中。本领域技术人员还将认识到如何通过使用其他计算机系统或架构实现本发明。计算系统1400可以表示例如台式机、膝上型计算机或笔记本计算机、手持计算设备(PDA、蜂窝电话、掌上电脑等)、主机、服务器、客户机或对于给定的应用程序或环境可能需要或适合的任何其他类型的专用或通用计算设备。计算系统1400可以包括一个或多个处理器,诸如处理器1404。可以通过使用诸如例如微处理器、微控制器或其他控制逻辑的通用或专用处理引擎实现处理器1404。在本示例中,处理器1404连接到总线1402或其它通信介质。在一些示例中,计算系统1400可以是包括存储在其中的用于实现极化编码的可执行代码的非暂时性有形计算机程序产品。
计算系统1400还可以包括用于存储信息和要由处理器1404执行的指令的主存储器1408,诸如随机存取存储器(RAM)或其他动态存储器。主存储器1408还可以被用于在由处理器1404执行的指令的执行期间存储临时变量或其他中间信息。计算系统1400可以类似地包括用于存储静态信息和用于处理器1404的指令的耦合到总线1402的只读存储器(ROM)或其他静态存储设备。
计算系统1400还可以包括信息存储系统1410,该信息存储系统1410可以包括例如介质驱动器1412和可移除存储接口1420。介质驱动器1412可以包括支持固定或可移除存储介质的驱动器或其它机制,诸如硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、紧致盘(CD)或数字视频驱动器(DVD)读写驱动器(R或RW)或其它可移除或固定介质驱动器。存储介质1418可以包括例如硬盘、软盘、磁带、光盘、CD或DVD或者由介质驱动器1412读取和写入的其他固定或可移除介质。如这些示例所示,存储介质1418可以包括具有存储在其中的特定计算机软件或数据的计算机可读存储介质。
在替代性实施例中,信息存储系统1410可以包括用于允许将计算机程序或其他指令或数据加载到计算系统1400中的其他类似组件。这些组件可以包括例如可移除存储单元1422和接口1420,诸如程序盒和盒接口、可移除存储器(例如,快擦写存储器或其他可移除存储器模块)和存储器插槽以及允许软件和数据从可移除存储单元1418传送到计算系统1400的其他可移除存储单元1422和接口1420。
计算系统1400还可以包括通信接口1424。通信接口1424可以被用于允许在计算系统1400和外部设备之间传送软件和数据。通信接口1424的示例可以包括调制解调器、网络接口(诸如以太网或其他NIC卡)、通信端口(诸如例如通用串行总线(USB)端口)、PCMCIA插槽和卡等。通过通信接口1424传送的软件和数据为信号的形式,这些信号可以是能够由通信接口1424接收的电子、电磁、光或其他信号。这些信号经由信道1428提供给通信接口1424。该信道1428可以承载信号,并且可以使用无线介质、电线或电缆、光纤或其他通信介质来实现。信道的一些示例包括电话线、蜂窝电话链路、RF链路、网络接口、本地或广域网以及其他通信信道。
在本文件中,术语“计算机程序产品”和“计算机可读介质”等通常可用于指诸如例如存储器1408、存储设备1418或存储单元1422的介质。这些和其他形式的计算机可读介质可以存储供处理器1404使用的一个或多个指令,以导致处理器执行指定的操作。通常被称为“计算机程序代码”(可以以计算机程序或其他分组的形式分组)的这种指令在被执行时使得计算系统1400能够执行本发明的实施例的功能。注意,代码可能直接导致处理器执行指定操作、编译为执行指定操作和/或与其他软件、硬件和/或固件要素(例如,用于执行标准功能的库)组合以执行指定操作。
在通过使用软件实现要素的实施例中,软件可以存储在计算机可读介质中,并且通过使用例如可移除存储驱动器1422、驱动器1412或通信接口1424被加载到计算系统1400中。控制逻辑(在本示例中,为软件指令或计算机程序代码)当由处理器1404执行时导致处理器1404执行这里所述的本发明的功能。
在上述说明书中,参考本发明的实施例的具体示例描述了本发明。但是,显而易见的是,在不脱离在所附权利要求中阐述的本发明的范围的情况下,可以在其中进行各种修改和改变,并且权利要求不限于上述特定示例。
这里讨论的连接可以是适合于经由中间设备从和向各个节点、单元或设备传送信号的任何类型的连接。因此,除非暗示或另有说明,否则连接可以例如是直接连接或间接连接。这些连接可以参照单个连接、多个连接、单向连接或双向连接来说明或描述。但是,不同的实施例可以改变连接的实现。例如,可以使用单独的单向连接而不是双向连接,反之亦然。并且,多个连接可以替换为串行或以时间多路复用方式传送多个信号的单个连接。类似地,承载多个信号的单个连接可以被分离成承载这些信号的子集的各种不同连接。因此,存在许多用于传送信号的选项。
本领域技术人员将认识到,这里描述的架构仅仅是示例性的,并且事实上可以实现实现相同功能的许多其他架构。
实现相同功能的组件的任何布置是有效“相关联”的,使得实现所需的功能。因此,这里为实现特定功能而组合的任何两个组件可以被视为彼此“相关联”,使得实现所需功能,而不考虑架构或中间组件。类似地,这样相关联的任何两个组件也可以被视为彼此“可操作地连接”或“可操作地耦合”,以实现所需的功能。
并且,本领域技术人员将认识到上述操作之间的边界仅仅是说明性的。多个操作可以组合成单个操作,单个操作可以分布在附加操作中,并且,可以在时间上至少部分重叠地执行操作。并且,替代性实施例可以包括特定操作的多个实例,并且操作顺序可以在各种其它实施例中改变。
这里参考集成电路器件描述本发明,该集成电路器件包括例如被配置为执行极化编码器的功能的微处理器。但是,应当理解,本发明不限于这种集成电路器件,并且可以同样地应用于包括任何替代类型的操作功能的集成电路器件。包含替代性类型的操作功能的这种集成电路器件的示例可以仅作为示例包括应用特定集成电路(ASIC)器件、现场可编程门阵列(FPGA)器件或与其他组件集成等。并且,由于本发明的示出实施例在大部分情况下可以使用本领域技术人员已知的电子元件和电路来实现,因此,为了理解和认识本发明的基本概念,并且为了不使本发明的教导混淆或偏离本发明的教导,没有以比认为必要的更大的程度解释细节。替代地,电路和/或组件示例可以实现为以适当方式彼此互连的任意数量的单独的集成电路或单独的器件。
并且,例如,示例或其部分可实现为物理电路或可转换为物理电路的逻辑表示的软或代码表示,诸如以任何适当类型的硬件描述语言。
并且,本发明不限于在非可编程硬件中实现的物理设备或单元,而是还可应用于能够通过按照适当的程序代码操作执行所需极化编码的可编程设备或单元,诸如在本应用中被统称为“计算机系统”的小型计算机、个人计算机、记事本、个人数字助理,电子游戏、汽车和其他嵌入式系统、蜂窝电话和各种其他无线设备。
但是,也可以进行其他修改、变更和替代。因此,说明书和附图应被视为说明性的而不是限制性的。
在权利要求书中,位于括号内的任何附图标记不应解释为限制权利要求。词语“包含”不排除存在权利要求所列以外的其他要素或步骤。并且,这里使用的术语“一个”或“一种”被定义为一个或多于一个。并且,在权利要求中使用诸如“至少一个”和“一个或多个”的导言短语不应被解释为暗示由不定冠词“一个”或“一种”限定的另一权利要求要素将包含该引入的权利要求要素的任何特定权利要求限于包含仅一个这种要素的发明,即使当同一权利要求包括导言短语“一个或多个”或“至少一个”和诸如“一个”或“一种”的不定冠词时。对于使用定冠词,同样成立。除非另有说明,否则诸如“第一”和“第二”的术语用于任意区分此类术语所描述的要素。因此,这些术语不一定要表示这些要素的时间或其他优先级。仅仅某些措施在相互不同的权利要求中被记载的事实不指示这些措施的组合不是有利的。
参考文献
[1]E.Arikan,“Channel polarization:A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels,”IEEETransactions on Information Theory,vol.55,no.7,pp.3051-3073,July 2009.
[2]K.Niu and K.Chen,“Crc-aided decoding of polar codes,”IEEECommunications Letters,vol.16,no.10,pp.1668-1671,October 2012.
[3]Huawei,HiSilicon,“Polar code construction for NR,”in 3GPP TSG RANWG1 Meeting#86bis,Lisbon,Portugal,October 2016,R1-1608862.
[4]“Evaluation of channel coding schemes for control channel,”in 3GPPTSG RAN WG1Meeting#86bis,Lisbon,Portugal,October 2016,R1-1608863.
[5]CATT,“Polar codes design for eMBB control channel,”in 3GPP TSG RANWG1 AH NR Meeting,Spokane,USA,January 2017,R1-1700242.
[6]ZTE,ZTE Microelectronics,“Rate matching of polar codes for eMBB,”in 3GPP TSG RAN WG1 Meeting#88,Athens,Greece,February 2017,R1-1701602.
[7]H.Yoo and l.C.Park,“Partially parallel encoder architecture forlong polar codes,”IEEE Transactions on Circuits and Systems lI:ExpressBriefs,vol.62,no.3,pp.306-310,March2015.
[8]G.Sarkis,I.Tal,P.Giard,A.Vardy,C.Thibeault,and W.J.Gross,“Flexibleand low-complexity encoding and decoding of systematic polar codes,”IEEETransactions on Communications,vol.64,no.7,pp.2732-2745,July 2016.
Claims (37)
1.一种极化编码器内核(102),被配置为:
从内核块大小为N的内核信息块(105)接收一个或多个比特;以及
从具有与内核块大小N匹配的块大小的内核编码块(106)输出一个或多个比特;
其中,极化编码器内核(102)的特征在于,所述极化编码器内核(102)包括将极化码图分解为多个列(702),并且其中每个列进一步分解为一个或多个极化码子图(701),并且所述极化编码器内核(102)被配置为一次执行与一个极化码子图(701)相关联的处理。
2.根据权利要求1所述的编码器,其中,极化编码器内核(102)包括数据路径(601)、存储器块(602、603)和控制器(604),其中,控制器(604)被配置为在执行与每个极化码子图相关联的处理时从存储器的第一存储器块(602)或从到极化编码器内核(102)的比特输入(605)读取ne个比特,使用数据路径(601)处理所述ne个比特,并将得到的ne个比特写入第二存储器块(603)。
3.根据权利要求1或2所述的编码器,其中,极化编码器内核(102)被配置为在按照从左到右的顺序前进到极化码图的下一列之前,执行与每个连续列(702)内的所有极化码子图(701)相关联的处理。
4.根据权利要求3所述的编码器,其中,通过从第一存储器块(602)读取并写入第二存储器块(603)完成与各列相关联的处理,其中第一存储器块(602)和第二存储器块(603)的角色交替用于连续列。
5.根据前述权利要求中任一项所述的编码器,其中,每个列中的一个或多个子图被配置为跨越列的宽度。
6.根据前述权利要求2~5中的任一项所述的编码器,其中,每个列中的一个或多个子图由数据路径(601)一次一个地处理,分布在相应数量的连续处理步骤上。
7.根据权利要求6所述的编码器,其中,每个列中的分解子图的数量取决于数据路径的块大小ne,其中,每个子图的块大小等于数据路径的块大小ne,使得数据路径(601)能够在单个步骤中处理子图。
8.根据权利要求7所述的编码器,其中,每个列中的分解子图的最大数量是max(N/ne,1),并且当N<ne时,至少一个零值比特被附加到内核信息块的端部以将其长度增加到ne。
9.根据权利要求8所述的编码器,其中,随后从内核编码块的端部去除至少一个零值比特,以使其长度返回到N。
10.根据前述权利要求中任一项所述的编码器,其中,极化码图由被分组成多个(C)列的多个(n=log2(N))级(207)组成,其中,每个列(702)包括多个连续级(207)。
11.根据权利要求10所述的编码器,其中,“n”个级(207)使用对于所有列满足sc≤se的任何组合分布在(C)列(702)中,c∈[0,C-1],其中,se规定由数据路径(601)支持的级(207)的最大数量。
12.根据权利要求11所述的编码器,其中,对于除最右边的列以外的所有列,列的数量sc=se,并且其中所有剩余的级放在最右边的列中。
13.根据前述权利要求2~12中任一项所述的编码器,其中,数据路径(601)和存储器(602、603)具有相同的比特宽度。
14.根据权利要求13所述的编码器,其中,极化编码器内核(600)的输入(605)的比特宽度和输出(606)的比特宽度独立于彼此、数据路径(601)和存储器(602、603)中的至少一个被选择。
16.根据权利要求14或15所述的编码器,其中,数据路径(601)包括被配置为沿着具有包括se个XOR门(1001)的关键长度的路径从数据路径(601)的左边缘(1002)通过se个数据路径级向右边缘(1003)传播比特的总共sene/2个XOR门(1001)。
17.根据权利要求16所述的编码器,其中,当执行与级数sc小于数据路径级数se的列相关联的处理时,数据路径(601)中的最右边的多个级被禁用。
18.根据前述权利要求2~17中的任一项所述的编码器,其中,通过在(i)从第一存储器块(602)读取和写入第二存储器块(603)和(ii)从第二存储器块(603)读取和写入第一存储器块(602)之间交替,执行与各连续列相关联的处理。
19.根据权利要求18所述的编码器,其中,数据路径(601)被配置为使得在与第一列相关联的处理期间写入第一存储器块(602)之后,在与紧靠第一列右侧的第二列相关联的后续处理期间从该相同存储器块(602)读取。
20.根据权利要求18所述的编码器,其中,通过将第一存储器块(602)的读取数据端口与第二存储器块(603)的相应读取数据端口多路复用(609),执行极化编码器对每个列的处理。
21.根据权利要求18所述的编码器,其中,控制器提供单独的写入启用信号(608),以控制由数据路径提供的ne个比特中的每一个是单独写入第一存储器块(602)还是第二存储器块(603)。
22.根据权利要求21所述的编码器,其中,用于第一存储器块(602)的单个写启用信号(608)与第二存储器块(603)共享,但在执行与连续列相关联的处理时被交替屏蔽。
23.根据前述权利要求中任一项所述的编码器,其中,极化编码器内核(102)耦合到被配置为进行以下操作的信息块调节电路(101):
接收要被编码的块大小为K的数据信息块(104)的一个或多个比特;
生成冗余比特,并将冗余比特交错到极化解码器已知的位置中;以及
从块大小为N的内核信息块(105)向极化编码器内核(102)输出一个或多个比特。
25.根据前述权利要求中任一项所述的编码器,其中,连续的内核信息块具有能够随块而变化的内核块大小N。
26.根据前述权利要求中任一项所述的编码器,其中,极化编码器内核(102)耦合到被配置为从由极化编码器内核(102)输出的内核编码块(106)生成编码比特的编码块调节电路(103)。
27.根据权利要求26所述的编码器,其中,编码块调节电路(103)被配置为使用打孔以去除内核编码块(106)中的“N”个比特中的多个比特。
28.根据权利要求26所述的编码器,其中,编码块调节电路(103)被配置为使用缩短以去除在内核编码块(106)中保证具有逻辑值“0”的“N”个比特中的多个比特。
29.根据权利要求26所述的编码器,其中,编码块调节电路(103)被配置为使用重复以重复内核编码块(106)中的“N”个比特中的多个比特。
31.根据权利要求23或26所述的编码器,其中,信息块调节电路(101)和编码块调节电路(103)中的至少一个被配置为执行交错。
32.一种通信单元,包括极化编码器内核(102),该极化编码器内核(102)被配置为:
从内核块大小为N的内核信息块(105)接收一个或多个比特;以及
从具有与内核块大小N匹配的块大小的内核编码块(106)输出一个或多个比特;
其中,极化编码器内核(102)的特征在于,所述极化编码器内核(102)包括将极化码图分解为多个列(702),并且其中每个列进一步分解为一个或多个极化码子图(701),并且所述极化编码器内核(102)被配置为一次一个极化码子图(701)地处理编码比特。
33.一种用于无线通信单元的集成电路,所述集成电路包括被配置为进行以下操作的极化编码器内核(102):
从内核块大小为N的内核信息块(105)接收一个或多个比特;以及
从具有与内核块大小N匹配的块大小的内核编码块(106)输出一个或多个比特;
其中,极化编码器内核(102)的特征在于,所述极化编码器内核(102)包括将极化码图分解为多个列(702),并且其中,每个列进一步分解为一个或多个极化码子图(701),并且所述极化编码器内核被配置为一次一个极化码子图(701)地处理编码比特。
34.一种通信单元中的极化编码方法,所述方法的特征在于,在极化编码器内核(102)处:
将极化码图分解为多个列(702),其中,每个列进一步分解为一个或多个极化码子图(701);
从内核块大小为N的内核信息块(105)接收一个或多个比特;
一次一个极化码子图(701)地处理编码比特;以及
从具有与内核块大小N匹配的块大小的内核编码块(106)输出一个或多个比特。
35.根据权利要求34所述的方法,还包括之前的以下操作:
接收要被编码的块大小为K的数据信息块(104)的一个或多个比特;
生成冗余比特;以及
将冗余比特交错到极化解码器已知的位置中。
36.根据权利要求34或35所述的方法,还包括从内核编码块(106)生成编码比特。
37.一种非暂时性有形计算机程序产品,包括存储在其中的用于通信单元中的极化编码的可执行代码,其中,所述代码的特征在于,当所述代码在极化编码器内核(102)处被执行时可操作用于:
将极化码图分解为多个列(702),其中,每个列进一步分解为一个或多个极化码子图(701);
从内核块大小为N的内核信息块(105)接收一个或多个比特;
一次一个极化码子图(701)地处理编码比特;以及
从具有与内核块大小N匹配的块大小的内核编码块(106)输出一个或多个比特。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1709502.7A GB2563418B (en) | 2017-06-15 | 2017-06-15 | Polar encoder, communication unit, integrated circuit and method therefor |
GB1709502.7 | 2017-06-15 | ||
PCT/EP2018/065532 WO2018229064A1 (en) | 2017-06-15 | 2018-06-12 | Polar encoder, communication unit, integrated circuit and method therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110741559A true CN110741559A (zh) | 2020-01-31 |
CN110741559B CN110741559B (zh) | 2023-08-01 |
Family
ID=59462229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880039392.9A Active CN110741559B (zh) | 2017-06-15 | 2018-06-12 | 极化编码器、通信单元、集成电路及其方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11290129B2 (zh) |
EP (1) | EP3676961B1 (zh) |
CN (1) | CN110741559B (zh) |
GB (1) | GB2563418B (zh) |
WO (1) | WO2018229064A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113541698B (zh) * | 2020-04-22 | 2022-07-12 | 华为技术有限公司 | 编码、译码方法、装置及设备 |
CN116189745B (zh) * | 2023-04-26 | 2023-09-15 | 长鑫存储技术有限公司 | 存储器和命令序列处理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117344A1 (en) * | 2011-11-08 | 2013-05-09 | Warren GROSS | Methods and Systems for Decoding Polar Codes |
US8577951B1 (en) * | 2010-08-19 | 2013-11-05 | Altera Corporation | Matrix operations in an integrated circuit device |
US20150077277A1 (en) * | 2013-09-16 | 2015-03-19 | Lsi Corporation | Reduced polar codes |
US20160013810A1 (en) * | 2014-07-10 | 2016-01-14 | The Royal Institution For The Advancement Of Learning / Mcgill University | Flexible polar encoders and decoders |
WO2016112285A2 (en) * | 2015-01-09 | 2016-07-14 | Qualcomm Incorporated | Adaptive channel coding using polarization |
CN105900365A (zh) * | 2014-03-31 | 2016-08-24 | 华为技术有限公司 | 极化码的混合自动重传方法及装置、无线通信装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120054571A (ko) | 2012-04-09 | 2012-05-30 | 전북대학교산학협력단 | 래딕스 4 기반의 폴라코드를 이용한 부호화방법 |
US20150333775A1 (en) * | 2014-05-15 | 2015-11-19 | Broadcom Corporation | Frozen-Bit Selection for a Polar Code Decoder |
EP3247042B1 (en) * | 2016-05-13 | 2020-09-30 | Mediatek Inc. | Bit puncturing for polar codes |
US10567011B2 (en) * | 2016-06-17 | 2020-02-18 | Huawei Technologies Co., Ltd. | Systems and methods for piece-wise rate matching when using polar codes |
US10361717B2 (en) * | 2016-06-17 | 2019-07-23 | Huawei Technologies Co., Ltd. | Apparatus and methods for error detection coding |
US10291264B2 (en) * | 2016-06-17 | 2019-05-14 | Huawei Technologies Co., Ltd. | Systems and methods for rate matching when using general polar codes |
US10361728B2 (en) * | 2016-06-17 | 2019-07-23 | Huawei Technologies Co., Ltd. | Multiple-symbol combination based decoding for general polar codes |
US10579452B2 (en) * | 2016-06-17 | 2020-03-03 | Huawei Technologies Co., Ltd. | Systems and methods for rate matching via a heterogeneous kernel when using general polar codes |
US10312946B2 (en) * | 2017-02-06 | 2019-06-04 | Mitsubishi Electric Research Laboratories, Inc. | Soft-output decoding of codewords encoded with polar code |
-
2017
- 2017-06-15 GB GB1709502.7A patent/GB2563418B/en active Active
-
2018
- 2018-06-12 EP EP18730356.5A patent/EP3676961B1/en active Active
- 2018-06-12 WO PCT/EP2018/065532 patent/WO2018229064A1/en unknown
- 2018-06-12 CN CN201880039392.9A patent/CN110741559B/zh active Active
- 2018-06-12 US US16/622,894 patent/US11290129B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8577951B1 (en) * | 2010-08-19 | 2013-11-05 | Altera Corporation | Matrix operations in an integrated circuit device |
US20130117344A1 (en) * | 2011-11-08 | 2013-05-09 | Warren GROSS | Methods and Systems for Decoding Polar Codes |
US20150077277A1 (en) * | 2013-09-16 | 2015-03-19 | Lsi Corporation | Reduced polar codes |
CN105900365A (zh) * | 2014-03-31 | 2016-08-24 | 华为技术有限公司 | 极化码的混合自动重传方法及装置、无线通信装置 |
US20160013810A1 (en) * | 2014-07-10 | 2016-01-14 | The Royal Institution For The Advancement Of Learning / Mcgill University | Flexible polar encoders and decoders |
WO2016112285A2 (en) * | 2015-01-09 | 2016-07-14 | Qualcomm Incorporated | Adaptive channel coding using polarization |
Also Published As
Publication number | Publication date |
---|---|
EP3676961A1 (en) | 2020-07-08 |
CN110741559B (zh) | 2023-08-01 |
EP3676961C0 (en) | 2024-01-24 |
GB201709502D0 (en) | 2017-08-02 |
GB2563418B (en) | 2020-04-22 |
EP3676961B1 (en) | 2024-01-24 |
WO2018229064A1 (en) | 2018-12-20 |
US20200220559A1 (en) | 2020-07-09 |
GB2563418A (en) | 2018-12-19 |
US11290129B2 (en) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109379086B (zh) | 低复杂度的码率兼容的5g ldpc编码方法和编码器 | |
CN110741557B (zh) | 通过合并极化码图的级的低延迟极化编码和解码 | |
JP6815537B2 (ja) | 情報処理方法、機器、及び通信装置 | |
CN109327225B9 (zh) | 信息处理的方法、装置和通信设备 | |
CN110741558B (zh) | 具有逻辑三维存储器的极化编码器、通信单元、集成电路及其方法 | |
KR102386191B1 (ko) | 폴라 코드용의 블록 단위의 병렬 동결 비트 생성 | |
CN118740170A (zh) | 信息处理的方法和通信装置 | |
CN109150383B (zh) | 一种Polar码的编码方法及装置 | |
CN109802687A (zh) | 一种基于fpga的qc-ldpc码的高速码率兼容ldpc编码器 | |
CN101371448B (zh) | 快速编码和解码方法及相关设备 | |
CN110741559A (zh) | 极化编码器、通信单元、集成电路及其方法 | |
CN114303320A (zh) | 使用逆crc生成器多项式进行解码的循环冗余校验crc | |
CN110022158B (zh) | 一种译码方法及装置 | |
CN114342265A (zh) | 使用存储在查找表lut中的生成器矩阵的部分并行循环冗余校验crc计算 | |
CN109391365B (zh) | 一种交织方法及装置 | |
Jain et al. | FPGA Implementation of Rate Matching in 5G NR PDSCH | |
Hoyoung | Matthew Brejza, Southampton (GB) | |
CN118575419A (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 |