System and method for identifying and decoding reed-muller codes in polar codes
By applying Reed-Müller codes and Hadamard decoders to the simplified SSCL decoding tree of polar codes, the problems of high decoding latency and computational complexity of polar codes are solved, achieving efficient decoding performance and improved throughput.
Patent Information
- Application Number
- CN202011020921.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-07-14
- Filing Date
- 2020-09-25
- Publication Date
- 2026-02-10
- Estimated Expiration
- 2040-09-25
AI Technical Summary
Existing polar code decoding methods suffer from high computational complexity and large decoding latency, especially when using consecutive elimination lists for decoding, resulting in low throughput and efficiency.
A simplified SSCL decoding tree is adopted. By identifying and applying Reed-Muller codes at specific nodes of the decoding tree, and combining it with a Hadamard decoder for maximum likelihood decoding, decoding latency is reduced and efficiency is improved.
It significantly reduces decoding latency and computational complexity while maintaining block error rate performance, thereby improving the decoding efficiency and throughput of polar codes.
Smart Images

Figure CN112583421B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates generally to decoding of polar codes, and more particularly, to methods and systems for identifying and decoding Reed-Muller codes in polar codes. BACKGROUND
[0002] Polar codes are capacity achieving codes selected by the Third Generation Partnership Project (3GPP) as the error correction code on the control channel for the Fifth Generation New Radio (5G NR). Polar codes separate channels into good bit channels and bad bit channels.
[0003] Polar codes are classically decoded with successive cancellation decoder (SCD) which has a computational complexity of about (N log N) for a code of length N, where N is an integer. However, the serial nature of SCD also results in a large decoding latency of (N log N). Using multi-dimensional polar decoding where the multiplicity of each node of the decoding tree is decoded in parallel can reduce the SCD decoding latency to 2N-2. Better decoding performance can be achieved by list decoding polar codes. However, list decoding of polar codes has a computational complexity of about O(LN log N) for a list size of L, which is an L-fold increase compared to the computational complexity of successive cancellation decoding of polar codes.
[0004] Successive cancellation list (SCL) decoding of polar codes suffers from high latency due to its successive decoding nature. Simplified SCL (SSCL) decoding can improve the throughput of SCL decoding by exploiting specific constituent codes of the polar encoding structure. The identified constituent codes include rate-0 code, rate-1 code, repetition (REP) code, and single parity check (SPC) code. SUMMARY
[0005] According to one embodiment, a method for decoding a polar code is provided. A SSCL decoding tree of the polar code is generated. The SSCL decoding tree includes a plurality of nodes. One or more nodes of the plurality of nodes are identified for decoding with a Reed-Muller code. Decoding of received log likelihood ratios (LLRs) is performed at the one or more nodes using the Reed-Muller code. Hard decision values are output from the one or more nodes.
[0006] According to an embodiment, a user equipment (UE) is provided, which includes a processor and a non-transitory computer-readable storage medium storing instructions. The instructions, when executed, cause the processor to generate an SSCL decoding tree of a polar code. The SSCL decoding tree includes a plurality of nodes. The instructions further cause the processor to identify one or more nodes of the plurality of nodes as being decoded with a Reed-Muller code. The instructions further cause the processor to perform decoding of received LLRs and output hard decision values from the one or more nodes using the Reed-Muller code at the one or more nodes. BRIEF DESCRIPTION OF DRAWINGS
[0007] Aspects of certain embodiments of the present disclosure and other advantages, features, and objects of the like will be more clearly understood and appreciated from the following detailed description taken in conjunction with the accompanying drawings, in which:
[0008] Figure 1 is a diagram illustrating an SCL decoding tree of a polar code;
[0009] Figure 2 is a diagram illustrating an SSCL decoding tree of a polar code;
[0010] Figure 3 is a diagram illustrating an SSCL decoding tree with a new special node (SN) according to an embodiment;
[0011] Figure 4 is a flowchart illustrating a method for decoding a polar code according to an embodiment;
[0012] Figure 5 is a flowchart illustrating a method for decoding an SN of an SSCL decoding tree according to an embodiment; and
[0013] Figure 6 is a block diagram of an electronic device in a network environment according to an embodiment. DETAILED DESCRIPTION
[0014] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. It should be noted that the same elements will be designated by the same reference numerals throughout the various drawings. In the following description, specific details such as detailed configuration and components are provided to assist in a general understanding of embodiments of the present disclosure. Therefore, it will be apparent that various changes in form and details can be made to the embodiments described herein without departing from the scope of the present disclosure. Furthermore, descriptions of well-known functions and configurations are omitted for clarity and conciseness. The terms described below are terms defined in consideration of functions in the present disclosure, and can vary according to users, user's intentions, or habits. Therefore, the definition of the terms should be determined based on the content of the entire specification.
[0015] The present disclosure can have various modifications and various embodiments, among which embodiments are described in detail with reference to the accompanying drawings. However, it should be understood that the present disclosure is not limited to the described embodiments, but includes all modifications, equivalents, and alternatives within the scope of the present disclosure.
[0016] Although terms including ordinal numbers such as first, second, or the like can be used to describe various elements, the structural elements are not limited by the terms. The terms are used only to distinguish one element from another element. For example, a first structural element can be referred to as a second structural element without departing from the scope of the present disclosure. Similarly, a second structural element can also be referred to as a first structural element. As used herein, the term "and / or" includes any and all combinations of one or more related items.
[0017] The terms used herein are only used to describe various embodiments of the present disclosure, and are not intended to limit the present disclosure. The singular form is intended to include the plural form, unless the context clearly dictates otherwise. In the present disclosure, it is understood that the term "comprises" or "has" indicates the presence of a feature, number, step, operation, structural element part, or a combination thereof, and does not exclude the presence or possibility of one or more other features, numbers, steps, operations, structural elements, parts, or combinations thereof.
[0018] Unless defined differently, all terms used herein have the same meaning as understood by those skilled in the art to which the present disclosure belongs. Terms such as defined in a general dictionary will be interpreted to have the same meaning as the contextual meaning in the relevant art, and will not be interpreted to have an idealized or overly formalized meaning unless clearly defined in the present disclosure.
[0019] The electronic device according to one embodiment can be one of various types of electronic devices. The electronic device can include, for example, a portable communication device (e.g., a smartphone), a computer, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance. According to one embodiment of the present disclosure, the electronic device is not limited to those described above.
[0020] The terminology used in the disclosure is not intended to limit the disclosure but is intended to encompass various alterations, equivalents, or alternatives of the corresponding embodiments. In the description of the drawings, like reference numerals can be used to refer to like or related elements. A singular form of a noun corresponding to an item can include one or more of the things, unless the relevant context clearly dictates otherwise. As used herein, each of such phrases as "A or B," "at least one of A and B," "at least one of A or B," "A, B, or C," "at least one of A, B, and C," and "at least one of A, B, or C," can include all possible combinations of the items enumerated together in a corresponding one of the phrases. As used herein, such terms as "1st," "2nd," "first," and "second" can be used to distinguish one element from another element, but are not otherwise intended to limit those elements. It is intended that if a condition (for example, an element "is connected with" or "is connected to" another element) is recited using the phrase "operatively or communicatively coupled with" or a variation thereof, the condition can be fulfilled in that the element can be directly connected with (for example, wiredly connected to) another element or connected with another element via a third element.
[0021] As used herein, the term "module" can include a unit implemented in hardware, software, or firmware, and can interchangeably be used with other terms such as, for example, "logic", "logic block", "part", and "circuitry". A module can be a single integral component, or a minimum unit or part thereof, adapted to perform one or more functions. For example, according to an embodiment, a module can be implemented in a form of an application-specific integrated circuit (ASIC).
[0022] The present system and method is directed to identification of constituent codes in the SSCL decoding tree of a polar code belonging to the family of Reed-Muller codes. A decoding scheme exploiting the symmetric structure of Reed-Muller codes can be employed at those nodes. In particular, Reed-Muller decoding is incorporated or applied in the SSCL decoding of polar codes, which improves and reduces the decoding extension without any loss in block error rate performance.
[0023] Here, the terms node and code can be used interchangeably. Maximum likelihood (ML) decoding of a Reed-Muller code can be efficiently performed using a Hadamard decoder, as described in more detail below.
[0024] Figure 1 is a diagram illustrating an SCL decoding tree of a polar code. In particular, Figure 1An SCL decoding tree for a length-16 polar code is shown. Each node 102 of the tree is associated with a constituent code. A vector of LLRs for the code bits is provided from a parent node to a child node, while a hard decision value for the code bit is provided from a child node back to a parent node. White nodes 104 represent frozen bits of the length-16 polar code, while black nodes 106 represent information bits of the length-16 polar code. Shaded nodes represent nodes that are traversed in the decoding tree in order to determine the frozen bits and the information bits.
[0025] Figure 2 is a diagram showing an SSCL decoding tree for a polar code. Specifically, Figure 2 is shown Figure 1 is an SSCL decoding tree for the same length-16 polar code. Each node 202 of the tree is associated with a constituent code. Four types of SNs are identified: rate-0 nodes 204 that employ a rate-0 code; rate-1 nodes 206 that employ a rate-1 code; SPC nodes 208 that employ an SPC code; and REP nodes 210 that employ a REP code. Shaded nodes are traversed, and nodes 212 represented by dashed lines are not traversed because they are children of SNs. Thus, the decoding delay of the SSCL decoder can be significantly smaller than the decoding delay of the SCL decoder of Figure 1 .
[0026] Figure 3 is a diagram showing an SSCL decoding tree with new SNs according to an embodiment. Specifically, Figure 3 is shown Figure 1 and Figure 2 is an SSCL decoding tree for the same length-16 polar code. Each node of the tree is associated with a constituent code. Sub-RM nodes 304 and RM nodes 306 are identified as child nodes of parent node 302. Once decoding reaches a Sub-RM node 304, a Hadamard decoder takes over the decoding task and outputs a set of hard decision values to the parent node 302. The hard decision values are then used to compute the LLRs for the RM node 306. Again, a Hadamard decoder is employed to perform the decoding of the RM node 306. Figure 3 The SSCL decoder of Figure 2 differs from the SSCL decoder of Figure 3 in that, in a Hadamard decoder is employed to process each RM node and Sub-RM node instead of SSCL decoding.
[0027] Figure 2 Because nodes 308 represented by dashed lines are children of SNs, they are not traversed, and thus, the decoding delay of the SSCL decoder can be significantly smaller than the decoding delay of the SCL decoder of Figure 1 and the decoding delay of the SSCL decoder of Figure 2 .
[0028] According to one embodiment, Sub-RM nodes 304 and RM nodes 306 are added to the types of SNs used in the SSCL decoding tree. Thus, the SSCL decoding tree can include rate-0 nodes, rate-1 nodes, SPC nodes, REP nodes, Sub-RM nodes, and / or RM nodes.
[0029] A codeword in a first order Reed-Muller code is the evaluation of a polynomial with a degree of at most 1, i.e., each codeword c e RM(m, 1) can be represented as a polynomial in the following form listed in equation (1).
[0030]
[0031] where is the information vector and the codeword c is the evaluation of the polynomial at each For example, the first bit of the codeword c is the evaluation of the polynomial at while the last bit of the codeword c is the evaluation of the polynomial at Each bit of the codeword c can be indexed by a binary vector in i.e., c(Z) corresponds to the bit of the codeword c that is equal to the evaluation of the polynomial at Z.
[0032] The ML decoding of a Reed-Muller code is represented in the following equation (2).
[0033]
[0034] Because the system determines in order to maximize the following equation (3).
[0035]
[0036] For a binary vector L(u) is defined in equation (4).
[0037]
[0038] is the Hadamard transform of the vector which can be efficiently computed in O(N log N) where N = 2 m .
[0039] Once is reached, u * = (u1 * ,..., um * ). If L(u * ) > 0, the output of the decoder is (u0 * = 0, u1 * ,..., u m * ). Otherwise, the output of the decoder is (u0 * = 1, u1 * ,..., u m * ).
[0040] To find the most likely L candidates, one can determine the set of L vectors with the largest value |L(u)| and one can decode the first bit of each candidate as described above (e.g., depending on the sign of L(u * ).
[0041] The Hadamard decoder provides likelihood metrics for each codeword in the first order Reed-Muller codebook. Thus, the output of the Hadamard decoder can be used to decode any subcode of the codebook. For example, consider a first order Reed-Muller code with the pattern of information bits and frozen bits as shown in equation (5).
[0042]
[0043] Suppose the decoder encounters a node with the pattern of information bits and frozen bits as shown in equation (6):
[0044]
[0045] This would correspond to a subcode of a Reed-Muller code of length 8. Thus, a Hadamard transform can be applied to determine the likelihood metrics for each Reed-Muller codeword. Instead of considering all the metrics, one can consider the subset corresponding to the subcode of the Reed-Muller code.
[0046] The first order Reed-Muller code and its subcodes are identified in the decoding tree of the polar code, and the Hadamard decoder is applied to these nodes. The complexity of the Hadamard decoder is O(N log N), where N is the code block length. Using the Hadamard decoder is more efficient than traversing the sub-tree of these nodes.
[0047] In addition to the rate-0 code, rate-1 code, SPC code, and REP code, the first order Reed-Muller code and its subcodes frequently appear as constituent codes in the decoding of 5G NR polar codes. For most aggregation levels and downlink control information (DCI) sizes, several first order Reed-Muller nodes appear in the decoding tree with a variety of node sizes, up to a node size of 64. Similarly, nodes corresponding to the subcodes of the first order Reed-Muller code are identified.
[0048] In a 5G NR polar code with aggregation level of 4 and DCI size of 100 bits, there are 2 first order Reed-Muller nodes of length 8, 1 of length 16, and 1 of length 32. Additionally, there are 1 subcode of Reed-Muller code of length 8, 1 of length 16, and 3 of length 32 in the 5G NR polar code.
[0049] Figure 4 is a flowchart illustrating a method for decoding a polar code according to an embodiment. At 402, an SSCL decoding tree is generated for the polar code. The SSCL decoding tree includes a plurality of nodes. Each node is associated with a constituent code. The SSCL decoding tree determines frozen bits and information bits of the polar code. At 404, one or more nodes of the plurality of nodes are identified for decoding with a Reed-Muller code. The Reed-Muller code can include a first order Reed-Muller code and a subcode of a Reed-Muller code. At least one node of the plurality of nodes can also be identified for decoding with a rate-0 code, a rate-1 code, an SPC code, or a REP code.
[0050] At 406, decoding the received LLRs using the Reed-Muller code is performed at the one or more nodes. ML decoding is performed using a Hadamard decoder. At 408, a hard decision value is output from the one or more nodes. The hard decision value is output to a parent node of the one or more nodes and a child node of the one or more nodes is not traversed in the SSCL decoding tree.
[0051] Referring now to Figure 5 , a flowchart illustrates a method for decoding in a SN of an SSCL decoding tree according to an embodiment. At 502, a first node is identified for decoding with a subcode of a Reed-Muller code. At 504, a second node is identified for decoding with a first order Reed-Muller code. At 506, ML decoding of a first LLR is performed at the first node using a Hadamard decoder. At 508, a first hard decision value is output from the first node to a parent node. At 510, a second LLR is received at the second node from the parent node based on the first hard decision value. At 512, ML decoding of the second LLR is performed at the second node using a Hadamard decoder. At 514, a second hard decision value is output from the second node to the parent node.
[0052] Figure 6 is a block diagram illustrating an electronic device in a network environment according to one embodiment. Referring to Figure 6The electronic device 601 in the network environment 600 can communicate with an electronic device 602 via a first network 698 (e.g., a short-range wireless communication network), or an electronic device 604 or a server 608 via a second network 699 (e.g., a long-range wireless communication network). The electronic device 601 can communicate with the electronic device 604 via the server 608. The electronic device 601 can include a processor 620, a memory 630, an input device 650, a sound output device 655, a display device 660, an audio module 670, a sensor module 676, an interface 677, a haptic module 679, a camera module 680, a power management module 688, a battery 689, a communication module 690, a subscriber identification module (SIM) 696, or an antenna module 697. In an embodiment of the disclosure, at least one (e.g., the display device 660 or the camera module 680) of the components can be omitted from the electronic device 601, or one or more other components can be added in the electronic device 601. The components in the electronic device 601 can be implemented as one or more integrated circuits. For example, the sensor module 676 (e.g., a fingerprint sensor, an iris sensor, or an illuminance sensor) can be embedded in the display device 660 (e.g., a display).
[0053] The processor 620 can execute, for example, software (e.g., a program 640) to control at least one other component (e.g., a hardware or software component) of the electronic device 601 coupled with the processor 620 and can perform various data processing or computation. As at least part of the data processing or computation, the processor 620 can load a command or data received from another component (e.g., the sensor module 676 or the communication module 690) to a volatile memory 632, process the command or the data stored in the volatile memory 632, and store resulting data in a non-volatile memory 634. The processor 620 can include a main processor 621 (e.g., a central processing unit (CPU) or an application processor (AP)), and an auxiliary processor 623 (e.g., a graphics processing unit (GPU), an image signal processor (ISP), a sensor hub processor, or a communication processor (CP)) that is operable independently from, or in conjunction with, the main processor 621. Additionally or alternatively, the auxiliary processor 623 can be adapted to consume less power than the main processor 621, or to operate a specified function. The auxiliary processor 623 can be implemented as separate from or as part of the main processor 621.
[0054] The auxiliary processor 623 can control at least some of the functions or states of at least one component (e.g., the display device 660, the sensor module 676, or the communication module 690) among the components of the electronic device 601 instead of the main processor 621 while the main processor 621 is in an inactive (e.g., sleep) state, or together with the main processor 621 while the main processor 621 is in an active state (e.g., executing an application), or. The auxiliary processor 623 (e.g., an image signal processor or a communication processor) can be implemented as a part of another component functionally related to the auxiliary processor 623 (e.g., the camera module 680 or the communication module 690).
[0055] The memory 630 can store various data used by at least one component (e.g., the processor 620 or the sensor module 676) of the electronic device 601. The various data can include, for example, software (e.g., the program 640) and input data or output data for commands related thereto. The memory 630 can include the volatile memory 632 or the non-volatile memory 634.
[0056] The program 640 can be stored in the memory 630 as software, and can include, for example, an operating system (OS) 642, middleware 644, or an application 646.
[0057] The input device 650 can receive a command or data, which is used for at least one component (e.g., the processor 620) of the electronic device 601, from the outside (e.g., a user) of the electronic device 601. The input device 650 can include, for example, a microphone, a mouse, or a keyboard.
[0058] The sound output device 655 can output sound signals to the outside of the electronic device 601. The sound output device 655 can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as playing multimedia or playing record, and the receiver can be used for incoming calls. The receiver can be implemented as separate from the speaker, or as a part of the speaker.
[0059] The display device 660 can visually provide information to the outside (e.g., a user) of the electronic device 601. The display device 660 can include, for example, a display, a hologram device, or a projector and a control circuit for controlling a corresponding one of the display, the hologram device, and the projector. The display device 660 can include a touch circuit adapted to detect a touch or a sensor circuit (e.g., a pressure sensor) adapted to measure the intensity of force incurred by the touch.
[0060] The audio module 670 can convert a sound into an electrical signal and vice versa. The audio module 670 can obtain the sound via the input device 650, or output the sound via the sound output device 655 or a headphone of an external electronic device 602 connected with the electronic device 601 directly (e.g., wiredly) or wirelessly.
[0061] The sensor module 676 can detect an operational state (e.g., power or temperature) of the electronic device 601 or an environmental state (e.g., a state of a user) external to the electronic device 601, and then generate an electrical signal or data value corresponding to the detected state. The sensor module 676 can include, for example, a gesture sensor, a gyro sensor, an atmospheric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0062] The interface 677 can support one or more specified protocols to be used for the electronic device 601 to be coupled with the external electronic device 602 directly (e.g., wiredly) or wirelessly. The interface 677 can include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, a secure digital (SD) card interface, or an audio interface.
[0063] The connection terminal 678 can include a connector through which the electronic device 601 can be physically connected with the external electronic device 602. The connection terminal 678 can include, for example, a HDMI connector, a USB connector, a SD card connector, or an audio connector (e.g., a headphone connector).
[0064] The haptic module 679 can convert an electrical signal into a mechanical stimulus (e.g., a vibration or movement) or an electrical stimulus that is perceivable to a user through a tactile or kinesthetic sense. The haptic module 679 can include, for example, a motor, a piezoelectric element, or an electrical stimuluser.
[0065] The camera module 680 can capture a still image or moving images. The camera module 680 can include one or more lenses, image sensors, image signal processors, or flashes.
[0066] The power management module 688 can manage power supplied to the electronic device 601. The power management module 688 can be implemented as at least part of, for example, a power management integrated circuit (PMIC).
[0067] The battery 689 can supply power to at least one component of the electronic device 601. The battery 689 can include, for example, a primary cell which is not rechargeable, a secondary cell which is rechargeable, or a fuel cell.
[0068] The communication module 690 can support establishing a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device 601 and an external electronic device (e.g., the electronic device 602, the electronic device 604, or the server 608) and performing communication via the established communication channel. The communication module 690 can include one or more communication processors that operate independently of the processor 620 (e.g., an AP) and supports direct (e.g., wired) communication or wireless communication. The communication module 690 can include a wireless communication module 692 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 694 (e.g., a local area network (LAN) communication module or a power line communication (PLC) module). A corresponding one of these communication modules can communicate with the external electronic device via a first network 698 (e.g., a short-range communication network, such as Bluetooth TM , wireless-fidelity (Wi-Fi) direct, or infrared data association (IrDA)) or a second network 699 (e.g., a long-range communication network, such as a cellular network, the Internet, or a computer network (e.g., LAN or wide area network (WAN)). These various types of communication modules can be implemented as a single component (e.g., a single IC), or can be implemented as separate components (e.g., separate ICs) from each other. The wireless communication module 692 can identify and authenticate the electronic device 601 in a communication network, such as the first network 698 or the second network 699, using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module 696.
[0069] The antenna module 697 can transmit or receive a signal or power to or from an external electronic device (e.g., an external electronic device) of the electronic device 601. The antenna module 697 can include one or more antennas, and can include at least one antenna suitable for a communication scheme used in a communication network, such as the first network 698 or the second network 699, which can be selected from the one or more antennas by, for example, the communication module 690 (e.g., the wireless communication module 692). Then, the signal or the power can be transmitted or received between the communication module 690 and an external electronic device via the selected at least one antenna.
[0070] At least some of the above-described components can be coupled mutually via an inter-peripheral communication scheme (e.g., a bus, general purpose input output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) and communicate signals (e.g., commands or data) therebetween.
[0071] Commands or data can be transmitted or received between the electronic device 601 and an external electronic device 604 via the server 608 coupled with the second network 699. Each of the electronic devices 602 and 604 can be a device of a same type as or different from the electronic device 601. All or some of the operations to be executed at the electronic device 601 can be executed at one or more of the external electronic devices 602, 604, or 608. For example, if the electronic device 601 is to automatically perform a function or service or is to perform a function or service in response to a request from a user or another device, the electronic device 601, instead of executing or in addition to executing the function or service, can request at least a part of the function or service to be executed by the one or more external electronic devices. The one or more external electronic devices receiving the request can execute the requested at least part of the function or service, or execute an additional function or an additional service related to the request, and transfer a result of the execution to the electronic device 601. The electronic device 601 can provide the result, with or without further processing of the result, as at least part of a reply to the request. To this end, a cloud computing, distributed computing, or client-server computing technology can be used, for example.
[0072] One embodiment can be implemented as software (e.g., program 640) including one or more instructions that are stored in a storage medium (e.g., internal memory 636 or external memory 638) that are readable by a machine (e.g., electronic device 601). For example, a processor of the electronic device 601 can invoke at least one of the one or more instructions stored in the storage medium, and execute it, with or without using one or more other components under the control of the processor. Thus, the machine can be operated to perform at least one function by the invoked at least one instruction. The one or more instructions can include a code generated by a complier or a code executable by an interpreter. The machine-readable storage medium can be provided in the form of a non-transitory storage medium. The term "non-transitory" indicates that the storage medium is tangible, but does not include a signal (e.g., an electromagnetic wave), but this term does not differentiate between where data is semi-permanently stored in the storage medium and where the data is temporarily stored in the storage medium.
[0073] According to an embodiment, the method of the disclosure can be included and provided in a computer program product. The computer program product can be traded as a product between a seller and a buyer. The computer program product can be distributed in the form of a machine-readable storage medium (e.g., compact disc read only memory (CD-ROM)), or be distributed online via an application store (e.g., PlayStore®). If the computer program product is distributed online, at least part of the computer program product can be temporarily generated or at least temporarily stored in the storage medium such as a manufacturer's server, an application store's server, or a relay server. TM ) The computer program product can include and / or be distributed / propagated as one or more computer program instructions, such as one or more executable files, one or more dynamic link library (DLL) files, one or more Java class files, one or more scripts, etc. Specifically, the computer program product can include and / or be distributed / propagated as at least one of an installation file (e.g.,.msi file), an executable file (e.g.,.exe file), a binary file (e.g.,.bin file), a zip file (e.g.,.zip file), a tar file (e.g.,.tar file), etc.
[0074] According to an embodiment, each component (e.g., a module or a program) of the above-described components can include a single entity or multiple entities. One or more of the above-described components can be omitted, or one or more other components can be added. Alternatively or additionally, a plurality of components (e.g., modules or programs) can be integrated into a single component. In such a case, the integrated component can still perform one or more functions of each of the plurality of components in the same or similar manner as when each of the plurality of components performs the one or more functions. Operations performed by the module, the program, or another component can be executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations can be executed in a different order or omitted, or one or more other operations can be added.
[0075] Although certain embodiments of the disclosure have been described in the detailed description of the disclosure, the disclosure can be modified in various forms without departing from the scope of the disclosure. Accordingly, the scope of the disclosure should not be determined only by the described embodiments but by the following claims and their equivalents.
Claims
1. A method for decoding polar codes, the method comprising: A decoder with a simplified successive elimination list (SSCL) decoding tree for polar codes is generated by the processor of the user equipment (UE), wherein the SSCL decoding tree includes multiple nodes; The processor distinguishes between the first node, which is decoded using Reed-Muller codes, and the second node, which is decoded using first-order Reed-Muller codes. The processor controls the decoder to decode the first received log-likelihood ratio (LLR) at the first node using a subcode of the Reed-Muller code, and to decode the second received LLR at the second node using a first-order Reed-Muller code; and The processor receives hard decision values as output from the decoder from the first node and the second node.
2. The method according to claim 1, wherein, Each of the plurality of nodes is associated with a composition code.
3. The method according to claim 1, wherein, Controlling the decoder includes: The decoder is controlled to perform maximum likelihood ML decoding using the Hadamard decoder.
4. The method according to claim 1, wherein, The SSCL decoding tree determines the frozen bits and information bits of the polar code.
5. The method according to claim 1, wherein, In the SSCL decoding tree, the child nodes of the first and second nodes are not traversed.
6. The method according to claim 1, wherein, Controlling the decoder and receiving the hard decision value includes: The processor controls the decoder to perform ML decoding of the first LLR at the first node using the Hadamard decoder; Output the first hard decision value from the first node to the parent node of the first and second nodes; The processor provides a second LLR from the parent node to the second node based on a first hard decision value; The processor controls the decoder to perform ML decoding of the second LLR at the second node using the Hadamard decoder; and The second hard decision value is output from the second node to the parent node.
7. The method according to claim 1, wherein, The hard decision value is output to the parent node of the first node and the parent node of the second node.
8. The method according to claim 2, wherein, The constituent codes include Reed-Muller codes, rate-0 codes, rate-1 codes, single parity check codes, and repeat codes.
9. A user equipment (UE), comprising: processor; as well as A non-transitory computer-readable storage medium storing instructions that, when executed, cause the processor to: Generate a decoder with a simplified successive elimination list (SSCL) decoding tree for polar codes, wherein the SSCL decoding tree comprises multiple nodes; The first node, which is decoded using the subcode of Reed-Muller code, is distinguished from the second node, which is decoded using the first-order Reed-Muller code. The decoder is controlled to use a subcode of the Reed-Muller code at the first node to decode the first received log-likelihood ratio (LLR), and to use a first-order Reed-Muller code at the second node to decode the second received LLR; and Receive hard decision values as output from the decoder from the first node and the second node.
10. The UE according to claim 9, wherein, Each of the plurality of nodes is associated with a composition code.
11. The UE according to claim 9, wherein, When controlling the decoder, the instructions also cause the processor to: The decoder is controlled to perform maximum likelihood ML decoding using the Hadamard decoder.
12. The UE according to claim 9, wherein, The SSCL decoding tree determines the frozen bits and information bits of the polar code.
13. The UE according to claim 9, wherein, In the SSCL decoding tree, the child nodes of the first and second nodes are not traversed.
14. The UE according to claim 9, wherein, In controlling the decoder and receiving the hard decision value, the instructions also cause the processor to: The decoder is controlled to perform ML decoding of the first LLR at the first node using the Hadamard decoder; Output the first hard decision value from the first node to the parent node of the first and second nodes; A second LLR is provided from the parent node to the second node based on the first hard decision value; The decoder is controlled to perform ML decoding of the second LLR at the second node using the Hadamard decoder; as well as The second hard decision value is output from the second node to the parent node.
15. The UE according to claim 9, wherein, The hard decision value is output to the parent node of the first node and the parent node of the second node.
16. The UE according to claim 10, wherein, The constituent codes include Reed-Muller codes, rate-0 codes, rate-1 codes, single parity check codes, and repeat codes.
Citation Information
Patent Citations
Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
CN105493498A
Apparatus and method for parallelized successive cancellation decoding and successive cancellation list decoding
CN107846261A