Methods and apparatus for implementing a product code

The product code scheme in wireless communication networks addresses the challenge of decoding latency by using a combination of polar and convolutional codes, enabling efficient parallel decoding and iterative refinement to enhance network performance.

WO2025059893A1PCT designated stage expired Publication Date: 2025-03-27QUALCOMM INC +6
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2023/119923
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-20
Publication Date
2025-03-27

AI Technical Summary

Technical Problem

Existing methods for reducing decoding latency in wireless communication networks, particularly for long polar codes, are insufficient, as they still face challenges in efficiently handling long code lengths.

Method used

The implementation of a product code scheme, where a user equipment (UE) receives a product code comprising rows of polar code and columns of convolutional code, and performs sequential decoding, deinterleaving, and error correction to generate hard information, while iteratively flipping bits and adjusting penalty metrics to improve decoding efficiency.

Benefits of technology

This approach significantly reduces decoding latency by allowing for parallel decoding of short codes and iterative refinement of soft information, thereby improving the overall efficiency of wireless communication networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2023119923_27032025_PF_FP_ABST
    Figure CN2023119923_27032025_PF_FP_ABST
Patent Text Reader

Abstract

Aspects of the present disclosure include methods, apparatuses, and computer readable media for interatively performing a) deinterleaving the initial output, b) decoding, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column, c) determining, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors, d) sequentially decoding each of the at least one row of polar code to generate second soft information for each of the first information bits, and e) for subsets of bits in one or more columns having hard decisions having less than the threshold number of errors flipping the subsets of bits and adding a penalty metric to a path metric associated with the at least one row of polar code.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND APPARATUS FOR IMPLEMENTING A PRODUCT CODEBACKGROUND

[0001] Aspects of the present disclosure relate generally to wireless communications, and more particularly, to apparatuses and methods for implementing a product code.

[0002] Wireless communication networks are widely deployed to provide various types of communication content such as voice, video, packet data, messaging, broadcast, and so on. These systems may be multiple-access systems capable of supporting communication with multiple users by sharing the available system resources (e.g., time, frequency, and power) . Examples of such multiple-access systems include code-division multiple access (CDMA) systems, time-division multiple access (TDMA) systems, frequency-division multiple access (FDMA) systems, orthogonal frequency-division multiple access (OFDMA) systems, and single-carrier frequency division multiple access (SC-FDMA) systems.

[0003] These multiple access technologies have been adopted in various telecommunication standards to provide a common protocol that enables different wireless devices to communicate on a municipal, national, regional, and even global level. For example, a fifth generation (5G) wireless communications technology (which may be referred to as new radio (NR) ) is envisaged to expand and support diverse usage scenarios and applications with respect to current mobile network generations. In an aspect, 5G communications technology may include: enhanced mobile broadband addressing human-centric use cases for access to multimedia content, services and data; ultra-reliable-low latency communications (URLLC) with certain specifications for latency and reliability; and massive machine type communications, which may allow a very large number of connected devices and transmission of a relatively low volume of non-delay-sensitive information. As the demand for mobile broadband access continues to increase, however, further improvements in NR communications technology and beyond may be desired.

[0004] In a wireless communication network, polar codes may be used in the control channel. In the control channel, the polar codes may be short. For long polar codes, the decoding latency may be undesirably long. There are conventional methods used for reducing the decoding latency. For example, product code may be a way to reduce the  decoding latency. In some instances, long code may be divided into several short codes, and each short code may be decoded in parallel to reduce latency. However, such schemes may still be insufficient. Therefore, improvements may be necessary.SUMMARY

[0005] The following presents a simplified summary of one or more aspects in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated aspects, and is intended to neither identify key or critical elements of all aspects nor delineate the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description that is presented later.

[0006] Aspects of the present disclosure include methods by a user equipment (UE) for receiving the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second information bits and a second code length, sequentially decoding each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output, a) deinterleaving the initial output, b) decoding, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column, c) determining, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors, d) sequentially decoding each of the at least one row of polar code to generate second soft information for each of the first information bits, e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors: flipping the subsets of bits and adding a penalty metric to a path metric associated with the at least one row of polar code, iteratively performing steps a) to e) , and decoding the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.

[0007] Other aspects of the present disclosure include a user equipment (UE) having one or more memories, individually or in combination, comprising instructions, a transceiver, and one or more processors, individually or in combination, operatively coupled with the memory and the transceiver, the one or more processors, individually or in combination,  configured to execute instructions in the memory to receive the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second information bits and a second code length, sequentially decode each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output, a) deinterleave the initial output, b) decode, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column, c) determine, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors, d) sequentially decode each of the at least one row of polar code to generate second soft information for each of the first information bits, e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors: flip the subsets of bits and add a penalty metric to a path metric associated with the at least one row of polar code, iteratively perform steps a) to e) , and decode the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.

[0008] An aspect of the present disclosure includes a user equipment (UE) including means for receiving the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second information bits and a second code length, means for sequentially decoding each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output, a) means for deinterleaving the initial output, b) means for decoding, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column, c) means for determining, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors, d) means for sequentially decoding each of the at least one row of polar code to generate second soft information for each of the first information bits, e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors: means for flipping the subsets of bits and means for adding a penalty metric to a path metric associated with the at least one row of polar code, iteratively performing steps a) to e) , and means for  decoding the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.

[0009] Some aspects of the present disclosure include non-transitory computer readable media having instructions stored therein that, when executed by one or more processors, individually or in combination, of a user equipment (UE) , cause the one or more processors, individually or in combination, to receive the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second information bits and a second code length, sequentially decode each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output, a) deinterleave the initial output, b) decode, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column, c) determine, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors, d) sequentially decode each of the at least one row of polar code to generate second soft information for each of the first information bits, e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors: flip the subsets of bits and add a penalty metric to a path metric associated with the at least one row of polar code, iteratively performing steps a) to e) , and decode the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.

[0010] Aspects of the present disclosure include a method for encoding a product code including receiving Kr x Kc information bits, dividing the Kr x Kc information bits into Kr groups of bits, encoding each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords, interleaving the plurality of convolutional codewords into a plurality of bits, dividing the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits, and encoding each of the Nc group by a polar code to generate a plurality of polar codewords.

[0011] Other aspects of the present disclosure include a user equipment (UE) having one or more memories, individually or in combination, comprising instructions, a transceiver, and one or more processors, individually or in combination, operatively coupled with the memory and the transceiver, the one or more processors, individually or in combination,  configured to execute instructions in the memory to receive Kr x Kc information bits, divide the Kr x Kc information bits into Kr groups of bits, encode each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords, interleave the plurality of convolutional codewords into a plurality of bits, divide the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits, and encode each of the Nc group by a polar code to generate a plurality of polar codewords.

[0012] An aspect of the present disclosure includes a user equipment (UE) including means for receiving Kr x Kc information bits, means for dividing the Kr x Kc information bits into Kr groups of bits, means for encoding each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords, means for interleaving the plurality of convolutional codewords into a plurality of bits, means for dividing the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits, and means for encoding each of the Nc group by a polar code to generate a plurality of polar codewords.

[0013] Some aspects of the present disclosure include non-transitory computer readable media having instructions stored therein that, when executed by one or more processors, individually or in combination, of a user equipment (UE) , cause the one or more processors, individually or in combination, to receive Kr x Kc information bits, divide the Kr x Kc information bits into Kr groups of bits, encode each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords, interleave the plurality of convolutional codewords into a plurality of bits, divide the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits, and encode each of the Nc group by a polar code to generate a plurality of polar codewords.

