Efficient polar code construction in 5G
According to some embodiments, a method for polar encoding includes obtaining an input bits index array Q, wherein each element Q[i] is an index of a polar coded transmission channel and corresponds to an input U[i] of a polar encoder. The elements of Q are ordered according to their associated channel quality. The method further includes obtaining an integer number X of bits for polar encoding and wireless transmission, wherein X is not greater than N. Upon determining the polar code block length N is not greater than the number of rate matched bits M available for transmission, the method includes assigning each of the bits as inputs to the polar encoder ordered according to the input bits index array Q.
1. A method for use in a wireless transmitter of polar encoding using a polar code block length of N, the method comprising:
obtaining an input bits index array Q[N], each element Q[i] of the input bits index array being an index of a polar coded transmission channel and corresponding to an input U[i] of a polar encoder, elements of Q being ordered according to their associated channel quality;
obtaining an integer number X of bits {b(0), . . . , b(X−1)} for polar encoding and wireless transmission, X being not greater than N;
determining whether the polar code block length N is greater than a number of rate matched bits (M) available for transmission;
upon determining the polar code block length N is not greater than the number of rate matched bits M available for transmission, assigning each of the bits {b(0), . . . , b(X−1)} as inputs to the polar encoder ordered according to the input bits index array Q[N] such that the polar encoding input at index at U[Q[i]]=b(i) for i=0 to X−1;
upon determining the polar code block length N is greater than the number of rate matched bits M available for transmission:
obtaining a sub-block interleaving array J[N], wherein each element of the sub-block interleaving array J is an index of a corresponding bit position after sub-block interleaving;
assigning N−M elements of Q as frozen bits using the sub-block interleaving array; and
assigning each of the bits {b(0), . . . , b(X−1)} as inputs to the polar encoder ordered according to the input bits index array Q such that the polar encoding input at index U[Q[i]]=b(i) for i=0 to X−1, unless Q[i] is one of the N−M frozen bit elements, at least one of the input bits index array Q and the sub-block interleaving array J is obtained prior to polar encoding; and
transmitting the polar encoded bits to a wireless receiver.
2. The method of claim 1 , wherein assigning N−M elements of Q as frozen bits using the sub-block interleaving array J comprises:
upon determining that the ratio of X to M is equal to or below a threshold value, removing the last N−M bits after polar sub-block interleaving using the sub-block interleaving array J to determine which elements of Q will be the last N−M bits after polar sub-block interleaving; and
upon determining that the ratio of X to M is above the threshold value, removing the first N−M bits after polar sub-block interleaving using the sub-block interleaving array J to determine which elements of Q will be the first N−M bits after polar sub-block interleaving.
3. The method of claim 2 , wherein the threshold value is approximately 0.4.
4. The method of claim 1 , wherein determining whether Q[i] is one of the N−M frozen bit elements comprises obtaining a free position array, freePos[ ], wherein freePos[i] equals Q[i] if Q[i] is not a frozen bit; and
assigning each of the bits {b(0), . . . , b(X−1)} as inputs to the polar encoder is based on the free position array.
5. The method of claim 1 , wherein the bits {b(0), . . . , b(X−1)} include information bits and cyclic redundancy check (CRC) bits.
6. The method of claim 5 , wherein the bits {b(0), . . . , b(X−1)} further include parity check bits.
7. The method of claim 1 , further comprising determining X by receiving a scheduling request that includes an indication of an amount of data to be transmitted prior to obtaining {b(0), . . . , b(X−1)}.
8. A wireless transmitter comprising processing circuitry, the processing circuitry configured to:
obtain an input bits index array Q[N], each element Q[i] of the input bits index array being an index of a polar coded transmission channel and corresponding to an input U[i] of a polar encoder, the elements of Q are being ordered according to their associated channel quality;
obtain an integer number X of bits {b(0), . . . , b(X−1)} for polar encoding and wireless transmission, wherein X is not greater than N;
determine whether the polar code block length N is greater than a number of rate matched bits (M) available for transmission;
upon determining the polar code block length N is not greater than the number of rate matched bits M available for transmission, assign each of the bits {b(0), . . . , b(X−1)} as inputs to the polar encoder ordered according to the input bits index array Q[N] such that the polar encoding input at index U[Q[i]]=b(i) for i=0 to X−1;
upon determining the polar code block length N is greater than the number of rate matched bits M available for transmission:
obtaining a sub-block interleaving array J[N], wherein each element of the sub-block interleaving array J is an index of a corresponding bit position after sub-block interleaving;
assigning N−M elements of Q as frozen bits using the sub-block interleaving array; and
assigning each of the bits {b(0), . . . , b(X−1)} as inputs to the polar encoder ordered according to the input bits index array Q such that the polar encoding input at index U[Q[i]]=b(i) for i=0 to X−1, unless Q[i] is one of the N−M frozen bit elements, at least one of the input bits index array Q and the sub-block interleaving array J is obtained prior to polar encoding; and
transmit the polar encoded bits to a wireless receiver.
9. A method for use in a wireless receiver of polar decoding using a polar code block length of N, the method comprising:
obtaining an input bits index array Q[N], each element Q[i] of the input bits index array being an index of a polar coded transmission channel and corresponding to an input U[i] of a polar decoder, elements of Q are being ordered according to their associated channel quality;
receiving a wireless signal associated with an integer number X of polar coded bits {b(0), . . . , b(X−1)} from a wireless transmitter for polar decoding, wherein X is not greater than N;
determining whether the polar code block length N is greater than a number of received rate matched bits (M);
upon determining the polar code block length N is not greater than the number of rate matched bits M, assigning each of the bits {b(0), . . . , b(X−1)} as inputs to the polar decoder ordered according to the input bits index array Q[N] such that the polar decoding input at index U[Q[i]]=b(i) for i=0 to X−1;
upon determining the polar code block length N is greater than the number of rate matched bits M:
obtaining a sub-block deinterleaving array J[N], wherein each element of the sub-block deinterleaving array J is an index of a corresponding bit position after sub-block deinterleaving;
assigning N−M elements of Q as frozen bits using the sub-block deinterleaving array; and
assigning each of the bits {b(0), . . . , b(X−1)} as inputs to the polar decoder ordered according to the input bits index array Q such that the polar decoding input at index U[Q[i]]=b(i) for i=0 to X, unless Q[i] is one of the N−M frozen bit elements, at least one of the input bits index array Q and the sub-block interleaving array J is obtained prior to polar decoding; and
polar decoding the assigned inputs at the polar decoder.
10. The method of claim 9 , wherein assigning N−M elements of Q as frozen bits using the sub-block deinterleaving array J comprises:
upon determining that the ratio of X to M is equal to or below a threshold value, removing the last N−M bits before polar sub-block deinterleaving using the sub-block deinterleaving array J to determine which elements of Q were the last N−M bits before polar sub-block deinterleaving; and
upon determining that the ratio of X to M is above the threshold value, removing the first N−M bits before polar sub-block deinterleaving using the sub-block deinterleaving array J to determine which elements of Q were the first N−M bits before polar sub-block deinterleaving.
11. The method of claim 10 , wherein the threshold value is approximately 0.4.
12. The method of claim 9 , wherein determining whether Q[i] is one of the N−M frozen bit elements comprises obtaining a free position array, freePos[ ], wherein freePos[i] equals Q[i] if Q[i] is not a frozen bit; and assigning each of the bits {b(0), . . . , b(X−1)} as inputs to the polar decoder is based on the free position array.
13. The method of claim 9 , wherein the bits {b(0), . . . , b(X−1)} include information bits and cyclic redundancy check (CRC) bits.
14. The method of claim 13 , wherein the bits {b(0), . . . , b(X−1)} further include parity check bits.
15. The method of claim 9 , further comprising determining X by receiving a scheduling request that includes an indication of an amount of data to be received prior to obtaining {b(0), . . . , b(X−1)}.
16. A wireless receiver comprising processing circuitry, the processing circuitry configured to:
obtain an input bits index array Q[N], each element Q[i] of the input bits index array being an index of a polar coded transmission channel and corresponding to an input U[i] of a polar decoder, elements of Q are being ordered according to their associated channel quality;
receive a wireless signal associated with an integer number X of polar coded bits {b(0), . . . , b(X−1)} from a wireless transmitter for polar decoding, X being not greater than N;
determine whether the polar code block length N is greater than a number of received rate matched bits (M); and
upon determining the polar code block length N is not greater than the number of rate matched bits M, assign each of the bits {b(0), . . . , b(X−1)} as inputs to the polar decoder ordered according to the input bits index array Q[N] such that the polar decoding input at index U[Q[i]]=b(i) for i=0 to X−1; p 1 upon determining the polar code block length N is greater than the number of rate matched bits M:
obtaining a sub-block deinterleaving array J[N], wherein each element of the sub-block deinterleaving array J is an index of a corresponding bit position after sub-block de interleaving;
assigning N−M elements of Q as frozen bits using the sub-block deinterleaving array; and
assigning each of the bits {b(0), . . . , b(X−1)} as inputs to the polar decoder ordered according to the input bits index array Q such that the polar decoding input at index U[Q[i]]=b(i) for i=0 to X, unless Q[i] is one of the N−M frozen bit elements, at least one of the input bits index array Q and the sub-block interleaving array J is obtained prior to polar decoding; and
polar decode the assigned inputs at the polar decoder.