CN110233698B - Method for encoding and decoding polarization code, transmitting device, receiving device, and medium - Google Patents

Method for encoding and decoding polarization code, transmitting device, receiving device, and medium Download PDF

Info

Publication number
CN110233698B
CN110233698B CN201810183937.5A CN201810183937A CN110233698B CN 110233698 B CN110233698 B CN 110233698B CN 201810183937 A CN201810183937 A CN 201810183937A CN 110233698 B CN110233698 B CN 110233698B
Authority
CN
China
Prior art keywords
row
index
code
bits
crc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810183937.5A
Other languages
Chinese (zh)
Other versions
CN110233698A (en
Inventor
徐旻子
樊婷婷
徐志昆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ziguang Zhanrui Communication Technology Co Ltd
Original Assignee
Beijing Ziguang Zhanrui Communication Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ziguang Zhanrui Communication Technology Co Ltd filed Critical Beijing Ziguang Zhanrui Communication Technology Co Ltd
Priority to CN201810183937.5A priority Critical patent/CN110233698B/en
Publication of CN110233698A publication Critical patent/CN110233698A/en
Application granted granted Critical
Publication of CN110233698B publication Critical patent/CN110233698B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • H04L1/0058Block-coded modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes

Abstract

A coding and decoding method, a sending device, a receiving device and a medium of a polarization code are provided, wherein the coding method of the polarization code comprises the following steps: acquiring a polarization code generating matrix, and calculating the row weight of the polarization code generating matrix; determining corresponding positions of CRC bits and information bits in an uncoded bit sequence based on row repetition of the polarization code generation matrix; placing the CRC bits and the information bits at corresponding positions in the uncoded bit sequence to generate an uncoded bit sequence; and inputting the uncoded bit sequence into a polar code encoder to generate a code word of the polar code. By applying the scheme, the number of low-weight code words in the generated polarization code is small, and the polarization code has better error correction performance under the condition of high signal-to-noise ratio, so that the performance of the CRC cascaded polarization code under the condition of high signal-to-noise ratio is improved.

Description

Method for encoding and decoding polarization code, transmitting device, receiving device, and medium
Technical Field
The present invention relates to communication systems, and in particular, to a method, a transmitting device, a receiving device, and a medium for encoding and decoding a polarization code.
Background
Due to the low encoding and decoding complexity and good error correction performance, polar codes are likely to be used in short packet data transmission scenarios in 5G systems.
In an existing coding scheme of Cyclic Redundancy Check (CRC) concatenated Polarization codes, firstly, a gaussian approximation construction method or a Polarization Weight (PW) construction method is adopted to calculate the reliability of subchannels corresponding to N bits, and then, indexes of the first K + X positions with the highest reliability are selected as a set a. For a source sequence of K bits, i.e. information bits, it is first fed into a CRC encoder to generate a CRC code of X bits, i.e. CRC bits. And attaching the CRC code to the back of the information source sequence, placing the CRC code at the position of the set A, and inputting the CRC code into a polarization code encoder to generate a polarization code. And modulating the generated cascade polar code to generate a modulation symbol. The modulation symbols are sent to a demodulator after channel noise is added, and the demodulated information is sent to a CRC Serial Cancellation List (SCL) decoder for decoding.
In the existing scheme of the CRC-polar, the weight spectrum of the constructed concatenated polar code is not optimized, and the number of low-weight code words is large, so that the error correction performance of the concatenated polar code under a high signal-to-noise ratio is influenced, and the performance of the CRC-polar code under the high signal-to-noise ratio is poor.
Disclosure of Invention
The technical problem solved by the embodiment of the invention is how to improve the performance of the CRC cascaded polar code under high signal-to-noise ratio.
To solve the foregoing technical problem, an embodiment of the present invention provides a method for encoding a polarization code, where the method includes: acquiring a polarization code generating matrix, and calculating the row weight of the polarization code generating matrix; determining corresponding positions of CRC bits and information bits in an uncoded bit sequence based on row repetition of the polarization code generation matrix; placing the CRC bits and the information bits at corresponding positions in the uncoded bit sequence to generate an uncoded bit sequence; and inputting the uncoded bit sequence into a polar code encoder to generate a code word of the polar code.
Optionally, before placing the CRC bits and the information bits, further comprising: determining a target bit of the information bits that participates in generating the CRC bits; generating the CRC bits based on the target bits participating in generating the CRC bits.
Optionally, the determining a target bit of the information bits participating in generating the CRC bit includes: determining, as set C, an index of a corresponding position of a target bit in the uncoded bit sequence that participates in generating the CRC bit according to the following formula:
C={i:Wi≤mWmin,i∈B};
wherein: set B is an index of the corresponding position of the information bit in the uncoded bit sequence, WminFor the minimum lineweight corresponding to set B,
Figure BDA0001589252720000021
n is the number of rows of the polar code generator matrix, WiGenerating row weights for the ith row in the matrix for the polarization code.
Optionally, the calculating the row weight of the polarization code generator matrix includes: calculating the row weight of the ith row of the polarization code generation matrix according to the following formula:
Wi=2B(i)
wherein: wiAnd B (i) is the row weight of the ith row in the polarization code generating matrix, B (i) is the number of code words 1 in the binary code corresponding to the numerical value i, i is more than or equal to 1 and is less than or equal to N, and N is the row number of the polarization code generating matrix.
Optionally, the determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence comprises: selecting the front K + X row with the maximum row weight in the polarization code generating matrix, and taking the index of the K + X row as a set A, wherein K is the number of the information bits, and X is the number of the CRC bits; taking the index of the row with the row weight of N in the set A and the index of the first X-1 row with the smallest row weight as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence; and taking the other indexes except the set D in the set A as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
Optionally, the determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence comprises: generating a reliability sequence based on a Gaussian approximation construction method or a PW construction method; selecting the first K + X positions with the highest reliability in the reliability sequence, and taking the indexes of the K + X positions as a set A', wherein K is the number of the information bits, and X is the number of the CRC bits; selecting an index with the maximum corresponding row weight and the highest reliability from other indexes of the set A ' except for the indexes of the set A ' in the set {0, 1, 2, …, N-1}, and replacing the index corresponding to the minimum row weight in the set A ' to generate a set A; taking the index of the row with the row length of N in the set A and the index of X-1 positions with the minimum reliability as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence; and taking the other indexes except the set D in the set A as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
Optionally, the minimum line corresponding to the set a' is duplicated into one or more lines; when the minimum row corresponding to the set A ' is repeated into a plurality of rows, selecting the index of a plurality of positions with the maximum row weight, which is greater than the minimum row weight corresponding to the set A ' and has the highest reliability, and replacing the index corresponding to the minimum row weight in the set A ' to generate the set A.
Optionally, the determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence comprises: generating a reliability sequence based on a Gaussian approximation construction method or a PW construction method; selecting the first K + X positions with the highest reliability in the reliability sequence, and taking the index of the K + X positions as a set A', wherein K is the number of the information bits, and X is the number of the CRC bits; taking the index of the row with the row length of N in the set A' and the index of X-1 positions with the lowest reliability as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence; and taking the other indexes except the set D in the set A' as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
The embodiment of the invention provides a decoding method of a polarization code, which comprises the following steps: receiving a code word of a polarization code, wherein the code word of the polarization code is generated by adopting any one of the above coding methods of the polarization code; and processing the code words of the polarization code based on a decoding algorithm.
Optionally, the decoding algorithm includes any one of: OSD algorithm, SCL algorithm.
An embodiment of the present invention provides a transmission device, including: the calculation unit is suitable for acquiring a polarization code generating matrix and calculating the row weight of the polarization code generating matrix; a first determining unit adapted to determine corresponding positions of CRC bits and information bits in an uncoded bit sequence based on row weights of the polarization code generation matrix; a first generating unit adapted to place the CRC bits and the information bits at corresponding positions in the uncoded bit sequence, generating an uncoded bit sequence; and the second generating unit is suitable for inputting the uncoded bit sequence into the polar code encoder to generate a code word of the polar code.
Optionally, the sending device further includes: a second determination unit adapted to determine a target bit of the information bits that participates in generating the CRC bits; a third generating unit adapted to generate the CRC bits based on the target bits participating in the generation of the CRC bits.
Optionally, the second determining unit is adapted to determine, as a set C, an index of a corresponding position in the uncoded bit sequence of a target bit participating in generating the CRC bit according to the following formula:
C={i:Wi≤mWmin,i∈B};
wherein: set B is an index of the corresponding position of the information bit in the uncoded bit sequence, WminFor the minimum lineweight corresponding to set B,
Figure BDA0001589252720000041
n is the number of rows of the polar code generator matrix, WiGenerating row weights for the ith row in the matrix for the polarization code.
Optionally, the calculating unit is adapted to calculate a row weight of an ith row of the polarization code generator matrix according to the following formula:
Wi=2B(i)
wherein: wiAnd B (i) is the row weight of the ith row in the polarization code generating matrix, B (i) is the number of code words 1 in the binary code corresponding to the numerical value i, i is more than or equal to 1 and is less than or equal to N, and N is the row number of the polarization code generating matrix.
Optionally, the first determining unit includes: a first selecting subunit, adapted to select, in the polar code generating matrix, a first K + X row with a largest row weight, and use an index of the K + X row as a set a, where K is the number of the information bits and X is the number of the CRC bits; a first determining subunit, adapted to use the index of the row with row weight N in the set a and the index of the first X-1 row with the smallest row weight as a set D, where the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence; a second determining subunit, adapted to use the other indexes in the set a except the set D as a set B, where the set B is an index of a corresponding position of the information bit in an uncoded bit sequence.
Optionally, the first determining unit includes: a generating subunit adapted to generate a reliability sequence based on a gaussian approximation construction method or a PW construction method; a second selecting subunit, adapted to select, in the reliability sequence, the first K + X positions with the highest reliability, and use the indexes of the K + X positions as a set a', where K is the number of the information bits and X is the number of the CRC bits; a third selecting subunit, adapted to select, from the indexes except for the other indexes of the set a ' in the set {0, 1, 2, …, N-1}, an index at a position where a corresponding row weight is largest and is larger than a minimum row weight corresponding to the set a ' and has the highest reliability, and replace the index corresponding to the minimum row weight in the set a ', thereby generating a set a; a third determining subunit, adapted to use the index of the row with the row number of N in the set a and the index of the X-1 positions with the lowest reliability as a set D, where the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence; a fourth determining subunit, adapted to use the other indexes in the set a except the set D as a set B, where the set B is an index of a corresponding position of the information bit in an uncoded bit sequence.
Optionally, the minimum line corresponding to the set a' is duplicated into one or more lines; when the minimum row corresponding to the set a ' is duplicated into a plurality of rows, the third selecting subunit is adapted to select the index of a plurality of positions having the largest row weight and the highest reliability, which are greater than the minimum row weight corresponding to the set a ', and replace the index corresponding to the minimum row weight in the set a ', so as to generate the set a.
Optionally, the first determining unit includes: a generating subunit adapted to generate a reliability sequence based on a gaussian approximation construction method or a PW construction method; (ii) a A fourth selecting subunit, adapted to select, in the reliability sequence, the first K + X positions with the highest reliability, and use the indexes of the K + X positions as a set a', where K is the number of the information bits and X is the number of the CRC bits; a fifth determining subunit, adapted to use the index of the row with the row number of N in the set a' and the index of the X-1 positions with the lowest reliability as a set D, where the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence; a sixth determining subunit, adapted to use the other indexes of the set a' except the set D as a set B, where the set B is an index of a corresponding position of the information bit in an uncoded bit sequence.
An embodiment of the present invention provides a receiving device, including: a receiving unit, adapted to receive a code word of a polar code, the code word of the polar code being generated by using any one of the above-mentioned encoding methods of the polar code; a processing unit adapted to process codewords of the polar code based on a decoding algorithm.
Optionally, the decoding algorithm includes any one of: OSD algorithm, SCL algorithm.
The embodiment of the present invention provides a computer-readable storage medium, which is a non-volatile storage medium or a non-transitory storage medium, and has stored thereon a computer instruction, where the computer instruction executes, when running, the steps of any one of the above-mentioned methods for encoding a polarization code or decoding a polarization code.
An embodiment of the present invention provides a sending device, including a memory and a processor, where the memory stores computer instructions executable on the processor, and the processor executes, when executing the computer instructions, the steps of any one of the above-mentioned polarization code encoding methods.
The embodiment of the present invention provides a receiving device, which includes a memory and a processor, where the memory stores computer instructions executable on the processor, and the processor executes the computer instructions to execute the steps of any one of the above methods for decoding polarization codes.
Compared with the prior art, the technical scheme of the embodiment of the invention has the following beneficial effects:
according to the embodiment of the invention, the row weight of the polarization code generation matrix is calculated, the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence are determined based on the row weight of the polarization code generation matrix, then the information bits and the CRC bits are placed based on the corresponding positions, and the code words of the polarization code are generated, so that the number of low-weight code words in the generated polarization code is small, and the high-signal-to-noise ratio has good error correction performance, and the performance of the CRC cascaded polarization code under the high-signal-to-noise ratio is improved.
Furthermore, by jointly optimizing the corresponding positions of the CRC bits and the information bits and the target bits participating in the generation of the CRC bits, the number of low-weight code words in the generated polarization code can be further reduced, and the polarization code has better error correction performance under the condition of high signal-to-noise ratio, so that the performance of the CRC cascaded polarization code under the condition of high signal-to-noise ratio is further improved.
Drawings
Fig. 1 is a schematic diagram of an encoding process and a decoding process of a conventional CRC concatenated polar code;
fig. 2 is a flowchart of a method for encoding a polarization code according to an embodiment of the present invention;
fig. 3 is a flowchart of a decoding method of a polarization code according to an embodiment of the present invention;
FIG. 4 is a schematic diagram of an encoding process and a decoding process of a polarization code according to an embodiment of the present invention;
fig. 5 is a schematic structural diagram of a sending device according to an embodiment of the present invention;
fig. 6 is a schematic structural diagram of a receiving device according to an embodiment of the present invention.
Detailed Description
Referring to fig. 1, the encoding process and the decoding process of the existing CRC concatenated polar code may include the following steps:
the sending end executes the steps S101 to S104 to generate and send the cascade polarization code:
step S101 determines the positions of the information bits and CRC bits based on the reliability.
Step S102, based on the information bits, generates CRC bits by a CRC encoder.
Step S103, generating CRC cascade polarization code through Polar coder.
And step S104, modulating the generated cascade polar code and then transmitting the modulated cascade polar code.
The modulated signal is received by a receiving end after being transmitted through a wireless channel, and the receiving end performs steps S105 to S106:
step S105 demodulates the received signal.
Step S106, decoding the received signal through the SCL decoder.
In the existing CRC-polar scheme, the positions of information bits and CRC bits are determined based on reliability, the weight spectrum of the constructed cascaded polar code is not optimized, and the number of low-weight code words is large, so that the error correction performance of the cascaded polar code under a high signal-to-noise ratio is influenced, and the performance of the CRC cascaded polar code under the high signal-to-noise ratio is poor.
According to the embodiment of the invention, the row weight of the polarization code generation matrix is calculated, the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence are determined based on the row weight of the polarization code generation matrix, then the information bits and the CRC bits are placed based on the corresponding positions, and the code words of the polarization code are generated, so that the number of low-weight code words in the generated polarization code is small, and the high-signal-to-noise ratio has good error correction performance, and the performance of the CRC cascaded polarization code under the high-signal-to-noise ratio is improved.
In order to make the aforementioned objects, features and advantages of the present invention comprehensible, embodiments accompanied with figures are described in detail below.
Referring to fig. 2, an embodiment of the present invention provides a method for encoding a polarization code, which may include the following steps:
step S201, a polar code generating matrix is obtained, and row weight of the polar code generating matrix is calculated.
In practical application, in the existing coding scheme of the CRC cascaded polar code, the reliability is calculated by adopting a gaussian approximation construction method or a PW construction method, then the first K + X positions with the highest reliability are selected as corresponding positions of CRC bits and information bits in the polar code generating matrix, the weight spectrum of the constructed cascaded code is not optimized, and the number of low-weight code words is large, so that the error correction performance of the cascaded polar code under a high signal-to-noise ratio is influenced, and the performance of the CRC cascaded polar code under the high signal-to-noise ratio is poor.
According to the embodiment of the invention, the number of low-weight code words can be reduced by calculating the row weight of the polar code generating matrix and determining the corresponding positions of CRC (cyclic redundancy check) bits and information bits in the uncoded bit sequence based on the row weight of the polar code generating matrix.
In a specific implementation, the polar code generation matrix may be a two-dimensional matrix, for example, the polar code generation matrix may be a two-dimensional matrix with N rows and N columns, where N is a positive integer.
In an embodiment of the present invention, the row weight of the ith row of the polar code generator matrix is calculated according to the following formula:
Wi=2B(i)
where i is the row number index, WiAnd B (i) is the row weight of the ith row in the polarization code generating matrix, B (i) is the number of code words 1 in the binary code corresponding to the numerical value i, i is more than or equal to 1 and is less than or equal to N, and N is the row number of the polarization code generating matrix.
Step S202, based on the row repetition of the polarization code generating matrix, determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence.
In a specific implementation, to reduce the number of low-weight codewords, corresponding positions of CRC bits and information bits in the uncoded bit sequence may be determined based on row weights of the polar code generation matrix.
In a specific implementation, the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence may be determined based on only the row weight of the polar code generator matrix, or the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence may be jointly determined based on the row weight and the reliability of the polar code generator matrix.
In an embodiment of the present invention, the determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence includes: selecting the front K + X row with the maximum row weight in the polarization code generating matrix, and taking the index of the K + X row as a set A, wherein K is the number of the information bits, and X is the number of the CRC bits; taking the index of the row with the row weight of N in the set A and the index of the first X-1 row with the smallest row weight as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence; and taking the other indexes except the set D in the set A as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
In specific implementation, when the transmitting end determines the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence based on only the row repetition of the polar code generator matrix without considering the reliability of the polar code generator matrix, in order to obtain a better Decoding performance, the receiving end may decode by using an Ordered Statistical Decoding (OSD) algorithm of an approximate maximum likelihood Decoding with a higher complexity.
In a specific implementation, since the complexity of the OSD algorithm is high, the receiving end may decode using a simpler SCL algorithm. When the receiving end adopts the SCL algorithm to decode, the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence can be jointly determined based on the row weight and the reliability of the polar code generator matrix.
In an embodiment of the present invention, the determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence includes: generating a reliability sequence based on a Gaussian approximation construction method or a PW construction method; selecting the first K + X positions with the highest reliability in the reliability sequence, and taking the indexes of the K + X positions as a set A', wherein K is the number of the information bits, and X is the number of the CRC bits; selecting an index with the maximum corresponding row weight and the highest reliability from other indexes of the set A ' except for the indexes of the set A ' in the set {0, 1, 2, …, N-1}, and replacing the index corresponding to the minimum row weight in the set A ' to generate a set A;
taking the index of the row with the row length of N in the set A and the index of X-1 positions with the minimum reliability as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence; and taking the other indexes except the set D in the set A as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
In a specific implementation, the minimum line weight corresponding to the set a' may be one line, or may be multiple lines (more than two lines).
In an embodiment of the present invention, when the minimum row weight corresponding to the set a 'is multiple rows, the indexes of multiple positions having the maximum row weight and the highest reliability are selected, and the index corresponding to the minimum row weight in the set a' is replaced with the index of multiple positions having the maximum row weight and the highest reliability, so as to generate the set a. For example, when the minimum row weight corresponding to the set a 'is two rows, the indexes of the two positions having the maximum row weight and the highest reliability are selected, and the two indexes corresponding to the minimum row weight in the set a' are replaced with the indexes of the two positions having the maximum row weight and the highest reliability, so as to generate the set a.
In an embodiment of the present invention, the determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence includes: generating a reliability sequence based on a Gaussian approximation construction method or a PW construction method; selecting the first K + X positions with the highest reliability in the reliability sequence, and taking the index of the K + X positions as a set A', wherein K is the number of the information bits, and X is the number of the CRC bits; taking the index of the row with the row length of N in the set A' and the index of X-1 positions with the lowest reliability as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence; and taking the other indexes except the set D in the set A' as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
Step S203, placing the CRC bits and the information bits at corresponding positions in the uncoded bit sequence, and generating an uncoded bit sequence.
In a specific implementation, after determining the corresponding positions of the CRC bits and the information bits in the sequence of uncoded bits, the CRC bits and the information bits may be placed into the sequence of uncoded bits based on the determined indices of the corresponding positions of the CRC bits and the information bits in the sequence of uncoded bits. For example, the information bits are placed based on their corresponding positions in the sequence of unencoded bits; placing the CRC bits based on their corresponding positions in an uncoded bit sequence; and placing bit 0 at the position except the information bit and the CRC bit in the uncoded bit sequence.
In a specific implementation, in order to further reduce the number of low-weight codewords, part of information bits may also be selected to participate in generating the CRC bits.
In this embodiment of the present invention, before the CRC bits and the information bits are placed, target bits participating in generating the CRC bits in the information bits may also be determined, and the CRC bits may be generated based on the target bits participating in generating the CRC bits.
In a specific implementation, the target bits of the information bits participating in generating the CRC bits may be determined based on row repetition of the polar code generator matrix, or the target bits of the information bits participating in generating the CRC bits may be determined jointly based on row repetition and reliability of the polar code generator matrix.
In a specific implementation, an index of a row with a row weight m times or less the minimum row weight may be selected from indexes of corresponding positions of the information bits in the uncoded bit sequence as an index of a position of the information bits participating in generating the CRC bits, that is, an index of a corresponding position of a target bit participating in generating the CRC bits in the polarization code generation matrix is determined according to the following formula as a set C:
C={i:Wi≤mWmin,i∈B}
wherein the set B is an index of the corresponding position of the information bit in the uncoded bit sequence, WminFor the minimum lineweight corresponding to set B,
Figure BDA0001589252720000111
n is the number of rows of the polarization code generator matrix,Wigenerating row weights for the ith row in the matrix for the polarization code.
In a specific implementation, the set B may be generated by using the method described in the above embodiment, and details are not described here.
Step S204, inputting the uncoded bit sequence into a polar code encoder to generate a code word of the polar code.
In a specific implementation, the uncoded bit sequence may be input to a polar code encoder by using an existing implementation scheme to generate a codeword of a polar code, that is, a codeword of a CRC concatenated polar code, which is not described herein again.
In order to make those skilled in the art better understand and implement the present invention, the embodiment of the present invention provides, for a practical scenario, a detailed step of generating a polarization code by using the coding method of the polarization code in the above embodiment, as follows:
in embodiment 1, the number of rows N of the polar code generation matrix is 128, the code rate R is 2/3, the number of information bits is 85, the number of CRC bits is 8, and the generated polynomial is 0x 131.
The detailed steps and related parameters for generating the polarization code are as follows:
(1) calculating the row weight W of the ith row of the 128-row and 128-column (128 × 128) polar code generating matrixiThe calculation formula is as follows:
Wi=2B(i)
wherein, B (i) is the number of code words 1 in the binary code corresponding to the numerical value i, and i is more than or equal to 1 and less than or equal to N.
And selecting the minimum row weight as 8 according to the calculated row weights.
(2) From the calculated row weights, an index of 93 rows with the largest row weight is selected as a set a ═ 711131415192122232627293031394243444546474950515253545556575859606162636769707173747576777879818283848586878889909192939495979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 }.
(3) The index of 127 th bit is selected as the CRC bit position, and the index of 7 rows with the smallest row weight in the set a is selected as the remaining CRC bit position as the set D, i.e., the set D ═ { 22264244495052127 }. Set D is the index of the corresponding position of the CRC bits in the uncoded bit sequence.
The indexes of the remaining 85 rows in the set a are taken as a set B, i.e., the set B is { 7111314151921232729303139434546475153545556575859606162636769707173747576777879818283848586878889909192939495979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 }. The set B is an index of the corresponding position of the information bits in the uncoded bit sequence.
(4) An index of a row having a row weight of 16 or less (m is 2 and the minimum row weight is 8) is selected from the set B as an information bit participating in the generation of a CRC bit, and the selected index is set C, that is, the set C is { 71113141519212327293039434546515354565758606769707173747576777881828384858688899092979899100101102104105106108112113114116120 }.
(5) Aiming at the source sequence of 85 bits, namely information bits, firstly, the source sequence is placed at the position corresponding to the set B, then, according to the information bits corresponding to the set C, a CRC sequence is generated and placed at the position corresponding to the set D, and the other 35 bits of the uncoded bit sequence are placed into the frozen bit 0. And finally, sending the generated 128-bit long sequence to a polarization code encoder to generate a code word of the polarization code.
For the actual scenario in embodiment 1, the number of low-weight codewords in the generated polarization code is 112 by using the encoding method for the polarization code described in embodiment 1, and the number of low-weight codewords in the generated polarization code is 525 by using the existing CRC8-polar implementation scheme, so that the encoding method for the polarization code provided by the embodiment of the present invention can reduce the number of low-weight codewords in the generated polarization code, and has a better error correction performance under the condition of a high signal-to-noise ratio, thereby improving the performance of the CRC concatenated polarization code under the condition of a high signal-to-noise ratio.
Constructed in accordance with example 1 in a specific implementationThe polar code can estimate the joint boundary P of the frame error rate performance under the maximum likelihood decoding according to the minimum weight and the number of the code words of the minimum weightBThe calculation formula is as follows:
Figure BDA0001589252720000121
wherein A isdRepresenting the number of codewords with weight d, R representing the code rate, Eb/N0As a function of signal-to-noise ratio
Figure BDA0001589252720000131
At high signal-to-noise ratio, the minimum code weight dminAnd its code number AdminValue pair P ofBThe value of (A) is decisive and can therefore be estimated
Figure BDA0001589252720000132
Further, for the actual scenario in embodiment 1, when the number of CRC bits is 16, the generated polynomial is 0x 18005. By utilizing the conventional CRC16-polar implementation scheme, the number of low-weight code words in the generated polar code is 211; with the encoding method of the polarization code described in embodiment 1, the number of low-weight codewords in the generated polarization code is 4.
Therefore, the coding method of the polar code provided in embodiment 1 can reduce the number of low-weight code words in the generated polar code, and has a better error correction performance under the condition of a high signal-to-noise ratio, thereby improving the performance of the CRC concatenated polar code under the condition of the high signal-to-noise ratio.
With the polar code generated by the coding method of the polar code described in embodiment 1, the corresponding positions of CRC bits and information bits in the polar code generation matrix are determined at the transmitting end based only on the row weight of the polar code generation matrix, without considering the reliability of the polar code generation matrix. In order to obtain better decoding performance, the receiving end needs to adopt an OSD decoding algorithm with higher complexity and approximate maximum likelihood decoding, which results in higher system complexity of the receiving end.
In a specific implementation, in order to neutralize the decoding complexity and the optimized concatenated code performance, the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence may be determined based on the polar code generator matrix row weights and reliabilities.
In embodiment 2, the number of rows N of the polarization code generation matrix is 128, the code rate R is 2/3 or 1/3, the number of information bits is 85, the number of CRC bits is 8, and the generated polynomial is 0x 131.
The detailed steps for generating the polarization code are as follows:
(1) and generating a reliability sequence by using a Gaussian approximation construction method.
(2) The index of the 93 positions with the highest reliability is selected as the set a'.
(3) And taking the index of the row with the row of N in the set A' and the index of X-1 positions with the lowest reliability as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence.
(4) And taking the indexes of the set A' except the set D as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
(5) From the set B, an index of a row having a row weight of 16 or less (m is 2, and the minimum row weight is 8) is selected as an index of an information bit participating in generation of a CRC bit, and the selected index is set C.
(6) For a source sequence of 85 bits, namely information bits, the source sequence is firstly placed at a position corresponding to the set B, then a CRC sequence is generated according to the information bits corresponding to the set C and placed at a position corresponding to the set D, and the other 35 positions in the uncoded bit sequence are taken as freezing positions and placed into the bit 0. And finally, sending the generated 128-bit long sequence to a polarization code encoder to generate a code word of the polarization code.
For the actual scenario in embodiment 2, when the code rate is 2/3, the number of low-weight codewords in the generated polarization code is 365 by using the encoding method of the polarization code described in embodiment 2, and the number of low-weight codewords in the generated polarization code is 525 by using the existing CRC8-polar scheme.
When the code rate is 1/3, the number of low weight codewords in the generated polar code is 25 by using the encoding method of the polar code described in embodiment 2, and the number of low weight codewords in the generated polar code is 52 by using the existing CRC8-polar scheme.
Therefore, the coding method of the polarization code provided in embodiment 2 can reduce the number of low-weight code words in the generated polarization code, and has a better error correction performance under the condition of a high signal-to-noise ratio, thereby improving the performance of the CRC concatenated polarization code under the condition of the high signal-to-noise ratio.
In order to enable those skilled in the art to better understand the beneficial effects of the embodiments of the present invention, the embodiments of the present invention provide simulation results of frame error rates of polarization codes generated by different methods in different scenarios, as follows:
when the receiving end decodes the polarization code by adopting the SCL algorithm, the sequence of the frame error rates corresponding to the polarization codes generated by adopting different methods from small to big is as follows: example 2 concatenated polar code < concatenated polar code generated by existing scheme < concatenated polar code generated by example 1.
When the receiving end adopts the OSD algorithm to decode the polarization code, the sequence of the frame error rates corresponding to the polarization code generated by different methods from small to large is as follows: example 1 concatenated polar code < concatenated polar code generated in example 2 < concatenated polar code generated by existing scheme.
It can be seen that, no matter the receiving end adopts SCL algorithm or OSD algorithm, the frame error rate of the polarization code generated by the coding method of the polarization code provided by the embodiment of the present invention can be smaller than the concatenated polarization code generated by the existing scheme, so the polarization code generated by the coding method of the polarization code provided by the embodiment of the present invention has better error correction performance under the condition of high signal-to-noise ratio.
In specific implementation, different decoding algorithms of the receiving end correspond to different performances, so in specific application, a reasonable decoding algorithm can be selected according to actual conditions to obtain better performance.
In specific implementation, in order to further improve performance and reduce the number of low-weight codewords, further optimization may be performed on embodiment 2, and the set a' is re-optimized based on the rows of the polarization generator matrix.
In embodiment 3, the number of rows N of the polarization code generation matrix is 128, the code rate R is 2/3 or 1/3, the number of information bits K is 85, the number of CRC bits X is 8, and the generated polynomial is 0X 131.
The detailed steps and related parameters for generating the polarization code are as follows:
(1) a reliability sequence is generated using a gaussian approximation structure, and an index of 93 positions with the highest reliability is selected as a set a ', that is, a set a' ═ { 1523252627282930313738394142434445464749505152535455565758596061626367697071737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 }.
(2) The index {19, 35} of the bit position with the maximum row weight, the row weight larger than the minimum row weight and the highest reliability is selected from the set {0, 1, 2, …, N-1 }/the set a ', namely the index is divided from the set a ', the index {19, 35} of the bit position with the maximum row weight is replaced by the index {80, 96} of the bit position with the minimum row weight in the set a ', and the set after replacement is taken as the set a, namely the set a is { 1519232526272829303135373839414243444546474950515253545556575859606162636769707173747576777879818283848586878889909192939495979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 }.
(3) The index of one row with the row being N in the set a is selected as the index of the corresponding position of the CRC bit in the uncoded bit sequence, and the index of the X-1 position with the lowest reliability in the set a is selected as the index of the corresponding position of the remaining CRC bit in the uncoded bit sequence as the set D, i.e., the set D ═ { 25262835373841127 }. Set D is the index of the corresponding position of the CRC bits in the uncoded bit sequence.
The indexes of the remaining K positions in the set a are set B, i.e., the set B ═ 15192327293031394243444546474950515253545556575859606162636769707173747576777879818283848586878889909192939495979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 }. Set B is the index of the corresponding position of the information bits in the uncoded bit sequence.
(4) An index of a row having a row weight of 16 or less (2 times the minimum row weight) is selected from the set B as an index corresponding to information bits participating in the generation of CRC bits, and the selected index is set C, that is, the set C is { 15192327293031394243444546474950515253545556575859606162636769707173747576777879818283848586878889909192939495979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 }.
(5) Aiming at a source sequence with K bits, namely information bits, firstly, the source sequence is placed at a position corresponding to the set B, then, a CRC sequence is generated according to the information bits corresponding to the set C and placed at a position corresponding to the set D, and other N-K-X positions in an uncoded bit sequence are taken as freezing positions to be placed in the bit 0. And finally, sending the generated N bit long sequences to a polarization code encoder to generate a code word of the polarization code.
For the actual scenario in embodiment 3, when the code rate is 2/3, the number of low-weight codewords in the generated polar code is 365 by using the coding method of the polar code described in embodiment 3, and the number of low-weight codewords in the generated polar code is 525 by using the existing CRC8-polar scheme.
When the code rate is 2/3, the number of low weight codewords in the generated polar code is 25 by using the encoding method of the polar code described in embodiment 3, and the number of low weight codewords in the generated polar code is 52 by using the existing CRC8-polar scheme.
Therefore, the coding method of the polar code provided in embodiment 3 can reduce the number of low-weight code words in the generated polar code, and has a better error correction performance under the condition of a high signal-to-noise ratio, thereby improving the performance of the CRC concatenated polar code under the condition of the high signal-to-noise ratio.
It is understood that the set B is an index of the corresponding position of the information bit in the uncoded bit sequence determined by different methods, and may also be defined as different names, and the above naming mode does not limit the scope of the present invention.
It is understood that the set D is an index of the corresponding position of the CRC bits in the uncoded bit sequence determined by different methods, and may also be defined as different names, and the above naming mode does not limit the scope of the present invention.
It is understood that the set C is an index corresponding to the information bits participating in generating the CRC bits, and may also be defined by different names, and the above naming mode does not limit the scope of the present invention.
It is understood that the index may also be named as a subscript or other name capable of identifying a location, and the above-mentioned naming mode does not limit the scope of the present invention.
By applying the scheme, the row weight of the polarization code generating matrix is calculated, the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence are determined based on the row weight of the polarization code generating matrix, then the information bits and the CRC bits are placed based on the corresponding positions, and the code words of the polarization code are generated, so that the number of low-weight code words in the generated polarization code is small, and the high-signal-to-noise ratio has good error correction performance, and the performance of the CRC cascaded polarization code under the high-signal-to-noise ratio is improved.
In order to make those skilled in the art better understand the beneficial effects of the present invention, the embodiment of the present invention further provides a decoding method of a polarization code, as shown in fig. 3.
Referring to fig. 3, the decoding method of the polarization code may include the steps of:
step S301, receiving a code word of a polar code, where the code word of the polar code is generated by using any one of the above-mentioned encoding methods of the polar code.
In a specific implementation, the code word of the polar code may be generated by using the coding method of the polar code provided in the above steps S201 to S204, which is not described herein again.
Step S302, processing the code word of the polarization code based on a decoding algorithm.
In a specific implementation, the code word of the polar code may be processed based on a decoding algorithm, and the decoding obtains information bits and CRC bits included in the polar code.
In a specific implementation, the decoding algorithm may be an OSD algorithm or an SCL algorithm. The OSD algorithm is a decoding algorithm approximate to maximum likelihood and has higher complexity. Performance and complexity tradeoffs may be incorporated in specific applications.
In a specific implementation, different decoding algorithms may be used to correspond to different frame error rate performances. For example:
when the receiving end decodes the polarization code by adopting the SCL algorithm, the sequence of the frame error rates corresponding to the polarization codes generated by adopting different methods from small to big is as follows: example 2 < concatenated polar code generated by existing scheme < concatenated polar code generated by example 1;
when the receiving end adopts the OSD algorithm to decode the polarization code, the sequence of the frame error rates corresponding to the polarization code generated by different methods from small to large is as follows: example 1 concatenated polar code < concatenated polar code generated in example 2 < concatenated polar code generated by existing scheme.
Therefore, in specific application, a reasonable decoding algorithm can be selected according to actual conditions to obtain better performance.
In order to make those skilled in the art better understand and implement the present invention, the embodiment of the present invention further provides a schematic diagram of an encoding process and a decoding process of a polarization code, as shown in fig. 4.
Referring to fig. 4, the encoding process and the decoding process of the polarization code may include the steps of:
the sending end executes the steps S401 to S404 to generate the cascade polarization code and sends:
step S401 determines the positions of the information bits and CRC bits based on the row repetition of the polarization code generator matrix.
In a specific implementation, the positions of the information bits and the CRC bits may be determined based on the row weight of the polar code generator matrix, or the positions of the information bits and the CRC bits may be jointly determined based on the row weight and the reliability of the polar code generator matrix.
In step S402, information bits participating in the generation of CRC bits are determined.
In a specific implementation, the information bits participating in generating CRC bits may be determined based on row weights of the polar code generator matrix; the information bits involved in generating the CRC bits may also be jointly determined based on the row weight and reliability of the polar code generator matrix.
Step S403, generating CRC cascade polarization code through Polar coder.
In a specific implementation, after the positions of the information bits and the CRC bits are placed in the uncoded bit sequence, a CRC concatenated Polar code may be generated by a Polar code (Polar) encoder.
And step S404, modulating the generated cascade polar code and then transmitting the modulated cascade polar code.
The modulated signal is received by a receiving end after being transmitted through a wireless channel, and the receiving end performs steps S405 to S406:
in step S405, the received signal is demodulated.
In step S406, the received signal is decoded by the OSD decoder.
In order to make those skilled in the art better understand and implement the present invention, the embodiment of the present invention further provides a transmitting device capable of implementing the above coding method of polarization code, as shown in fig. 5.
Referring to fig. 5, the transmitting apparatus 50 includes: a calculation unit 51, a first determination unit 52, a first generation unit 53, and a second generation unit 54, wherein:
the calculation unit 51 is adapted to obtain a polar code generator matrix and calculate a row weight of the polar code generator matrix;
the first determining unit 52 is adapted to determine corresponding positions of CRC bits and information bits in an uncoded bit sequence based on row weights of the polarization code generation matrix;
the first generating unit 53 is adapted to place the CRC bits and the information bits at corresponding positions in the uncoded bit sequence, generating an uncoded bit sequence;
the second generating unit 54 is adapted to input the uncoded bit sequence to a polar code encoder to generate a code word of a polar code.
In a specific implementation, the sending device 50 may further include: a second determining unit (not shown) and a third generating unit (not shown), wherein:
the second determining unit is adapted to determine a target bit participating in generating the CRC bit in the information bits;
the third generating unit is adapted to generate the CRC bits based on the target bits participating in generating the CRC bits.
In an embodiment of the present invention, the second determining unit is adapted to determine, as set C, an index of a corresponding position of a target bit participating in generating the CRC bit in the uncoded bit sequence according to the following formula:
C={i:Wi≤mWmin,i∈B};
wherein: set B is an index of the corresponding position of the information bit in the uncoded bit sequence, WminFor the minimum lineweight corresponding to set B,
Figure BDA0001589252720000201
n is the number of rows of the polar code generator matrix, WiGenerating row weights for the ith row in the matrix for the polarization code.
In a specific implementation, the calculating unit 51 is adapted to calculate a row weight of an ith row of the polar code generator matrix according to the following formula:
Wi=2B(i)
wherein: wiFor the row weight of the ith row in the polarization code generating matrix, B (i) is the number of code words 1 in the binary code corresponding to the numerical value i, i is more than or equal to 1 and is less than or equal to N, N isThe polar code generates the number of rows of the matrix.
In an embodiment of the present invention, the first determining unit 52 includes: a first selection subunit (not shown), a first determination subunit (not shown), and a second determination subunit (not shown), wherein:
the first selecting subunit is adapted to select, in the polar code generating matrix, a first K + X row with a largest row weight, and use an index of the K + X row as a set a, where K is the number of the information bits and X is the number of the CRC bits;
the first determining subunit is adapted to use the index of the row with the row weight of N in the set a and the index of the first X-1 row with the smallest row weight as a set D, where the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence;
the second determining subunit is adapted to use the other indexes of the set a except the set D as a set B, where the set B is an index of a corresponding position of the information bit in an uncoded bit sequence.
In an embodiment of the present invention, the first determining unit 52 includes: a generating subunit (not shown), a second selecting subunit (not shown), a third determining subunit and a fourth determining subunit (not shown), wherein:
the generating subunit is suitable for generating a reliability sequence based on a Gaussian approximation construction method or a PW construction method;
the second selecting subunit is adapted to select, in the reliability sequence, the first K + X positions with the highest reliability, and use the indexes of the K + X positions as a set a', where K is the number of the information bits and X is the number of the CRC bits;
the third selecting subunit is adapted to select, from the indexes except for the index of the set a ' in the set {0, 1, 2, …, N-1}, an index at a position where a corresponding row weight is largest and is larger than a minimum row weight corresponding to the set a ' and has the highest reliability, and replace the index corresponding to the minimum row weight in the set a ', thereby generating a set a;
the third determining subunit is adapted to use the index of the row with the row number of N in the set a and the index of the X-1 positions with the lowest reliability as a set D, where the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence;
the fourth determining subunit is adapted to use the other indexes of the set a except the set D as a set B, where the set B is an index of a corresponding position of the information bit in an uncoded bit sequence.
In a specific implementation, the minimum line corresponding to the set a' is duplicated into one or more lines; when the minimum row corresponding to the set a ' is duplicated into a plurality of rows, the third selecting subunit is adapted to select the index of a plurality of positions having the largest row weight and the highest reliability, which are greater than the minimum row weight corresponding to the set a ', and replace the index corresponding to the minimum row weight in the set a ', so as to generate the set a.
In an embodiment of the present invention, the first determining unit 52 includes: a generation subunit (not shown), a fourth selection subunit (not shown), a fifth determination subunit, and a sixth determination subunit (not shown), wherein:
the generating subunit is suitable for generating a reliability sequence based on a Gaussian approximation construction method or a PW construction method;
the fourth selecting subunit is adapted to select, in the reliability sequence, the first K + X positions with the highest reliability, and use the indexes of the K + X positions as a set a', where K is the number of the information bits and X is the number of the CRC bits;
the fifth determining subunit is adapted to use the index of the row with the row repetition of N in the set a' and the index of the X-1 positions with the lowest reliability as a set D, where the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence;
the sixth determining subunit is adapted to use the other indexes of the set a' except the set D as a set B, where the set B is an index of a corresponding position of the information bit in the uncoded bit sequence.
In a specific implementation, the working procedure and principle of the sending device 50 may refer to the description in the coding method of the polarization code provided in the above embodiment, and are not described herein again.
In order to make those skilled in the art better understand and implement the present invention, the embodiment of the present invention further provides a receiving device capable of implementing the decoding method of the polarization code, as shown in fig. 6.
Referring to fig. 6, the receiving apparatus 60 includes: a receiving unit 61 and a processing unit 62, wherein:
the receiving unit 61 is adapted to receive a code word of a polar code, where the code word of the polar code is generated by using the coding method of the polar code according to any of the above embodiments;
the processing unit 62 is adapted to process the code words of the polar code based on a decoding algorithm.
In a specific implementation, the decoding algorithm includes any one of: OSD algorithm, SCL algorithm.
In a specific implementation, the working procedure and principle of the receiving device 60 may refer to the description in the coding method of the polarization code provided in the above embodiment, and are not described herein again.
An embodiment of the present invention provides a computer-readable storage medium, where the computer-readable storage medium is a non-volatile storage medium or a non-transitory storage medium, and a computer instruction is stored on the computer-readable storage medium, and when the computer instruction runs, the step corresponding to any one of the above-mentioned encoding methods for a polarization code is executed, which is not described herein again.
An embodiment of the present invention provides a computer-readable storage medium, where the computer-readable storage medium is a non-volatile storage medium or a non-transitory storage medium, and a computer instruction is stored on the computer-readable storage medium, and when the computer instruction runs, the step corresponding to any one of the above decoding methods for a polarization code is executed, which is not described herein again.
An embodiment of the present invention provides a sending device, including a memory and a processor, where the memory stores a computer instruction capable of being executed on the processor, and the processor executes, when executing the computer instruction, a step corresponding to any one of the above encoding methods for a polarization code, which is not described herein again.
An embodiment of the present invention provides a receiving device, including a memory and a processor, where the memory stores a computer instruction capable of being executed on the processor, and the processor executes, when executing the computer instruction, a step corresponding to any one of the above decoding methods for a polarization code, which is not described herein again.
Those skilled in the art will appreciate that all or part of the steps in the methods of the above embodiments may be implemented by associated hardware instructed by a program, which may be stored in a computer-readable storage medium, and the storage medium may include: ROM, RAM, magnetic or optical disks, and the like.
Although the present invention is disclosed above, the present invention is not limited thereto. Various changes and modifications may be effected therein by one skilled in the art without departing from the spirit and scope of the invention as defined in the appended claims.