[0014] To the accomplishment of the foregoing and related ends, the one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative features of the one or more aspects. These features are indicative, however, of but a few of the various ways in which the principles of various aspects may be employed, and this description is intended to include all such aspects and their equivalents.BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The disclosed aspects will hereinafter be described in conjunction with the appended drawings, provided to illustrate and not to limit the disclosed aspects, wherein like designations denote like elements, and in which:

[0016] FIG. 1 is a diagram illustrating an example of a wireless communications system and an access network according to aspects of the present disclosure.

[0017] FIG. 2 is a schematic diagram of an example of a user equipment according to aspects of the present disclosure.

[0018] FIG. 3 is a schematic diagram of an example of a base station according to aspects of the present disclosure.

[0019] Fig. 4 illustrates an example of a scheme for encoding and decoding a product code according to aspects of the present disclosure;

[0020] Fig. 5A-5B illustrate an example of a method 500 for decoding a product code according to aspects of the present disclosure.

[0021] Fig. 6 illustrates an example of a method 600 for encoding a product code according to aspects of the present disclosure.DETAILED DESCRIPTION

[0022] The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well known structures and components are shown in block diagram form in order to avoid obscuring such concepts.

[0023] Several aspects of telecommunication systems will now be presented with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, components, circuits, processes, algorithms, etc. (collectively referred to as “elements” ) . These elements may be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are  implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.

[0024] By way of example, an element, or any portion of an element, or any combination of elements may be implemented as a “processing system” that includes one or more processors. Examples of processors include microprocessors, microcontrollers, graphics processing units (GPUs) , central processing units (CPUs) , application processors, digital signal processors (DSPs) , reduced instruction set computing (RISC) processors, systems on a chip (SoC) , baseband processors, field programmable gate arrays (FPGAs) , programmable logic devices (PLDs) , state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. One or more processors in the processing system may execute software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software components, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.

[0025] Accordingly, in one or more example embodiments, the functions described may be implemented in hardware, software, or any combination thereof. If implemented in software, the functions may be stored on or encoded as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer storage media. Storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such computer-readable media may comprise a random-access memory (RAM) , a read-only memory (ROM) , an electrically erasable programmable ROM (EEPROM) , optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that may be used to store computer executable code in the form of instructions or data structures that may be accessed by a computer.

[0026] An aspect of the present disclosure includes a product encoder and a product decoder. The product encoder may divide the information bits into a first number of groups. Each group of the first number of groups may be encoded by the convolutional code. The encoded bits may be interleaved to generate a second number of groups. Each  group of the second number of groups may be encoded by the polar code. The product decoder may decode each row to generate soft information using a polar decoder. The following steps may be iteratively performed. First, the decoder may deinterleave the output of the polar decoder. Next, the decoder may decode each column to output hard decisions. If any decoded column has less than a threshold number of error bits, the decoder may determine that the decoded column is an error-free column. Next, the decoder according to aspects of the present disclosure may decode each row to generate soft information. Any bit (s) in an error-free column may be flipped and a penalty metric may be added to the path metric.

[0027] FIG. 1 is a diagram illustrating an example of a wireless communications system and an access network 100. The wireless communications system (also referred to as a wireless wide area network (WWAN) ) includes at least one BS 105, UEs 110, an Evolved Packet Core (EPC) 160, and a 5G Core (5GC) 190. The BS 105 may include macro cells (high power cellular base station) and / or small cells (low power cellular base station) . The macro cells include base stations. The small cells include femtocells, picocells, and microcells. In one implementation, the UE 110 may include a communication component 222 configured to communicate with the BS 105 via a cellular network, a Wi-Fi network, or other wireless and wired networks. The UE 110 may include an encoder 224 configured to encode a plurality of data bits. The UE 110 may include a decoder 226 configured to decode a plurality of encoded bits. In some implementations, the communication component 222, the encoder 224, and / or the decoder 226 may be implemented using hardware, software, or a combination of hardware and software. In some implementations, the BS 105 may include a communication component 322 configured to communicate with the UE 110. The BS 105 may include an encoder 324 configured to encode a plurality of data bits. The BS 105 may include a decoder 326 configured to decode a plurality of encoded bits. In some implementations, the communication component 322, the encoder 324, and / or the decoder 326 may be implemented using hardware, software, or a combination of hardware and software.

[0028] A BS 105 configured for 4G Long-Term Evolution (LTE) (collectively referred to as Evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN) ) may interface with the EPC 160 through backhaul links interfaces 132 (e.g., S1, X2, Internet Protocol (IP) , or flex interfaces) . A BS 105  configured for 5G NR (collectively referred to as Next Generation RAN (NG-RAN)) may interface with 5GC 190 through backhaul links interfaces 134 (e.g., S1, X2, Internet Protocol (IP) , or flex interface) . In addition to other functions, the BS 105 may perform one or more of the following functions: transfer of user data, radio channel ciphering and deciphering, integrity protection, header compression, mobility control functions (e.g., handover, dual connectivity) , inter-cell interference coordination, connection setup and release, load balancing, distribution for non-access stratum (NAS) messages, NAS node selection, synchronization, radio access network (RAN) sharing, multimedia broadcast multicast service (MBMS) , subscriber and equipment trace, RAN information management (RIM) , paging, positioning, and delivery of warning messages. The BS 105 may communicate directly or indirectly (e.g., through the EPC 160 or 5GC 190) with each other over the backhaul links interfaces 134. The backhaul links 132, 134 may be wired or wireless.

[0029] The BS 105 may wirelessly communicate with the UEs 110. Each of the BS 105 may provide communication coverage for a respective geographic coverage area 130. There may be overlapping geographic coverage areas 130. For example, the small cell 105' may have a coverage area 130'that overlaps the coverage area 130 of one or more macro BS 105. A network that includes both small cell and macro cells may be known as a heterogeneous network. A heterogeneous network may also include Home Evolved Node Bs (eNBs) (HeNBs) , which may provide service to a restricted group known as a closed subscriber group (CSG) . The communication links 120 between the BS 105 and the UEs 110 may include uplink (UL) (also referred to as reverse link) transmissions from a UE 110 to a BS 105 and / or downlink (DL) (also referred to as forward link) transmissions from a BS 105 to a UE 110. The communication links 120 may use multiple-input and multiple-output (MIMO) antenna technology, including spatial multiplexing, beamforming, and / or transmit diversity. The communication links may be through one or more carriers. The BS 105  / UEs 110 may use spectrum up to Y MHz (e.g., 5, 10, 15, 20, 100, 400, etc. MHz) bandwidth per carrier allocated in a carrier aggregation of up to a total of Yx MHz (x component carriers) used for transmission in each direction. The carriers may or may not be adjacent to each other. Allocation of carriers may be asymmetric with respect to DL and UL (e.g., more or less carriers may be allocated for DL than for UL) . The component carriers may include a primary  component carrier and one or more secondary component carriers. A primary component carrier may be referred to as a primary cell (PCell) and a secondary component carrier may be referred to as a secondary cell (SCell) .

