Adaptation of CRC code length for 3GPP NR
Through the combination of adaptive length CRC and polarity code or LDPC code, the problem of insufficient CRC length of NR UCI is solved, and effective error detection and correction of NR UCI is achieved.
Patent Information
- Application Number
- CN202510188989.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2017-03-24
- Filing Date
- 2018-03-23
- Publication Date
- 2025-07-11
AI Technical Summary
The CRC length of NR UCI is not enough to cover its wide range of sizes. The existing 8-bit CRC length is not enough for NR UCI, resulting in insufficient error detection capabilities.
Adaptive length CRC is adopted to dynamically adjust the length of the CRC polynomial according to the data volume, and encode and decode it in combination with polar code or LDPC code to adapt to the needs of different data volumes.
While maintaining reasonable CRC overhead, the error detection capability of NR UCI is improved to adapt to different levels of error detection requirements.
Smart Images

Figure CN120301436A_ABST
Abstract
Description
Technical Field
[0001] Certain embodiments are directed to wireless communication, and more particularly, to adaptive length cyclic redundancy check (CRC) for data transmission. Background Art
[0002] The 3rd Generation Partnership Project (3GPP) Long Term Evolution (LTE) network uses cyclic redundancy check (CRC) for error detection and / or correction. 3GPP New Radio (NR) may use polar codes for downlink and uplink control information (DCI, UCI). For example, uplink control information for enhanced mobile broadband (eMBB) may be polar coded, except possibly for very small block lengths where repetition / block coding may be preferred. Downlink control information for eMBB may be polar coded, except possibly for very small block lengths where repetition / block coding may be preferred.
[0003] UCI parameters for NR may include N max,UCI = 1024. The code design may be optimized for K up to 200, and it typically uses higher code rates to support K values up to 500 with good performance.
[0004] Thus, the UCI for NR can span a wide range, e.g., from K = 1 bit to K = 500 bits. This is much more than the UCI size range of LTE.
[0005] In terms of channel coding, for error detection purposes, and possibly also for error control purposes, it is expected that CRC codes cover the entire size range of UCI. For error control purposes, it is expected that polar codes cover the entire size range of UCI.
[0006] Depending on the CRC length and the desired code properties, the CRC generator polynomial can be selected as various types. The following are two typical types.
[0007] Type 1 generator polynomial: If g(x) = (x + 1)b(x), where b(x) is a primitive polynomial of degree L - 1, then natural code length N CRC1 = 2 L-1 - 1, information length K CRC1 = N CRC1 - L = 2 L-1 - L - 1; This code, if used with block length N ≤ N CRC1 can detect single, double, triple, and any odd number of errors.
[0008] Type 2 generating polynomial: If g(x) is a primitive polynomial of degree L, then: Natural code length N CRC2 = 2 L - 1, information length K CRC2 = N CRC2 - L = 2 L - L - 1.
[0009] If this code is used together with a block length N ≤ N CRC2 it can detect any single-bit or double-bit error.
[0010] If the block length is greater than the natural code length, the minimum distance of the code is 2 because a repeated version of the original cyclic code must be used. However, the number of codewords of weight 2 in the repeated CRC code depends on both the natural code length and the order of the generating polynomial. The longer the natural code length and the higher the order of the generating polynomial, the fewer the codewords of weight 2.
[0011] Table 1 shows the natural code length and information length for a set of CRC lengths L for both Type 1 and Type 2 generating polynomials.
[0012] Table 1: Natural code length and information length for a given CRC length L L <![CDATA[K CRC1 > <![CDATA[N CRC1 > <![CDATA[K CRC2 > <![CDATA[N CRC2 > 7 56 63 120 127 8 119 127 247 255 9 246 255 502 511 10 501 511 1013 1023 11 1012 1023 2036 2047 12 2035 2047 4083 4095 13 4082 4095 8178 8191 14 8177 8191 16369 16383 15 16368 16383 32752 32767 16 32751 32767 65519 65535 17 65518 65535 131054 131071 18 131053 131071 262125 262143 19 262124 262143 524268 524287 20 524267 524287 1048555 1048575 21 1048554 1048575 2097130 2097151 22 2097129 2097151 4194281 4194303 23 4194280 4194303 8388584 8388607 24 8388583 8388607 16777191 16777215 A particular problem is that the NR UCI can be much larger than the LTE UCI. The NR UCI size can be as large as 500 bits or even larger. The existing 8-bit CRC length used for the LTE UCI is not sufficient for the NR UCI.
[0013] The alternatives described in the introductory section are not necessarily alternatives that have been previously envisioned or implemented. Thus, unless otherwise specified herein, the alternatives described in the introductory section are not prior art and are not admitted to be prior art by inclusion in the introductory section. Summary of the Invention
[0014] Embodiments described herein include adaptive length cyclic redundancy check (CRC) to facilitate a wide range of uplink control information (UCI) sizes or downlink control information (DCI) sizes in New Radio (NR).
[0015] According to some embodiments, a method for use by a wireless transmitter includes: determining an amount of data to be transmitted; determining a cyclic redundancy check (CRC) polynomial length based on the amount of data to be transmitted; encoding the data using the CRC of the determined polynomial length; and transmitting the encoded data.
[0016] In a particular embodiment, determining the CRC polynomial length based on the amount of data to be transmitted includes: determining a first CRC polynomial length when the determined amount of data to be transmitted is less than or equal to a threshold number of bits; and determining a second CRC polynomial length when the determined amount of data to be transmitted is greater than the threshold number of bits.
[0017] In a particular embodiment, the data to be transmitted includes control channel data. The control channel data may include uplink control information (UCI) or downlink control information (DCI). Encoding the data using a CRC with the determined polynomial length may include encoding the data using a polar code. As an example, the threshold number of bits may be 19 bits, the first CRC polynomial length may be 6, and the second CRC polynomial length may be 11. A portion of the CRC polynomial length may be used for error correction (L corr ), while another portion of the CRC polynomial length may be used for error detection (L det ), and where L det is 3.
[0018] In a particular embodiment, the data to be transmitted includes user data. The user data may include physical downlink shared channel (PDSCH) or physical uplink shared channel (PUSCH). Encoding the data using a CRC with the determined polynomial length may include encoding the data using a low density parity check (LDPC) code. As an example, the threshold number of bits may be 3824 bits, the first CRC polynomial length may be 16, and the second CRC polynomial length may be 24.
[0019] In a particular embodiment, the method further includes: applying a scaling factor to the determined CRC polynomial length to increase or decrease the determined CRC polynomial length based on error detection or error correction requirements. The CRC block length of the CRC may be greater than the natural code length of the CRC. The natural code length of the CRC may include a margin that exceeds the block length of the CRC.
[0020] According to some embodiments, a wireless transmitter includes processing circuitry. The processing circuitry is operable to: determine the amount of data to be transmitted; determine a CRC polynomial length based on the amount of data to be transmitted; encode the data using a CRC with the determined polynomial length; and transmit the encoded data.
[0021] In a particular embodiment, the processing circuitry is operable to, based on the amount of data to be transmitted, determine the CRC polynomial length by: determining a first CRC polynomial length when the determined amount of data to be transmitted is less than or equal to a threshold number of bits; and determining a second CRC polynomial length when the determined amount of data to be transmitted is greater than the threshold number of bits.
[0022] In a particular embodiment, the data to be transmitted includes control channel data. The control channel data may include UCI or DCI. The processing circuitry is operable to: encode the data using a polar code and a CRC with a determined polynomial length. As an example, the threshold number of bits may be 19 bits, the first CRC polynomial length may be 6, and the second CRC polynomial length may be 11. A portion of the CRC polynomial length may be used for error correction (L corr ), while another portion of the CRC polynomial length may be used for error detection (L det ), and where L det is 3.
[0023] In a particular embodiment, the data to be transmitted includes user data. The user data may include PDSCH or PUSCH. The processing circuitry is operable to: encode the data using an LDPC code and a CRC with a determined polynomial length. As an example, the threshold number of bits may be 3824 bits, the first CRC polynomial length may be 16, and the second CRC polynomial length may be 24.
[0024] In a particular embodiment, the processing circuitry is further operable to: apply a scaling factor to the determined CRC polynomial length to increase or decrease the determined CRC polynomial length based on error detection or error correction requirements. The CRC block length of the CRC may be greater than the natural code length of the CRC. The natural code length of the CRC may include a margin exceeding the block length of the CRC.
[0025] In a particular embodiment, the wireless transmitter includes a network node or a wireless device.
[0026] According to some embodiments, a method for a wireless receiver includes: receiving encoded data from a wireless transmitter; determining the amount of data received in the encoded data; determining a CRC polynomial length based on the amount of data; and decoding the received encoded data using a CRC with the determined polynomial length.
[0027] In a particular embodiment, determining a CRC polynomial length based on the amount of data received includes: determining a first CRC polynomial length when the determined amount of data received is less than or equal to a threshold number of bits; and determining a second CRC polynomial length when the determined amount of data received is greater than the threshold number of bits.
[0028] In a particular embodiment, the received data includes control channel data. The control channel data may include UCI or DCI. Decoding the received encoded data using the CRC with the determined polynomial length may include decoding the data using a polar code. As an example, the threshold number of bits may be 19 bits, the first CRC polynomial length may be 6, and the second CRC polynomial length may be 11. A portion of the CRC polynomial length may be used for error correction (L corr ), while another portion of the CRC polynomial length may be used for error detection (L det ), and where L det is 3.
[0029] In a particular embodiment, the received data includes user data. The user data may include PDSCH or PUSCH. Decoding the received encoded data using the CRC with the determined polynomial length may include decoding the received encoded data using an LDPC code. As an example, the threshold number of bits may be 3824 bits, the first CRC polynomial length may be 16, and the second CRC polynomial length may be 24.
[0030] In a particular embodiment, the method further includes: applying a scaling factor to the determined CRC polynomial length to increase or decrease the determined CRC polynomial length based on error detection or error correction requirements. The CRC block length of the CRC may be greater than the natural code length of the CRC. The natural code length of the CRC may include a margin exceeding the block length of the CRC.
[0031] In a particular embodiment, the wireless receiver includes a network node or a wireless device.
[0032] According to some embodiments, the wireless receiver includes processing circuitry. The processing circuitry is operable to: receive encoded data from a wireless transmitter; determine the amount of data received in the encoded data; determine a CRC polynomial length based on the amount of data; and decode the received encoded data using the CRC with the determined polynomial length.
[0033] In a particular embodiment, the processing circuitry is operable to: determine a CRC polynomial length based on the amount of data received by: determining a first CRC polynomial length when the determined amount of data received is less than or equal to a threshold number of bits; and determining a second CRC polynomial length when the determined amount of data received is greater than the threshold number of bits.
[0034] In a particular embodiment, the received data includes control channel data. The control channel data may include UCI or DCI. The processing circuitry may be operable to: decode the received coded data using a polar code and a CRC of a determined polynomial length. As an example, the threshold number of bits may be 19 bits, the first CRC polynomial length may be 6, and the second CRC polynomial length may be 11. A portion of the CRC polynomial length may be used for error correction (L corr ), while another portion of the CRC polynomial length is used for error detection (L det ), and where L det is 3.
[0035] In a particular embodiment, the received data includes user data. The user data may include PDSCH or PUSCH. The processing circuitry may be operable to decode the received coded data using a CRC of a determined polynomial length including using an LDPC code. As an example, the threshold number of bits may be 3824 bits, the first CRC polynomial length may be 16, and the second CRC polynomial length may be 24.
[0036] In a particular embodiment, the processing circuitry is further operable to: apply a scaling factor to the determined CRC polynomial length to increase or decrease the determined CRC polynomial length based on error detection or error correction requirements. The CRC block length of the CRC may be greater than the natural code length of the CRC. The natural code length of the CRC may include a margin exceeding the block length of the CRC.
[0037] In a particular embodiment, the wireless transmitter includes a network node or a wireless device.
[0038] According to some embodiments, the wireless transmitter includes a determination module, an encoding / decoding module, and a transmission module. The determination module is operable to: determine the amount of data to be transmitted; and determine the CRC polynomial length based on the amount of data to be transmitted. The encoding / decoding module is operable to encode the data using the CRC of the determined polynomial length. The transmission module is operable to transmit the coded data.
[0039] According to some embodiments, the wireless receiver includes a determination module, an encoding / decoding module, and a reception module. The reception module is operable to receive coded data from the wireless transmitter. The determination module is operable to: determine the amount of data received in the coded data; and determine the CRC polynomial length based on the amount of data. The encoding / decoding module is operable to decode the received coded data using the CRC of the determined polynomial length.
[0040] A computer program product is also disclosed. The computer program product includes instructions stored on a non-transitory computer-readable medium that, when executed by a processor, perform the following steps: determining an amount of data to be transmitted; determining a CRC polynomial length based on the amount of data to be transmitted; encoding the data using a CRC of the determined polynomial length; and transmitting the encoded data.
[0041] Another computer program product includes instructions stored on a non-transitory computer-readable medium that, when executed by a processor, perform the following steps: receiving encoded data from a wireless transmitter; determining an amount of data received in the encoded data; determining a CRC polynomial length based on the amount of data; and decoding the received encoded data using a CRC of the determined polynomial length.
[0042] Certain embodiments may exhibit some of the following technical advantages. In certain embodiments, adapting the CRC size maintains good error detection capabilities while using a reasonable CRC overhead. Alternatively, by making the CRC size suitable for the application at hand, different levels of error detection capabilities can also be supported. Those skilled in the art will readily appreciate other technical advantages from the following drawings, description, and example claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0043] To more fully understand the embodiments and their features and advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which: Figure 1 is a block diagram illustrating an example wireless network in accordance with some embodiments; Figure 2A is a flowchart illustrating an example method for use by a wireless transmitter in accordance with some embodiments; Figure 2B is a flowchart illustrating an example method for use by a wireless receiver in accordance with some embodiments; Figure 3A is a block diagram illustrating an example embodiment of a wireless device; Figure 3B is a block diagram illustrating example components of a wireless device; Figure 4A is a block diagram illustrating an example embodiment of a network node; and Figure 4B is a block diagram illustrating example components of a network node. DETAILED DESCRIPTION
[0044] The 3rd Generation Partnership Project (3GPP) Long Term Evolution (LTE) network uses Cyclic Redundancy Check (CRC) for error detection and / or error correction. 3GPP New Radio (NR) may use polar codes for downlink and uplink control information (DCI, UCI). For example, UCI and DCI for enhanced mobile broadband (eMBB) may be polar coded, except possibly for very small block lengths where repetition or block coding may be preferred.
[0045] The code design for NR can be optimized for K up to 200, and generally uses higher code rates to further support K values up to 500 with good performance. Thus, the UCI for NR can span a wide range, e.g., from K = 1 bit to K = 500 bits. This is larger than the LTE UCI size range.
[0046] In terms of channel coding, for error detection and possibly also for error control, it is expected that the CRC code covers the entire size range of the UCI. For error control purposes, it is expected that the polar code covers the entire size range of the UCI.
[0047] A particular problem is that the NR UCI can be much larger than the LTE UCI. The NR UCI size can be as large as 500 bits, or even larger. The existing 8-bit CRC length used for LTE UCI is not sufficient for NR UCI.
[0048] Certain embodiments address the above problem and include an adaptive length CRC to facilitate a wide range of UCI sizes or DCI sizes in NR. In certain embodiments, adapting the CRC size maintains good error detection capabilities while using a reasonable CRC overhead. Alternatively, different levels of error detection capabilities can also be supported by making the CRC size suitable for the application at hand.
[0049] The following description sets forth many specific details. However, it is to be understood that embodiments may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques have not been shown in detail so as not to obscure the understanding of this description. A person of ordinary skill in the art will be able to implement appropriate functionality without undue experimentation using the description provided.
[0050] References in the specification to "one embodiment", "an embodiment", "example embodiment", etc., indicate that the described embodiment may include a particular feature, structure, or characteristic, but each embodiment may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Additionally, whether or not explicitly described, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is considered within the knowledge of one of ordinary skill in the art to implement such feature, structure, or characteristic in connection with other embodiments.
[0051] In the accompanying drawings Figure 1-4B Specific embodiments are described, and like reference numerals are used for like and corresponding parts of the various figures. LTE and NR are used throughout this disclosure as example cellular systems, but the ideas presented herein can also be applied to other wireless communication systems.
[0052] Figure 1 is a block diagram illustrating an example wireless network according to a specific embodiment. The wireless network 100 includes one or more wireless devices 110 (such as mobile phones, smart phones, laptop computers, tablet computers, MTC devices, or any other device capable of providing wireless communication) and a plurality of network nodes 120 (such as base stations or eNodeBs). The wireless device 110 can also be referred to as a UE. The network node 120 serves a coverage area 115 (also referred to as a cell 115).
[0053] Generally, wireless devices 110 within the coverage of network nodes 120 (e.g., within the cell 115 served by network node 120) communicate with network nodes 120 by transmitting and receiving wireless signals 130. For example, wireless devices 110 and network nodes 120 can transmit wireless signals 130 containing voice services, data services, and / or control signals. The network node 120 that transmits voice services, data services, and / or control signals to the wireless device 110 can be referred to as the serving network node 120 of the wireless device 110. The communication between the wireless device 110 and the network node 120 can be referred to as cellular communication.
[0054] The wireless signal 130 can include downlink transmissions (from network node 120 to wireless device 110) and uplink transmissions (from wireless device 110 to network node 120). The wireless signal 130 can include control channels and user data channels. The wireless signal 130 can include a CRC for error detection and / or correction.
[0055] Each network node 120 can have a single transmitter or multiple transmitters for transmitting signals 130 to the wireless device 110. In some embodiments, the network node 120 can include a multiple-input multiple-output (MIMO) system. Similarly, each wireless device 110 can have a single receiver or multiple receivers for receiving signals 130 from the network node 120 or other wireless devices 110.
[0056] Depending on the amount of data to be transmitted, a wireless transmitter, such as network node 120 or wireless device 110, can transmit wireless signals 130 encoded with CRCs of different lengths. In some embodiments, the wireless transmitter can apply a scaling factor when determining the CRC length.
[0057] Depending on the amount of data received, a wireless receiver, such as network node 120 or wireless device 110, may receive wireless signal 130 encoded with CRCs of different lengths. In some embodiments, the wireless receiver may apply a scaling factor when determining the CRC length.
[0058] In wireless network 100, each network node 120 may use any suitable radio access technology, such as Long Term Evolution (LTE), LTE-Advanced, NR, UMTS, HSPA, GSM, cdma2000, NR, WiMax, WiFi, and / or other suitable radio access technologies. Wireless network 100 may include any suitable combination of one or more radio access technologies. For purposes of illustration, various embodiments may be described within the context of certain radio access technologies. However, the scope of the present disclosure is not limited to these examples, and other embodiments may use different radio access technologies.
[0059] As described above, embodiments of a wireless network may include one or more wireless devices and one or more different types of radio network nodes capable of communicating with the wireless devices. The network may also include any additional elements suitable for supporting communication between wireless devices or between a wireless device and another communication device, such as a landline telephone. The wireless device may include any suitable combination of hardware and / or software. For example, in a particular embodiment, a wireless device, such as wireless device 110, may include the components described below for Figure 3A description. Similarly, the network node may include any suitable combination of hardware and / or software. For example, in a particular embodiment, a network node, such as network node 120, may include the components described below for Figure 4A description.
[0060] In the NR system, it is expected that the UCI size K spans a much wider range than that of LTE's UCI. The minimum size is K min = 1, and the maximum size K max can be up to 500 bits, or even higher for NR Release 15.
[0061] K max 's exact value may evolve as the NR system evolves. For example, if future NR releases employ a larger number of component carriers, the UCI size may increase. In another example, if the UE monitors and reports a larger number of MIMO layers or beams as part of the channel state information (CSI) report, the UCI size may increase.
[0062] Thus, according to some embodiments, it is desirable that the CRC length should be suitable for the UCI size it protects. For a larger UCI size, a longer CRC is used; for a shorter UCI, a shorter CRC is used.
[0063] A first set of embodiments uses the CRC vector only for error detection. These embodiments assume that the natural length of the CRC is (K CRC1,L1 , N CRC1,L1 ), which corresponds to the CRC length L1 of CRC size type 1. Type 1 refers to a CRC with g(x) = (x + 1)b(x), where b(x) is a primitive polynomial of degree L - 1, which has a natural code length N CRC1 = 2 L-1 - 1. Note that although a type 1 CRC generating polynomial is assumed in the example, those skilled in the art understand that it can be changed to use type 2 and other types of CRC generating polynomials, and the same method applies.
[0064] In these embodiments, the CRC vector is only used for error detection and not for error correction. For example, this is the case when the UCI is protected by a PC polar code.
[0065] For a first ensemble of UCIs, let the maximum UCI size be K UCI,1,max , K UCI,1,max <= K CRC1,L1 , where K CRC1,L1 is preferably the minimum value in the K CRC1 list that is greater than or equal to K UCI,1,max . Then, a CRC of length L1 is used for the first ensemble of UCIs. For example, the first ensemble has K UCI,1,max <= 100 bits. Then, by looking up Table 1, it is found that K CRC1,L1 is K CRC1,L1 = 119, and a CRC vector of length L1 = 8 bits is used.
[0066] For a second ensemble of UCIs, let the maximum UCI size be K UCI,2,max , K UCI,1,max < K UCI,2,max <= K CRC1,L2 , where K CRC1,L2 is preferably the minimum value in the K CRC1 list that is greater than or equal to K UCI,2,max . Then, a CRC of length L2 is used for the second ensemble of UCIs, where L2 > L1. For example, the second ensemble has K UCI,2,max <= 2000 bits. Then, by looking up Table 1, it is found that K CRC1,L2 is K CRC1,L2= 2035, and a CRC of length L2 = 12 bits is used. If there are more UCI ensembles, the same process can be executed.
[0067] The second set of embodiments uses a CRC vector for both error correction and error detection. These embodiments also assume that the natural length of the CRC is (K CRC1,L1 , N CRC1,L1 ), which corresponds to the CRC length L1 of CRC size type 1. A CRC vector is used for both error correction and error detection. For example, this is the case when the UCI is protected by a CRC-assisted polar code. It is assumed that equivalent L corr CRC bits are required for error correction, and equivalent L det CRC bits are required for error detection. To obtain better code performance, a single CRC is desired rather than two separate CRCs. A CRC vector of length >= (L corr + L det ) is used, and correspondingly, a CRC polynomial of degree >= (L corr + L det ) is used.
[0068] For the first ensemble of UCI, let the maximum UCI size be K UCI,1,max , K UCI,1,max <= K CRC1,L1 , where K CRC1,L1 is preferably the minimum value in the K CRC1 list that is greater than or equal to K UCI,1,max . Then, a CRC of length max(L1, L corr + L det ) is used for the first ensemble of UCI. For example, the first ensemble has K UCI,1,max <= 100 bits. Then, by looking up Table 1, it is found that K CRC1,L1 is K CRC1,L1 = 119, where L1 = 8 bits, and a CRC vector of length max(8, L corr + L det ) is used.
[0069] For the second ensemble of UCI, let the maximum UCI size be K UCI,2,max , K UCI,1,max < K UCI,2,max <= K CRC1,L2 , where K CRC1,L2 is preferably the minimum value in the K CRC1 list that is greater than or equal to K UCI,2,max . Then, a CRC of length max(L2, L corr + L det ) is used for the second ensemble of UCI. For example, the second ensemble has K UCI,2,max<= 2000 bits. Then, by looking up Table 1, K is found CRC1,L2 is K CRC1,L2 = 2035, where L2 = 12 bits, and a CRC vector of length max(12, L corr + L det ) is used. If there are more UCI ensembles, the same process can be performed.
[0070] The third set of embodiments uses a CRC block length greater than the natural code length. Using a natural code length less than or equal to the CRC's natural code length for the CRC ensures good error detection ability of the CRC code. However, in some cases, a long code length is used, but the requirement for the error detection ability of the CRC code may be relaxed. In this case, the adaptive CRC length can be selected to be slightly less than the CRC length required to avoid duplicate CRC codes.
[0071] For the first ensemble of UCI, where the maximum UCI size is K UCI,1,max , K UCI,1,max ·F <= K CRC1,L1 , then a CRC of length L1 is used for the first ensemble of UCI. F is a scaling factor, 0 < F <= 1, which should take into account the required error detection properties of the resulting CRC code. For example, if the first ensemble has K UCI,1,max <= 100 bits, and the scaling factor F = 0.5, then by looking up Table 1, K CRC1,L1 = 56 can be found, which satisfies 100 * 0.5 < 56, so L1 = 7, and a CRC vector of length 7 is used.
[0072] For the second ensemble of UCI, where the maximum UCI size is K UCI,2,max , K UCI,2,max ·F <= K CRC2,L2 , then a CRC of length L2 is used for the second ensemble of UCI. For example, if the second ensemble has K UCI,2,max <= 2000 bits, and the scaling factor F = 0.5, then by looking up Table 1, K CRC1,L2 = 1012 can be found, which satisfies 2000 * 0.5 < 1012, so L2 = 11, and a CRC vector of length 11 is used. If there are more UCI ensembles, the same process can be performed.
[0073] The fourth set of embodiments uses a CRC with a natural code length that produces a variable margin in the block length. For the same block length, there may be applications that require different amounts of error detection ability. To facilitate different amounts of error detection ability, an additional margin is placed in the difference between the natural code length and the block length.
[0074] For the first ensemble of UCI, the maximum UCI size is KUCI,1,max , K UCI,1,max <= K CRC1,L1 , and K CRC1,L1 is preferably the minimum value greater than or equal to K CRC1 in the list. Then, a CRC of length (L1 + d1) is used for the first ensemble of UCI, where d1 is an integer that serves as a knob for adjusting the additional error detection capability in the derived CRC code according to the application. For example, if the first ensemble has K UCI,1,max <= 100 bits and a margin of d1 = 2, then L1 = 7 can be found through Lookup Table 1. L1 + d1 = 7 + 2 = 9, and a CRC vector of length 9 is used. UCI,1,max <= 100 bits and a margin of d1 = 2, then L1 = 7 can be found through Lookup Table 1. L1 + d1 = 7 + 2 = 9, and a CRC vector of length 9 is used.
[0075] For the second ensemble of UCI, the maximum UCI size is K UCI,2,max , K UCI,1,max < K UCI,2,max <= K CRC2,L2 , and K CRC1,L2 is preferably the minimum value greater than or equal to K CRC1 in the list. Then, a CRC of length (L2 + d2) is used for the second ensemble of UCI, where d2 is an integer that serves as a knob for adjusting the additional error detection capability in the derived CRC code for the second ensemble of UCI. For example, if the second ensemble has K UCI,2,max <= 2000 bits and a margin of d2 = 1, then L2 = 12 can be found through Lookup Table 1. L2 + d2 = 12 + 1 = 13, and a CRC vector of length 13 is used. UCI,2,max <= 2000 bits and a margin of d2 = 1, then L2 = 12 can be found through Lookup Table 1. L2 + d2 = 12 + 1 = 13, and a CRC vector of length 13 is used.
[0076] Generally, the margins d1 and d2 can or may not be independent of the UCI size. If there are more UCI ensembles, the same process can be carried out.
[0077] Assigning UCI to different ensembles can be based on various system parameters and configurations, including (but not limited to) the following: (a) the number of component carriers in carrier aggregation; (b) the number of MIMO layers for which the UE is configured to report channel state information; (c) the number of beams for which the UE is configured to report channel state information; and (d) the number of bits in the CSI field according to the quantization level of the reported value.
[0078] Although the above description uses UCI as an example, the same method can be applied to other types of information transmission, such as downlink data packets, uplink data packets instead of control information. For example, downlink control information (DCI) instead of UCI. In addition, the associated error control coding method can include other code types, such as LDPC codes instead of polar codes.
[0079] Certain embodiments may include methods in a wireless transmitter and a wireless receiver (such as a network node or a wireless device). The above examples and embodiments may generally be represented by Figure 2A and 2B in a flowchart.
[0080] Figure 2A is a flowchart illustrating an example method for use by a wireless transmitter according to some embodiments. In certain embodiments, Figure 2A one or more steps of Figure 1 may be performed by components of the wireless network 100 described for
[0081] The method begins at step 212, where the wireless transmitter determines the amount of data to be transmitted. For example, the network node 120 or the wireless device 110 may determine that it has 100 bits of data to transmit. In some embodiments, the data to be transmitted may include control information, such as uplink control information or downlink control information. In some embodiments, the data to be transmitted may include user data, such as PDSCH or PUSCH.
[0082] At step 214, the wireless transmitter determines the CRC length based on the amount of data to be transmitted. For example, the network node 120 or the wireless device 110 may perform a table lookup for a CRC length value associated with the smallest data amount that is greater than or equal to the determined amount of data to be transmitted.
[0083] In certain embodiments, when the amount of data to be transmitted is less than or equal to a threshold number of bits, the wireless transmitter determines a first CRC polynomial length. For example, for transmitting control channel data (e.g., DCI, UCI, etc.), the threshold may be 19 bits. For control channel bit numbers less than or equal to 19 bits, the wireless transmitter may determine a CRC polynomial length of 6. For control channel bit numbers greater than 19 bits, the wireless transmitter may determine a CRC polynomial length of 11. A portion of the CRC polynomial may be used for error correction (e.g., 3 bits or 9 bits), and a portion may be used for error detection (e.g., 3 bits).
[0084] As another example, for transmitting user data (e.g., PDSCH, PUSCH, etc.), the threshold may be 3824 bits. For user data bit numbers less than or equal to 3824 bits, the wireless transmitter may determine a CRC polynomial length of 16. For user data bit numbers greater than 3824 bits, the wireless transmitter may determine a CRC polynomial length of 24. Other embodiments may select any suitable threshold and any suitable CRC polynomial length.
[0085] In some embodiments, the wireless transmitter may apply a scaling factor, such as the scaling factor described above for the third and fourth sets of embodiments. The CRC block length of the CRC may be greater than the natural code length of the CRC, or the natural code length of the CRC may include a margin exceeding the block length of the CRC.
[0086] In step 216, the wireless transmitter encodes the data using a CRC of the determined length. For example, depending on the amount of data to be transmitted and the values in the lookup table, network node 120 or wireless device 110 may encode the data using an 8-bit CRC or a 12-bit CRC. The wireless transmitter may encode control channel data using a polar code and user data using an LDPC code.
[0087] In step 218, the wireless transmitter transmits the encoded data. For example, network node 120 may transmit the encoded data to wireless device 110, or vice versa.
[0088] Method 200 may be modified, added to, or omitted. Additionally, Figure 2A one or more steps in method 200 may be performed in parallel or in any suitable order. The steps of method 200 may be repeated as needed over time.
[0089] Figure 2B is a flowchart illustrating an example method for use by a wireless receiver according to some embodiments. In a particular embodiment, Figure 2B one or more steps may be performed by components of wireless network 100 described for Figure 1 The method begins at step 252, where the wireless receiver receives encoded data from the wireless transmitter. For example, network node 120 may receive the encoded data from wireless device 110, or vice versa.
[0090] In step 254, the wireless receiver determines the amount of data received in the encoded data. For example, network node 120 or wireless device 110 may determine that it has received 100 bits of data. In some embodiments, the received data may include control information, such as uplink control information or downlink control information. In some embodiments, the received data may include user data, such as PDSCH or PUSCH.
[0091] In step 256, the wireless receiver determines the CRC length based on the amount of data received. For example, network node 120 or wireless device 110 may perform a table lookup for the CRC length value associated with the minimum amount of data that is greater than or equal to the determined amount of data received.
[0092]
[0093] In a particular embodiment, when the amount of data received is less than or equal to a threshold number of bits, the wireless receiver determines a first CRC polynomial length. For example, for receiving control channel data (e.g., DCI, UCI, etc.), the threshold can be 19 bits. For a control channel bit number less than or equal to 19 bits, the wireless receiver can determine the CRC polynomial length to be 6. For a control channel bit number greater than 19 bits, the wireless receiver can determine the CRC polynomial length to be 11. A part of the CRC polynomial can be used for error correction (e.g., 3 bits or 9 bits), and a part can be used for error detection (e.g., 3 bits).
[0094] As another example, for receiving user data (e.g., PDSCH, PUSCH, etc.), the threshold can be 3824 bits. For a user data bit number less than or equal to 3824 bits, the wireless receiver can determine the CRC polynomial length of 16. For a user data bit number greater than 3824 bits, the wireless receiver can determine the CRC polynomial length of 24. Other embodiments can select any suitable threshold and any suitable CRC polynomial length.
[0095] In some embodiments, the wireless receiver can apply a scaling factor, such as the scaling factor described above for the third and fourth groups of embodiments. The CRC block length of the CRC can be greater than the natural code length of the CRC, or the natural code length of the CRC can include a margin exceeding the block length of the CRC.
[0096] In step 258, the wireless receiver decodes the data using the CRC of the determined length. For example, depending on the amount of data received and the values in the lookup table, network node 120 or wireless device 110 can decode the data using an 8-bit CRC or a 12-bit CRC. The wireless receiver can decode the control channel data using a polar code and decode the user data using an LDPC code.
[0097] Method 250 can be modified, added to, or omitted. Additionally, Figure 2B one or more steps in method 250 can be executed in parallel or in any suitable order. The steps of method 250 can be repeated over time as needed.
[0098] Figure 3A is a block diagram illustrating an example embodiment of a wireless device. The wireless device is an example of the wireless device 110 illustrated in Figure 1 In a particular embodiment, the wireless device is capable of determining the CRC length based on the amount of data to be transmitted or received.
[0099] Specific examples of wireless devices include mobile phones, smart phones, PDAs (Personal Digital Assistants), portable computers (e.g., laptop computers, tablet computers), sensors, modems, machine-type (MTC) devices / machine-to-machine (M2M) devices, laptop embedded devices (LEEs), laptop mounted devices (LMEs), USB dongles, devices with device-to-device capabilities, vehicle-to-vehicle devices, or any other device capable of providing wireless communication. The wireless device includes a transceiver 310, a processing circuit 320, a memory 330, and a power supply 340. In some embodiments, the transceiver 310 facilitates the transmission of wireless signals to the wireless network node 120 (e.g., via an antenna) and the reception of wireless signals from the network node 120, the processing circuit 320 executes instructions to provide some or all of the functionality described herein as being provided by the wireless device, and the memory 330 stores the instructions executed by the processing circuit 320. The power supply 340 supplies power to one or more components of the wireless device 110, such as the transceiver 310, the processing circuit 320, and / or the memory 330.
[0100] The processing circuit 320 includes any suitable combination of hardware and software implemented in one or more integrated circuits or modules to execute instructions and manipulate data to perform some or all of the described functions of the wireless device. In some embodiments, the processing circuit 320 may include, for example, one or more computers, one or more programmable logic devices, one or more central processing units (CPUs), one or more microprocessors, one or more applications, and / or other logic, and / or any suitable combination of the foregoing. The processing circuit 320 may include analog and / or digital circuits configured to perform some or all of the described functions of the wireless device 110. For example, the processing circuit 320 may include resistors, capacitors, inductors, transistors, diodes, and / or any other suitable circuit components.
[0101] The memory 330 is generally operable to store computer-executable code and data. Examples of the memory 330 include computer memory (e.g., random access memory (RAM) or read-only memory (ROM)), mass storage media (e.g., hard disk), removable storage media (e.g., compact disk (CD) or digital video disk (DVD)), and / or any other volatile or non-volatile, non-transitory computer-readable and / or computer-executable memory device for storing information.
[0102] The power supply 340 is generally operable to supply power to the components of the wireless device 110. The power supply 340 may include any suitable type of battery, such as a lithium-ion, lithium-air, lithium polymer, nickel-cadmium, nickel metal hydride, or any other suitable type of battery for powering the wireless device.
[0103] In a particular embodiment, the processing circuit 320 communicating with the transceiver 310 determines the CRC length based on the amount of data to be transmitted or received.
[0104] (In addition to the components shown in Figure 3A ) Other embodiments of the wireless device may include additional components that are responsible for providing certain aspects of the functionality of the wireless device, including any of the functionality described above and / or any additional functionality (including any functionality necessary to support the solutions described above).
[0105] Figure 3B is a block diagram illustrating example components of the wireless device 110. These components may include a determination module 350, an encoding / decoding module 352, a transmission module 354, and a reception module 356.
[0106] The determination module 350 may perform the determination function of the wireless device 110. For example, according to any of the above embodiments and examples, the determination module 350 may determine the amount of data to be transmitted or received and determine the CRC length based on that amount of data. In certain embodiments, the determination module 350 may include the processing circuit 320 or be included in the processing circuit 320. In a particular embodiment, the determination module 350 may communicate with the encoding / decoding module 352, the transmission module 354, and the reception module 356.
[0107] The encoding / decoding module 352 may perform the encoding and / or decoding function of the wireless device 110. For example, according to any of the above embodiments and examples, the encoding / decoding module 352 may encode or decode data transmissions with an adaptive length CRC. In certain embodiments, the encoding / decoding module 352 may include the processing circuit 320 or be included in the processing circuit 320. In a particular embodiment, the encoding / decoding module 352 may communicate with the determination module 350, the transmission module 354, and the reception module 356.
[0108] The transmission module 354 may perform the transmission function of the wireless device 110. For example, the transmission module 354 may transmit data encoded with an adaptive length CRC. In certain embodiments, the transmission module 354 may include the processing circuit 320 or be included in the processing circuit 320. In a particular embodiment, the transmission module 354 may communicate with the determination module 350 and the encoding / decoding module 352.
[0109] The reception module 356 may perform the reception function of the wireless device 110. For example, the reception module 356 may receive data encoded with an adaptive length CRC. In certain embodiments, the reception module 356 may include the processing circuit 320 or be included in the processing circuit 320. In a particular embodiment, the reception module 356 may communicate with the determination module 350 and the encoding / decoding module 352.
[0110] Figure 4A is a block diagram of an example embodiment of an illustrated network node. The network node is an example of the network node 120 illustrated in Figure 1 . In a particular embodiment, the network node determines the CRC length based on the amount of data to be transmitted or received.
[0111] The network node 120 can be an eNodeB, Node B, base station, wireless access point (e.g., Wi-Fi access point), low power node, base transceiver station (BTS), transmission point or node, remote RF unit (RRU), remote radio head (RRH), or other radio access node. The network node includes at least one transceiver 410, processing circuitry 420, at least one memory 430, and at least one network interface 440. The transceiver 410 facilitates transmitting wireless signals to (e.g., via an antenna) and receiving wireless signals from a wireless device such as the wireless device 110; the processing circuitry 420 executes instructions to provide some or all of the functionality described above as being provided by the network node 120; the memory 430 stores the instructions executed by the processing circuitry 420; and the network interface 440 passes signals to backend network components such as gateways, switches, routers, the Internet, the public switched telephone network (PSTN), controllers, and / or other network nodes 120. The processing circuitry 420 and the memory 430 can be of the same type as those described above for Figure 3A the processing circuitry 320 and the memory 330.
[0112] In some embodiments, the network interface 440 is communicatively coupled to the processing circuitry 420 and refers to any suitable device operable to receive inputs to the network node 120, send outputs from the network node 120, perform suitable processing of the input or output or both, communicate with other devices, or any combination of the foregoing. The network interface 440 includes suitable hardware (e.g., ports, modems, network interface cards, etc.) and software for communicating over a network, including protocol conversion and data processing capabilities.
[0113] In a particular embodiment, the processing circuitry 420 communicating with the transceiver 410 determines the CRC length based on the amount of data to be transmitted or received.
[0114] (Except in Figure 4AOther embodiments of network node 120 (in addition to the components shown) include additional components that are responsible for providing certain aspects of the functionality of the network node, including any of the functionality described above and / or any additional functionality (including any functionality necessary to support the solutions described above). Various different types of network nodes may include components that have the same physical hardware but are configured (e.g., via programming) to support different radio access technologies, or may represent partially or completely different physical components.
[0115] Figure 4B is a block diagram illustrating example components of network node 120. These components may include a determination module 450, an encoding / decoding module 452, a transmission module 454, and a reception module 456.
[0116] The determination module 450 may perform the processing functions of network node 120. For example, according to any of the above embodiments and examples, the determination module 450 may determine the amount of data to be transmitted or received and determine the CRC length based on that amount of data. In some embodiments, the determination module 450 may include processing circuitry 420 or be included in processing circuitry 420. In a particular embodiment, the determination module 450 may communicate with the encoding / decoding module 452, the transmission module 454, and the reception module 456.
[0117] The encoding / decoding module 452 may perform the encoding and / or decoding functions of network node 120. For example, according to any of the above embodiments or examples, the encoding / decoding module 452 may encode or decode data transmissions with an adaptive length CRC. In some embodiments, the encoding / decoding module 452 may include processing circuitry 420 or be included in processing circuitry 320. In a particular embodiment, the encoding / decoding module 452 may communicate with the determination module 450, the transmission module 454, and the reception module 456.
[0118] The transmission module 454 may perform the transmission functions of network node 120. For example, the transmission module 454 may transmit data encoded with an adaptive length CRC. In some embodiments, the transmission module 454 may include processing circuitry 420 or be included in processing circuitry 320. In a particular embodiment, the transmission module 454 may communicate with the determination module 450 and the encoding / decoding module 452.
[0119] The reception module 456 may perform the reception functions of network node 120. For example, the reception module 456 may receive data encoded with an adaptive length CRC. In some embodiments, the reception module 456 may include processing circuitry 420 or be included in processing circuitry 420. In a particular embodiment, the reception module 456 may communicate with the determination module 450 and the encoding / decoding module 452.
[0120] Without departing from the scope of the present invention, modifications, additions, or omissions can be made to the systems and devices disclosed herein. The components of the systems and devices can be integrated or separated. Additionally, the operations of the systems and devices can be performed by more, fewer, or other components. Further, the operations of the systems and devices can be performed using any suitable logic (including software, hardware, and / or other logic). As used in this document, "each" refers to each member of a set or each member of a subset of a set.
[0121] Without departing from the scope of the present invention, modifications, additions, or omissions can be made to the methods disclosed herein. The methods can include more, fewer, or other steps. Additionally, these steps can be performed in any suitable order.
[0122] Although the present disclosure has been described in terms of certain embodiments, changes and permutations of these embodiments will be apparent to those skilled in the art. Accordingly, the foregoing description of the embodiments does not limit the present disclosure. Other changes, substitutions, and alterations are possible without departing from the spirit and scope of the present disclosure as defined by the following claims.
[0123] Abbreviations used in the foregoing description include: 3GPP Third Generation Partnership Project BTS Base Transceiver Station CRC Cyclic Redundancy Check CSI Channel State Information CSI-RS Channel State Information Reference Signal D2D Device-to-Device DCI Downlink Control Information DL Downlink DMRS Demodulation Reference Signal eMBB Enhanced Mobile Broadband eNB eNodeB FDD Frequency Division Duplexing LDPC Low-Density Parity-Check LTE Long-Term Evolution M2M Machine-to-Machine MIMO Multiple-Input Multiple-Output MTC Machine-Type Communication NR New Radio OFDM Orthogonal Frequency Division Multiplexing PDCCH Physical Downlink Control Channel PDSCH Physical Downlink Shared Channel PUCCH Physical Uplink Control Channel PUSCH Physical Uplink Shared Channel RAN Radio Access Network RAR Random Access Response RAT Radio Access Technology RBS Radio Base Station RNC Radio Network Controller RRC Radio Resource Control RRH Remote Radio Head RRU Remote Radio Unit RS Reference Signal UCI Uplink Control Information UE User Equipment UL Uplink UTRAN Universal Terrestrial Radio Access Network WAN Wireless Access Network
Claims
1. A method for use in a wireless transmitter, the method comprising: determining (212) the amount of data to be transmitted; determining (214) a cyclic redundancy check (CRC) polynomial length based on the amount of data to be transmitted; encoding (216) the data using CRC with the determined polynomial length; and transmitting (218) the encoded data.
2. The method according to claim 1, wherein determining (214) the CRC polynomial length based on the amount of data to be transmitted comprises: when the determined amount of data to be transmitted is less than or equal to a threshold number of bits, determining a first CRC polynomial length; and when the determined amount of data to be transmitted is greater than the threshold number of bits, determining a second CRC polynomial length.
3. The method according to claim 2, wherein the data to be transmitted comprises control channel data.
4. The method according to claim 3, wherein the control channel data comprises uplink control information (UCI) or downlink control information (DCI).
5. The method according to any one of claims 3-4, wherein encoding the data using CRC with the determined polynomial length comprises encoding the data using a polar code.
6. The method according to any one of claims 3-5, wherein the threshold number of bits is 19 bits, the first CRC polynomial length is 6, and the second CRC polynomial length is 11.
7. The method according to claim 6, wherein a part of the CRC polynomial length is used for error correction (L corr ), and another part of the CRC polynomial length is used for error detection (L det ), and wherein L det is 3.
8. The method according to claim 2, wherein the data to be transmitted comprises user data.
9. The method according to claim 8, wherein the user data comprises a physical downlink shared channel (PDSCH) or a physical uplink shared channel (PUSCH).
10. The method according to any one of claims 8-9, wherein encoding the data using CRC with the determined polynomial length comprises encoding the data using a low density parity check (LDPC) code.