CN110034843B - Channel coding method and coding device - Google Patents
Channel coding method and coding device Download PDFInfo
- Publication number
- CN110034843B CN110034843B CN201810031522.6A CN201810031522A CN110034843B CN 110034843 B CN110034843 B CN 110034843B CN 201810031522 A CN201810031522 A CN 201810031522A CN 110034843 B CN110034843 B CN 110034843B
- Authority
- CN
- China
- Prior art keywords
- information bits
- bit sequence
- coding
- coded
- index set
- 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
- 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
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2903—Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent 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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
- H04L1/0013—Rate matching, e.g. puncturing or repetition of code symbols
-
- 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
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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
- 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
Abstract
The application provides a channel coding method, a coding device and a system, which pass through X1 N=D1 NFNOutput bit sequence X1 NWherein, the D is1 NAccording to the position of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidIs a bit sequence obtained from K information bits to be encoded, FNIs log2N matrices F2Kronecker product of (a). In the above technical solution, especially in the design, it is considered that the positions of the K information bits to be coded in the code pattern with the mother code length N include: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1, applying the above designed information bit position to the encoding process reduces the bit error rate, greatly improves the bit error rate performance of the system, and further improves the error report rate performance during decoding.
Description
Technical Field
The present invention relates to the field of coding and decoding, and in particular, to a channel coding method and a channel coding device.
Background
The communication system usually adopts channel coding to improve the reliability of data transmission and ensure the quality of communication. Polar code is a coding mode which can achieve shannon capacity and has low coding complexity. Polar code is a linear block code comprising information bits and freeze bits. The generating matrix of the Polar code is F at presentNPolar coding process is X1 N=u1 NFNWhereinIs a binary row vector with length N; fNIs an N × N matrix, andwhere FNIs defined as log2N matrices F2The Kronecker product of Kronecker,
after the sending end encodes the information bits by Polar code, the receiving end usually decodes by using Serial Cancellation (SC) decoding or Serial Cancellation List (SCL) decoding algorithm. However, the False Alarm Rate (FAR) of the conventional Polar code is relatively high in the decoding process.
Disclosure of Invention
The application provides a channel coding method and a coding device, which can improve the error correction performance of a polar code under high-order modulation.
In a first aspect, a design of the present application provides a channel coding method, including:
first, the transmitting end obtains a bit sequence X 1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the code generating matrix of the Polar code is log2N matrices F2The Kronecker product of Kronecker,
the encoding method comprises the following steps that K is larger than or equal to 1 and is an integer, N is the length of a mother code, N is the integer power of m, and m is a positive integer larger than 1, wherein the K information bits to be encoded comprise, at the position of an encoding diagram with the mother code length of N: the row position index set H of the information bits in the coding graph and the row position index set H of the information bits in the coding graphLayer position index set M, H is more than or equal to 0 and less than or equal to N, 0<M≤logmN-1;
Secondly, the transmitting end transmits the bit sequence X1 N。
The channel coding method provided by the above embodiment passes through the X1 N=u1 N G`NObtaining a bit sequence X1 NAnd output is performed. Compared with the existing Polar code encoding system, the output bit sequence X1 NIs to mix u1 NBy means of a new matrix G ″NBit sequence obtained by encoding, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the position of K information bits to be coded in a code pattern with a mother code length of N not only considers the row index set position of the code pattern where the information bits are located, but also needs to consider the layer index set position of the information bits in the code pattern, especially considers the distribution design of the layer index set, and when the design scheme is applied to the coding process, a large number of simulation results prove that the performance of the coding side of the system is improved by reducing the bit error rate of the coding system, and further, whether to stop in advance or not is judged according to Cyclic Redundancy Check (CRC) in the decoding process by the coding method, so that the performance during decoding is not further improved, and meanwhile, the FAR of the decoding side is greatly reduced.
For the possible channel coding design described above, the new matrixWherein, the first and the second end of the pipe are connected with each other,n=log2 N。
further, for the above possible channel coding design, the transmitting end obtains the bit sequenceThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
Further, in the above various possible channel coding designs, the layer position index set M includes: from layer 1 to (log)mN-1) any one of the layers.
Further, the layer position index set M is determined according to the row position index set H.
The above-designed determination method for the layer position index set M of the coding map is particularly important in determining the position of the information bit in the coding map, and the position of the information bit in the coding map is determined according to the determination method, further, the sending end determines the input bit sequence according to the position of the information bit in the coding map, especially the layer position index set of the information bit to be coded in the coding map, and then obtains the coded bit sequence by coding through the new matrix, and the bit error rate of the coding method is effectively reduced, and the performance of the coding and coding system is effectively improved.
In a second aspect, the present disclosure provides a coding apparatus, including:
the input interface circuit is used for acquiring K information bits to be coded, wherein K is more than or equal to 1 and is an integer;
logic circuit for generating a bit sequence X1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the code generating matrix of the Polar code is log2N matrices F2The Kronecker product of Kronecker,
the encoding method comprises the following steps that K is larger than or equal to 1 and is an integer, N is the length of a mother code, N is the integer power of m, and m is a positive integer larger than 1, wherein the K information bits to be encoded comprise, at the position of an encoding diagram with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1;
An output interface circuit for transmitting the bit sequence X1 N。
The encoding apparatus provided by the above embodiment passes through the X1 N=u1 N G`NObtaining a bit sequence X1 NAnd output is performed. Compared with the existing Polar code coding system, the output bit sequence X 1N is a radical of1 NBy means of a new matrix GNBit sequence obtained by encoding, the new matrix G ″)NGenerating a matrix according to the encoding of Polar codes and a matrix generated by K information bits to be encoded at the position of an encoding graph with the length of a mother code of N; the positions of the K information bits to be encoded in the code pattern with the mother code length of N not only take into account the position of the row index set of the code pattern in which the information bits are located, but also need to take into account the position of the layer index set of the code pattern, especially the distribution design of the layer index set, and when the above design scheme is applied to the encoding process, a large number of simulation results prove that the performance of the encoding side of the system is improved by reducing the bit error rate of the encoding system, and further, the encoding method judges whether to stop in advance or not according to Cyclic Redundancy Check (CRC) in the decoding process, so that the performance during decoding is not further improved, and the FAR at the decoding side is also greatly reduced.
According to the second aspect, the logic circuit provided in the design scheme provided by the application is further used for generating the new matrixWherein, the first and the second end of the pipe are connected with each other,n=log2 N。
according to the second aspect, the logic circuit is further configured to obtain a bit sequence The describedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, wherein the K information bits to be coded are placed at positions corresponding to a 0-th row position index set H in the coding graph.
In accordance with various designs of the second aspect, the set of layer position indices M includes: from layer 1 to (log)mN-1) any one of the layers.
In accordance with various designs of the second aspect described above, the set of layer position indices M is obtained from the set of row position indices H.
The above-designed encoding apparatus is particularly important for determining the position of the information bit in the encoding map in the determination manner of the layer position index set M of the encoding map, and determines the position of the information bit in the encoding map according to the determination manner, further, the transmitting end determines the input bit sequence according to the position of the information bit in the encoding map, especially the layer position index set of the information bit to be encoded in the encoding map, and further performs encoding through the new matrix to obtain the encoded bit sequence, and the bit error rate of the encoding apparatus is effectively reduced, thereby effectively improving the performance of the encoding system.
The present application also provides an encoding apparatus, the apparatus comprising:
A processor for generating a bit sequence X1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the encoding generating matrix of the Polar code is log2N matrices F2The Kronecker product of Kronecker,
the encoding method comprises the following steps that K is larger than or equal to 1 and is an integer, N is the length of a mother code, N is the integer power of m, and m is a positive integer larger than 1, wherein the K information bits to be encoded comprise, at the position of an encoding diagram with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1。
The encoding apparatus provided by the above embodiment passes through the X1 N=u1 N G`NObtaining a bit sequence X1 NAnd outputs are performed. Compared with the existing Polar code coding system, the output bit sequence X1 NIs to mix u1 NBy means of a new matrix G ″NThe new matrix G' N is a matrix generated according to the coding generation matrix of Polar codes and the positions of K information bits to be coded in the coding graph with the length of the mother code of N; the position of K information bits to be coded in a code pattern with a mother code length of N not only considers the row index set position of the code pattern where the information bits are located, but also needs to consider the layer index set position of the information bits in the code pattern, especially the distribution design of the layer index set, and the design scheme is applied to the coding process, and a large number of simulation results prove that the performance of the coding side of the system is improved by reducing the bit error rate of the coding system, and further, the coding method judges whether to stop in advance or not according to Cyclic Redundancy Check (CRC) in the decoding process, so that the performance in decoding is not further improved, and meanwhile, the FAR on the decoding side is also greatly reduced Low.
The processor of this design is further configured to generate the new matrixWherein the content of the first and second substances,n=log2 N。
the processor of this design is further configured to obtain a bit sequenceThe above-mentionedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
Further, the above design includes, in determining the layer position index set M of the information bits in the coding map: from layer 1 to (log)mN-1) any one of the layers.
Further, the above design includes, in determining the layer position index set M of the information bits in the coding map: the set of layer position indices M is obtained from the set of row position indices H.
The above-designed encoding apparatus is particularly important for determining the position of the information bit in the encoding map in the determination manner of the layer position index set M of the encoding map, and determines the position of the information bit in the encoding map according to the determination manner, further, the transmitting end determines the input bit sequence according to the position of the information bit in the encoding map, especially the layer position index set of the information bit to be encoded in the encoding map, and further performs encoding through the new matrix to obtain the encoded bit sequence, and the bit error rate of the encoding apparatus is effectively reduced, thereby effectively improving the performance of the encoding system.
The present design also provides another encoding device, the device comprising:
a memory for storing program instructions;
a processor for executing the program stored in the memory, the program, when executed, generating a bit sequence X1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the encoding of Polar codes and a matrix generated by K information bits to be encoded at the position of an encoding graph with the length of a mother code of N; the code generating matrix of the Polar code is log2N matrices F2The Kronecker product of (1),
the encoding method comprises the following steps that K is larger than or equal to 1 and is an integer, N is the length of a mother code, N is the integer power of m, and m is a positive integer larger than 1, wherein the K information bits to be encoded comprise, at the position of an encoding diagram with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1。
The memory provided above may be physically separate units or may be integrated with the processor.
In another design, the memory is located outside the encoding device, and the encoding device is connected to the memory through a circuit/wire, and is used for reading and executing the program stored in the memory.
The above-designed encoding apparatus is particularly important for determining the position of the information bit in the encoding map in the determination manner of the layer position index set M of the encoding map, and determines the position of the information bit in the encoding map according to the determination manner, further, the transmitting end determines the input bit sequence according to the position of the information bit in the encoding map, especially the layer position index set of the information bit to be encoded in the encoding map, and further performs encoding through the new matrix to obtain the encoded bit sequence, and the bit error rate of the encoding apparatus is effectively reduced, thereby effectively improving the performance of the encoding system.
The design scheme provided by the present application further provides an encoding apparatus, the apparatus comprising:
a transceiver for receiving K information bits to be encoded and for transmitting a bit sequence X1 NK is not less than 1 and is an integer;
a processor for generating a bit sequence X1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the code generating matrix of the Polar code is log 2N matrices F2The Kronecker product of Kronecker,
the encoding method comprises the following steps that K is larger than or equal to 1 and is an integer, N is the length of a mother code, N is the integer power of m, and m is a positive integer larger than 1, wherein the K information bits to be encoded comprise, at the position of an encoding diagram with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1。
The design solution provided by the present application may further provide an encoding apparatus, including:
the receiving module is used for acquiring K information bits to be coded, wherein K is more than or equal to 1 and is an integer;
a coding module for generating a bit sequence X1 NSaid X is1 N=u1 N G`NSaidu1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the code generating matrix of the Polar code is log2N matrices F2The Kronecker product of Kronecker,
the encoding method comprises the following steps that K is larger than or equal to 1 and is an integer, N is the length of a mother code, N is the integer power of m, and m is a positive integer larger than 1, wherein the K information bits to be encoded comprise, at the position of an encoding diagram with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0 <M≤logmN-1;
A transmission module for transmitting the bit sequence X1 N。
The coding device is a base station or a terminal.
The present application further provides a coding and decoding system, the system comprising: the network equipment comprises any one of the coding devices; alternatively, the terminal device includes any one of the above encoding apparatuses.
Drawings
Fig. 1 is a wireless communication system suitable for use with embodiments of the present application;
FIG. 2 is a basic flow diagram for communication using wireless technology;
fig. 3 is a flowchart of an embodiment of a channel coding method provided in an embodiment of the present application;
FIG. 4 is a coding diagram provided by an embodiment of the present application;
FIG. 5 is another encoding diagram provided by the embodiments of the present application;
fig. 6 (a) and fig. 6 (b) are schematic diagrams of channel coding according to an embodiment of the present application;
fig. 7 is a schematic diagram of an encoding apparatus according to another embodiment of the present application;
fig. 8 is a schematic diagram of another encoding apparatus provided in the embodiments of the present application;
fig. 9 is a schematic diagram of another encoding apparatus provided in an embodiment of the present application;
fig. 10 is a schematic diagram of another encoding apparatus provided in the embodiment of the present application;
fig. 11 is a schematic diagram of another encoding apparatus provided in the embodiments of the present application;
Fig. 12 is a flowchart of another embodiment of a channel coding method according to another embodiment of the present application;
FIG. 13 is a flowchart of an embodiment of a channel decoding method according to another embodiment of the present application;
FIG. 14 is a diagram of another decoding apparatus according to an embodiment of the present application;
FIG. 15 is a schematic diagram of another decoding apparatus according to an embodiment of the present application;
FIG. 16 is a diagram of another decoding apparatus according to an embodiment of the present application;
fig. 17 is an activation factor graph 17-1 to an activation factor graph 17-10 according to an embodiment of the present application.
Detailed Description
The technical solution in the present application will be described below with reference to the accompanying drawings.
Fig. 1 is a wireless communication system 100 suitable for use in embodiments of the present application. At least one network device may be included in the wireless communication system, the network device communicating with one or more terminal devices (e.g., terminal device # 1 and terminal device # 2 shown in fig. 1). The network device may be a base station, or a device formed by integrating the base station and a base station controller, or other devices having similar communication functions.
The wireless communication system mentioned in the embodiments of the present application includes but is not limited to: the Communication system includes three application scenarios of an internet of things Communication system, a Long Term Evolution (LTE) system, and a 5G Mobile Communication system (i.e., enhanced Mobile bandwidth (eMBB), high reliability Low Latency Communication (URLLC), and enhanced mass Machine connectivity (eMTC)), or a new Communication system appearing in the future.
The terminal devices referred to in the embodiments of the present application may include various handheld devices, vehicle mounted devices, wearable devices, computing devices, or other processing devices connected to a wireless modem with wireless communication capability. The terminal device may be a Mobile Station (MS), a subscriber unit (subscriber unit), a cellular phone (cellular phone), a smart phone (smart phone), a wireless data card, a Personal Digital Assistant (PDA) computer, a tablet computer, a wireless modem (modem), a handset (handset), a laptop (laptop computer), a Machine Type Communication (MTC) terminal, or the like.
The network device and the terminal device in fig. 1 communicate by using wireless technology. When the network device sends a signal, it is an encoding end, and when the network device receives a signal, it is a decoding end. The same applies to the terminal device, which is the encoding side when the terminal device transmits a signal and the decoding side when the terminal device receives a signal.
Fig. 2 is a basic flow diagram for communication using wireless technology. At a transmitting end, the information source is transmitted after information source coding, channel coding, rate matching and modulation are sequentially carried out. And at a receiving end, sequentially demodulating, de-rate matching, channel decoding and information source decoding to obtain an information sink.
For ease of understanding, the channel coding referred to in this application will first be briefly described:
channel coding and decoding is one of the core technologies in the field of wireless communication, and the improvement of performance will directly improve network coverage and user transmission rate. At present, the polar code is a channel coding technology which can theoretically prove that the Shannon limit is reached and has practical linear complexity coding and decoding capabilities. The core of the polarization code is that through the processing of 'channel polarization', at the encoding side, the encoding method is adopted to enable each sub-channel to present different reliability, when the code length is continuously increased, one part of channels tend to the noiseless channel with the capacity close to 1, the other part of channels tend to the full-noise channel with the capacity close to 0, and the channel with the capacity close to 1 is selected to directly transmit information to approximate the channel capacity.
The coding strategy provided by the application just applies the characteristic of the phenomenon, useful information of a user is transmitted by using a noise-free or low-noise channel, and appointed information or unvarnished information is transmitted by using a full-noise channel. The coding provided by the application is also a linear block code, and the coding matrix (also called a generating matrix) of the linear block code can be F based on the existing matrix NThe coding process is X1 N=D1 NFNTo obtain a bit sequence X1 N. Wherein, FNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer which is more than 1, wherein the K information bits to be coded comprise, at the position of a code pattern with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1。
In the encoding process of the above-described encoding,a part of the bits used to carry information is called a set of information bits. The set of indices for these bits is denoted a. The other part of the bits are set as fixed values predetermined by the receiving end and the transmitting end, which are called as fixed bit sets or frozen bit (frozen bits) sets, and the index sets are complementary sets A of A cAnd (4) showing.The fixed set of bits in (N-K), are known bits to both the sending and receiving ends. These fixed bits are usually set to 0, but may be arbitrarily set as long as the receiving end and the transmitting end agree in advance.
Based on the above description, embodiments of the present application provide a channel coding method, apparatus, and system, which can improve the error correction performance of a polar code under high-order modulation, so as to meet the FAR requirement. The following describes the channel coding method and apparatus provided in the present application in detail with reference to the accompanying drawings.
Fig. 3 is a flowchart of an embodiment of a channel coding method provided in the present application, and as shown in fig. 3, an execution main body of the embodiment is a sending end, and the channel coding method of the embodiment may include:
s300, the sending end obtains a bit sequence X1 NSaid X is1 N=D1 NFN。
Wherein, FNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NBits obtained after encodingSequence of (a) aThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer which is more than 1, wherein the K information bits to be coded comprise, at the position of a code pattern with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0 <M≤logmN-1。
Wherein, theThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
The fixed bits are pre-agreed values at the receiving end and the transmitting end, and these pre-agreed values may also be referred to as frozen bits, and the value may be 0.
The information bits are bits for carrying information, and the information may include any one or more of the following: data information, signaling information, or Check information, such as power control information, uplink scheduling grant information, resource block resource allocation information, Cyclic Redundancy Check (CRC), Parity Check (PC), or any other Check information.
Further, said D1 NThe method comprises the following steps: bit sequence C1 NAnd a fixed bit, said bit sequence C1 NIs according to the coding patternAnd carrying out polarization coding to obtain a bit sequence.
Further, the layer position index set M includes: from layer 1 to (log)mN-1) any one of the layers;
alternatively, the first and second electrodes may be,
the layer position index set M is obtained from the row position index set H.
S302, the sending end sends the bit sequence X1 N。
Further, the transmitting end obtains a bit sequence X1 NThe process of (1) involves the positions of K information bits to be coded in a code pattern with a mother code length of N, and the specific process of determining the positions of the K information bits to be coded in the code pattern with the mother code length of N is as follows:
firstly, a sending end obtains a code pattern with a mother code length of N.
Wherein the code pattern comprises: m 'layer, H' row, M ═ logmN +1 layers, i.e. layer0 0, layer1 1, … …, and layer (M' -1)mAnd N and H' are respectively the 0 th line and the … … th line N-1, wherein N is the integral power of m, and m is a positive integer larger than 1.
Taking the code pattern with the code length N of 8 as an example, as shown in fig. 4, when M is 2 and N is 8, the code pattern has M ' of 4 and H ' of 8 lines, and M ' is { L {0,L1,L2,L3H' is { H }0,h1,h2,h3,h4,h5,h6,h7}。
Secondly, the sending end determines the positions of K information bits to be coded in the code pattern according to the code pattern. Wherein, the position of the K information bits to be coded in the code pattern with the mother code length of N includes: a set of row position indices H of the information bits in the code pattern and a set of layer position indices M of the information bits in the code pattern, the 0≤H≤N,0<M≤logmN-1。
Since the position of the information bit in the coding map determines the performance of channel coding, besides determining the row position index set of the information bit in the coding map, it is also necessary to further determine the layer position index set of the information bit in the coding map when confirming the position of the information bit in the coding map.
The process of determining the position of the information bit in the coding map in the embodiment is implemented in two steps: firstly, selecting which row of the coding graph the information bits are placed in; second, it is further confirmed which layer in the selected row the information bits are placed.
The specific sending end may determine the row position index set H where the information bits are located through any one or a combination of several of the following manners, for example: the determination of the set of position indices is made based on a Polarization Weight (PW) sequence, a bartype parameter, or a gaussian approximation, etc. Since determining the row position index set H where the information bits are located is prior art, it is not described here in detail.
Taking fig. 4 as an example, the index set H of the information bits at the row position of the coding diagram is { H } H of the information bits at H of the coding diagram according to the above-mentioned determination method 3,h5,h6,h7It can be understood that the 4 information bits to be encoded are located at row 3, row 5, row 6, and row 7 of the encoding diagram shown in fig. 4, respectively.
Further, the method for the sending end to determine the layer position index set M of the information bits in the coding map includes the following several methods, for example:
the first embodiment is as follows: the K information bits to be coded include from layer 1 to (log) in a layer position index set M of a coding diagrammN-1) any one of the layers.
The method specifically comprises the following steps: the transmitting end selects any layer from the layer position index set M' of the coding graph as the layer position index set M, and the preferable mode is as follows: from layer 1 to (log) of MmN-1) selecting a layer L from the layers, and determining a layer position index set M where the K information bits to be coded are located as { L }. It should be noted that, since all information bits to be encoded are placed in one layer, the only elements in the set M determined here areOne, L layer.
Taking fig. 4 as an example, the sending end selects layer2 from layers 0-3 to put 4 information bits to be coded, that is, the index set L of the layer position where the information bit is located is layer 2. As can be seen from simulation results, when information bits are placed in the layer close to the right, the bit error rate performance during encoding can be greatly improved through the encoding mode, and the report error rate performance during decoding after receiving by a receiving end is also greatly improved.
In conjunction with the determination of the row position index, the positions of the 4 information bits to be coded in the coding map may be determined as follows: line 3 of layer2, line 5 of layer2, line 6 of layer2 and line 7 of layer2, as shown by the 4 shaded circles in layer2 of FIG. 4, which respectively illustrate the location of 4 information bits in the encoding map. That is, the positions of the 4 information bits to be encoded in the encoding diagram include: the row position index set H is { H }3,h5,h6,h7Is { L } and a set of layer position indices M2}。
Or, in the second example, the method for the sending end to determine the layer position index set M of the information bits in the coding map may also be: the set of layer position indices M is determined from the set of row position indices H.
Specifically, the method comprises the following steps: firstly, the sending end selects any layer L from the layer position index set M' to be determined as the layer index corresponding to the row index H where any information bit in the row position index H is located, and H belongs to H.
Secondly, the sending end traverses H in the row position index set H and determines a layer position index set M in which all K information bits to be coded are positioned.
Taking fig. 5 as an example, taking 4 information bits to be encoded as an example, the sending end determines the row index set H where the 4 information bits to be encoded are located as { H } in a manner of passing through the row index position described above 3,h5,h6,h7}。
The sending end firstly determines the row index h of 4 information bits to be coded in the coding diagram3Corresponding information ratioThe particular row index: the sender may be from an optional 1 layer of layers 0-3 in the code map, preferably excluding layer0 and layer3, and from an optional 1 layer of layers 1 or layer2 in the code map. As shown in fig. 5, the sending end selects layer0 as the layer index position of the coding map where one of the information bits is located, that is, the position set of the information bit in the coding map is: { L0,h3}. Then, the transmitting end traverses H in the H and determines the rest H in sequence5、h6、h7The corresponding information bits are combined with M in the layer index of the coding map. As shown in FIG. 5, the transmitting end determines the remaining h in turn5,h6,h7The layer index of the corresponding information bit in the coding diagram is combined with M to be L0,L1,L2}。
As shown in fig. 5, the positions of the 4 information bits in the code pattern include: the set of row position indices H is { H }3,h5,h6,h7And the layer position index set M is { L }0,L1,L2}. The black circles in fig. 5 represent: the information bit positions of the 4 information bits to be coded are distributed in: line 3 of Layer0, line 5 and line 7 of Layer1 and line 7 of Layer 2.
Or, the method for the sending end to determine the information bits in the coding map position index set M may also be:
example three: aiming at the specific implementation of the second example:
and the sending end calculates the layer index L of each information bit according to the following formula for each H in the row position index set H of the information bit, wherein the formula is a function related to H.
The function related to h may be: l ═ ceil (log)2(rem(h,2m) +1)) to obtain L, wherein m is an integer and generally takes any value of 2, 3 or 4; h is a layer index corresponding to the row index H where any information bit in the row position index H is located; the rem function is the division of h by 2mA function of the remainder of (1), e.g. rem (5,2), a ceil function being greater than this numberThe minimum integer of a word, for example ceil (2.5) ═ 3, can be obtained by the above formula, and the layer index L where the information bit of each h is located can be obtained.
It should be noted that, in the process of determining the position of the information bit in the subchannel, the sequence of determining the row position index of the information bit in the subchannel and determining the layer position index of the information bit in the subchannel by the sending end is not particularly limited, and the above embodiment may also be that the sending end determines the layer position index of the information bit in the subchannel first and then determines the row position index of the information bit in the subchannel.
The above process realizes the position determination process of the information bit to be transmitted in the coding diagram, and the coding side codes the information bit according to the position in the coding diagram, especially the row position index of the information bit in the coding diagram, and the bit error rate of the coding system can be well improved by the coding mode through various simulation results.
Based on the above-mentioned method for determining the positions of K information bits to be encoded in the coding diagram, it can be seen that the positions of the information bits not only take into account the row position index of the information bits in the coding diagram, but also take into account the layer position index of the coding diagram where the information bits are located, and especially the information bits are distributed in different layer indexes.
The above is the process of determining the position of the bit of the information to be sent in the coding map by the sending end, and the sending end further codes the polar code for the information bit according to the position of the information bit in the coding map.
The process of encoding the information bits is specifically described below with reference to the positions of the information bits in the coding diagram.
Taking fig. 6 as an example, first, the method for obtaining the input bit sequence by the lower transmitter is introducedThe implementation process specifically comprises the following steps:
Here, according to the above description of the positions of the information bits in the coding diagram, taking (a) in fig. 6 as an example, the 4 information bits to be coded, where K is 4, correspond to the positions { h in the coding diagram3,L2},{h5,L2},{h6,L2},{h7,L2However, in encoding, for the encoder at the transmitting end, encoding is generally started from layer0 corresponding to (a) in fig. 6 above, so that, here, the transmitting end places information bits in L in fig. 6 according to their positions in the encoding map, especially their row position index H in the encoding map, respectively0H of a layer3In position, L0H of a layer5In position, L0H of a layer6In position and L0H of a layer7In position.
Here the input bit sequence u at the transmitting end1 NThe coded bits corresponding to layer0 layer in fig. 6 (a) are composed of K information bits to be coded and fixed bits (given in step 2).
And 2, setting other bit positions in the layer0 to be fixed bits by the sending end.
It should be noted that the above sequence related to step 1 and step 2 can be interchanged, and is not specifically limited.
The above-mentioned determination process may be that K information bits to be coded are placed at positions corresponding to H of layer0 in the code pattern, or may be understood as that the information to be sent is sentThe bit corresponding to the row index set H in the coded graph is arranged at the position corresponding to the layer0 layer H, and further the input bit sequence is obtained
For example: with reference to fig. 6, (a) in fig. 6 is a code pattern of 4 layers and 8 lines: m 'is {0, 1.., 3}, and is denoted as layer0, layer0, layer1, layer1, layer2, layer2, layer3, layer3, and H' is {0, 1.., 7 }. The position set of the 4 information bits to be coded in the sub-channel can also be expressed as: m is { L2H is { H }3,h5,h6,h7}。
one way may be:
as shown in fig. 6 (a), the transmitting end has a row index set H of { H } according to the information bits in the coding diagram 3,h5,h6,h7Place the information bits {1,1,0,1} to be sent in { h) of layer0 layer of (a) in FIG. 63,h5,h6,h7At the corresponding position.
Another way may be understood as:
as can be seen from (a) in fig. 6, the positions of the 4 information bits to be coded in the coding map are: m is { L2H is { H }3,h5,h6,h7The sender will layer2 layer { h }3,h5,h6,h7Bit value of { u }3,2,u5,2,u6,2,u7,2(the sequence of the row index and the layer index of the subscript is not limited, and can also be expressed as { u }2,3,u2,5,u2,6,u2,7}) is arranged at the layer0 level, and the row position index set H corresponding to the { u } corresponds to the row position index set H3,u5,u6,u7On, for example: set of settings { h3,h5,h6,h7The corresponding value of {1,1,0,1}, then:
Further, the sender sets other variable nodes of layer0 layer to fixed values, for example, all 0.
Finally, sending the coding sequence u generated by the opposite end according to the information bit and the fixed bit1 NIs {0,0,0,1,0,1,0,1 }.
It should be noted that, the butterfly operation process for the polar code is also for butterfly operation from layer0 layer, so when encoding is performed at the transmitting end, the information bits to be encoded are generally placed at the positions corresponding to H of layer0, and further the encoding bit sequence u with mother code N is generated1 NAnd then further encoding the polarity code. Here the input bit sequence It can be conveniently understood as N bit sequences for layer0 layer in (a) of fig. 6.
Secondly, the sending end pairs the input bit sequence u1 NPolarization coding is carried out to obtain a bit sequence C1 N。
As shown in (a) of fig. 6, a bit sequence to be obtained by a transmitting endSequentially proceeding from left to right, such as butterfly operation, until M is calculated as { L }2The corresponding N bit values in the layer, namely the output coding sequence C1 N. Herein C1 NWhich can be conveniently understood as an N-bit sequence for layer 2.
It is noted that, the above pairsThe process of polarity encoding is a part of the encoding process of the existing polar code, where the transmitting end starts from layer0 to the encoding end according to the position of the K information bits to be encoded in the encoding diagramPerforming butterfly operation until M is { L }2Layer by layer, output bit sequence C1 NHere, M is the layer index position where the information bit is located in the above coding pattern. As shown in fig. 6 (a), if layer0 corresponds to bit sequence u1 NIs {0,0,0,1,0,1,0,1}, pairApplying butterfly computation from layer0 to layer2 to obtain bit sequence C corresponding to layer1 NMay be {1,1,0,1,0,1,1,1 }. The above-mentioned polarization encoding process is a part of the existing polarization encoding, and for the specific polarization encoding process, reference is made to the description of the polarization encoding in the prior art or standard, and details thereof are not repeated here.
Then, the transmitting end is according to C1 NTo obtain the bit sequence D1 N。
This can be understood simply as a process of second polarization encoding. As shown in fig. 6 (b), bit sequence D1 NInput bit sequence corresponding to layer0 layer of (b) in FIG. 6, the D1 NThe method comprises the following steps: c1 NThe middle row index H corresponds to bits and fixed bits.
The specific operation can be as follows: the sending terminal C1 NThe value of the bit position corresponding to the middle row index H is placed at the bit position corresponding to the row position index set H of the 0 th layer in (b) of fig. 6, the other bit positions of the 0 th layer are set as fixed bits, and the bit sequence D is output1 N。
Specifically, as shown in (a) of fig. 6, C1 NFor {1,1,0,1,0,1,1,1}, the sender aggregates the row indexes by { h }3,h5,h6,h7The values {1,0,1,0} of are placed in FIG. 6The row index set H of layer0 in (b) in (c) is { H }3,h5,h6,h7At the corresponding position of. Then, the transmitting end connects other positions { h } in the layer00,h1,h2,h4The corresponding bit value is set as a fixed bit, for example, all 0 bits {0,0,0,0}, and then as shown in (b) of fig. 6, the sending end obtains a bit sequence D1 NIs {0,0,0,1,0,0,1,0 }.
The above pair D1 NThe encoding process of (2) involves that the sending end firstly determines fixed bits in layer0 or firstly determines that the bits corresponding to H in layer0 do not make a restriction on the sequence.
Finally, the transmitting end is according to D1 NBy the formula X1 N=D1 NFNObtaining a coded bit sequence X1 N。
In particular, the transmitting end will obtain a bit sequence D1 NAnd sequentially calculating from left to right, such as butterfly operation, and outputting the coded bit sequence. As shown in (b) of fig. 6, for example, the transmitting end is according to D1 NOutputting a bit sequence X of information bits corresponding to the layer3 from the layer0 to the last layer3 by applying butterfly computation1 N. The above-mentioned polarization encoding process is the existing polarization encoding technology, and for the specific polarization encoding process, reference is made to the description of the polarization encoding technology in the prior art or the standard, and details are not described here.
The above pair D1 NThe process of performing polarization encoding can also be understood as X1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),
the transmitting end converts the 1 XN binary line vector D1 NWith NxN matrix FNMultiplying to output a 1 XN binary line vector X1 N。
It should be noted that, in the process of determining the coding sequence, whether the bits of the row position index corresponding to the information bits are determined first or whether there is no sequential limitation in the order of the fixed bits is determined first, or the fixed bits are determined first and then the values of the row position index corresponding to the information bits are determined.
Optionally, the sender-side obtained bit sequence in S300 mentioned in the above step may also be obtained by the following formula, and the following description is specifically presented in fig. 6 (a) and fig. 6 (b) by taking fig. 6 as an example as follows:
for details, please refer to the above detailed description, which is not repeated herein.
Wherein:
u1 N=(u1,u2,...,uN) Is a 1 × N binary row vector;
representing M matrices F2Kronecker product of (2) outputM×2MM is a layer index set of a subchannel in which information bits to be encoded are located.
To representThe number of all-1-vectors,is to generate a diagonal matrix and outputThe input vectors, e.g., all 1's, are placed above the diagonal. Will be provided withAnda Kronecker (Kronecker) product is performed, outputting an N × N matrix.
Specifically, the transmitting end is according toInput bit sequence u1N andmatrix multiplying and outputting coded 1 XN bit sequence C1 N. For example: bit sequence C in (a) in FIG. 61 NIs {1,1,0,0,1,1,1,0 }.
For example, C obtained in (a) of FIG. 61 NIs {1,1,0,0,1,1,1,0}, C is taken out1 NThe index set H of middle row position is { H }3,h5,h6,h7The value {0,1,1,0} of {0,1,1,0} is placed in { h } of layer0 in (b) of FIG. 63,h5,h6,h7The corresponding bit position.
Further, the transmitting end sets other bit positions outside the row position index set H of the layer0 to be fixed bits. As in (b) of fig. 6, transmissionEnd up with other positions in the layer0, i.e. { h0,h1,h2,h4The value of the corresponding bit position is set to a fixed bit, e.g., {0,0,0,0 }.
D obtained by the coding1 NIs {0,0,0,0,0,1,1,0 }.
Step 4, the sending end sends the data according to the D1 NBy the formula X1 N=D1 NFNOutputting the coded bit sequence X1 N。
Specifically, corresponding to the above formula, D will be obtained1 NMultiplying with FN to output 1 × N matrix.
the above-mentioned pair D corresponding to (b) in FIG. 61 NAnd carrying out a polarity encoding process.
For example, (b) in fig. 6, the coded bit sequence {0,0,0,0,0,1,1,0} of layer0 layer is D1 NAfter polarization coding layer by layer, the coded bit sequence of the last layer of layer3 layer is obtained, that is, the coded bit sequence X 1 N。
The addition and multiplication operations in the above formulas are all addition and multiplication operations in binary Galois field, and further output coded bit sequence X1 N。
To sum up, the bit sequence X obtained in step 1 to step 41 NThe process of (2) can also be specifically directly obtained by the following formula1 N:
And determining, if H belongs to the row index combination H of the information bits, determining the value of H in the row position index set H to be assigned, and if H does not belong to the row index combination H of the information bits, determining L pre-agreed fixed values, for example, all 0.
As described aboveThe coded bits corresponding to layer0 in fig. 6 (b) can be simply expressed as: the transmitting end determines the value of any H in the row index set H of layer0, i.e. when H is the information bit H set { H }3,h5,h6,h7Any one of H e H, then put the value corresponding to H in the set H3,h5,h6,h7The corresponding value in (c); if h is not { h3,h5,h6,h7Any one of them, i.e.The bit corresponding to h is placed at a fixed bit, e.g., "0".
Taking the bit sequence of layer0 in fig. 6 (b) as an example, when the transmitting end determines the value corresponding to H3 of the lyaer0 layer, since H3 belongs to the information bit H set, the value of H3 is set to C 1 NAt the bit position corresponding to h3, the values of h5, h6 and h7 of layer0 corresponding to the bit positions are sequentially confirmed as described above. If the sending end determines the value of H0 of layer0, it is determined that H0 does not belong to the information bit H set, and the value of H0 of layer0 is directly set to a fixed bit, for example, 0, and then the values of H1, H2, and H4 of layer0 are sequentially determined in the above manner. It should be noted that, in the above process of determining the fixed bits, after the bits corresponding to H in the layer0 are determined, values at other positions in the layer0 may be set as the fixed bits, which is not limited herein.
Further, the above formula can be understood as: will input a bit sequence u1 NAnd
matrix multiplying and outputting C1 NTo C1 NCoding to obtain D1 NBy X1 N=D1 NFNObtaining X1 N。
In the above formula, X is1 N=D1 NFNMiddle pair D1 NAnd FNThe values corresponding to the rows H are taken and multiplied, and H is 4, corresponding to (b) in fig. 6. Where the transmitting end will D1 NTaking 4 values to generate a 1 × 4 binary line vector, FNAnd correspondingly takes a 4 x 4 matrix, then (D)1 N)HAnd (F)N)HCarry out multiplication, the above pair D1 NAnd FNThe process of H is taken separately for convenience of description. Of course, X in the above formula 1 N=D1 NFNIn (b) in FIG. 6, D may be1 NIs still a matrix of (1 XN), but constitutes D1 NThe process of (1 × N) is the same as in the above embodiment, and the description is not repeated here, and a matrix constituting (1 × N) is output.
In the specific implementation manner in the encoding process, the output bit sequence D is designed according to the positions of the K information bits to be encoded in the encoding map, especially the layer index position set M of the information bits in the encoding map1 NTo D, pair1 NPerforms polar coding of the ploar code and outputs a coded bit sequence X1 NThe coding method not only improves the BER performance of the coding equipment, but also can improve the FAR performance during decoding, and the channel coding method is particularly obvious when the decoding equipment performs decoding.
An embodiment of the present invention further provides an encoding apparatus for encoding, which is configured to implement the channel encoding method in the foregoing embodiment, where part or all of the channel encoding method in the foregoing embodiment may be implemented by hardware or may be implemented by software, and when implemented by hardware, see fig. 7 for example.
Fig. 7 is a schematic structural diagram of an encoding apparatus for encoding according to another embodiment of the present application, where the apparatus includes:
The input interface circuit 700 is used to obtain K information bits to be encoded, where K is an integer greater than or equal to 1.
A logic circuit 702 for generating a bit sequence X1 NSaid X is1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is larger than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer larger than 1, wherein the positions of the K information bits to be coded in a code pattern with a mother code length of N comprise: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are more than or equal to 0 and less than or equal to N, 0<M≤logmN-1;
An output interface circuit 704 for outputting the encoded bit sequence X1 N。
In the specific implementation manner in the encoding process, the output bit sequence D is designed according to the positions of the K information bits to be encoded in the encoding map, especially the layer index position set M of the information bits in the encoding map 1 NTo D, to1 NAnd performing polarity coding of the ploar code and outputting a coded bit sequence. Compared with the existing non-system Polar code, the position of the information bit in the coding diagram not only considers the row of the coding diagram where the information bit is located, but also needs to consider the layer position of the information bit in the coding diagram, and the designed information bit position is applied to the coding process, so that the Bit Error Rate (BER) of the system is greatly reduced; furthermore, the coding method is convenient for judging whether to stop in advance according to the cyclic redundancy check in the decoding process, and further the FAR performance is reduced in the decoding process.
The implementation manner of an embodiment provided in this embodiment, the logic circuit 702, is further configured to generate a bit sequenceThe describedThe method comprises the following steps: the describedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
The logic circuit 702 provided in this embodiment is further configured to generate a bit sequence D1 NSaid D is1 NThe method comprises the following steps: bit sequence C1 NThe bit and the fixed bit corresponding to the row position index set H in the code pattern, the bit sequence C 1 NIs according to the coding patternAnd carrying out polarization coding to obtain a bit sequence.
Due to the logic circuit 702 generation described aboveAnd D1 NThe process of (1) involves positions of K information bits to be coded in the coding map, and the specific process of determining the positions of the information bits in the coding map is the same as the process described in the above-mentioned fig. 3 to fig. 6, and is not repeated here.
Further, the logic circuit 702 determines the layer position index set M of the information bits in the coding diagram in the following ways, for example:
the first embodiment is as follows: the K information bits to be coded include from layer 1 to (log) in a layer position index set M of a coding diagrammN-1) any one of the layers.
Alternatively, as a second example, the method for determining the layer position index set M of the information bits in the coding map may also be: the layer position index set M is obtained from the row position index set H.
Specifically, the method comprises the following steps: firstly, any layer L is selected from a layer position index set M' and determined as a layer index corresponding to a row index H where any information bit in the row position index H is located, and H belongs to H.
And traversing H in the row position index set H to determine a layer position index set M in which all K information bits to be coded are positioned.
Further alternatively, the method for determining the coding layer position index set M of the information bits may be:
example three: aiming at the specific implementation of the second example:
for each H in the row position index set H of the information bits, calculating the layer index L where each information bit is located according to the following formula, wherein the formula is a function related to H.
The function related to h may be: l ═ ceil (log)2(rem(h,2m) +1)) to obtain L, wherein m is an integer and generally takes any value of 2, 3 or 4; h is a layer index corresponding to the row index H where any information bit in the row position index H is located; the rem function is the division of h by 2mThe remainder function of (a) is, for example, rem (5,2) ═ 1, the ceil function is the smallest integer greater than the number, for example, ceil (2.5) ═ 3, and the layer index L at which the information bit of each h is located can be obtained by the above formula.
The above logic circuit 702 may specifically refer to fig. 4 and fig. 5 and the description of the embodiments corresponding to fig. 4 and fig. 5 for the process of determining the position of the information bit to be transmitted in the sub-channel, and is not described herein again.
The process of encoding the information bits is specifically described below with reference to the positions of the information bits in the encoding diagram.
The present embodiment provides a logic circuit 702 for determining an input bit sequenceThe method can be specifically realized as follows:
It should be noted that the above sequence related to step 1 and step 2 can be interchanged, and is not specifically limited.
The above-mentioned determination process may be as above-mentioned operation, placing K information bits to be coded in the corresponding positions of H of layer0 in the code map, and further obtaining the input bit sequence
Further, the logic circuit 702 provided in this embodiment obtains the bit sequence D1 NThe method can be specifically realized as follows:
first, the input bit sequence is input through the logic circuit 702Polarization coding is carried out to obtain a bit sequence C1 N。
As shown in (a) of fig. 6, a bit sequence to be obtained is obtained by the logic circuit 702Sequentially proceeding from left to right, such as butterfly operation, until M is calculated as { L } 2The corresponding N bit values in the layer, namely the output coding sequence C1 N. Herein C1 NWhich can be conveniently understood as an N-bit sequence to layer 2.
It is noted that, the above pairsThe process of polarity coding is a part of the existing polar code coding process, and the position of K information bits to be coded in the coding diagram is preferably determined according to the position of the K information bits to be coded in the coding diagramFirst, start from layer0 toPerforming butterfly operation until M is { L }2Layer by layer, output bit sequence C1 NWhere M is the layer index position where the information bit in the above coding map is located. As shown in fig. 6 (a), if the layer0 level corresponds to the bit sequence u1N of {0,0,0,1,0,1,0,1}, the pairApplying butterfly calculation from layer0 to layer2 to obtain bit sequence C corresponding to layer1 NMay be {1,1,0,1,0,1,1,1 }. The above-mentioned polarization encoding process is a part of the existing polarization encoding, and for the specific polarization encoding process, reference is made to the description of the polarization encoding in the prior art or standard, and details thereof are not repeated here.
Secondly, the logic circuit 702 is according to C1 NObtaining the bit sequence D1 N。
Specifically, as shown in (a) of fig. 6, the logic circuit 702 extracts the corresponding bit sequence C from the layer2 layer obtained by the butterfly operation1 NThe value corresponding to the row position index set H where the information bit position is located is taken out, that is, the layer2 layer uplink index set { H is taken out 3,h5,h6,h7The corresponding value, the row index set H for placing the value at layer0 in (b) of FIG. 6 is { H }3,h5,h6,h7At the corresponding position of. For example: c1 NThe value (1,0,1,0) corresponding to the row position index set H where the information bit position is located is taken out, and the (1,0,1,0) is placed in { H corresponding to the layer0 layer in (b) of FIG. 63,h5,h6,h7At the position of (c).
Then, the logic circuit 702 sets bits corresponding to other positions in the layer0 to fixed bits.
Specifically, as shown in (b) of fig. 6, the other positions { h) of the layer0 layer in (b) of fig. 60,h1,h2,h4Is set to a predefined fixed value, e.g., all 0 bits, then the other positions { h } of layer0 layer0,h1,h2,h4The corresponding value of (0,0,0, 0).
Finally, as shown in (b) of fig. 6, the logic circuit 702 obtains the bit sequence D according to the bit corresponding to the H and the fixed bit1 N。
Specifically, as shown in (b) in fig. 6, the logic circuit 702 outputs a bit sequence D of layer0 layer1 NIs (0,0,0,1,0,0,1, 0).
Further, the logic circuit 702 is according to D1 NBy the formula X1 N=D1 NFNObtaining a coded bit sequence X1 N。
The embodiment of the present invention further provides another implementation manner, for example: the logic 702 obtains the bit sequence X1 NIt can also be obtained by the following formula, and the following is specifically described as follows in fig. 6 (a) and fig. 6 (b), for example:
for details, please refer to the above detailed description, which is not repeated herein.
The specific encoding process is as follows:
for example, C obtained in (a) of FIG. 61 NIs {1,1,0,0,1,1,1,0}, C is taken out1 NThe index set H of middle row position is { H }3,h5,h6,h7The value of {0,1,1,0}, will be{0,1,1,0} is placed in { h of layer0 in (b) of FIG. 63,h5,h6,h7The corresponding bit position.
Further, the transmitting end sets other bit positions outside the row position index set H of the layer0 to be fixed bits. As shown in (b) of fig. 6, the sender will refer to other positions in the layer0, i.e. { h }0,h1,h2,h4The value of the corresponding bit position is set to a fixed bit, e.g., {0,0,0,0 }.
D obtained by the coding1 NIs {0,0,0,0,0,1,1,0 }.
Step 4, the logic circuit 702 according to D1 NBy the formula X1 N=D1 NFNOutputting the coded bit sequence X1 N。
For example, (b) in fig. 6, the coded bit sequence {0,0,0,0,0,1,1,0} of layer0 layer is D1 NAfter polarization coding layer by layer, the coded bit sequence of the last layer of layer3 layer is obtained, that is, the coded bit sequence X 1 N。
The addition and multiplication operations referred to in the above equations are all addition and multiplication operations over a binary galois field, and the logic 702 obtains the encoded bit sequence X1 N。
For the method for determining the position of the information bit in the coding diagram and the method for channel coding, please refer to the embodiments for specifically implementing a channel coding method corresponding to fig. 3-6 and fig. 3-6, which will not be described herein again.
In the specific implementation manner in the encoding process, the output bit sequence D is designed according to the positions of the K information bits to be encoded in the encoding map, especially the layer index position set M of the information bits in the encoding map1 NTo D, pair1 NPerforms polar coding of the ploar code and outputs a coded bit sequence X1 NThe coding method not only reduces the BER at the coding side, but also can reduce the FAR at the decoding,this channel coding method is particularly apparent when decoding is performed by a decoding device.
When part or all of the channel coding method of the above embodiment is implemented by software, an embodiment of the present invention further provides a coding apparatus 800, where the apparatus includes: referring to the processor 802 in figure 8,
a processor 802 for generating a bit sequence X 1 NSaid X is1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer which is more than 1, wherein the K information bits to be coded comprise, at the position of a code pattern with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1。
Further optionally, the processor is further configured to generate a bit sequenceThe above-mentionedThe method comprises the following steps: the K numbers are to be encodedAnd N-K fixed bits, wherein the K information bits to be encoded are placed at positions corresponding to a layer 0 row position index set H in the encoding diagram.
The fixed bits are fixed values predetermined by the receiving end and the transmitting end, and these predetermined fixed values may also be referred to as freeze bits.
The information bits are bits for carrying information, and the information may include any one or more of the following: data information, signaling information, or check information, such as power control information, uplink scheduling grant information, resource block resource allocation information, cyclic redundancy check CRC, parity check PC, or any other check information.
Further optionally, the processor is further configured to generate a bit sequence D1 NSaid D is1 NThe method comprises the following steps: bit sequence C1 NThe bit and the fixed bit corresponding to the row position index set H in the code pattern, the bit sequence C1 NIs according to the coding patternAnd carrying out polarization coding to obtain a bit sequence.
Further optionally, the layer position index set M includes: from layer 1 to (log)mN-1) any one of the layers; alternatively, the first and second electrodes may be,
the layer position index set M is obtained from the row position index set H.
For the method for determining the position of the information bit in the coding diagram and the method for channel coding, please refer to the embodiments for specifically implementing a channel coding method corresponding to fig. 3-6 and fig. 3-6, which will not be described herein again.
The processor provided above designs an output bit sequence D according to the positions of K information bits to be encoded in the encoding map, in particular, the layer index position set M of the information bits in the encoding map 1 NTo D, to1 NPerforming polarity encoding of the ploar code, and outputtingOutputting the coded bit sequence X1 NThe coding method not only improves the BER performance of the coding equipment, but also can improve the FAR performance during decoding, and the channel coding method is particularly obvious when the decoding equipment performs decoding.
The encoding apparatus 900 according to an embodiment of the present invention may further include a processor 902 and a memory 901, as shown in fig. 9, where the memory 901 is configured to store program instructions.
A processor 902 for executing the program stored in the memory, for generating a bit sequence X when the program is executed1 NSaid X is1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer which is more than 1, wherein the K information bits to be coded comprise, at the position of a code pattern with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0 <M≤logmN-1。
The memory 901 may be a physically separate unit or may be integrated with the processor 902.
In the above embodiments, the memory may be located outside the encoding device, and the encoding device is connected to the memory through a circuit/wire, and is used for reading and executing the program stored in the memory.
An embodiment of the present invention may further provide an encoding apparatus 1000, which includes:
the processor 1002 and the transceiver 1004, as shown in figure 10,
a transceiver 1004 for K information bits to be encoded and transmitting X1 NK is not less than 1 and is an integer;
a processor 1002 for generating a bit sequence X1 NSaid X is1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer which is more than 1, wherein the K information bits to be coded comprise, at the position of a code pattern with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0 <M≤logmN-1。
For the method for determining the position of the information bit in the coding diagram and the method for channel coding, please refer to the embodiments for specifically implementing a channel coding method corresponding to fig. 3-6 and fig. 3-6, which will not be described herein again.
Further, the various encoding devices may be a base station or a terminal.
The coding device provided above designs the output bit sequence D according to the positions of K information bits to be coded in the coding diagram, especially the layer index position set M of the information bits in the coding diagram1 NTo D, pair1 NPerforms polar coding of the ploar code and outputs a coded bit sequence X1 NThe coding method not only improves BER performance of coding equipment, but also can improve FAR performance during decoding, and the channel coding method is particularly obvious when decoding equipment decodes.
Another embodiment of the present invention further provides an encoding apparatus, as shown in fig. 11, the encoding apparatus 1100 includes:
a receiving module 1102, configured to obtain K information bits to be encoded, where K is greater than or equal to 1 and is an integer;
an encoding module 1104 for generating a bit sequence X1 NSaid X is1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a-c), N is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidIs N bit sequences generated according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, m is a positive integer more than 1, and the K information ratios to be codedThe positions of the code pattern with the mother code length of N are characterized by comprising the following steps: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1;
A transmitting module 1106 configured to transmit the bit sequence X1 N。
Further, the coding unit is further configured to generate a bit sequenceThe above-mentionedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
Further, the coding unit is further configured to generate a bit sequence D1 NSaid D is1 NThe method comprises the following steps: bit sequence C1 NThe bit and the fixed bit corresponding to the row position index set H in the code pattern, the bit sequence C 1 NIs according to the coding pattern to the u1 NAnd carrying out polarization coding to obtain a bit sequence.
Wherein the layer position index set M includes: from layer 1 to (log)mN-1), or the set of layer position indices M is obtained from the set of row position indices H.
For the method for determining the position of the information bit in the coding diagram and the method for channel coding, please refer to the embodiments for specifically implementing a channel coding method corresponding to fig. 3-6 and fig. 3-6, which will not be described herein again.
Further, the various encoding devices may be a base station or a terminal.
The coding device provided above is based on the position of the K information bits to be coded in the coding map, in particular on the information bitsInformation bit in layer index position set M in coding diagram, and designing output bit sequence D1 NTo D, pair1 NPerforms polar coding of the ploar code and outputs a coded bit sequence X1 NThe coding method not only improves the BER performance of the coding equipment, but also can improve the FAR performance during decoding, and the channel coding method is particularly obvious when the decoding equipment performs decoding.
Another embodiment of the present invention also provides a readable storage medium, including: a readable storage medium and a computer program for implementing the channel coding method corresponding to any of fig. 3-6 described above.
Another embodiment of the present invention further provides a program product, which includes a computer program, where the computer program is stored in a readable storage medium, and the computer program can be read by at least one processor of an encoding apparatus from the readable storage medium, and the at least one processor executes the computer program to make the encoding apparatus implement the channel coding method according to any one of the embodiments of the channel coding method provided in the foregoing fig. 3 to fig. 6.
It should be noted that, the transmitting end performs decoding according to the received coding sequence, and the decoding algorithms of the schemes before the decoding algorithms are similar, which is the prior art, and will not be described in detail here. By the encoding method, the error correction capability of the decoding side is greatly improved on the decoding side.
An embodiment of the present invention further provides a system for coding and decoding, as shown in fig. 1, including a network device and a terminal device, where the network device includes the coding apparatuses in the foregoing embodiments, or the terminal device includes the coding apparatuses in the foregoing embodiments. The functions performed by the specific encoding apparatus are described with reference to fig. 3-6 and the corresponding embodiments.
An embodiment of the present invention further provides a flowchart of an embodiment of a channel coding method, and as shown in fig. 12, an execution main body of the embodiment is a sending end, and the channel coding method of the embodiment may include:
S1200, the sending end obtains the bit sequenceX1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the code generating matrix of the Polar code is log2N matrices F2The Kronecker product of Kronecker,
the encoding method comprises the following steps that K is larger than or equal to 1 and is an integer, N is the length of a mother code, N is the integer power of m, and m is a positive integer larger than 1, wherein the K information bits to be encoded comprise, at the position of an encoding diagram with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are more than or equal to 0 and less than or equal to N, 0<M≤logmN-1。
S1202, the sending end sends the bit sequence X1 N。
The information bits are bits for carrying information, and the information may include any one or a combination of the following: data information, signaling information, or Check information, such as power control information, uplink scheduling grant information, resource block resource allocation information, Cyclic Redundancy Check (CRC), Parity Check (PC), or any other Check information.
The fixed bits are pre-agreed values at the receiving end and the transmitting end, and these pre-agreed values may also be referred to as frozen bits, and the value may be 0.
The K information bits to be encoded may include Check bits, such as CRC (Parity Check, PC) codes, and may also be any other Check bits.
Specifically, the transmitting end obtains a special sequence X1 NThe process of (2) is as follows:
first, the transmitting end obtains a new matrix GNThe process of (2) is as follows:
the new matrix G ″NThe matrix is generated according to the coding generation matrix of the Polar code and the position of K information bits to be coded in the coding graph with the length of the mother code being N.
For example, the transmitting end may generate G ″ by the following formulaN:
n=log2 N。
from the above, the new matrix G' is obtainedNThe matrix is generated by a sending end according to a Polar code generation matrix C and a matrix B, wherein the matrix B is the same as the matrix BAndcorrelation, C is log2N matrices F2The Kronecker product of (1),
representing M matrices F2Kronecker product of (2) outputM×2MM is a layer index set of a sub-channel where information bits to be coded are located.
Is a function of the generation of a diagonal matrix,to representAll 1 vectors, putting the input vector such as all 1 on the diagonal, filling 0 in the rest, and outputting The diagonal matrix of (a).
Input bit sequenceIs a binary row vector, which can be understood as that the corresponding position of its index set H is set as the information bit to be coded, the rest positions are set as 0,h complement of representation. When in useAhDenotes the h-th row of matrix A, L denotes the number of columns of matrix A, AHAccording to
And (3) determining: and if H belongs to the row index combination H of the information bits, determining the value of H in the row position index set H for assignment, and if H does not belong to the row index combination H of the information bits, determining L preset fixed values, such as all 0. Here, the formula is used for AHThe value of the corresponding position in (1) is determined, and the output is still an N multiplied by N matrix.
Making a determination if h belongs to the complement of the row index set of information bitsDetermining the value of H in the row position index set H to be assigned, if H belongs to the complement of the row index set of the information bitsL predetermined fixed values, for example all 0's, are determined.
It should be noted that the above formula is only an example, and may be specifically illustrated by other formulas. It will be appreciated that the above-described new matrix G' isNMay be a matrix related to the encoding generator matrix of Polar code, and may also be understood as the new matrix G ″, as described above NIs a matrix related to the position of the subchannel on which the K information bits to be coded are located, or as described above, the new matrix G ″NOr a matrix related to a code generation matrix of the polar code and a matrix related to positions of subchannels where the K information bits to be coded are located.
Secondly, the transmitting end obtains an input bit sequence u1 N(ii) a The above-mentionedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
Specifically, the sending end places K information bits to be encoded at positions corresponding to the 0 th layer row position index set H in the encoding map, and then sets other (N-K) bit positions in the 0 th layer as fixed bits. Finally, the sending end obtains the bit sequence according to the information bit to be coded and the fixed bit
Further, in determining u1 NIn the process, the sending end further obtains a code pattern with a mother code length of N, wherein the code pattern includes: m 'layer, H' row, M ═ logmN +1 layers, i.e. layer0 0, layer1 1, … …, and layer (M' -1) mAnd N and H' are respectively the 0 th line and the … … th line N-1, wherein N is the integral power of m, and m is a positive integer larger than 1.
Further, the sending end determines the positions of K information bits to be coded in the code pattern according to the code pattern. Wherein, the position of the K information bits to be coded in the code pattern with the mother code length of N includes: a set of row position indices H of the information bits in the code pattern and a set of layer position indices M of the information bits in the code pattern, the0≤H≤N,0<M≤logm N-1。
Since the position of the information bit in the coding map determines the performance of channel coding, besides determining the row position index set of the information bit in the coding map, it is also necessary to further determine the layer position index set of the information bit in the coding map when confirming the position of the information bit in the coding map.
The process of determining the position of the information bit in the coding map in the embodiment is realized by two steps: firstly, selecting which row of the coding diagram to place the information bits; secondly, it is further confirmed which layer in the selected row the information bits are placed.
The specific sending end may determine the row position index set H where the information bit is located through any one or a combination of several of the following manners, for example: the determination of the set of position indices is made based on a Polarization Weight (PW) sequence, a bartype parameter, or a gaussian approximation, etc. Since determining the row position index set H where the information bits are located is prior art, it is not described here in detail.
Taking fig. 4 as an example, the index set H of the information bits at the row position of the coding diagram is { H } H of the information bits at H of the coding diagram according to the above-mentioned determination method3,h5,h6,h7It can be understood that the 4 information bits to be encoded are located at row 3, row 5, row 6, and row 7 of the encoding diagram shown in fig. 4, respectively.
Further, the method for the sending end to determine the layer position index set M of the information bits in the coding map includes the following several methods, for example:
the first embodiment is as follows: the K information bits to be coded include from layer 1 to (log) in a layer position index set M of a coding diagrammN-1) any one of the layers.
Or, in the second example, the method for the sending end to determine the layer position index set M of the information bits in the coding map may also be: the layer position index set M is determined from the row position index set H.
Specifically, the method comprises the following steps: firstly, a sending end selects any layer L from a layer position index set M' to be determined as a layer index corresponding to a row index H where any information bit in the row position index H is located, and H belongs to H.
Secondly, the sending end traverses H in the row position index set H and determines a layer position index set M in which all K information bits to be coded are positioned.
Or, the method for the sending end to determine the coding layer position index set M of the information bits may also be:
example three: aiming at the specific implementation of the second example:
and the sending end calculates the layer index L of each information bit according to the following formula for each H in the row position index set H of the information bit, wherein the formula is a function related to H.
The function related to h may be: l ═ ceil (log)2(rem(h,2m) +1)) to obtain L, wherein m is an integer and generally takes any value of 2, 3 or 4; h is a layer index corresponding to the row index H where any information bit in the row position index H is located; the rem function is the division of h by 2mThe remainder function of (a) is, for example, rem (5,2) ═ 1, the ceil function is the smallest integer greater than the number, for example, ceil (2.5) ═ 3, and the layer index L at which the information bit of each h is located can be obtained by the above formula.
The above-mentioned manner can also refer to the description of the embodiments corresponding to fig. 3 to 6, and is not described herein again.
Finally, the transmitting end inputs the bit sequence u1 NWith a new matrix G ″NMatrix multiplying and outputting coded 1 XN bit sequence
Taking (a) in fig. 6 and (b) in fig. 6 as an example, the transmitting end is based on the input bit sequence u1 NAnd a new matrix G ″NOutputting N bits as layer3 in (b) of FIG. 6, i.e. outputting a coded 1 XN bit sequence
Based on the channel coding method, the sending end is according to the X1 N=u1 N G`NObtaining a coded bit sequence X1 NDue to the new matrix G ″NIs a matrix generated according to the coding generation matrix of Polar code and the position of K information bits to be coded in the coding graphThe new channel code is obtained by transforming the coding matrix of the existing ploar code. Various simulation results show that the channel coding method not only greatly reduces the Bit Error Rate (BER) of the system when the transmitting end carries out coding, but also reduces the FAR when the receiving end carries out decoding after receiving.
An embodiment of the present invention further provides an encoding apparatus for encoding, which is configured to implement the channel encoding method in the foregoing embodiment, where part or all of the channel encoding method in the foregoing embodiment may be implemented by hardware or may be implemented by software, and when implemented by hardware, see fig. 7 for example.
Another embodiment of the present application further provides a schematic structural diagram of an encoding apparatus for encoding, where the specific structure of the encoding apparatus may refer to fig. 7, but the functions performed by specific interface circuits are different, where the encoding apparatus includes:
the input interface circuit is used for obtaining K information bits to be coded, wherein K is more than or equal to 1 and is an integer;
logic circuit for generating a bit sequence X1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the code generating matrix of the Polar code is log2N matrices F2The Kronecker product of Kronecker,
the encoding method comprises the following steps that K is larger than or equal to 1 and is an integer, N is the length of a mother code, N is the integer power of m, and m is a positive integer larger than 1, wherein the K information bits to be encoded comprise, at the position of an encoding diagram with the mother code length of N: the row position index set H of the information bit in the coding chart and the row position index set H of the information bit in the coding chartThe layer position index set M in the coding graph is more than or equal to 0 and less than or equal to H and less than or equal to N, 0<M≤logmN-1;;
An output interface circuit for outputting the bit sequence X 1 N。
In a possible implementation manner provided in this embodiment, the logic circuit 1302 is further configured to generate the new matrix Wherein, the first and the second end of the pipe are connected with each other,n=log2 N。
in particular, the logic circuit obtains a special sequence X1 NThe process of (2) is as follows:
first, the logic circuit obtains a new matrix G ″NThe process of (2) is as follows:
the new matrix GNThe matrix is generated according to the coding generation matrix of the Polar code and the position of K information bits to be coded in the coding graph with the length of the mother code being N.
For example, the transmitting end may generate G ″ by the following formulaN:
n=log2 N。
from the above, the new matrix G' is obtainedNThe matrix is generated by a sending end according to a Polar code generation matrix C and a matrix B, wherein the matrix B is the same as the matrix BAndcorrelation, C is log2N matrices F2The Kronecker product of Kronecker,
representing M matrices F2Kronecker product of (2) outputM×2MM is a layer index set of a subchannel in which information bits to be encoded are located.
Is a function of the generation of a diagonal matrix,to representAll 1 vectors, putting the input vector such as all 1 on the diagonal, filling 0 in the rest, and outputtingThe diagonal matrix of (a).
Input bit sequenceIs a binary row vector, which can be understood as that the corresponding position of its index set H is set as the information bit to be coded, the rest positions are set as 0, H complement of representation. When in useAhDenotes the h-th row of matrix A, L denotes the number of columns of matrix A, AHAccording to
And (3) determining: and if H belongs to the row index combination H of the information bits, determining the value of H in the row position index set H for assignment, and if H does not belong to the row index combination H of the information bits, determining L pre-agreed fixed values, such as all 0 s. Here, the formula is used for AHThe value of the corresponding position in (1) is determined, and the output is still an N multiplied by N matrix.
Making a determination if h belongs to the complement of the row index set of information bitsDetermining the value of H in the row position index set H to be assigned, if H belongs to the complement of the row index set of the information bitsL predetermined fixed values, for example all 0's, are determined.
It should be noted that the above formula is only an example, and may be specifically shown by other formulasAnd (4) drawing. It will be appreciated that the above-described new matrix G' isNMay be a matrix related to the encoding generation matrix of Polar code, and may also be understood as the above-mentioned new matrix G ″NIs a matrix related to the position of the subchannel in which the K information bits to be coded are located, or as described above, the new matrix G ″ NOr a matrix related to a code generation matrix of the polar code and a matrix related to positions of subchannels where the K information bits to be coded are located.
Secondly, the logic circuit obtains the input bit sequence u1 N(ii) a The above-mentionedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
Specifically, the logic circuit places K information bits to be encoded at positions corresponding to the 0 th layer row position index set H in the encoding map, and then the logic circuit sets other (N-K) bit positions in the 0 th layer to be fixed bits. Finally, the logic circuit obtains the bit sequence according to the information bit to be coded and the fixed bit
Further, the logic circuit determines u1 NIn the process, the sending end further obtains a code pattern with a mother code length of N, wherein the code pattern includes: m 'layer, H' row, M ═ logmN +1 layers, i.e. layer0 0, layer1 1, … …, and layer (M' -1)mAnd N and H' are respectively the 0 th line and the … … th line N-1, wherein N is the integral power of m, and m is a positive integer larger than 1.
Furthermore, the logic circuit determines the positions of K information bits to be coded in the code pattern according to the code pattern. Wherein, the position of the K information bits to be coded in the code pattern with the mother code length of N includes: the information ratioA set of row position indices H of said information bits in said code pattern and a set of layer position indices M of said information bits in said code pattern, said0≤H≤N,0<M≤logm N-1。
Since the position of the information bit in the coding map determines the performance of channel coding, besides determining the row position index set of the information bit in the coding map, it is also necessary to further determine the layer position index set of the information bit in the coding map when confirming the position of the information bit in the coding map.
The process of determining the position of the information bit in the coding map in the embodiment is implemented in two steps: firstly, selecting which row of the coding diagram to place the information bits; secondly, it is further confirmed which layer in the selected row the information bits are placed.
The specific logic circuit may determine the row position index set H where the information bit is located by any one or a combination of several of the following manners, for example: the determination of the set of position indices is made based on a Polarization Weight (PW) sequence, a bartype parameter, or a gaussian approximation, etc. Since determining the row position index set H where the information bits are located is prior art, it is not described here in detail.
Taking fig. 4 as an example, the index set H of the information bits at the row position of the coding diagram is { H } H of the information bits at H of the coding diagram according to the above-mentioned determination method3,h5,h6,h7It can be understood that the 4 information bits to be encoded are located at row 3, row 5, row 6, and row 7 of the encoding diagram shown in fig. 4, respectively.
Further, the logic circuit determines the layer position index set M of the information bits in the coding diagram in the following ways, for example:
the first embodiment is as follows: the K information bits to be coded are included from layer 1 to layerLog (i) ofmN-1) any one of the layers.
Alternatively, in the second example, the method for determining the layer position index set M of the information bits in the coding map by the logic circuit may be: the layer position index set M is determined from the row position index set H.
Specifically, the method comprises the following steps: firstly, the logic circuit selects any layer L from the layer position index set M' to be determined as the layer index corresponding to the row index H where any information bit in the row position index H is located, and H belongs to H.
And secondly, traversing H in the row position index set H by the logic circuit, and determining a layer position index set M in which all K information bits to be coded are positioned.
Further alternatively, the logic circuit may determine that the information bits are in the encoding layer position index set M by:
example three: aiming at the specific implementation of the second example:
and the logic circuit calculates the layer index L of each information bit according to the following formula for each H in the row position index set H of the information bits, wherein the formula is a function related to H.
The function related to h may be: l ═ ceil (log)2(rem(h,2m) +1)) to obtain L, wherein m is an integer and generally takes any value of 2, 3 or 4; h is a layer index corresponding to the row index H where any information bit in the row position index H is located; the rem function is the division of h by 2mThe remainder function of (a) is, for example, rem (5,2) ═ 1, the ceil function is the smallest integer greater than the number, for example, ceil (2.5) ═ 3, and the layer index L at which the information bit of each h is located can be obtained by the above formula.
The above-mentioned manner can also be described with reference to the corresponding embodiment of fig. 12, and will not be described herein again.
Finally, the logic circuit will input the bit sequence u1 NWith a new matrix G ″NMatrix multiplication is carried out to generate a coded 1 XN bit sequence
Taking (a) in fig. 6 and (b) in fig. 6 as an example, the transmitting end is based on the input bit sequence u 1 NAnd a new matrix GNGenerating N bits of layer3 as in (b) of FIG. 6, i.e. generating a coded 1 XN bit sequence
The coding device based on the above is based on the X1 N=u1 N G`NObtaining a coded bit sequence X1 NDue to the new matrix G ″)NThe method is a matrix generated according to the encoding generation matrix of Polar codes and the positions of K information bits to be encoded in an encoding graph, realizes the transformation of the encoding matrix of the existing ploar codes, and obtains new channel codes. Various simulation results show that the channel coding method not only greatly reduces the Bit Error Rate (BER) of the system when the transmitting end carries out coding, but also reduces the FAR when the receiving end carries out decoding after receiving.
For a specific channel encoding process of the logic circuit, please refer to fig. 12 and the corresponding description of the channel encoding method in fig. 12, which are not repeated herein. In a specific implementation, the encoding device may be a chip or an integrated circuit.
When part or all of the channel coding method of the above embodiment is implemented by software, referring to fig. 8, an embodiment of the present invention further provides a coding apparatus, where the apparatus includes:
a processor for generating a bit sequence X 1 NSaid X is1 N=u1 N G`NU is said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NAccording to the code generating matrix of Polar code and K information bits to be coded, the length of mother code isN is a matrix generated by the positions of the coding patterns; the code generating matrix of the Polar code is log2N matrices F2The Kronecker product of Kronecker,
the encoding method comprises the following steps that K is larger than or equal to 1 and is an integer, N is the length of a mother code, N is the integer power of m, and m is a positive integer larger than 1, wherein the K information bits to be encoded comprise, at the position of an encoding diagram with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1。
Further, the processor 1400 is further configured to generate a new matrixWherein the content of the first and second substances,
further, the processor is also used for generating a bit sequenceThe above-mentionedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
Further, the layer position index set M includes: from layer 1 to (log) mN-1) any one of the layers.
Further, the layer position index set M is determined according to the row position index set H.
The above processor may also obtain a code pattern with length N and determine the position of the information bit in the code pattern, refer to the description of the channel coding method described in fig. 12, which is not described herein again.
The channel coding method of the coding device not only reduces the BER of the coding equipment, but also can further reduce the FAR during decoding, and the channel coding method is particularly obvious when the decoding equipment decodes, thereby improving the performance of coding and decoding on the whole.
An embodiment of the present invention further provides an encoding apparatus, which includes a processor and a memory, as shown in fig. 9, where the memory is used to store program instructions.
When the coding device comprises a memory, the processor is configured to execute the program stored in the memory, and when the program is executed, the processor generates the obtained bit sequence X1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the code generating matrix of the Polar code is log 2N matrices F2The Kronecker product of Kronecker,
the method comprises the following steps that K is more than or equal to 1 and is an integer, N is the length of a mother code, N is the integral power of m, and m is a positive integer greater than 1, wherein the K information bits to be coded comprise the following positions in a coded picture with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are more than or equal to 0 and less than or equal to N, 0<M≤logmN-1。
Further, the processor is configured to generate a new matrixWherein the content of the first and second substances,n=log2 N。
further, the processor is configured to generateThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, wherein the K information bits to be coded are placed at positions corresponding to a 0-th row position index set H in the coding graph.
Further, the layer position index set M includes: from layer 1 to (log)mN-1) any one of the layers.
Further, the layer position index set M is determined according to the row position index set H.
The memory may be a physically separate unit or may be integrated with the processor.
In another optional embodiment, the memory is located outside the encoding device, and the encoding device is connected to the memory through a circuit/wire, and is configured to read and execute the program stored in the memory.
The channel coding method of the coding device not only reduces the BER of the coding equipment, but also can further reduce the FAR during decoding, and the channel coding method is particularly obvious when the decoding equipment decodes, thereby improving the performance of coding and decoding on the whole.
Another encoding apparatus provided in an embodiment of the present invention may include: a processor and a transceiver, as shown in fig. 10, the transceiver configured to receive K information bits to be encoded; and transmitting the transmission bit sequence X1 NK is not less than 1 and is an integer.
A processor for generating a bit sequence X1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the code generating matrix of the Polar code is log2N matrices F2The Kronecker product of Kronecker,
the method comprises the following steps that K is more than or equal to 1 and is an integer, N is the length of a mother code, N is the integral power of m, and m is a positive integer greater than 1, wherein the K information bits to be coded comprise the following positions in a coded picture with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0 <M≤logmN-1。
Further, the processor is further configured to generate the new matrixWherein, the first and the second end of the pipe are connected with each other,n=log2 N。
further, the processor is also configured to obtain a bit sequenceThe describedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
Further, the layer position index set M includes: from layer 1 to (lo)gmN-1) any one of the layers.
Further, the layer position index set M is obtained according to the row position index set H.
For a specific encoding process of the encoding apparatus, please refer to the information encoding embodiment and the corresponding description in fig. 12, which is not repeated herein.
Further, the encoding device is a base station or a terminal.
In another optional embodiment, the memory is located outside the encoding device, and the encoding device is connected to the memory through a circuit/wire, and is configured to read and execute the program stored in the memory.
The channel coding method of the coding device not only reduces the BER of the coding equipment, but also can further reduce the FAR during decoding, and the channel coding method is particularly obvious when the decoding equipment decodes, thereby improving the performance of coding and decoding on the whole.
Another embodiment of the present invention further provides an encoding apparatus, as shown in fig. 11, the encoding apparatus including:
the receiving module is used for acquiring K information bits to be coded, wherein K is more than or equal to 1 and is an integer;
a coding module for generating a bit sequence X1 NSaid X is1 N=u1 N G`NU of said1 NIs a bit sequence obtained from K information bits to be encoded, the new matrix G ″NGenerating a matrix according to the code of the Polar code and a matrix generated by K information bits to be coded at the position of a code pattern with the length of a mother code of N; the code generating matrix of the Polar code is log2N matrices F2The Kronecker product of Kronecker,
wherein K is more than or equal to 1 and is an integer, N is the length of the mother code, N is the integral power of m, and m is a positive integer more than 1Wherein, the position of the K information bits to be coded in the code pattern with the mother code length of N includes: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1;
A transmission module for transmitting the bit sequence X1 N。
The coding apparatus provided in the above embodiments may be a base station or a terminal.
For a specific encoding process of the encoding apparatus, please refer to the information encoding embodiment and the corresponding description in fig. 12, which is not repeated herein.
The channel coding method of the coding device not only reduces the BER of the coding equipment, but also further reduces the FAR of decoding, and the channel coding method is particularly obvious when the decoding equipment decodes.
Another embodiment of the present invention also provides a readable storage medium, including:
readable storage medium and computer program for implementing the channel coding method of any of the method embodiments of fig. 12 and of fig. 12.
Another embodiment of the present invention further provides a program product, which includes a computer program, which is stored in a readable storage medium, and which can be read by at least one processor of an encoding apparatus, and the at least one processor executes the computer program to make the encoding apparatus implement the channel coding method according to any one of the method embodiments corresponding to fig. 12 and fig. 12.
It should be noted that, the transmitting end performs decoding according to the received coding sequence, and the decoding algorithms of the schemes before the decoding algorithms are similar, which is the prior art, and will not be described in detail here. By the encoding method, the error correction capability of the decoding side is greatly improved on the decoding side.
Another embodiment of the present invention further provides a coding system, as shown in fig. 1, where the coding system includes a network device and a terminal device, where the network device includes: the various encoding devices described above; alternatively, the terminal device includes the above various encoding apparatuses.
For various device structures and functions of the specific encoding device, please refer to the detailed description of the above embodiments, which is not repeated herein.
The embodiment of the invention also provides a channel coding method, which comprises the following steps:
taking the information bit sequence to be coded as {1,1} as an example, the method is realized by another channel coding method and is represented in a factor graph form, wherein color filled nodes represent information bits, dotted line shaded filled nodes represent frozen bits, and the rest white unfilled nodes represent variable nodes needing to be calculated in the coding process.
The dashed line in the factor graph indicates that the variable node or check relationship is not utilized yet and is in an inactive state.
In the above description, a value not yet determined is represented by X; x is only an expression method, and all undetermined values can be marked as 2; values that have not been determined are generally labeled 0.
From the perspective of the factor graph, the values corresponding to all the variable nodes in the rightmost column in the factor graph are calculated, and the encoding process is completed correspondingly, and the specific encoding process is as follows:
step 1: 4 variable nodes as column 3 of the graph activation factor graph 17-1, wherein if the information of a certain variable node is known, it is set to a corresponding known value; otherwise, it is set to X. The sending end obtains a sequence according to the activation factor graph 17-1: { x, x, x,1}, called bit sequence C1.
Step 2: the second half of the sequence C1, which is taken to be the two bits x and 1, corresponds to the last two variable nodes as in column 2 of the graph activation factor graph 17-2 and is referred to as the sequence C2.
And 4, step 4: for example, in the activation factor graph 17-4, the first half part of the sequence C3 and the sequence C2 are subjected to XOR to obtain a sequence X which is called a sequence C4; this process corresponds to the third variable node in column 1 of the activation factor graph 17-4: since the variable node is the freeze bit, the sequence C4 is set to 0.
And 5: for example, in the activation factor graph 17-5, the sequence C4 and the sequence C3 are subjected to XOR to obtain a sequence 1, and the third variable node corresponding to the 2 nd column in the activation factor graph 17-5, namely the sequence C2, is updated to be a sequence {1,1 }.
Step 6: for example, in the activation factor graph 17-6, the sequence C2 is XOR-ed with the first half of the sequence C1 to obtain the sequence { x, x }, which is called the sequence C5: corresponding to the first two variable nodes in column 2 of the activation factor graph 17-6.
And 7: for example, in FIG. 17-7, the second half X of the sequence C5 is taken to correspond to the second variable node in column 1 of the activation factor graph 17-7: since the variable node corresponds to an information bit, it is set to uncoded information 1 to be transmitted, referred to as sequence C6.
And 8: performing exclusive or on the sequence C6 and the first half part of the sequence C5 to obtain a sequence X which is called a sequence C7; this process corresponds to the first variable node in column 1 of the activation factor graph 17-8: since the variable node is a freeze bit, C7 is set to 0.
And step 9: the second half of C5 is set as sequence C6, and the first half of sequence C5 is set as the result of XOR between sequence C6 and sequence C7: i.e., sequence C5 is updated to 1, 1.
Step 10: setting the second half part of the sequence C1 as the sequence C2, and setting the first half part of the sequence C1 as the result after XOR of the sequence C2 and the sequence C5: i.e., C1 is updated to 0,0,1, 1.
Step 11: and outputting the coded bit sequence {0,0,1,1} by the coding mode.
When part or all of the channel coding method of the above embodiment is implemented by software, an encoding apparatus may also be provided for the above encoding process, and the apparatus may include a processor, where the processor completes the above encoding process; when implemented by hardware, the present embodiment may also provide an encoding apparatus, including: the input interface circuit is used for receiving K information bits to be coded, wherein K is more than or equal to 1 and is an integer; a logic circuit for implementing the channel coding method; and the output interface circuit is used for outputting the coded bit sequence. In a specific implementation, the encoding device may be a chip or an integrated circuit. The embodiment of the invention also provides an encoding device, which comprises a processor and a memory, wherein the memory is used for storing the program instructions; the processor is configured to execute the program stored in the memory, and when the program is executed, the processor is configured to execute the above channel coding method.
Further, the memory may be a physically separate unit or may be integrated with the processor, and in an alternative embodiment, the memory is located outside the encoding device, and the encoding device is connected to the memory through a circuit/wire, and is used for reading and executing the program stored in the memory.
Another encoding apparatus provided in an embodiment of the present invention may include: the device comprises a processor and a transceiver, wherein the transceiver is used for receiving K information bits to be coded; and sending the coded bit sequence, wherein K is more than or equal to 1 and is an integer; the processor is configured to perform the above-described channel coding method.
Another encoding apparatus provided in the embodiment of the present invention may include a plurality of encoding units, and each encoding process of the channel encoding method is completed by each encoding unit.
Based on the description of the various embodiments described above, the encoding apparatus described above may be a network device or a terminal device (e.g., terminal device # 1 or terminal device #2) shown in fig. 1. Specifically, in uplink transmission, the encoding apparatus is specifically a terminal device, for example, a user equipment UE, and the terminal device has a function of implementing the channel encoding method described in each of the above embodiments. In downlink transmission, the coding apparatus is specifically a network device, for example, a base station. The terminal device or the network device has a function of implementing the channel coding method described in each of the above embodiments. These functions may be implemented by hardware, or by hardware executing corresponding software. The hardware or software includes one or more units corresponding to the above functions.
In addition, optionally, in order to further improve the function of the encoding apparatus, the encoding apparatus may further include one or more of an input unit, a display unit, an audio circuit (not shown in the figure), a camera, a sensor, and the like, and the audio circuit may further include a speaker, a microphone, and the like.
Optionally, based on the channel coding method provided in the foregoing embodiments, another embodiment of the present invention further provides a decoding method, as shown in fig. 13, where the method includes:
s1300, the receiving end (decoding side) receives the information bits to be decoded.
S1302, the receiving end decodes according to a decoding algorithm, and obtains information bits according to the positions of the information bits in the code map after the decoding is finished.
The decoding algorithm may be a serial cancellation decoding algorithm or a serial cancellation list decoding algorithm.
The decoding operation at the decoding end in the embodiment of the present application is roughly: and after receiving the information bits to be decoded, decoding according to a decoding algorithm, and after decoding is finished, obtaining the information bits according to the positions of the information bits in the code map.
For the above method for determining the position of the information bit in the code map and the description of the code map, please refer to the description of the embodiments corresponding to fig. 3-6, which is not repeated herein.
Further, based on the same inventive concept of the decoding method provided in the foregoing embodiment, as shown in fig. 14, an embodiment of the present application further provides a decoding apparatus 1400, where the decoding apparatus 1400 is configured to perform the decoding method. The decoding device specifically includes an obtaining module 1401, configured to obtain a bit sequence of information to be decoded; the decoding module 1402 is configured to perform decoding according to a decoding algorithm, and obtain information bits according to positions of the information bits in the encoded map after the decoding is completed.
Some or all of the above decoding methods may be implemented by hardware or software, and when implemented by hardware, the decoding apparatus 1500 includes: an input interface circuit 1501 for acquiring a bit sequence to be decoded; a logic circuit 1502 for performing the above decoding method; the output interface circuit 1503 outputs the decoded sequence.
Optionally, the decoding apparatus 1500 may be a chip or an integrated circuit when implemented.
Optionally, when part or all of the decoding method of the foregoing embodiment is implemented by software, as shown in fig. 16, the decoding apparatus 1600 includes: a memory 1601 for storing a program; the processor 1602 is configured to execute the program stored in the memory 1601, and when the program is executed, the decoding apparatus 1600 may implement the decoding method provided in the foregoing embodiments.
Alternatively, the memory 1601 may be a physically separate unit or may be integrated with the processor 1602.
Alternatively, when part or all of the decoding method of the above embodiments is implemented by software, the decoding apparatus 1500 may only include the processor 1602. The memory 1601 for storing programs is located outside the decoding device 1600, and the processor 1602 is connected to the memory 1601 through a circuit/wire for reading and executing the programs stored in the memory 1601.
The processor 1602 may be a Central Processing Unit (CPU), a Network Processor (NP), or a combination of a CPU and an NP.
The processor 1602 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a Programmable Logic Device (PLD), or a combination thereof. The PLD may be a Complex Programmable Logic Device (CPLD), a field-programmable gate array (FPGA), a General Array Logic (GAL), or any combination thereof.
The memory 1601 may include volatile memory (volatile memory), such as random-access memory (RAM); the memory 1601 may also include a non-volatile memory (non-volatile memory), such as a flash memory (flash memory), a Hard Disk Drive (HDD) or a solid-state drive (SSD); the memory 1601 may also include a combination of the above kinds of memories.
An embodiment of the present application further provides a computer storage medium storing a computer program, where the computer program includes instructions for executing the encoding method shown in fig. 3 and the decoding method provided in fig. 13 in the foregoing embodiment.
Embodiments of the present application also provide a computer program product containing instructions, which when run on a computer, cause the computer to execute the decoding method shown in fig. 13.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While the preferred embodiments of the present application have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all alterations and modifications as fall within the scope of the application.
It will be apparent to those skilled in the art that various changes and modifications may be made in the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. Thus, if such modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to encompass such modifications and variations.
Claims (27)
1. A method of channel coding, comprising:
obtaining a bit sequence X1 NSaid X is1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer which is more than 1, wherein the K information bits to be coded comprise, at the position of a code pattern with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0 <M≤logmN-1;
Transmitting the bit sequence X1 N。
2. The method of claim 1, wherein the step of applying the coating comprises applying a coating to the substrateThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
3. The method of claim 1, wherein D is1 NThe method comprises the following steps: bit sequence C1 NThe bit and the fixed bit corresponding to the row position index set H in the code pattern, the bit sequence C1 NIs according to the coding patternAnd carrying out polarization coding to obtain a bit sequence.
4. The method according to any of claims 1-3, wherein the layer position index set M comprises: from layer 1 to (log)mN-1) any one of the layers.
5. A method according to any one of claims 1-3, wherein the set of layer position indices M is determined from the set of row position indices H.
6. An encoding apparatus, comprising:
the input interface circuit is used for acquiring K information bits to be coded, wherein K is more than or equal to 1 and is an integer;
logic circuit for generating a bit sequence X1 NSaid X is 1 N=D1 NFNWherein, FNIs an N × N matrix, andFNis log of2N matrices F2The kronecker product of (a-c),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer which is more than 1, wherein the K information bits to be coded comprise, at the position of a code pattern with the mother code length of N: the row position index set H of the information bit in the coding chart and the row position index set H of the information bit in the coding chartLayer position index set M, H is more than or equal to 0 and less than or equal to N, 0<M≤logmN-1;
An output interface circuit for outputting the bit sequence X1 N。
7. The encoding apparatus of claim 6, wherein the logic circuit is further configured to generate a bit sequenceThe above-mentionedThe method comprises the following steps: the above-mentionedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, wherein the K information bits to be coded are placed at positions corresponding to a 0-th row position index set H in the coding graph.
8. The encoding apparatus of claim 6, wherein the logic circuit is further configured to generate a bit sequence D1 NSaid D is1 NThe method comprises the following steps: bit sequence C1 NThe bit and the fixed bit corresponding to the row position index set H in the code pattern, the bit sequence C1 NIs according to the coding patternAnd carrying out polarization coding to obtain a bit sequence.
9. The encoding apparatus according to any one of claims 6-8, wherein the layer position index set M comprises: from layer 1 to logm N-1 layer of any of the above.
10. The encoding apparatus according to any one of claims 6-8, wherein the layer position index set M is determined according to the row position index set H.
11. An encoding apparatus, characterized in that the apparatus comprises:
a processor for generating a bit sequence X1 NSaid X is1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer which is more than 1, wherein the K information bits to be coded comprise, at the position of a code pattern with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0 <M≤logmN-1。
12. The encoding apparatus of claim 11, wherein the processor is further configured to generate a bit sequenceThe above-mentionedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
13. The encoding apparatus of claim 11, wherein the processor is further configured to generate a bit sequence D1 NSaid D is1 NThe method comprises the following steps: bit sequence C1 NThe bit and the fixed bit corresponding to the row position index set H in the code pattern, the bit sequence C1 NIs according to the coding patternAnd carrying out polarization coding to obtain a bit sequence.
14. The encoding apparatus according to any one of claims 11-13, wherein the layer position index set M comprises: from layer 1 to (log)mN-1) any one of the layers.
15. The encoding apparatus according to any one of claims 11-13, wherein the layer position index set M is determined according to the row position index set H.
16. An encoding apparatus, characterized in that the apparatus comprises:
a memory for storing program instructions;
A processor for executing the program stored in the memory, for generating a bit sequence X when the program is executed1 NSaid X is1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is larger than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer larger than 1, wherein the positions of the K information bits to be coded in a code pattern with a mother code length of N comprise: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1。
17. The encoding apparatus of claim 16, wherein the processor is further configured to generate a bit sequenceThe above-mentionedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
18. The encoding apparatus of claim 16, wherein the processor is further configured to generate a bit sequence D1 ND is said to1 NThe method comprises the following steps: bit sequence C1 NA bit corresponding to a row position index set H in the coding diagram and a fixed bit, and the bit sequence C1NIs according to the coding patternAnd carrying out polarization coding to obtain a bit sequence.
19. The encoding apparatus according to any one of claims 16-18, wherein the layer position index set M comprises: from layer 1 to (log)mN-1) any one of the layers.
20. The encoding apparatus according to any one of claims 16-18, wherein the layer position index set M is determined according to the row position index set H.
21. An encoding apparatus, comprising:
the receiving unit is used for acquiring K information bits to be coded, wherein K is more than or equal to 1 and is an integer;
a coding unit for generating a bit sequence X1 NSaid X is1 N=D1 NFNWherein F isNIs an N × N matrix, andFNis log2N matrices F2The kronecker product of (a) and (b),n is the length of the mother code, D1 NAccording to the positions of K information bits to be coded in the code pattern whose mother code length is N, the input bit sequence u is coded 1 NA bit sequence obtained after encoding, saidThe method comprises the following steps of generating N bit sequences according to K information bits to be coded, wherein K is more than or equal to 1 and is an integer, N is the integral power of m, and m is a positive integer which is more than 1, wherein the K information bits to be coded comprise, at the position of a code pattern with the mother code length of N: the row position index set H of the information bits in the coding graph and the layer position index set M of the information bits in the coding graph are equal to or more than 0 and equal to or less than N, and 0<M≤logmN-1;
A transmission unit for transmitting the bit sequence X1 N。
22. The encoding apparatus of claim 21, wherein the encoding unit is further configured to generate a bit sequenceThe above-mentionedThe method comprises the following steps: the K information bits to be coded and N-K fixed bits, where the K information bits to be coded are placed at positions corresponding to a 0 th row position index set H in the code map.
23. The encoding apparatus of claim 21, wherein the encoding unit is further configured to generate a bit sequence D1 NSaid D is1 NThe method comprises the following steps: bit sequence C1 NThe bit and the fixed bit corresponding to the row position index set H in the code pattern, the bit sequence C 1 NIs according to the coding patternAnd carrying out polarization coding to obtain a bit sequence.
24. The encoding apparatus of any of claims 21-23, wherein the set of layer position indices M packetsComprises the following steps: from layer 1 to (log)mN-1) any one of the layers.
25. The encoding apparatus according to any one of claims 21-23, wherein the layer position index set M is determined according to the row position index set H.
26. The apparatus of claim 21, wherein the encoding apparatus is a base station or a terminal.
27. A coding system comprising: network equipment and terminal equipment, characterized in that the network equipment comprises an encoding device according to any one of claims 6-10; or, comprising an encoding device according to any one of claims 11-15; or, comprising an encoding device according to any one of claims 16-20; or, comprising an encoding device according to any one of claims 21-26; alternatively, the first and second electrodes may be,
the terminal device comprises any one of the encoding apparatus of claims 6-10; or, comprising an encoding device according to any one of claims 11-15; or, comprising an encoding device according to any one of claims 16-20; or, comprising an encoding device according to any one of claims 21-26.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810031522.6A CN110034843B (en) | 2018-01-12 | 2018-01-12 | Channel coding method and coding device |
EP19738449.8A EP3734873B1 (en) | 2018-01-12 | 2019-01-14 | Channel encoding method and encoding device |
PCT/CN2019/071662 WO2019137537A1 (en) | 2018-01-12 | 2019-01-14 | Channel encoding method and encoding device |
US16/926,211 US11362677B2 (en) | 2018-01-12 | 2020-07-10 | Channel encoding method and encoding apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810031522.6A CN110034843B (en) | 2018-01-12 | 2018-01-12 | Channel coding method and coding device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110034843A CN110034843A (en) | 2019-07-19 |
CN110034843B true CN110034843B (en) | 2022-06-14 |
Family
ID=67219411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810031522.6A Active CN110034843B (en) | 2018-01-12 | 2018-01-12 | Channel coding method and coding device |
Country Status (4)
Country | Link |
---|---|
US (1) | US11362677B2 (en) |
EP (1) | EP3734873B1 (en) |
CN (1) | CN110034843B (en) |
WO (1) | WO2019137537A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155410A (en) * | 2022-05-23 | 2023-12-01 | 华为技术有限公司 | Coding and decoding method and device |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE508549T1 (en) | 2005-05-25 | 2011-05-15 | Mitsubishi Electric Corp | CODING MATRIX IN A MIMO SYSTEM |
US8347186B1 (en) * | 2012-04-19 | 2013-01-01 | Polaran Yazilim Bilisim Danismanlik Ithalat Ihracat Sanayi Ticaret Limited Sirketi | Method and system for error correction in transmitting data using low complexity systematic encoder |
CN102800243B (en) * | 2012-07-18 | 2015-06-24 | 长沙高新开发区湖大科园诺美网络技术有限公司 | Anti-counterfeiting annular code and encoding method thereof |
CN104079370B (en) * | 2013-03-27 | 2018-05-04 | 华为技术有限公司 | channel decoding method and device |
USRE49547E1 (en) * | 2013-08-20 | 2023-06-06 | Lg Electronics Inc. | Method for transmitting data by using polar coding in wireless access system |
JP6184603B2 (en) * | 2013-12-24 | 2017-08-23 | 華為技術有限公司Huawei Technologies Co.,Ltd. | POLAR code decoding method and decoding apparatus |
WO2015120876A1 (en) * | 2014-02-11 | 2015-08-20 | Telefonaktiebolaget L M Ericsson (Publ) | Wlan - 3gpp interworking |
US9722651B2 (en) * | 2015-01-09 | 2017-08-01 | Qualcomm Incorporated | Adaptive channel coding using polarization |
CN106982172B (en) * | 2016-01-18 | 2020-04-28 | 华为技术有限公司 | Method and communication device for determining size of transmission block of polarization code |
US9941906B2 (en) * | 2016-02-18 | 2018-04-10 | Samsung Electronics Co., Ltd. | Sliced polar codes |
CN105811998B (en) * | 2016-03-04 | 2019-01-18 | 深圳大学 | A kind of polarization code constructing method and polarization code coding/decoding system based on density evolution |
CN106230553A (en) * | 2016-07-27 | 2016-12-14 | 块互动(北京)科技有限公司 | Data transmission method and method of reseptance, data transmission terminal and reception terminal |
CN108631945B (en) * | 2016-08-11 | 2019-03-26 | 华为技术有限公司 | Method, apparatus and equipment for Polarization Coding |
CN107342846B (en) * | 2017-06-27 | 2023-01-13 | 华为技术有限公司 | Coding method, wireless device and chip |
-
2018
- 2018-01-12 CN CN201810031522.6A patent/CN110034843B/en active Active
-
2019
- 2019-01-14 EP EP19738449.8A patent/EP3734873B1/en active Active
- 2019-01-14 WO PCT/CN2019/071662 patent/WO2019137537A1/en unknown
-
2020
- 2020-07-10 US US16/926,211 patent/US11362677B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN110034843A (en) | 2019-07-19 |
US11362677B2 (en) | 2022-06-14 |
WO2019137537A1 (en) | 2019-07-18 |
US20200343913A1 (en) | 2020-10-29 |
EP3734873A1 (en) | 2020-11-04 |
EP3734873A4 (en) | 2021-03-03 |
EP3734873B1 (en) | 2023-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11923973B2 (en) | Method and apparatus for encoding data using a polar code | |
JP7408701B2 (en) | Polar code encoding method and device | |
US10931400B2 (en) | Decoding method and apparatus in wireless communication system | |
CN107659381B (en) | Coding and decoding method and device | |
JP5919029B2 (en) | Method for reducing latency in LTE downlink implementation | |
EP3614701A1 (en) | Polar code transmission method and device | |
JP7216011B2 (en) | Polar code rate matching method and apparatus | |
CN108809332B (en) | Polar code transmission method and device | |
US11362760B2 (en) | Polar code rate matching method and apparatus | |
CN111385059B (en) | Method and apparatus for polar coded modulation | |
CN111446969A (en) | Polarization code coding method and device for cascading CRC (Cyclic redundancy check) codes | |
CN110034843B (en) | Channel coding method and coding device | |
CN109391345B (en) | Polar code encoding method and device | |
CN114079530A (en) | Encoding method and device | |
CN111447042B (en) | Polarization coding and decoding method and device | |
WO2016000197A1 (en) | Decoding method and device | |
CN108880565B (en) | Coding and decoding method of polarization code and communication equipment | |
CN109088698B (en) | Coding method and communication equipment | |
CN111525980B (en) | Decoding method and device | |
CN115529105A (en) | Network coding method and device | |
CN111600613B (en) | Verification method, verification device, decoder, receiver and computer storage medium | |
CN109474383B (en) | Encoding method and device | |
CN109474379B (en) | Encoding method and device | |
CN109474376B (en) | Encoding method and device | |
CN109474378B (en) | Encoding method and device |
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 |