[0030] Certain UEs 110 may communicate with each other using device-to-device (D2D) communication link 158. The D2D communication link 158 may use the DL / UL WWAN spectrum. The D2D communication link 158 may use one or more sidelink channels, such as a physical sidelink broadcast channel (PSBCH) , a physical sidelink discovery channel (PSDCH) , a physical sidelink shared channel (PSSCH) , and a physical sidelink control channel (PSCCH) . D2D communication may be through a variety of wireless D2D communications systems, such as for example, FlashLinQ, WiMedia, Bluetooth, ZigBee, Wi-Fi based on the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard, LTE, or NR.

[0031] The wireless communications system may further include a Wi-Fi access point (AP) 150 in communication with Wi-Fi stations (STAs) 152 via communication links 154 in a 5 GHz unlicensed frequency spectrum. When communicating in an unlicensed frequency spectrum, the STAs 152  / AP 150 may perform a clear channel assessment (CCA) prior to communicating in order to determine whether the channel is available.

[0032] The small cell 105'may operate in a licensed and / or an unlicensed frequency spectrum. When operating in an unlicensed frequency spectrum, the small cell 105'may employ NR and use the same 5 GHz unlicensed frequency spectrum as used by the Wi-Fi AP 150. The small cell 105', employing NR in an unlicensed frequency spectrum, may boost coverage to and / or increase capacity of the access network.

[0033] A BS 105, whether a small cell 105'or a large cell (e.g., macro base station) , may include an eNB, gNodeB (gNB) , or other type of base station. Some base stations, such as gNB 180 may operate in one or more frequency bands within the electromagnetic spectrum. The electromagnetic spectrum is often subdivided, based on frequency / wavelength, into various classes, bands, channels, etc. In 5G NR two initial operating bands have been identified as frequency range designations FR1 (410 MHz –7.125 GHz) and FR2 (24.25 GHz –52.6 GHz) . The frequencies between FR1 and FR2 are often referred to as mid-band frequencies. Although a portion of FR1 is greater than 6 GHz, FR1 is often referred to (interchangeably) as a “Sub-6 GHz” band in various documents and articles. A similar nomenclature issue sometimes occurs with regard to  FR2, which is often referred to (interchangeably) as a “millimeter wave” (mmW) band in documents and articles, despite being different from the extremely high frequency (EHF) band (30 GHz –300 GHz) which is identified by the International Telecommunications Union (ITU) as a “millimeter wave” band.

[0034] With the above aspects in mind, unless specifically stated otherwise, it should be understood that the term “sub-6 GHz” or the like if used herein may broadly represent frequencies that may be less than 6 GHz, may be within FR1, or may include mid-band frequencies. Further, unless specifically stated otherwise, it should be understood that the term “millimeter wave” or the like if used herein may broadly represent frequencies that may include mid-band frequencies, may be within FR2, or may be within the EHF band. Communications using the mmW  / near mmW radio frequency band has extremely high path loss and a short range. The mmW base station 180 may utilize beamforming 182 with the UE 110 to compensate for the path loss and short range.

[0035] The EPC 160 may include a Mobility Management Entity (MME) 162, other MMEs 164, a Serving Gateway 166, a Multimedia Broadcast Multicast Service (MBMS) Gateway 168, a Broadcast Multicast Service Center (BM-SC) 170, and a Packet Data Network (PDN) Gateway 172. The MME 162 may be in communication with a Home Subscriber Server (HSS) 174. The MME 162 is the control node that processes the signaling between the UEs 110 and the EPC 160. Generally, the MME 162 provides bearer and connection management. All user Internet protocol (IP) packets are transferred through the Serving Gateway 166, which itself is connected to the PDN Gateway 172. The PDN Gateway 172 provides UE IP address allocation as well as other functions. The PDN Gateway 172 and the BM-SC 170 are connected to the IP Services 176. The IP Services 176 may include the Internet, an intranet, an IP Multimedia Subsystem (IMS) , a packet switched (PS) Streaming Service, and / or other IP services. The BM-SC 170 may provide functions for MBMS user service provisioning and delivery. The BM-SC 170 may serve as an entry point for content provider MBMS transmission, may be used to authorize and initiate MBMS Bearer Services within a public land mobile network (PLMN) , and may be used to schedule MBMS transmissions. The MBMS Gateway 168 may be used to distribute MBMS traffic to the BS 105 belonging to a Multicast Broadcast Single Frequency Network (MBSFN) area broadcasting a particular service, and may be  responsible for session management (start / stop) and for collecting eMBMS related charging information.

[0036] The 5GC 190 may include a Access and Mobility Management Function (AMF) 192, other AMFs 193, a Session Management Function (SMF) 194, and a User Plane Function (UPF) 195. The AMF 192 may be in communication with a Unified Data Management (UDM) 196. The AMF 192 is the control node that processes the signaling between the UEs 110 and the 5GC 190. Generally, the AMF 192 provides QoS flow and session management. All user Internet protocol (IP) packets are transferred through the UPF 195. The UPF 195 provides UE IP address allocation as well as other functions. The UPF 195 is connected to the IP Services 197. The IP Services 197 may include the Internet, an intranet, an IP Multimedia Subsystem (IMS) , a PS Streaming Service, and / or other IP services.

[0037] The BS 105 may also be referred to as a gNB, Node B, evolved Node B (eNB) , an access point, a base transceiver station, a radio base station, an access point, an access node, a radio transceiver, a NodeB, eNodeB (eNB) , gNB, Home NodeB, a Home eNodeB, a relay, a transceiver function, a basic service set (BSS) , an extended service set (ESS) , a transmit reception point (TRP) , or some other suitable terminology. The BS 105 provides an access point to the EPC 160 or 5GC 190 for a UE 110. Examples of UEs 110 include a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a laptop, a personal digital assistant (PDA) , a satellite radio, a global positioning system, a multimedia device, a video device, a digital audio player (e.g., MP3 player) , a camera, a game console, a tablet, a smart device, a wearable device, a vehicle, an electric meter, a gas pump, a large or small kitchen appliance, a healthcare device, an implant, a sensor / actuator, a display, or any other similar functioning device. Some of the UEs 110 may be referred to as IoT devices (e.g., parking meter, gas pump, toaster, vehicles, heart monitor, etc. ) . The UE 110 may also be referred to as a station, a mobile station, a subscriber station, a mobile unit, a subscriber unit, a wireless unit, a remote unit, a mobile device, a wireless device, a wireless communications device, a remote device, a mobile subscriber station, an access terminal, a mobile terminal, a wireless terminal, a remote terminal, a handset, a user agent, a mobile client, a client, or some other suitable terminology.

[0038] Referring to FIG. 2, one example of an implementation of the UE 110 may include a modem 220 having the communication component 222, the encoder 224, and / or the decoder 226. In one implementation, the UE 110 may include a communication component 222 configured to communicate with the BS 105 via a cellular network, a Wi-Fi network, or other wireless and wired networks. The UE 110 may include an encoder 224 configured to encode a plurality of data bits. The UE 110 may include a decoder 226 configured to decode a plurality of encoded bits.

[0039] In some implementations, the UE 110 may include a variety of components, including components such as one or more processors 212 and memory 216 and transceiver 202 in communication via one or more buses 244, which may operate in conjunction with the modem 220 and the communication component 222 to enable one or more of the functions described herein related to communicating with the BS 105. Further, the one or more processors 212, modem 220, memory 216, transceiver 202, RF front end 288 and one or more antennas 265, may be configured to support voice and / or data calls (simultaneously or non-simultaneously) in one or more radio access technologies. The one or more antennas 265 may include one or more antennas, antenna elements and / or antenna arrays.