Claims (21)

1. A method for coding a polarization code, comprising:
acquiring a polarization code generating matrix, and calculating the row weight of the polarization code generating matrix;
determining corresponding positions of CRC bits and information bits in an uncoded bit sequence based on row repetition of the polarization code generation matrix;
placing the CRC bits and the information bits at corresponding positions in the uncoded bit sequence to generate an uncoded bit sequence;
inputting the uncoded bit sequence into a polar code encoder to generate a code word of a polar code;
wherein before placing the CRC bits and the information bits, further comprising: determining target bits participating in generating the CRC bits in the information bits based on the row weight of the polar code generating matrix or based on the row weight and the reliability of the polar code generating matrix; generating the CRC bits based on the target bits participating in generating the CRC bits.
2. The method for encoding a polarization code according to claim 1, wherein the determining the target bits of the information bits involved in generating the CRC bits comprises:
determining, as set C, an index of a corresponding position of a target bit in the uncoded bit sequence that participates in generating the CRC bit according to the following formula:
C={i:Wi≤mWmin,i∈B};
wherein: set B is an index of the corresponding position of the information bit in the uncoded bit sequence, WminFor the minimum lineweight corresponding to set B,
Figure FDA0003317040520000011
n is the number of rows of the polar code generator matrix, WiGenerating row weights for the ith row in the matrix for the polarization code.
3. The method for encoding a polarization code according to claim 2, wherein the calculating the row weight of the polarization code generator matrix comprises:
calculating the row weight of the ith row of the polarization code generation matrix according to the following formula:
Wi=2B(i)
wherein: wiAnd B (i) is the row weight of the ith row in the polarization code generating matrix, B (i) is the number of code words 1 in the binary code corresponding to the numerical value i, i is more than or equal to 1 and is less than or equal to N, and N is the row number of the polarization code generating matrix.
4. The method for coding polarization codes according to claim 3, wherein said determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence comprises:
selecting the front K + X row with the maximum row weight in the polarization code generating matrix, and taking the index of the K + X row as a set A, wherein K is the number of the information bits, and X is the number of the CRC bits;
taking the index of the row with the row weight of N in the set A and the index of the first X-1 row with the smallest row weight as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence;
and taking the other indexes except the set D in the set A as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
5. The method for coding polarization codes according to claim 3, wherein said determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence comprises:
generating a reliability sequence based on a Gaussian approximation construction method or a PW construction method;
selecting the first K + X positions with the highest reliability in the reliability sequence, and taking the indexes of the K + X positions as a set A', wherein K is the number of the information bits, and X is the number of the CRC bits;
selecting an index with the maximum corresponding row weight and the highest reliability from other indexes of the set A ' except for the indexes of the set A ' in the set {0, 1, 2, …, N-1}, and replacing the index corresponding to the minimum row weight in the set A ' to generate a set A;
taking the index of the row with the row length of N in the set A and the index of X-1 positions with the minimum reliability as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence;
and taking the other indexes except the set D in the set A as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
6. The method for coding polarization codes according to claim 5,
the minimum line corresponding to the set A' is duplicated into one or more lines;
when the minimum row corresponding to the set A ' is repeated into a plurality of rows, selecting the index of a plurality of positions with the maximum row weight, which is greater than the minimum row weight corresponding to the set A ' and has the highest reliability, and replacing the index corresponding to the minimum row weight in the set A ' to generate the set A.
7. The method for coding polarization codes according to claim 3, wherein said determining the corresponding positions of the CRC bits and the information bits in the uncoded bit sequence comprises:
generating a reliability sequence based on a Gaussian approximation construction method or a PW construction method;
selecting the first K + X positions with the highest reliability in the reliability sequence, and taking the index of the K + X positions as a set A', wherein K is the number of the information bits, and X is the number of the CRC bits;
taking the index of the row with the row length of N in the set A' and the index of X-1 positions with the lowest reliability as a set D, wherein the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence;
and taking the other indexes except the set D in the set A' as a set B, wherein the set B is the index of the corresponding position of the information bit in the uncoded bit sequence.
8. A method for decoding a polar code, comprising:
receiving codewords of a polar code, the codewords of the polar code being generated using the coding method of the polar code according to any one of claims 1 to 7;
and processing the code words of the polarization code based on a decoding algorithm.
9. The decoding method of the polarization code according to claim 8, wherein the decoding algorithm comprises any one of the following: OSD algorithm, SCL algorithm.
10. A transmitting device, comprising:
the calculation unit is suitable for acquiring a polarization code generating matrix and calculating the row weight of the polarization code generating matrix;
a first determining unit adapted to determine corresponding positions of CRC bits and information bits in an uncoded bit sequence based on row weights of the polarization code generation matrix;
a first generating unit adapted to place the CRC bits and the information bits at corresponding positions in the uncoded bit sequence, generating an uncoded bit sequence;
a second generating unit, adapted to input the uncoded bit sequence into a polar code encoder, and generate a codeword of a polar code;
the transmission apparatus further includes: a second determining unit, adapted to determine a target bit participating in generating the CRC bit in the information bits based on the row weight of the polar code generator matrix or based on the row weight and the reliability of the polar code generator matrix; a third generating unit adapted to generate the CRC bits based on the target bits participating in the generation of the CRC bits.
11. The transmitting device according to claim 10, characterized in that the second determining unit is adapted to determine, as set C, the index of the corresponding position in the uncoded bit sequence of the target bit involved in generating the CRC bits according to the following formula:
C={i:Wi≤mWmin,i∈B};
wherein: set B is an index of the corresponding position of the information bit in the uncoded bit sequence, WminFor the minimum lineweight corresponding to set B,
Figure FDA0003317040520000041
n is the number of rows of the polar code generator matrix, WiGenerating row weights for the ith row in the matrix for the polarization code.
12. The transmitting device according to claim 11, wherein the calculating unit is adapted to calculate the row weight of the ith row of the polarization code generator matrix according to the following formula:
Wi=2B(i)
wherein:WiAnd B (i) is the row weight of the ith row in the polarization code generating matrix, B (i) is the number of code words 1 in the binary code corresponding to the numerical value i, i is more than or equal to 1 and is less than or equal to N, and N is the row number of the polarization code generating matrix.
13. The transmission apparatus according to claim 12, wherein the first determination unit includes:
a first selecting subunit, adapted to select, in the polar code generating matrix, a first K + X row with a largest row weight, and use an index of the K + X row as a set a, where K is the number of the information bits and X is the number of the CRC bits;
a first determining subunit, adapted to use the index of the row with row weight N in the set a and the index of the first X-1 row with the smallest row weight as a set D, where the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence;
a second determining subunit, adapted to use the other indexes in the set a except the set D as a set B, where the set B is an index of a corresponding position of the information bit in an uncoded bit sequence.
14. The transmission apparatus according to claim 12, wherein the first determination unit includes:
a generating subunit adapted to generate a reliability sequence based on a gaussian approximation construction method or a PW construction method;
a second selecting subunit, adapted to select, in the reliability sequence, the first K + X positions with the highest reliability, and use the indexes of the K + X positions as a set a', where K is the number of the information bits and X is the number of the CRC bits;
a third selecting subunit, adapted to select, from the indexes except for the other indexes of the set a ' in the set {0, 1, 2, …, N-1}, an index at a position where a corresponding row weight is largest and is larger than a minimum row weight corresponding to the set a ' and has the highest reliability, and replace the index corresponding to the minimum row weight in the set a ', thereby generating a set a;
a third determining subunit, adapted to use the index of the row with the row number of N in the set a and the index of the X-1 positions with the lowest reliability as a set D, where the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence;
a fourth determining subunit, adapted to use the other indexes in the set a except the set D as a set B, where the set B is an index of a corresponding position of the information bit in an uncoded bit sequence.
15. The transmitting device of claim 14,
the minimum line corresponding to the set A' is duplicated into one or more lines;
when the minimum row corresponding to the set a ' is duplicated into a plurality of rows, the third selecting subunit is adapted to select the index of a plurality of positions having the largest row weight and the highest reliability, which are greater than the minimum row weight corresponding to the set a ', and replace the index corresponding to the minimum row weight in the set a ', so as to generate the set a.
16. The transmission apparatus according to claim 12, wherein the first determination unit includes:
a generating subunit adapted to generate a reliability sequence based on a gaussian approximation construction method or a PW construction method;
a fourth selecting subunit, adapted to select, in the reliability sequence, the first K + X positions with the highest reliability, and use the indexes of the K + X positions as a set a', where K is the number of the information bits and X is the number of the CRC bits;
a fifth determining subunit, adapted to use the index of the row with the row number of N in the set a' and the index of the X-1 positions with the lowest reliability as a set D, where the set D is the index of the corresponding position of the CRC bit in the uncoded bit sequence;
a sixth determining subunit, adapted to use the other indexes of the set a' except the set D as a set B, where the set B is an index of a corresponding position of the information bit in an uncoded bit sequence.
17. A receiving device, comprising:
a receiving unit adapted to receive codewords of a polar code, the codewords of the polar code being generated by the coding method of the polar code according to any one of claims 1 to 7;
a processing unit adapted to process codewords of the polar code based on a decoding algorithm.
18. The receiving device of claim 17, wherein the decoding algorithm comprises any one of: OSD algorithm, SCL algorithm.
19. A computer-readable storage medium, being a non-volatile storage medium or a non-transitory storage medium, having computer instructions stored thereon, wherein the computer instructions, when executed, perform the steps of the method of any one of claims 1 to 7 or 8 to 9.
20. A transmitting device comprising a memory and a processor, the memory having stored thereon computer instructions executable on the processor, wherein the processor, when executing the computer instructions, performs the steps of the method of any one of claims 1 to 7.
21. A receiving device comprising a memory and a processor, the memory having stored thereon computer instructions executable on the processor, wherein the processor, when executing the computer instructions, performs the steps of the method of any of claims 8 to 9.
CN201810183937.5A 2018-03-06 2018-03-06 Method for encoding and decoding polarization code, transmitting device, receiving device, and medium Active CN110233698B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810183937.5A CN110233698B (en) 2018-03-06 2018-03-06 Method for encoding and decoding polarization code, transmitting device, receiving device, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810183937.5A CN110233698B (en) 2018-03-06 2018-03-06 Method for encoding and decoding polarization code, transmitting device, receiving device, and medium

