Embodiments of this application relate to the field of communications technologies, and in particular, to a polar code encoding method and apparatus.
As the most fundamental wireless access technology, channel coding plays a key role in ensuring reliable transmission of data. In an existing wireless communications system, channel coding is usually performed by using a turbo code, a low-density parity-check (LDPC) code, and a polar code. The turbo code cannot support information transmission at an excessively low or excessively high bit rate. For medium/short packet transmission, due to encoding/decoding characteristics of the turbo code and the LDPC code, it is very difficult for the turbo code and the LDPC code to achieve ideal performance in a case of a limited code length. In terms of implementation, the turbo code and the LDPC code have relatively high computational complexity in an encoding/decoding implementation process. The polar code is a good code that has been theoretically proved to be able to achieve the Shannon capacity and has relatively low encoding/decoding complexity, and therefore is more widely applied.
However, with rapid evolution of wireless communications systems, future communications systems such as 5th generation (5G) communications systems will have some new characteristics. For example, three most typical communication scenarios include enhanced mobile broadband (eMBB), massive machine type communications (mMTC), and ultra-reliable and low-latency communications (URLLC). The communications scenarios have higher requirements on encoding/decoding performance of the polar code.
Reliability ordering for polarized channels plays a key role in the encoding/decoding performance of the polar code. However, at present, accuracy of reliability ordering for polarized channels is not desirable, hindering further improvement of the encoding/decoding performance of the polar code during application.
Embodiments of this application provide a polar code encoding method and apparatus, to improve accuracy of reliability ordering for polarized channels.
Specific technical solutions provided in the embodiments of this application are as follows:
According to a first aspect, a polar code encoding method is provided. The method includes: obtaining, by an encoding apparatus, to-be-encoded bits, where a length of the to-be-encoded bits is K, and K is a positive integer; obtaining a sequence used to encode the K to-be-encoded bits, where the sequence is denoted as a first sequence, the first sequence is used to represent an order of reliability of N polarized channels, the first sequence includes sequence numbers of the N polarized channels, the sequence numbers of the N polarized channels are arranged in the first sequence based on the reliability of the N polarized channels, N is a mother code length of a polar code, N is a positive integer power of 2, and K≤N; selecting, in descending order of the reliability, the first K sequence numbers whose reliability rank relatively high in the first sequence; and mapping to-be-encoded information bits to polarized channels corresponding to the first K sequence numbers, and performing polar code encoding on the to-be-encoded bits. Therefore, positions of the information bits and fixed bits are determined by calculating reliability of polarized channels of a polar code without considering a channel parameter and a bit rate. In this way, computational complexity of polar code encoding may be reduced.
In a possible design, the first sequence is all of or a subset of a second sequence, where the second sequence includes sequence numbers of Nmax polarized channels, the sequence numbers of the Nmax polarized channels are arranged in the second sequence based on reliability of the Nmax polarized channels, Nmax is a positive integer, Nmax≥N, and an order in which the sequence numbers of the polarized channels in the first sequence are arranged is consistent with an order in which sequence numbers less than N in the sequence numbers of the polarized channels in the second sequence are arranged.
In a possible design, the second sequence may be part or all of any sequence shown in Sequence Q1 to Sequence Q30 in the specification, the sequence numbers of the N polarized channels in the second sequence are arranged in ascending order of the reliability of the N polarized channels, and a minimum value of the sequence number of the polarized channel is 0.
In a possible design, the second sequence is part or all of any sequence shown in Table Q1 to Table Q30 in the specification the sequence numbers of the N polarized channels in the second sequence are arranged in ascending order of the reliability of the N polarized channels, and a minimum value of the sequence number of the polarized channel is 0.
In a possible design, the second sequence may be part or all of any sequence shown in Sequence Z1 to Sequence Z30 in the specification, each of the sequence numbers of the N polarized channels in the second sequence corresponds to the order of the reliability of the sequence number in the entire sequence, and a minimum value of the sequence number of the polarized channel is 0.
In a possible design, the second sequence is part or all of any sequence shown in Table Z1 to Table Z30 in the specification, each of the sequence numbers of the N polarized channels in the second sequence corresponds to the order of the reliability of the sequence number in the entire sequence, and a minimum value of the sequence number of the polarized channel is 0.
According to a second aspect, a polar code encoding apparatus is provided. The apparatus has a function of implementing the method according to any one of the first aspect and the possible designs of the first aspect. The function may be implemented by using hardware, or may be implemented by using hardware to execute corresponding software. The hardware or the software includes one or more modules corresponding to the foregoing function.
In a possible design, when part or all of the function is implemented by using hardware, the polar code encoding apparatus includes: an input interface circuit, configured to obtain to-be-encoded bits; a logic circuit, configured to perform the method according to any one of the first aspect and the possible designs of the first aspect; and an output interface circuit, configured to output a bit sequence after encoding.
Optionally, the polar code encoding apparatus may be a chip or an integrated circuit.
In a possible design, when part or all of the function is implemented by using software, the polar code encoding apparatus includes: a memory, configured to store a program; and a processor, configured to execute the program stored in the memory. When the program is executed, the polar code encoding apparatus may implement the method according to any one of the first aspect and the possible designs of the first aspect.
Optionally, the memory may be a physically independent unit. Alternatively, the memory is integrated with a processor.
In a possible design, when part or all of the function is implemented by using software, the polar code encoding apparatus includes a processor. The memory configured to store the program is located outside the encoding apparatus. The processor is connected to the memory by using a circuit/wire and is configured to read and execute the program stored in the memory.
According to a third aspect, a communications system is provided. The communications system includes a network device and a terminal. The network device or the terminal may perform the method according to any one of the first aspect and the possible designs of the first aspect.
According to a fourth aspect, a computer storage medium storing a computer program is provided. The computer program includes an instruction used to perform the method according to any one of the first aspect and the possible designs of the first aspect.
According to a fifth aspect, a computer program product including an instruction is provided. When run on a computer, the instruction causes the computer to perform the methods according to the foregoing aspects.
According to a sixth aspect, a wireless device is provided. The wireless device includes an encoding apparatus configured to implement the method described in any one of the first aspect and the possible designs of the first aspect, a modulator, and a transceiver, where the modulator is configured to modulate a bit sequence after encoding, to obtain a modulated sequence; and the transceiver is configured to send the modulated sequence.
In a possible design, the wireless device is a terminal or a network device.
The following describes in detail the embodiments of this application with reference to accompanying drawings.
The embodiments of this application provide a polar code encoding method and apparatus. A reliability order is obtained based on reliability of polarized channels, sequence numbers of polarized channels used to send information bits are selected based on the reliability order, and polar code encoding is performed based on the sequence numbers selected for the information bits. In the embodiments of this application, a reliability of each subchannel of a polar code can be calculated more accurately. The encoding method and apparatus provided in the embodiments of the present invention are described below in detail with reference to the accompanying drawings.
To facilitate understanding of the embodiments of this application, the following describes the polar code briefly.
In an encoding scheme of the polar code, a noiseless channel is used to transmit information useful for a user, and a pure noisy channel is used to transmit agreed information or is not used to transmit information. The polar code is a linear block code, with its encoding matrix being GN and its encoding process being x1N=u1NGN, where u1N=u1, u2, . . . , uN) is a binary row vector having a length of N (that is, code length), GN is an N×N matrix, and GN=F2⊗(log
In the encoding process of the polar code, some bits in u1N are used to carry information and are referred to as an information bit set, and an index set of the bits is denoted as . Other bits are set to fixed values pre-agreed on by a receive end and a transmit end and are referred to as a fixed bit set or a frozen bit set (frozen bits), and an index set of the other bits is represented by a complementary set of . The encoding process of the polar code is equivalent to x1N=uAGN.(A)⊕uA
A process of constructing the polar code, that is, a process of selecting the set , determines performance of the polar code. Usually, the process of constructing the polar code is: determining, based on a mother code length N, that there are a total of N polarized channels that respectively correspond to N rows of the encoding matrix, calculating reliability of the polarized channels, and using indexes of the first K polarized channels having relatively high reliability as elements of the set , and indexes that correspond to the remaining N-K polarized channels are used as elements of the index set c of the fixed bits. The set determines positions of the information bits, and the set c determines positions of the fixed bits. A sequence number of a polarized channel is an index of the position of an information bit or a fixed bit, that is, an index of a position in u1N.
The solutions provided in the embodiments of this application relate to how to determine reliability of a polarized channel. A basic invention idea of the embodiments of this application is that reliability of the polarized channel may be represented by using a reliability. From a perspective of spectral analysis of signals, an approximation of an existing reliability to the polarized channel reliability may be understood as domain transform of a signal. Similar to Fourier transform in which transformation between a time domain and a frequency domain of a signal is implemented by using a kernel ejw, in this method, a signal is transformed from a channel sequence number domain to a reliability weight domain by using a β kernel. In the signal time-frequency analysis field, Fourier transform and wavelet transform are most commonly used. For the Fourier transform, limited by a form of the trigonometric function kernel ejw, high time domain resolution and high frequency domain resolution cannot be achieved at the same time in a signal time-frequency analysis process. For the wavelet transform, because a wavelet kernel is used and there are various forms of functions, an instantaneous change of a signal in time domain can be captured when domain transform is performed, so that both high time domain resolution and high frequency domain resolution can be achieved. In the embodiments of this application, the polarized channel reliability is estimated by using a changeable transform kernel, so that accuracy of sequence reliability estimation is improved.
As shown in
The foregoing network device may be a device configured to communicate with a terminal device. For example, the network device may be a base transceiver station (BTS) in a GSM system or a CDMA system, or may be a NodeB (NB) in a WCDMA system, or may further be an evolved NodeB (eNB or eNodeB) in an LTE system or a network side device in a future 5G network. Alternatively, the network device may be a relay station, an access point, an in-vehicle device, or the like. In a device to device (D2D) communications system, the network device may alternatively be a terminal that plays a role of a base station.
The foregoing terminal may refer to user equipment (UE), an access terminal, a user unit, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, a wireless communications device, a user agent, or a user apparatus. The access terminal may be a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device having a wireless communication function, a computing device, another processing device connected to a wireless modem, an in-vehicle device, a wearable device, a terminal device in a future 5G network, or the like. Based on a communications system architecture shown in
Based on the communications system architecture shown in
Step 201. Obtain a first sequence used to encode K to-be-encoded bits.
The first sequence includes sequence numbers of N polarized channels, the sequence numbers of the N polarized channels are arranged in the first sequence based on reliability of the N polarized channels, K is a positive integer, N is a mother code length of a polar code, and N is a positive integer power of 2.
Step 202. Sequence numbers of K polarized channels are selected from the first sequence in descending order of reliability.
Step 203. Place the to-be-encoded bits based on the selected sequence numbers of the K polarized channels, and perform polar code encoding on the to-be-encoded bits.
The K to-be-encoded bits are mapped to the K polarized channels in the N polarized channels. The reliability of the K polarized channels is higher than reliability of the remaining N-K polarized channels.
Optionally, the first sequence is all of or a subset of a second sequence, the second sequence includes sequence numbers of Nmax polarized channels, the sequence numbers of the Nmax polarized channels are arranged in the second sequence based on reliability of the Nmax polarized channels, that is, an order in which the sequence numbers of the polarized channels in the first sequence are arranged is consistent with an order in which sequence numbers less than N in the sequence numbers of the polarized channels in the second sequence are arranged. Nmax may be a positive integer power of 2 or may not be a positive integer power of 2, and Nmax≥N. A manner for calculating the reliability of the Nmax polarized channels is similar to that for calculating the reliability of the N polarized channels. The arrangement based on the reliability herein may be arrangement performed in ascending order of the reliability, or may be arrangement performed in descending order of the reliability. Alternatively, the sequence numbers of the polarized channels are grouped into two or more groups, and the sequence numbers in each group are arranged in descending order or ascending order of the reliability. A specific grouping manner may be grouping based on values of sequence numbers of polarized channels or grouping based on congruent sequence numbers (for example, three groups are divided, and sequence numbers that are congruent modulo 3 are grouped into one group). This is not specifically limited herein.
Optionally, rate matching is performed, based on a target code length, on a sequence obtained after the polar code encoding.
According to the encoding method provided in this embodiment, after input information bits are received, a quantity K of to-be-encoded bits is determined based on a target code length N of a polar code. Regardless of online calculation or a manner in which calculation and storage are performed in advance, if a second sequence is known, a first sequence may be obtained from the second sequence, and when Nmax=N, the second sequence is the first sequence. The second sequence includes an order of reliability of Nmax polarized channels, where Nmax is a maximum code length supported by a communications system. Optionally, the first sequence may be obtained from a pre-stored second sequence, then information bits are determined based on the first sequence, and finally polar encoding is performed on the K to-be-encoded bits, to obtain a bit sequence obtained after the polar encoding. Therefore, positions of the information bits and fixed bits are determined by obtaining a reliability of a polarized channel of a polar code through a combination of online calculation and offline storage.
The following specifically describes a sequence of sequence numbers of polarized channels that is obtained through arrangement based on a reliability of an ith polarized channel in N (or Nmax) polarized channels. The sequence numbers of the N polarized channels may be 0 to N−1, or may be 1 to N. In this embodiment of this application, when the reliability of the ith polarized channel of the N polarized channels is determined, a value of i may be 1, 2, . . . , and N, or may be 0, 1, . . . , and N−1.
It may be understood that formulas used in the embodiments of this application are merely examples. Any solution that may be obtained by persons skilled in the art by making simple variations to the formulas without affecting performance of the formulas shall fall within the protection scope of the embodiments of this application.
For specific sequence examples, refer to the following six groups of sequences found based on different criteria. The second sequence may be part or all of any sequence shown in Sequence Q1 to Sequence Q30. These sequences may also be represented by using corresponding tables Table Q1 to Table Q30. “Reliability or sequence number of reliability” is a natural sequence of reliability in ascending order, and “polarized channel sequence number” is polarized channel sequence numbers in corresponding sequences. Herein, “part of” has three different meanings:
These sequences may also be represented by using Z sequences, that is, an order of reliability of polarized channels that corresponds to a natural order of polarized channel sequence number is used as a Z sequence. To be specific, the second sequence may be part or all of any sequence shown in Sequence Z1 to Sequence Z30. Likewise, the Z sequences may also be represented by using corresponding tables Table Z1 to Table Z30, where the polarized channel sequence numbers are sequentially arranged in ascending order, and “reliability or sequence number of reliability” is a sequence number of ordering of a reliability of a polarized channel that corresponds to the polarized channel sequence number.
For example, an xth Q sequence is Sequence Qx and Table Qx, and Sequence Qx is equivalent to Table Qx. Corresponding Z sequences are Sequence Zx and Table Zx, and Sequence Zx is equivalent to Table Zx, where x=1, 2, . . . , and 30.
First group of sequences (obtained by using a criterion that comprehensively considers performance of code length of 64, 128, 256, 512, and 1024, and preferentially considers performance of a mother code length of 256).
Sequence Q1, having a sequence length of 1024:
Sequence Q2, having a sequence length of 512:
Sequence Q3, having a sequence length of 256:
Sequence Q4, having a sequence length of 128:
Sequence Q5, having a sequence length of 64:
Sequence Z1, having a sequence length of 1024:
Sequence Z2, having a sequence length of 512:
Sequence Z3, having a sequence length of 256:
Sequence Z4, having a sequence length of 128:
Sequence Z5, having a sequence length of 64:
Second group of sequences (obtained by using a criterion that comprehensively considers performance obtained by List (list) whose sizes are respectively 1, 2, 4, 8, and 16, and preferentially considers performance of Lists 1 and 16).
Sequence Q6, having a sequence length of 1024:
Sequence Q7, having a sequence length of 512:
Sequence Q8, having a sequence length of 256:
Sequence Q9, having a sequence length of 128:
Sequence Q10, having a sequence length of 64:
Sequence Z6, having a sequence length of 1024:
Table Z6, having a sequence length of 1024:
Sequence Z7, having a sequence length of 512:
Sequence Z8, having a sequence length of 256:
Sequence Z9, having a sequence length of 128:
Sequence Z10, having a sequence length of 64:
Third group of sequences (a criterion that comprehensively considers performance obtained by List (list) whose sizes are respectively 1, 2, 4, 8, and 16, and preferentially considers performance of Lists 2, 4, and 8).
Sequence Q11, having a sequence length of 1024:
Sequence Q12, having a sequence length of 512:
Sequence Q13, having a sequence length of 256:
Sequence Q14, having a sequence length of 128:
Sequence Q15, having a sequence length of 64:
Sequence Z11, having a sequence length of 1024:
Sequence Z12, having a sequence length of 512:
Sequence Z13, having a sequence length of 256:
Sequence Z14, having a sequence length of 128:
Sequence Z15, having a sequence length of 64:
Fourth group of sequences (a criterion that considers a performance balance under partial-order (partial-order) constraints).
Sequence Q16, having a sequence length of 1024:
Sequence Q17, having a sequence length of 512:
Sequence Q18, having a sequence length of 256:
Sequence Q19, having a sequence length of 128:
Sequence Q20, having a sequence length of 64:
Sequence Z16, having a sequence length of 1024:
Sequence Z17, having a sequence length of 512:
Sequence Z18, having a sequence length of 256:
Sequence Z19, having a sequence length of 128:
Sequence Z20, having a sequence length of 64:
Fifth group of sequences (a criterion that preferentially considers a minimum code distance).
Sequence Q21, having a sequence length of 1024:
Sequence Q22, having a sequence length of 512:
Sequence Q23, having a sequence length of 256:
Sequence Q24, having a sequence length of 128:
Sequence Q25, having a sequence length of 64:
Sequence Z21, having a sequence length of 1024:
Sequence Z22, having a sequence length of 512:
Sequence Z23, having a sequence length of 256:
Sequence Z24, having a sequence length of 128:
Sequence Z25, having a sequence length of 64:
Sixth group of sequences (a criterion that considers optimal performance of List 4).
Sequence Q26, having a sequence length of 1024:
Sequence Q27, having a sequence length of 512:
Sequence Q28, having a sequence length of 256:
Sequence Q29, having a sequence length of 128:
Sequence Q30, having a sequence length of 64:
Sequence Z26, having a sequence length of 1024:
Sequence Z27, having a sequence length of 512:
Sequence Z28, having a sequence length of 256:
Sequence Z29, having a sequence length of 128:
Sequence Z30, having a sequence length of 64:
It should be noted that, the foregoing sequences are merely some examples. Use of the foregoing sequences in a polar code encoding process helps improve encoding/decoding performance of a polar code. In any one of the sequences described, adjustments or equivalent replacements in the following aspects may be made without affecting an overall effect.
Based on a same invention concept of the polar code encoding method shown in
Further, the bit sequence that is obtained after the encoding and that is output by the encoding apparatus 300 is output to a transceiver 320 after being modulated by a modulator 310. The transceiver 320 performs corresponding processing (including but not limited to processing such as digital-to-analog conversion and/or frequency conversion) on the modulated sequence and sends the processed sequence by using an antenna 330.
Optionally, the polar code encoding apparatus 300 may be a chip or an integrated circuit during specific implementation.
Optionally, when part or all of the polar code encoding method in the foregoing embodiment is implemented by using software, as shown in
Optionally, the memory 401 may be a physically independent unit. Alternatively, as shown in
Optionally, when part of or all of the encoding method in the embodiment in
The processor 402 may be a central processing unit (CPU), a network processor (NP), or a combination of a CPU and an NP.
The processor 402 may further include a hardware chip. The foregoing hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination of an ASIC and a PLD. The foregoing PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
The memory in the foregoing embodiment may include a volatile memory, for example, a random-access memory (RAM). Alternatively, the memory may include a non-volatile memory, for example, a flash memory, a hard disk drive (HDD), or a solid-state drive (SSD). Alternatively, the memory may include a combination of the foregoing types of memories.
Based on the polar code encoding method shown in
The first sequence may be any one of the sequences described above, or may be a sequence obtained by selecting, from a second sequence having a length of Nmax, sequence numbers (starting from 0) less than N. The second sequence may be any one of the sequences described above. A reliability of an ith polarized channel in the N polarized channels may be determined by using any one of the formulas described above.
An embodiment of this application further provides a computer storage medium storing a computer program. The computer program is configured to perform the polar code encoding method shown in
An embodiment of this application further provides a computer program product including an instruction. When run on a computer, the instruction causes the computer to perform the polar code encoding method shown in
Persons skilled in the art should understand that the embodiments of this application may be provided as a method, a system, or a computer program product. Therefore, this application may use a form of hardware only embodiments, software only embodiments, or embodiments with a combination of software and hardware. Moreover, this application may use a form of a computer program product that is implemented on one or more computer-usable storage media (including but not limited to a disk memory, a CD-ROM, an optical memory, and the like) that include computer usable program code.
This application is described with reference to the flowcharts and/or block diagrams of the method, the device (system), and the computer program product according to the embodiments of this application. It should be understood that computer program instructions may be used to implement each process and/or each block in the flowcharts and/or the block diagrams and a combination of a process and/or a block in the flowcharts and/or the block diagrams. These computer program instructions may be provided for a general-purpose computer, a dedicated computer, an embedded processor, or a processor of any other programmable data processing device to generate a machine, so that the instructions executed by a computer or a processor of any other programmable data processing device generate an apparatus for implementing a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.
These computer program instructions may be stored in a computer readable memory that can instruct the computer or any other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory generate an artifact that includes an instruction apparatus. The instruction apparatus implements a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.
These computer program instructions may be loaded onto a computer or another programmable data processing device, so that a series of operations and steps are performed on the computer or the another programmable device, thereby generating computer-implemented processing. Therefore, the instructions executed on the computer or the another programmable device provide steps for implementing a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.
Although some preferred embodiments of this application have been described, persons skilled in the art can make changes and modifications to these embodiments once they learn the basic inventive concept. Therefore, the following claims are intended to be construed as to cover the preferred embodiments and all changes and modifications falling within the scope of this application.
Obviously, persons skilled in the art can make various modifications and variations to the embodiments of this application without departing from the spirit and scope of the embodiments of this application. This application is intended to cover these modifications and variations provided that they fall within the scope of protection defined by the following claims and their equivalent technologies.
Number | Date | Country | Kind |
---|---|---|---|
201710653644.4 | Aug 2017 | CN | national |
This application is a continuation of U.S. patent application Ser. No. 17/491,529, filed on Oct. 1, 2021, which is a continuation of U.S. patent application Ser. No. 16/838,945, filed on Apr. 2, 2020, now U.S. Pat. No. 11,165,535, which is a continuation of U.S. patent application Ser. No. 16/145,850, filed on Sep. 28, 2018, now U.S. Pat. No. 10,659,194, which is a continuation of International Application No. PCT/CN2018/085567, filed on May 4, 2018. The International Application claims priority to Chinese Patent Application No. 201710653644.4, filed on Aug. 2, 2017. All of the afore-mentioned patent applications are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | 17491529 | Oct 2021 | US |
Child | 18485303 | US | |
Parent | 16838945 | Apr 2020 | US |
Child | 17491529 | US | |
Parent | 16145850 | Sep 2018 | US |
Child | 16838945 | US | |
Parent | PCT/CN2018/085567 | May 2018 | US |
Child | 16145850 | US |