[0040] In an aspect, the one or more processors 212 may include the modem 220 that uses one or more modem processors. The various functions related to the communication component 222, the encoder 224, and / or the decoder 226 may be included in the modem 220 and / or processors 212 and, in an aspect, may be executed by a single processor, while in other aspects, different ones of the functions may be executed by a combination of two or more different processors. For example, in an aspect, the one or more processors 212 may include any one or any combination of a modem processor, or a baseband processor, or a digital signal processor, or a transmit processor, or a receiving device processor, or a transceiver processor associated with transceiver 202. Additionally, the modem 220 may configure the UE 110 along with the processors 212. In other aspects, some of the features of the one or more processors 212 and / or the modem 220 associated with the communication component 222 may be performed by transceiver 202.

[0041] The memory 216 may be configured to store data used and / or local versions of application 275. Also, the memory 216 may be configured to store data used herein and / or local versions of the communication component 222, the encoder 224, and / or the  decoder 226, and / or one or more of the subcomponents being executed by at least one processor 212. Memory 216 may include any type of computer-readable medium usable by a computer or at least one processor 212, such as random access memory (RAM) , read only memory (ROM) , tapes, magnetic discs, optical discs, volatile memory, non-volatile memory, and any combination thereof. In an aspect, for example, memory 216 may be a non-transitory computer-readable storage medium that stores one or more computer-executable codes defining the communication component 222, the encoder 224, and / or the decoder 226, and / or one or more of the subcomponents, and / or data associated therewith, when UE 110 is operating at least one processor 212 to execute the communication component 222, the encoder 224, and / or the decoder 226, and / or one or more of the subcomponents.

[0042] Transceiver 202 may include at least one receiver 206 and at least one transmitter 208. Receiver 206 may include hardware, firmware, and / or software code executable by a processor for receiving data, the code comprising instructions and being stored in one or more memories, individually or in combination (e.g., computer-readable medium) . Receiver 206 may be, for example, a RF receiving device. In an aspect, the receiver 206 may receive signals transmitted by at least one BS 105. Transmitter 208 may include hardware, firmware, and / or software code executable by a processor for transmitting data, the code comprising instructions and being stored in one or more memories, individually or in combination (e.g., computer-readable medium) . A suitable example of transmitter 208 may including, but is not limited to, an RF transmitter.

[0043] Moreover, in an aspect, UE 110 may include RF front end 288, which may operate in communication with one or more antennas 265 and transceiver 202 for receiving and transmitting radio transmissions, for example, wireless communications transmitted by at least one BS 105 or wireless transmissions transmitted by UE 110. RF front end 288 may be coupled with one or more antennas 265 and may include one or more low-noise amplifiers (LNAs) 290, one or more switches 292, one or more power amplifiers (PAs) 298, and one or more filters 296 for transmitting and receiving RF signals.

[0044] In an aspect, LNA 290 may amplify a received signal at a desired output level. In an aspect, each LNA 290 may have a specified minimum and maximum gain values. In an aspect, RF front end 288 may use one or more switches 292 to select a particular LNA 290 and the specified gain value based on a desired gain value for a particular application.

[0045] Further, for example, one or more PA (s) 298 may be used by RF front end 288 to amplify a signal for an RF output at a desired output power level. In an aspect, each PA 298 may have specified minimum and maximum gain values. In an aspect, RF front end 288 may use one or more switches 292 to select a particular PA 298 and the specified gain value based on a desired gain value for a particular application.

[0046] Also, for example, one or more filters 296 may be used by RF front end 288 to filter a received signal to obtain an input RF signal. Similarly, in an aspect, for example, a respective filter 296 may be used to filter an output from a respective PA 298 to produce an output signal for transmission. In an aspect, each filter 296 may be coupled with a specific LNA 290 and / or PA 298. In an aspect, RF front end 288 may use one or more switches 292 to select a transmit or receive path using a specified filter 296, LNA 290, and / or PA 298, based on a configuration as specified by transceiver 202 and / or processor 212.

[0047] As such, transceiver 202 may be configured to transmit and receive wireless signals through one or more antennas 265 via RF front end 288. In an aspect, transceiver may be tuned to operate at specified frequencies such that UE 110 may communicate with, for example, one or more BS 105 or one or more cells associated with one or more BS 105. In an aspect, for example, the modem 220 may configure transceiver 202 to operate at a specified frequency and power level based on the UE configuration of the UE 110 and the communication protocol used by the modem 220.

[0048] In an aspect, the modem 220 may be a multiband-multimode modem, which may process digital data and communicate with transceiver 202 such that the digital data is sent and received using transceiver 202. In an aspect, the modem 220 may be multiband and be configured to support multiple frequency bands for a specific communications protocol. In an aspect, the modem 220 may be multimode and be configured to support multiple operating networks and communications protocols. In an aspect, the modem 220 may control one or more components of UE 110 (e.g., RF front end 288, transceiver 202) to enable transmission and / or reception of signals from the network based on a specified modem configuration. In an aspect, the modem configuration may be based on the mode of the modem and the frequency band in use. In another aspect, the modem configuration may be based on UE configuration information associated with UE 110 as provided by the network.

[0049] Referring to FIG. 3, one example of an implementation of the BS 105 may include a modem 320 having the communication component 322, the encoder 324, and / or the decoder 326. In some implementations, the BS 105 may include a communication component 322 configured to communicate with the UE 110. The BS 105 may include an encoder 324 configured to encode a plurality of data bits. The BS 105 may include a decoder 326 configured to decode a plurality of encoded bits.

[0050] In some implementations, the BS 105 may include a variety of components, including components such as one or more processors 312 and memory 316 and transceiver 302 in communication via one or more buses 344, which may operate in conjunction with the modem 320 and the communication component 322 to enable one or more of the functions described herein related to communicating with the UE 110. Further, the one or more processors 312, modem 320, memory 316, transceiver 302, RF front end 388 and one or more antennas 365, may be configured to support voice and / or data calls (simultaneously or non-simultaneously) in one or more radio access technologies.

[0051] In an aspect, the one or more processors 312 may include the modem 320 that uses one or more modem processors. The various functions related to the communication component 322, the encoder 324, and / or the decoder 326 may be included in the modem 320 and / or processors 312 and, in an aspect, may be executed by a single processor, while in other aspects, different ones of the functions may be executed by a combination of two or more different processors. For example, in an aspect, the one or more processors 312 may include any one or any combination of a modem processor, or a baseband processor, or a digital signal processor, or a transmit processor, or a receiving device processor, or a transceiver processor associated with transceiver 302. Additionally, the modem 320 may configure the BS 105 and processors 312. In other aspects, some of the features of the one or more processors 312 and / or the modem 320 associated with the communication component 322 may be performed by transceiver 302.

[0052] The memory 316 may be configured to store data used herein and / or local versions of applications 375. Also, the memory 316 may be configured to store data used herein and / or local versions of the communication component 322, the encoder 324, and / or the decoder 326, and / or one or more of the subcomponents being executed by at least one processor 312. Memory 316 may include any type of computer-readable medium usable  by a computer or at least one processor 312, such as random access memory (RAM) , read only memory (ROM) , tapes, magnetic discs, optical discs, volatile memory, non-volatile memory, and any combination thereof. In an aspect, for example, memory 316 may be a non-transitory computer-readable storage medium that stores one or more computer-executable codes defining the communication component 322, the encoder 324, and / or the decoder 326, and / or one or more of the subcomponents, and / or data associated therewith, when the BS 105 is operating at least one processor 312 to execute the communication component 322, the encoder 324, and / or the decoder 326, and / or one or more of the subcomponents.

[0053] Transceiver 302 may include at least one receiver 306 and at least one transmitter 308. The at least one receiver 306 may include hardware, firmware, and / or software code executable by a processor for receiving data, the code comprising instructions and being stored in one or more memories, individually or in combination (e.g., computer-readable medium) . The receiver 306 may be, for example, a RF receiving device. In an aspect, receiver 306 may receive signals transmitted by the UE 110. Transmitter 308 may include hardware, firmware, and / or software code executable by a processor for transmitting data, the code comprising instructions and being stored in one or more memories, individually or in combination (e.g., computer-readable medium) . A suitable example of transmitter 308 may including, but is not limited to, an RF transmitter.

[0054] Moreover, in an aspect, the BS 105 may include RF front end 388, which may operate in communication with one or more antennas 365 and transceiver 302 for receiving and transmitting radio transmissions, for example, wireless communications transmitted by other BS 105 or wireless transmissions transmitted by UE 110. RF front end 388 may be coupled with one or more antennas 365 and may include one or more low-noise amplifiers (LNAs) 390, one or more switches 392, one or more power amplifiers (PAs) 398, and one or more filters 396 for transmitting and receiving RF signals.

[0055] In an aspect, LNA 390 may amplify a received signal at a desired output level. In an aspect, each LNA 390 may have a specified minimum and maximum gain values. In an aspect, RF front end 388 may use one or more switches 392 to select a particular LNA 390 and the specified gain value based on a desired gain value for a particular application.

[0056] Further, for example, one or more PA (s) 398 may be used by RF front end 388 to amplify a signal for an RF output at a desired output power level. In an aspect, each PA 398 may have specified minimum and maximum gain values. In an aspect, RF front end 388 may use one or more switches 392 to select a particular PA 398 and the specified gain value based on a desired gain value for a particular application.

[0057] Also, for example, one or more filters 396 may be used by RF front end 388 to filter a received signal to obtain an input RF signal. Similarly, in an aspect, for example, a respective filter 396 may be used to filter an output from a respective PA 398 to produce an output signal for transmission. In an aspect, each filter 396 may be coupled with a specific LNA 390 and / or PA 398. In an aspect, RF front end 388 may use one or more switches 392 to select a transmit or receive path using a specified filter 396, LNA 390, and / or PA 398, based on a configuration as specified by transceiver 302 and / or processor 312.

[0058] As such, transceiver 302 may be configured to transmit and receive wireless signals through one or more antennas 365 via RF front end 388. In an aspect, transceiver may be tuned to operate at specified frequencies such that BS 105 may communicate with, for example, the UE 110 or one or more cells associated with one or more BS 105. In an aspect, for example, the modem 320 may configure transceiver 302 to operate at a specified frequency and power level based on the base station configuration of the BS 105 and the communication protocol used by the modem 320.

[0059] In an aspect, the modem 320 may be a multiband-multimode modem, which may process digital data and communicate with transceiver 302 such that the digital data is sent and received using transceiver 302. In an aspect, the modem 320 may be multiband and be configured to support multiple frequency bands for a specific communications protocol. In an aspect, the modem 320 may be multimode and be configured to support multiple operating networks and communications protocols. In an aspect, the modem 320 may control one or more components of the BS 105 (e.g., RF front end 388, transceiver 302) to enable transmission and / or reception of signals from the network based on a specified modem configuration. In an aspect, the modem configuration may be based on the mode of the modem and the frequency band in use. In another aspect, the modem configuration may be based on base station configuration associated with the BS 105.

[0060] Fig. 4 illustrates an example of a scheme for encoding and decoding a product code. In some aspects of the present disclosure, the scheme 400 is a product code using the convolutional code for the column encoder and the polar code for the row encoder. The convolutional code may have Kc information bits and a code length of Nc. The polar code may have Kr information bits and a code length of Nr. The rate of the product code may be computed as (Kr x Kc)  /  (Nr x Nc) .

[0061] During the encoding of the product code, in some aspects of the present disclosure, the Kc x Kr information bits (the number of information bits in a column multiplied by the number of information bits in a row) may be divided into Kr groups. Each of the Kr groups may have Kc bits. The Kc bits in each group may be encoded by the encoder using the convolutional code. Examples of the convolutional code may include a zero-tail, tail-biting convolutional code. The encoder may use a puncture rate of 1 / 2 rate for the convolutional code to a higher rate such as 2 / 3 rate, 3 / 4 rate, 4 / 5 rate, 5 / 6 rate, 6 / 7 rate, and / or 7 / 8 rate. Other puncture rates are also possible according to aspects of the present disclosure. The results of the convolutional encoding are Kr x Nc bits.

[0062] Next, in some aspects of the present disclosure, the encoder may interleave the Kr x Nc bits. The output of the encoder during convolutional encoding may be provided to a rectangular interleaver, a row-in column-out interleaver, and / or a triangle interleaver (e.g., 5G polar code interleaver) . Other interleavers may also be used according to aspects of the present disclosure.

[0063] Next, the interleaved Kr x Nc bits may be divided into Nc groups. Each of the Nc groups may include Kr bits. The Kr bits in each of the Nc groups may be encoded by the polar code. The polar code may use the Gaussian Approximation (GA) sequence construction without additional cyclic redundancy check (CRC) . Each polar code may be encoded with the same rate or different rates. The results of the polar encoding may be Nr x Nc bits.

[0064] During the decoding of the product code, in some aspects of the present disclosure, the decoder may decode row by row to generate first soft information for each information bit. The decoder may use successive cancellation (SC) , successive cancellation list (SCL) , soft cancellation (SCAN) , and / or other known methods to generate the first soft information. Here, the first soft information may be guesses, estimates, approximations,  or other information used for decoding. The simplest soft information may be the soft value before making the hard decision for decoding.

[0065] In some aspects, the decoder may iteratively perform the next three steps. First, the decoder may deinterleave the output by the polar decoder. Second, the decoder may decode, column by column, using a convolutional decoder, such as a Viterbi decoder, to generate hard decisions. If the convolutional decoder corrects less than a threshold number of bits, the decoder may determine that this column is an error-free column after the decoding process. Third, the decoder may decode, row by row, using SC, SCL, and / or SCAN (or other known methods) to generate second soft information for each information bit. The second soft information may be guesses, estimates, approximations, or other information used for decoding. During the decoding, if the information bits are from an error-free column as determined above, the bits may be flipped, and a penalty metric may be added to the path metric for the decoding process.

[0066] Next, the decoder may use the second soft information and / or the path metric to generate hard decisions for the polar decoding.

[0067] In certain aspects of the present disclosure, the information bits during the encoding process may be protected by CRC information by encoding redundancy in the CRC.

[0068] In an aspect of the present disclosure, during the decoding process, the maximum number for the process and / or CRC passed may terminate the decoder.

[0069] In some aspects of the present disclosure, a longer product code may be divided into several shorter component codes. The shorter component codes may be decoded in parallel to reduce the latency in decoding the longer product code. In some cases, during higher signal-to-noise ratio regime, the bit error rate of the convolutional code / polar code may decrease.

[0070] Figs. 5A-5B illustrate an example of a method 500 for decoding a product code. The method 500 may be performed by the one or more of the processor 212, the memory 216, the applications 275, the modem 220, the transceiver 202, the receiver 206, the transmitter 208, the RF front end 288, the communication component 222, the encoder 224, and / or the decoder 226, and / or one or more other components of the UE 110 in the wireless communication network 100. Alternatively or additionally, the method 500 may be performed by the one or more of the processor 312, the memory 316, the applications  375, the modem 320, the transceiver 302, the receiver 306, the transmitter 308, the RF front end 388, the communication component 322, the encoder 324, and / or the decoder 326, and / or one or more other components of the BS 105 in the wireless communication network 100.

[0071] At block 505, the method 500 may receive the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second information bits and a second code length. For example, the communication component 222, the transceiver 202, the receiver 206, the transmitter 208, the RF front end 288, the subcomponents of the RF front end 288, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may receive the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second information bits and a second code length as described above. The RF front end 288 may receive the electrical signals converted from electro-magnetic signals. The RF front end 288 may filter and / or amplify the electrical signals. The transceiver 202 or the receiver 206 may convert the electrical signals to digital signals, and send the digital signals to the communication component 222.

[0072] In certain implementations, the communication component 222, the transceiver 202, the receiver 206, the transmitter 208, the RF front end 288, the subcomponents of the RF front end 288, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for receiving the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second information bits and a second code length.

[0073] At block 510, the method 500 may sequentially decode each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output. For example, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may sequentially decode each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output as described above.

[0074] In certain implementations, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for sequentially decoding each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output.

[0075] At block 515, the method 500 may a) deinterleave the initial output. For example, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may a) deinterleave the initial output.

[0076] In certain implementations, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for a) deinterleaving the initial output.

[0077] At block 520, the method 500 may b) decode, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column. For example, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may b) decode, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column as described above.

[0078] In certain implementations, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for b) decoding, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column.

[0079] At block 525, the method 500 may c) determine, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors. For example, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may c) determine, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors as described above.

[0080] In certain implementations, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define  means for c) determining, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors.

[0081] At block 530, the method 500 may d) sequentially decode each of the at least one row of polar code to generate second soft information for each of the first information bits. For example, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may each of the at least one row of polar code to generate second soft information for each of the first information bits.

[0082] In certain implementations, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for d) sequentially decoding each of the at least one row of polar code to generate second soft information for each of the first information bits.

[0083] At block 535, the method 500 may, e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors: flip the subsets of bits and add a penalty metric to a path metric associated with the at least one row of polar code. For example, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may flip the subsets of bits and add a penalty metric to a path metric associated with the at least one row of polar code.

[0084] In certain implementations, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors: flipping the subsets of bits and adding a penalty metric to a path metric associated with the at least one row of polar code.

[0085] At block 540, the method 500 may iteratively performing steps a) to e) . For example, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may iteratively performing steps a) to e) .

[0086] In certain implementations, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for iteratively performing steps a) to e) .

[0087] At block 545, the method 500 may decode the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric. For  example, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may decode the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.

[0088] In certain implementations, the decoder 226, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for decoding the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.

[0089] Alternatively or additionally, the method 500 may further include any of the methods above, wherein decoding to generate the first soft information or the second soft information comprises decoding using successive cancellation (SC) , successive cancellation list (SCL) , or soft cancellation (SCAN) .

[0090] Alternatively or additionally, the method 500 may further include any of the methods above, wherein generating the first soft information comprises generating an estimation used for generating the hard information.

[0091] Alternatively or additionally, the method 500 may further include any of the methods above, wherein generating the second soft information comprises generating an estimation used for generating the hard information.

[0092] Fig. 6 illustrates an example of a method for encoding a product code according to aspects of the present disclosure. The method 600 may be performed by the one or more of the processor 212, the memory 216, the applications 275, the modem 220, the transceiver 202, the receiver 206, the transmitter 208, the RF front end 288, the communication component 222, the encoder 224, and / or the decoder 226, and / or one or more other components of the UE 110 in the wireless communication network 100. Alternatively or additionally, the method 500 may be performed by the one or more of the processor 312, the memory 316, the applications 375, the modem 320, the transceiver 302, the receiver 306, the transmitter 308, the RF front end 388, the communication component 322, the encoder 324, and / or the decoder 326, and / or one or more other components of the BS 105 in the wireless communication network 100.

[0093] At block 605, the method 600 may receive Kr x Kc information bits. For example, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may receive Kr x Kc information bits.

[0094] In certain implementations, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for receiving Kr x Kc information bits.

[0095] At block 610, the method 600 may divide the Kr x Kc information bits into Kr groups of bits. For example, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may divide the Kr x Kc information bits into Kr groups of bits.

[0096] In certain implementations, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for dividing the Kr x Kc information bits into Kr groups of bits.

[0097] At block 615, the method 600 may encode each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords. For example, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may encode each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords.

[0098] In certain implementations, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for encoding each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords.

[0099] At block 620, the method 600 may interleave the plurality of convolutional codewords into a plurality of bits. For example, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may interleave the plurality of convolutional codewords into a plurality of bits.

[0100] In certain implementations, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for interleaving the plurality of convolutional codewords into a plurality of bits.

[0101] At block 625, the method 600 may divide the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits. For example, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may divide the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits.

[0102] In certain implementations, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for dividing the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits.

[0103] At block 630, the method 600 may encode each of the Nc group by a polar code to generate a plurality of polar codewords. For example, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 of the UE 110 may encode each of the Nc group by a polar code to generate a plurality of polar codewords.

[0104] In certain implementations, the encoder 224, the processor 212, the memory 216, the modem 220, and / or the applications 275 may be configured to and / or may define means for encoding each of the Nc group by a polar code to generate a plurality of polar codewords.

[0105] Alternatively or additionally, the method 600 may further include any of the methods above, wherein the convolutional code comprises a zero-tail, tail-biting convolutional code.

[0106] Alternatively or additionally, the method 600 may further include any of the methods above, wherein encoding by the convolutional code comprises using a puncture rate of 1 / 2, 2 / 3, 3 / 4, 5 / 6, 6 / 7, or 7 / 8.

[0107] Alternatively or additionally, the method 600 may further include any of the methods above, wherein interleaving the plurality of convolutional codewords comprises interleaving with a rectangular interleaver, a row-in row-out interleaver, or a triangular interleaver.

[0108] Alternatively or additionally, the method 600 may further include any of the methods above, wherein the encoding with the polar code comprises generating cyclic redundancy check.

[0109] Alternatively or additionally, the method 600 may further include any of the methods above, wherein the encoding with the polar code comprises using the Gaussian Approximation sequence construction without additional cyclic redundancy check.

[0110] ADDITIONAL IMPLEMENTATIONS

[0111] Aspects of the present disclosure include methods by a user equipment (UE) for receive the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second  information bits and a second code length, sequentially decoding each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output, a) deinterleaving the initial output, b) decoding, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column, c) determining, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors, d) sequentially decoding each of the at least one row of polar code to generate second soft information for each of the first information bits, e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors: flipping the subsets of bits and adding a penalty metric to a path metric associated with the at least one row of polar code, iteratively performing steps a) to e) , and decoding the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.