Publications (2)

Publication Number Publication Date
CN110233698A CN110233698A (en) 2019-09-13
CN110233698B true CN110233698B (en) 2021-11-19

Family

ID=67862194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810183937.5A Active CN110233698B (en) 2018-03-06 2018-03-06 Method for encoding and decoding polarization code, transmitting device, receiving device, and medium

Country Status (1)

Country Link
CN (1) CN110233698B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110808828B (en) * 2019-09-26 2022-03-18 中国电子科技集团公司第三十研究所 Multi-matrix self-adaptive decoding device and method for quantum key distribution
CN113078910B (en) * 2020-01-06 2023-07-28 大唐移动通信设备有限公司 Method, device, medium and electronic equipment for determining bit field
CN115085739A (en) * 2021-03-10 2022-09-20 华为技术有限公司 Encoding and decoding method and device
CN117155410A (en) * 2022-05-23 2023-12-01 华为技术有限公司 Coding and decoding method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103684477A (en) * 2012-09-24 2014-03-26 华为技术有限公司 Generation method and generation device for mixed polar code
CN107017892A (en) * 2017-04-06 2017-08-04 华中科技大学 One kind verification cascade polarization code encoding method and system
CN107332571A (en) * 2017-06-14 2017-11-07 中国农业大学 A kind of Polar code constructing methods and device
CN107425857A (en) * 2017-06-19 2017-12-01 华为技术有限公司 One kind polarization code coding/decoding method and device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103684477A (en) * 2012-09-24 2014-03-26 华为技术有限公司 Generation method and generation device for mixed polar code
CN106899311A (en) * 2012-09-24 2017-06-27 华为技术有限公司 Mix the generation method and generating means of polar code
CN107017892A (en) * 2017-04-06 2017-08-04 华中科技大学 One kind verification cascade polarization code encoding method and system
CN107332571A (en) * 2017-06-14 2017-11-07 中国农业大学 A kind of Polar code constructing methods and device
CN107425857A (en) * 2017-06-19 2017-12-01 华为技术有限公司 One kind polarization code coding/decoding method and device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Comparison of CA Polar Codes and PC-CA Polar Codes;Samsung;《3gpp》;20170519;全文 *