[0112] Any of the methods above, wherein decoding to generate the first soft information or the second soft information comprises decoding using successive cancellation (SC) , successive cancellation list (SCL) , or soft cancellation (SCAN) .

[0113] Any of the methods above, wherein generating the first soft information comprises generating an estimation used for generating the hard information.

[0114] Any of the methods above, wherein generating the second soft information comprises generating an estimation used for generating the hard information.

[0115] Other aspects of the present disclosure include a user equipment (UE) having one or more memories, individually or in combination, comprising instructions, a transceiver, and one or more processors, individually or in combination, operatively coupled with the memory and the transceiver, the one or more processors, individually or in combination, configured to execute instructions in the memory to receive the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second information bits and a second code length, sequentially decode each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output, a) deinterleave the initial output, b) decode, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a  corresponding column of the at least one column, c) determine, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors, d) sequentially decode each of the at least one row of polar code to generate second soft information for each of the first information bits, e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors: flip the subsets of bits and add a penalty metric to a path metric associated with the at least one row of polar code, iteratively performing steps a) to e) , and decode the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.

[0116] Any of the UEs above, wherein the one or more processors, individually or in combination, are further configured to decode using successive cancellation (SC) , successive cancellation list (SCL) , or soft cancellation (SCAN) .

[0117] Any of the UEs above, wherein the one or more processors, individually or in combination, are further configured to generate an estimation used for generating the hard information.

[0118] Any of the UEs above, wherein the one or more processors, individually or in combination, are further configured to generate an estimation used for generating the hard information.

[0119] An aspect of the present disclosure includes a user equipment (UE) including means for receive the product code including at least one row of polar code having first information bits and a first code length and at least one column of convolutional code having second information bits and a second code length, sequentially decoding each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output, a) deinterleaving the initial output, b) decoding, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column, c) determining, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors, d) sequentially decoding each of the at least one row of polar code to generate second soft information for each of the first information bits, e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors: flipping the subsets of bits and adding a penalty metric to a path metric associated with  the at least one row of polar code, iteratively performing steps a) to e) , and decoding the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.

[0120] Any of the UEs above, means for decoding to generate the first soft information or the second soft information comprises means for decoding using successive cancellation (SC) , successive cancellation list (SCL) , or soft cancellation (SCAN) .

[0121] Any of the UEs above, means for generating the first soft information comprises means for generating an estimation used for generating the hard information.

[0122] Any of the UEs above, means for generating the second soft information comprises means for generating an estimation used for generating the hard information.

[0123] The above detailed description set forth above in connection with the appended drawings describes examples and does not represent the only examples that may be implemented or that are within the scope of the claims. The term “example, ” when used in this description, means “serving as an example, instance, or illustration, ” and not “preferred” or “advantageous over other examples. ” The detailed description includes specific details for the purpose of providing an understanding of the described techniques. These techniques, however, may be practiced without these specific details. For example, changes may be made in the function and arrangement of elements discussed without departing from the scope of the disclosure. Also, various examples may omit, substitute, or add various procedures or components as appropriate. For instance, the methods described may be performed in an order different from that described, and various steps may be added, omitted, or combined. Also, features described with respect to some examples may be combined in other examples. In some instances, well-known structures and apparatuses are shown in block diagram form in order to avoid obscuring the concepts of the described examples.

[0124] Aspects of the present disclosure include a method for encoding a product code including receiving Kr x Kc information bits, dividing the Kr x Kc information bits into Kr groups of bits, encoding each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords, interleaving the plurality of convolutional codewords into a plurality of bits, dividing the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits, and encoding each of the Nc group by a polar code to generate a plurality of polar codewords.

[0125] Aspects of the present disclosure include the method above, wherein the convolutional code comprises a zero-tail, tail-biting convolutional code.

[0126] Aspects of the present disclosure include any of the methods above, wherein encoding by the convolutional code comprises using a puncture rate of 1 / 2, 2 / 3, 3 / 4, 5 / 6, 6 / 7, or 7 / 8.

[0127] Aspects of the present disclosure include any of the methods above, wherein interleaving the plurality of convolutional codewords comprises interleaving with a rectangular interleaver, a row-in row-out interleaver, or a triangular interleaver.

[0128] Aspects of the present disclosure include any of the methods above, wherein the encoding with the polar code comprises generating cyclic redundancy check.

[0129] Aspects of the present disclosure include any of the methods above, wherein the encoding with the polar code comprises using the Gaussian Approximation sequence construction without additional cyclic redundancy check.

[0130] Other aspects of the present disclosure include a user equipment (UE) having one or more memories, individually or in combination, comprising instructions, a transceiver, and one or more processors, individually or in combination, operatively coupled with the memory and the transceiver, the one or more processors, individually or in combination, configured to execute instructions in the memory to receive Kr x Kc information bits, divide the Kr x Kc information bits into Kr groups of bits, encode each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords, interleave the plurality of convolutional codewords into a plurality of bits, divide the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits, and encode each of the Nc group by a polar code to generate a plurality of polar codewords.

[0131] An aspect of the present disclosure includes a user equipment (UE) including means for receiving Kr x Kc information bits, means for dividing the Kr x Kc information bits into Kr groups of bits, means for encoding each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords, means for interleaving the plurality of convolutional codewords into a plurality of bits, means for dividing the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits, and means for encoding each of the Nc group by a polar code to generate a plurality of polar codewords.

[0132] Some aspects of the present disclosure include non-transitory computer readable media having instructions stored therein that, when executed by one or more processors of a user equipment (UE) , cause the one or more processors, individually or in combination, to receive Kr x Kc information bits, divide the Kr x Kc information bits into Kr groups of bits, encode each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords, interleave the plurality of convolutional codewords into a plurality of bits, divide the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits, and encode each of the Nc group by a polar code to generate a plurality of polar codewords.

[0133] It should be noted that the techniques described herein may be used for various wireless communication networks such as CDMA, TDMA, FDMA, OFDMA, SC-FDMA, and other systems. The terms “system” and “network” are often used interchangeably. A CDMA system may implement a radio technology such as CDMA2000, Universal Terrestrial Radio Access (UTRA) , etc. CDMA2000 covers IS-2000, IS-95, and IS-856 standards. IS-2000 Releases 0 and A are commonly referred to as CDMA2000 1X, 1X, etc. IS-856 (TIA-856) is commonly referred to as CDMA2000 1xEV-DO, High Rate Packet Data (HRPD) , etc. UTRA includes Wideband CDMA (WCDMA) and other variants of CDMA. A TDMA system may implement a radio technology such as Global System for Mobile Communications (GSM) . An OFDMA system may implement a radio technology such as Ultra Mobile Broadband (UMB) , Evolved UTRA (E-UTRA) , IEEE 802.11 (Wi-Fi) , IEEE 802.16 (WiMAX) , IEEE 802.20, Flash-OFDMTM, etc. UTRA and E-UTRA are part of Universal Mobile Telecommunication System (UMTS) . 3GPP LTE and LTE-Advanced (LTE-A) are new releases of UMTS that use E-UTRA. UTRA, E-UTRA, UMTS, LTE, LTE-A, and GSM are described in documents from an organization named “3rd Generation Partnership Project” (3GPP) . CDMA2000 and UMB are described in documents from an organization named “3rd Generation Partnership Project 2” (3GPP2) . The techniques described herein may be used for the systems and radio technologies mentioned above as well as other systems and radio technologies, including cellular (e.g., LTE) communications over a shared radio frequency spectrum band. The description herein, however, describes an LTE / LTE-Asystem or 5G system for purposes of example, and  LTE terminology is used in much of the description below, although the techniques may be applicable other next generation communication systems.

[0134] Information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, computer-executable code or instructions stored on a computer-readable medium, or any combination thereof.

[0135] The various illustrative blocks and components described in connection with the disclosure herein may be implemented or performed with a specially-programmed device, such as but not limited to a processor, a digital signal processor (DSP) , an ASIC, a FPGA or other programmable logic device, a discrete gate or transistor logic, a discrete hardware component, or any combination thereof designed to perform the functions described herein. A specially-programmed processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A specially-programmed processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

[0136] The functions described herein may be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, the functions may be stored on or transmitted over as one or more instructions or code on a non-transitory computer-readable medium. Other examples and implementations are within the scope and spirit of the disclosure and appended claims. For example, due to the nature of software, functions described above may be implemented using software executed by a specially programmed processor, hardware, firmware, hardwiring, or combinations of any of these. Features implementing functions may also be physically located at various positions, including being distributed such that portions of functions are implemented at different physical locations. Also, as used herein, including in the claims, “or” as used in a list of items prefaced by “at least one of” indicates a disjunctive list such that, for example, a list of “at least one of A, B, or C” means A or B or C or AB or AC or BC or ABC (i.e., A and B and C) .

[0137] Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage medium may be any available medium that may be accessed by a general purpose or special purpose computer. By way of example, and not limitation, computer-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to carry or store desired program code means in the form of instructions or data structures and that may be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) , or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, include compact disc (CD) , laser disc, optical disc, digital versatile disc (DVD) , floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above are also included within the scope of computer-readable media.

[0138] The previous description of the disclosure is provided to enable a person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the common principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Furthermore, although elements of the described aspects may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated. Additionally, all or a portion of any aspect may be utilized with all or a portion of any other aspect, unless stated otherwise. Thus, the disclosure is not to be limited to the examples and designs described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1.A method of wireless communication by a user equipment (UE) in a network, comprising:receive a product code including:at least one row of polar code having first information bits, anda first code length and at least one column of convolutional code having second information bits and a second code length;sequentially decoding each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output;a) deinterleaving the initial output;b) decoding, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column;c) determining, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors;d) sequentially decoding each of the at least one row of polar code to generate second soft information for each of the first information bits;e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors:flipping the subsets of bits, andadding a penalty metric to a path metric associated with the at least one row of polar code;iteratively performing steps a) to e) ; anddecoding the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.2.The method of claim 1, wherein decoding to generate the first soft information or the second soft information comprises decoding using successive cancellation (SC) , successive cancellation list (SCL) , or soft cancellation (SCAN) .3.The method of claim 1, wherein generating the first soft information comprises generating an estimation used for generating the hard information.4.The method of claim 1, wherein generating the second soft information comprises generating an estimation used for generating the hard information.5.A user equipment (UE) , comprising:one or more memories, individually or in combination, comprising instructions;a transceiver; andone or more processors, individually or in combination, operatively coupled with the memory and the transceiver, the one or more processors, individually or in combination, configured to execute instructions in the memory to:receive a product code including:at least one row of polar code having first information bits, anda first code length and at least one column of convolutional code having second information bits and a second code length;sequentially decode each of the at least one row of polar code to generate first soft information associated with each of the first information bits to generate initial output;a) deinterleave the initial output;b) decode, sequentially, each of the at least one column of convolutional code to output at least one hard decision each associated with a corresponding column of the at least one column;c) determine, for each hard decision, whether each of the at least one hard decision includes less than a threshold number of errors;d) sequentially decode each of the at least one row of polar code to generate second soft information for each of the first information bits;e) for subsets of bits in the at least one row of polar code and in one or more columns having hard decisions having less than the threshold number of errors:flipping the subsets of bits, andadding a penalty metric to a path metric associated with the at least one row of polar code;iteratively performing steps a) to e) ; anddecode the at least one row of polar code to generate hard information based on the flipped subset of bits and the path metric.6.The UE of claim 5, wherein the one or more processors, individually or in combination, are further configured to decode using successive cancellation (SC) , successive cancellation list (SCL) , or soft cancellation (SCAN) .7.The UE of claim 5, wherein the one or more processors, individually or in combination, are further configured to generate an estimation used for generating the hard information.8.The UE of claim 5, wherein the one or more processors, individually or in combination, are further configured to generate an estimation used for generating the hard information.9.A method of encoding a product code, comprising:receiving Kr x Kc information bits;dividing the Kr x Kc information bits into Kr groups of bits;encoding each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords;interleaving the plurality of convolutional codewords into a plurality of bits;dividing the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits; andencoding each of the Nc group by a polar code to generate a plurality of polar codewords.10.The method of claim 9, wherein the convolutional code comprises a zero-tail, tail-biting convolutional code.11.The method of claim 9, wherein encoding by the convolutional code comprises using a puncture rate of 1 / 2, 2 / 3, 3 / 4, 5 / 6, 6 / 7, or 7 / 8.12.The method of claim 9, wherein interleaving the plurality of convolutional codewords comprises interleaving with a rectangular interleaver, a row-in row-out interleaver, or a triangular interleaver.13.The method of claim 9, wherein the encoding with the polar code comprises generating cyclic redundancy check.14.The method of claim 13, wherein the encoding with the polar code comprises using a Gaussian Approximation sequence construction without additional cyclic redundancy check.15.A user equipment (UE) , comprising:one or more memories, individually or in combination, comprising instructions;a transceiver; andone or more processors, individually or in combination, operatively coupled with the memory and the transceiver, the one or more processors, individually or in combination, configured to execute instructions in the memory to:receive Kr x Kc information bits;divide the Kr x Kc information bits into Kr groups of bits;encode each of the Kr groups by a convolutional code to generate a plurality of convolutional codewords;interleave the plurality of convolutional codewords into a plurality of bits;divide the plurality of bits by a length of a convolutional codeword to generate Nc groups of bits; andencode each of the Nc group by a polar code to generate a plurality of polar codewords.16.The UE of claim 15, wherein the convolutional code comprises a zero-tail, tail-biting convolutional code.17.The UE of claim 15, wherein the one or more processors, individually or in combination, are further configured to use a puncture rate of 1 / 2, 2 / 3, 3 / 4, 5 / 6, 6 / 7, or 7 / 8.18.The UE of claim 15, wherein the one or more processors, individually or in combination, are further configured to interleave with a rectangular interleaver, a row-in row-out interleaver, or a triangular interleaver.19.The UE of claim 15, wherein the one or more processors, individually or in combination, are further configured to generate cyclic redundancy check.20.The UE of claim 19, wherein the one or more processors, individually or in combination, are further configured to use a Gaussian Approximation sequence construction without additional cyclic redundancy check.

Citation Information

Patent Citations

  • Turbo Product Polar Coding with Hard Decision Cleaning

    US20190036550A1

  • Data packet coding processing method and device, base station, and user equipment

    WO2017133580A1

  • Staircase coding based on polar codes

    WO2021069076A1

  • Devices for product polar-code encoding and decoding

    WO2022117190A1