Also Published As

Publication number Publication date
CN110233698A (en) 2019-09-13

Similar Documents

Publication Publication Date Title
CN110808813B (en) Method and apparatus for encoding data using polar codes
CN110233698B (en) Method for encoding and decoding polarization code, transmitting device, receiving device, and medium
CN109314600B (en) System and method for rate matching when using generic polarization codes
CN108650057B (en) Coding and decoding method, device and system
EP3583700B1 (en) A method to generate ordered sequence for polar codes
EP3364542A1 (en) Error correction coding method based on cascading of polar codes and repetition codes or multi-bit parity check codes
KR101651683B1 (en) Apparatus and method for channel encoding in a communication system
EP3562071A1 (en) Polar code encoding and decoding method and device
CN105991227B (en) Data coding method and device
CN107565984B (en) Raptor code optimized coding method with precoding as irregular code
CN110719141B (en) Information transmission method, decoding method and device
KR20080099243A (en) Decoding of raptor codes
CN107370560A (en) Coding and speed matching method, the device and equipment of a kind of polarization code
EP3469714A1 (en) Polar code encoding with puncturing, shortening and extending
CN110495106B (en) Polarization encoding with dynamic freeze bits
US9009578B1 (en) Methodology for improved bit-flipping decoder in 1-read and 2-read scenarios
EP3539237A1 (en) Error detection in communication systems using polar coded data transmission
JP2012519982A (en) Method and device for providing a design of non-uniform error protection codes from stochastic constant composition codes
KR20220085049A (en) Device for multi-level encoding
CN109768846B (en) Hole drilling method, system, device and medium based on two-core three-core mixed polarization code
JP2020511051A (en) Data processing method and device
WO2018179246A1 (en) Check bit concatenated polar codes
CN106254030B (en) Two-way coding and decoding method without rate Spinal code
WO2019015743A1 (en) Apparatus and method for encoding a message having a target probability distribution of code symbols
CN110535560A (en) A kind of polarization code combines coding and interpretation method

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
CB02 Change of applicant information

Address after: 100089 18 / F, block B, Zhizhen building, No.7, Zhichun Road, Haidian District, Beijing

Applicant after: Beijing Ziguang zhanrui Communication Technology Co.,Ltd.

Address before: 100084, Room 516, building A, Tsinghua Science Park, Beijing, Haidian District

Applicant before: BEIJING SPREADTRUM HI-TECH COMMUNICATIONS TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant