Encoding method and apparatus, and decoding method and apparatus

By combining the encoding methods of polarization code and LDPC code, differentiated bit sequences with different weights are solved, and the problem of error flat layer of LDPC code under high signal-to-noise ratio is improved, error correction performance and bit error rate is reduced.

WO2025148789A1PCT designated stage expired Publication Date: 2025-07-17HUAWEI TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/070360
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-09
Filing Date
2025-01-03
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

In the case of relatively high signal-to-noise, LDPC codes are prone to error flat layers, resulting in the bit error rate that cannot be further reduced, affecting error correction performance.

Method used

By combining the bit sequence with polarization coding and LDPC encoding, the bit sequence with lower weight and higher weight are processed differently. The polarization coding provides additional protection for the bit sequence with lower weight and is LDPC encoding together with the LDPC encoding results to reduce the error level of LDPC decoding.

Benefits of technology

It effectively reduces the error level of LDPC code, improves error correction performance, and reduces the code rate of LDPC encoding, and improves the performance of the waterfall area.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025070360_17072025_PF_FP_ABST
    Figure CN2025070360_17072025_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to an encoding method and apparatus, and a decoding method and apparatus. In the encoding method, a first device may determine a second bit sequence and a third bit sequence on the basis of a first bit sequence, wherein the third bit sequence comprises a bit sequence, which is in a base graph corresponding to the first bit sequence and has a weight higher than a first threshold, that is, a weight corresponding to the second bit sequence is lower than a weight corresponding to the third bit sequence; further, the first device can perform polar code encoding on the second bit sequence, which is equivalent to providing additional protection for the second bit sequence having a lower weight by means of polar code encoding, so as to improve error correction performance; and the third bit sequence having a higher weight can be subjected to LDPC encoding together with the result (i.e., a fourth bit sequence obtained by performing polar code encoding on the second bit sequence) of polar code encoding. The error floor of LDPC decoding is reduced and the error correction performance of an LDPC code is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Coding method, decoding method and device

[0001] This application claims priority to the Chinese patent application with application number 202410035730.9 filed with the State Intellectual Property Office of China on January 9, 2024, and priority to the Chinese patent application with the invention name “A Coding Method, Decoding Method and Device”, all contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of communication technology, and in particular to an encoding method, a decoding method and a device. Background Art

[0003] Low-density parity check (LDPC) code is a channel coding scheme very close to the Shannon line, with good performance and low complexity. It has been identified by the 3rd Generation Partnership Project (3GPP) as the data channel coding scheme for the fifth generation (5G) communication technology.

[0004] However, when the signal-to-noise ratio (SNR) is relatively high, LDPC codes may experience an error floor due to trapping sets, and their bit error rate (BLER) no longer decreases as the SNR increases. A trapping set is a set of bit numbers that cannot be correctly decoded after a fixed number of iterations. The error floor is primarily determined by the size and distribution of the trapping set. Therefore, reducing the error floor of LDPC codes has become a pressing issue. Summary of the Invention

[0005] The present application provides an encoding method, a decoding method and an apparatus, which can reduce the error floor and bit error rate of LDPC codes, thereby improving error correction performance.

[0006] In a first aspect, a coding method is provided. The method can be performed by a first device, or by a module (e.g., a processor, chip, or chip system) applied to the first device. The method can also be implemented by a logical node, logic module, or software that can implement all or part of the functions of the first device. In this coding method, a second bit sequence and a third bit sequence can be determined based on a first bit sequence, where the third bit sequence includes bit sequences in a base graph corresponding to the first bit sequence whose weights are greater than a first threshold. The second bit sequence can also be polarized and encoded to obtain a fourth bit sequence. Thus, the third and fourth bit sequences can be low-density parity check (LDPC) encoded to obtain a fifth bit sequence.

[0007] It can be seen that in the above embodiment, the first device can determine the second bit sequence and the third bit sequence based on the first bit sequence, and the third bit sequence includes the bit sequence in the base graph corresponding to the first bit sequence and having a weight higher than the first threshold. That is, the weight corresponding to the second bit sequence is lower than the weight corresponding to the third bit sequence. Furthermore, the first device can perform polar code encoding on the second bit sequence, which is equivalent to providing additional protection for the second bit sequence with a lower weight by using polar code encoding to improve error correction performance. For the third bit sequence with a higher weight, LDPC encoding can be performed together with the result of polar code encoding (i.e., the fourth bit sequence obtained by performing polar code encoding on the second bit sequence). In this way, the error floor of LDPC decoding can be reduced, thereby improving the error correction performance of the LDPC code. At the same time, the LDPC coding load brought by Polar outer code encoding can also be reduced, thereby reducing the code rate of the LDPC code and improving the waterfall area performance.

[0008] In one possible implementation, determining the second bit sequence and the third bit sequence based on the first bit sequence includes: determining a first value based on the number of first columns in the base graph whose weights are higher than a first threshold; determining the third bit sequence from the first bit sequence based on the first value and a lifting factor corresponding to the first bit sequence; and determining the second bit sequence based on the third bit sequence and the first bit sequence.

[0009] As can be seen, in the above embodiment, the first device can determine the first value based on the number of first columns in the base graph whose weights are greater than the first threshold, and thus can determine the third bit sequence from the first bit sequence based on the first value and the lifting factor corresponding to the first bit sequence. This can more accurately determine the bit sequence with a large column weight in the first bit sequence, and furthermore, can more accurately determine the bit sequence with a small column weight, i.e., the second bit sequence.

[0010] In a possible implementation, the first column number is an integer greater than or equal to 1. For example, the first column number may be 2 or 3.

[0011] In one possible implementation, determining the first numerical value based on the first number of columns in the base graph with a weight higher than a first threshold includes: determining the second number of columns with the highest reliability from the base graph excluding the other columns with a weight higher than the first threshold; and determining the first numerical value based on the first number of columns and the second number of columns.

[0012] As can be seen, in the above embodiment, the first device can also determine a first value based on the first and second column numbers. The first value can be used to determine a third bit sequence from the first bit sequence, which is equivalent to increasing the number of bits that are not polar coded. Therefore, this can reduce the LDPC coding load caused by polar outer code encoding, thereby reducing the LDPC code rate and improving waterfall performance.

[0013] In one possible implementation, performing polar code encoding on the second bit sequence to obtain a fourth bit sequence includes: performing check code encoding on the second bit sequence to obtain a sixth bit sequence; and performing polar code encoding on the sixth bit sequence to obtain a fourth bit sequence. The check code encoding may be parity check (PC) encoding and / or cyclic redundancy check (CRC) encoding.

[0014] As can be seen, in the above embodiment, the first device can first perform check code encoding on the second bit sequence, and then perform polar code encoding. This is equivalent to the check code only checking the bits that are not in the large column overlap portion. This is because large column overlap bits are almost error-free. If an error occurs, the bits that are not in the large column overlap portion are also very likely to be erroneous. The check code can be used to correct the error in the bits that are not in the large column overlap portion. In addition, the check code can be used for error correction, thereby improving the performance of polar codes under SCL decoding.

[0015] In a possible implementation, the method further includes: performing check code encoding on the seventh bit sequence to obtain a first bit sequence.

[0016] As can be seen, in the above embodiment, the first device can perform checksum encoding on the seventh bit sequence to obtain the first bit sequence. The seventh bit sequence includes bits with a large number of duplicates. In other words, bits with a large number of duplicates can also be checked by the checksum, thereby achieving a lower false alarm rate (FAR).

[0017] In one possible implementation, the method further includes: segmenting the initial bit sequence based on a first segment length to obtain X bit sequences, where the X bit sequences include the first bit sequence or the seventh bit sequence, and X is an integer greater than 1; wherein the first segment length is determined based on the first value and the lifting factor.

[0018] As can be seen, in the above embodiment, the first device can segment the initial bit sequence based on a first segment length, where the first segment length is determined based on the first value and the lifting factor. In other words, this provides a segmentation method that is suitable for this solution and reduces the problem of encoding errors caused by segmentation errors.

[0019] In a possible implementation, the first segment length is determined based on the first value and the lifting factor, including: the first segment length is determined based on the first value, the lifting factor and the second value; wherein the second value is determined based on the total number of columns of the base graph and the first value.

[0020] In one possible implementation, the first segment length satisfies the following conditions: Wherein, a is the first value, b is the second value, R is the third value, and Z is the boost factor.

[0021] In one possible implementation, determining the second bit sequence based on the third bit sequence and the first bit sequence includes: segmenting bit sequences other than the third bit sequence in the first bit sequence based on a second segment length to obtain Y bit sequences, where the Y bit sequences include the second bit sequence, and Y is an integer greater than 1; wherein the second segment length is determined based on a maximum length supported by polar code encoding and a third value.

[0022] It can be seen that in the above embodiment, the first device can segment the remaining bit sequences in the first bit sequence, excluding the third bit sequence, based on the second segment length (determined based on the maximum length supported by polar code encoding and the third value), to obtain Y bit sequences, where the Y bit sequences may include the second bit sequence. This can prevent errors when performing polar code encoding on the second bit sequence, and improve compatibility with current polar code methods.

[0023] In one possible implementation, the second segment length satisfies the following conditions: Wherein, Nm is the maximum length supported by the polar code encoding, and R is the third value.

[0024] In a possible implementation, the method further includes: sending a symbol sequence based on a third bit sequence.

[0025] In a second aspect, a decoding method is provided. The method can be performed by a second device, or by a module (e.g., a processor, chip, or chip system) applied to the second device. The method can also be implemented by a logical node, logical module, or software that can implement all or part of the functions of the second device. In this decoding method, a symbol sequence can be obtained, and a fifth bit sequence can be determined based on the symbol sequence. LDPC decoding is then performed on the fifth bit sequence to obtain a third bit sequence and a fourth bit sequence. In this way, polar code decoding can be performed on the fourth bit sequence to obtain a second bit sequence, and the first bit sequence can be determined based on the third bit sequence and the second bit sequence.

[0026] It can be seen that in the above embodiment, the second device can first determine the fifth bit sequence based on the symbol sequence, and then perform LDPC decoding on the fifth bit sequence to obtain a third bit sequence and a fourth bit sequence, so that the fourth bit sequence can be polar code decoded to obtain a second bit sequence. In this way, the first bit sequence can be determined based on the third bit sequence and the second bit sequence. This can be used to reduce the error floor of LDPC decoding, thereby improving the error correction performance of the LDPC code. At the same time, it can also reduce the LDPC coding load caused by Polar outer code encoding, thereby reducing the code rate of the LDPC code and improving the waterfall area performance. In addition, the second device performs polar code decoding on part of the bit sequence (such as the fourth bit sequence) in the LDPC decoding result, reducing the decoding delay and improving the decoding efficiency.

[0027] In a third aspect, a communication device is provided, comprising a unit or module for implementing the method described in any one of aspects 1 to 2. The communication device may be a first device or a second device, or a module of the first device or the second device (e.g., a processor, a chip, or a chip system), or a logical node, a logical module, or software that can implement all or part of the functions of the first device or the second device.

[0028] In a fourth aspect, a communication device is provided, comprising at least one processor; wherein the at least one processor is configured to execute any of the methods described in any one of the first to second aspects. The communication device may be a first device or a second device, or a module of the first device or the second device (e.g., a processor, a chip, or a chip system), or a logical node, a logical module, or software that can implement all or part of the functions of the first device or the second device. At least one processor may execute a computer program or instruction in a memory so that the above method is executed. The memory may be included in the communication device or may be located outside the communication device. In addition, the communication device may further include an interface.

[0029] In a fifth aspect, a communication system is provided, the communication system comprising a first device and a second device; the first device is used to execute the method as described in any one of the first aspects; the second device is used to execute the method as described in any one of the second aspects.

[0030] In a sixth aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores computer instructions, and when the computer instructions are executed, the computer executes any one of the methods described in any one of the first to second aspects.

[0031] In a seventh aspect, a computer program product is provided, the computer program product comprising: a computer program code, and when the computer program code is executed by a computer, the computer executes any one of the methods described in any one of the first to second aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] FIG1 is a basic architecture of a communication system provided in an embodiment of the present application;

[0033] FIG2 is a schematic diagram of a communication process between communication devices;

[0034] FIG3 is a schematic diagram of polar code encoding;

[0035] FIG4 is a schematic diagram of a check matrix;

[0036] FIG5 is a schematic diagram of a flow chart of an encoding method provided in an embodiment of the present application;

[0037] FIG6 is a schematic diagram of a flowchart of a decoding method provided in an embodiment of the present application;

[0038] FIG7 is a schematic diagram of a flow chart of another encoding method provided in an embodiment of the present application;

[0039] FIG8 is a schematic flow chart of another decoding method provided in an embodiment of the present application;

[0040] FIG9 is an example of encoding and decoding provided in an embodiment of the present application;

[0041] FIG10 is a comparative diagram of beneficial effects provided by an embodiment of the present application;

[0042] FIG11 is another example of encoding and decoding provided in an embodiment of the present application;

[0043] FIG12 is a comparative diagram of another beneficial effect provided by an embodiment of the present application;

[0044] FIG13 is a schematic structural diagram of a communication device provided in an embodiment of the present application;

[0045] FIG14 is a schematic structural diagram of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0046] The technical solutions in the embodiments of the present application will be described below in conjunction with the accompanying drawings in the embodiments of the present application. In the embodiments of the present application, the terms "system" and "network" can be used interchangeably. Unless otherwise specified, " / " indicates that the objects associated before and after are in an "or" relationship. For example, A / B can represent A or B. "And / or" in this application is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. A and B can be singular or plural. In addition, in the description of this application, unless otherwise specified, "multiple" refers to two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, c can be one or more. In addition, to facilitate a clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, terms such as "first" and "second" are used to distinguish between network elements and identical or similar items with substantially the same functions. Those skilled in the art will understand that terms such as "first" and "second" do not limit the quantity or execution order, and terms such as "first" and "second" do not necessarily limit differences.

[0047] References to "one embodiment" or "some embodiments" in the embodiments of the present application mean that one or more embodiments of the present application include specific features, structures or characteristics described in conjunction with the embodiment. Therefore, the phrases "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. that appear in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized.

[0048] The following specific implementation methods further describe in detail the objectives, technical solutions and beneficial effects of the present application. It should be understood that the following are only specific implementation methods of the present application and are not intended to limit the scope of protection of the present application. Any modifications, equivalent replacements, improvements, etc. made on the basis of the technical solutions of the present application should be included in the scope of protection of the present application.

[0049] In the various embodiments of the present application, unless otherwise specified or there is a logical conflict, the terms and / or descriptions between different embodiments are consistent and can be referenced by each other. The technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.

[0050] It should be understood that the technical solutions of the embodiments of the present application can be applied to long term evolution (LTE) architecture, fifth generation mobile communication technology (5G), wireless local area networks (WLAN) systems, vehicle to everything (V2X) communication systems, LTE-vehicle (LTE-V), vehicle to vehicle (V2V), vehicle networking, machine type communications (MTC), etc. The technical solutions of the embodiments of the present application can also be applied to other future communication systems, such as 6G communication systems, etc. In future communication systems, the functions may remain the same, but the names may change.

[0051] The following describes the infrastructure of the communication system provided by an embodiment of the present application. The communication system provided by the present application may include one or more network devices and one or more terminal devices. The following is an exemplary explanation using the system architecture shown in Figure 1. As shown in Figure 1, the communication system includes a network device 10 and one or more terminal devices (such as the terminal device 20 in Figure 1) that communicate with the network device 10.

[0052] It should be noted that the number of network devices and terminal devices in Figure 1 is only for illustration and should not be considered as a specific limitation of the present application.

[0053] 1. Terminal Equipment

[0054] A terminal device is an entity on the user side that is used to receive signals, or send signals, or both receive and send signals. The terminal device is used to provide one or more of voice services and data connectivity services to the user. The terminal device may be a device that includes wireless transceiver functions and can cooperate with network equipment to provide communication services to the user. Specifically, the terminal device may refer to user equipment (UE), access terminal, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile device, terminal, wireless communication device, user agent, user device or road side unit (RSU). The terminal device may also be a drone, an Internet of Things (IoT) device, a station (ST) in a wireless local area network (WLAN), a cellular phone, a smart phone, a cordless phone, a wireless data card, a tablet computer, a session initiation protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA) device, a laptop computer, a machine type communication (MTC) terminal, a handheld device with wireless communication capabilities, a computing device or other processing device connected to a wireless modem, an in-vehicle device, a wearable device (also referred to as a wearable smart device), a virtual reality (VR) terminal, an augmented reality (AR) terminal, a wireless terminal in remote medical care, a wireless terminal in industrial control, a wireless terminal in self-driving, a wireless terminal in a smart grid, a transportation security system, or a similar device. The terminal device may also be a terminal in a 5G system or a terminal in a next-generation communication system, which is not limited in the embodiments of the present application.

[0055] The embodiments of this application do not limit the device form factor of the terminal device. The device used to implement the functions of the terminal device can be the terminal device; it can also be a device that supports the terminal device to implement the functions, such as a chip system. The device can be installed in the terminal device or used in conjunction with the terminal device. In the embodiments of this application, the chip system can be composed of a chip or include a chip and other discrete components.

[0056] 2. Network Equipment

[0057] A network device is an entity on the network side that is used to send signals, receive signals, or both send and receive signals. A network device can be a device deployed in a radio access network (RAN) to provide wireless communication functions for terminal devices.

[0058] In one possible scenario, a network device may be a device with base station functionality, such as an evolved NodeB (eNodeB), a transmitting and receiving point (TRP), a transmitting point (TP), a next-generation NodeB (gNB), a next-generation base station in a 6G mobile communication system, an integrated access and backhaul (IAB) node, or non-terrestrial network equipment in an NTN, i.e., equipment that can be deployed on a high-altitude platform or satellite. A network device may be a transmission reception point (TRP), a base station, or various forms of control nodes, such as a network controller or a wireless controller. Specifically, network devices can include various forms of macro base stations, micro base stations (also known as small cells) in heterogeneous network (HetNet) scenarios, relay stations, access points (APs), radio network controllers (RNCs), node Bs (NBs), base station controllers (BSCs), base transceiver stations (BTSs), home base stations (e.g., home evolved node Bs, or home node Bs, HNBs), baseband units (BBUs) and remote radio units (RRUs) in distributed base station scenarios, transmission points (TRPs), transmitting points (TPs), mobile switching centers, and the like. They can also be antenna panels for base stations. A control node can connect to multiple base stations and configure resources for multiple terminals covered by these base stations. In systems using different wireless access technologies, the names of devices with base station functionality may vary. For example, it can be a gNB in ​​5G, or a network-side device in a network after 5G, or a network device in a future evolved public land mobile (communication) network (public land mobile network, PLMN) network, or a device that performs base station functions in device-to-device (D2D) communication, machine-to-machine (M2M) communication, and vehicle network communication, etc. This application does not limit the specific name of the network device.The network equipment may also be an open access network (O-RAN or ORAN), a baseband pool (BBU pool) and RRU under a cloud radio access network (CRAN), etc.

[0059] All or part of the functions of the network device in this application may also be implemented through software functions running on hardware, or through virtualization functions instantiated on a platform (such as a cloud platform). The network device in this application may also be a logical node, logical module, or software that can implement all or part of the network device functions.

[0060] In another possible scenario, multiple network devices collaborate to assist the terminal device in achieving wireless access, and different network devices respectively implement part of the functions of the base station. For example, the network device may include a centralized unit (CU), a distributed unit (DU), a CU-control plane (CP), a CU-user plane (UP), or a radio unit (RU). The CU and DU may be set separately, or may be included in the same network element, such as a baseband unit (BBU). The RU may be included in a radio frequency device or radio frequency unit, such as a remote radio unit (RRU), an active antenna unit (AAU), or a remote radio head (RRH). It is understandable that the network device may be a CU node, a DU node, or a device including a CU node and a DU node. In addition, the CU may be divided into a network device in the access network RAN, or the CU may be divided into a network device in the core network CN, without limitation here.

[0061] In different systems, CU (or CU-CP and CU-UP), DU or RU may also have different names, but those skilled in the art can understand their meanings. For example, in the ORAN system, CU may also be called O-CU (Open CU), DU may also be called O-DU, CU-CP may also be called O-CU-CP, CU-UP may also be called O-CU-UP, and RU may also be called O-RU. For the convenience of description, this application uses CU, CU-CP, CU-UP, DU and RU as examples for description. Any unit of CU (or CU-CP, CU-UP), DU and RU in this application can be implemented by a software module, a hardware module, or a combination of a software module and a hardware module.

[0062] In the embodiments of the present application, the form of the network device is not limited. The device used to implement the function of the network device can be a network device; it can also be a device that can support the network device to implement the function, such as a chip system. The device can be installed in the network device or used in conjunction with the network device.

[0063] In order to facilitate understanding of the contents of this solution, some of the terms involved in the embodiments of this application are explained below to facilitate understanding by those skilled in the art. This part is only for ease of understanding and cannot be regarded as a specific limitation of this application.

[0064] 1. Communication process between communication devices

[0065] For example, in Figure 2, the first device may perform source coding, channel coding, rate matching, and modulation on the bit stream generated by the source, and then transmit the information to the second device through the channel. Correspondingly, after receiving the information, the second device sequentially performs demodulation, rate matching, channel decoding, and source decoding on the information to obtain the destination, that is, to recover the bit stream generated by the source. The channel may be an additive white Gaussian noise (AWGN) channel. In which, at least one of the first device and the second device may be the terminal device or network device in Figure 1.

[0066] 2. Polar Code

[0067] Polar codes are a known channel coding scheme that has been rigorously proven to achieve channel capacity. They offer high performance and low complexity, and have been selected by 3GPP as the control channel coding scheme for 5G enhanced mobile broadband (eMBB) scenarios (uplink and downlink).

[0068] Polar code is a linear block code, and its encoding process can be x N =u N G N , where u N ={u0,u1,...,u N-1} is a binary row vector of length N, is the encoding matrix, The Kronecker power represented by For example, n = 2, the polar code encoding matrix with a code length of N = 4 can be obtained.

[0069] In the polar code encoding process, u NIt can be divided into two parts. One part of the bits carries information and is called information bits. The index set of these bits can be recorded as A. The other part of the bits is a fixed value, called fixed bits, which are usually set to 0. When the fixed bits are set to 0, the encoding process of the polar code can be simplified to x A =u A GN(A), where u A is u N The set of information bits in A can be denoted by K. GN(A) is a submatrix in GN consisting of the rows corresponding to the indices in A. GN(A) is a K × N matrix. The selection of A affects the performance of the polar code.

[0070] Figure 3 shows a schematic diagram of polar code encoding. As shown in Figure 3, u8 = {u0, u0, ..., u7} is a binary row vector of length 8. The binary row vector may include fixed bits and information bits. The fixed bits and information bits may be adjacent or interleaved. For example, u0, u1, u2, and u4 are fixed bits and may all be 0. u3, u5, u6, and u7 are information bits. The circle plus symbol shown in Figure 3 represents an exclusive OR operation. u0, u1, u2, and u4 are the four bits with the lowest reliability, and u3, u5, u6, and u7 are the four bits with the highest reliability. The intermediate result in the encoding process shown in Figure 3 is only an example and is not limited to this in the embodiment of the present application. In the present application, polar code encoding and polar code outer code encoding can be interchangeable.

[0071] In this application, polar codes may include at least one of the following: Arikan Polar code, parity check polar (PC-Polar) code, cyclic redundancy check polar (CA-Polar) code, or parity check-cyclic redundancy check polar-polar (PC-CA-Polar) code. Arikan Polar refers to the original polar code, not concatenated with other codes, including information bits and / or frozen bits. PC-Polar is a polar code concatenated with a PC code. CA-Polar is a polar code concatenated with a CRC code. PC-CA-Polar is a polar code concatenated with both a PC code and a CRC code.

[0072] Among them, CRC code, as a commonly used error detection code, is the most common outer code cascaded with polar codes. In this application, the length of the CRC code can be R bits, where R can be a positive integer, such as 4, 6, 8, 11, 16, or 24. This application does not limit its length. It should be understood that the CRC code can be derived based on a generating polynomial, and the power of the generating polynomial for an R-bit CRC code can be R. CRC codes of different lengths use different polynomials. For example, taking a 24-bit CRC code as an example, the polynomial used can be CRC24. This application does not limit the specific polynomial used in the CRC code.

[0073] There are many possible implementation methods for polar code decoding, such as successive cancellation decoding (SC) decoding, successive cancellation list decoding (SCL), successive cancellation stack (SCS) decoding, CRC-aided successive cancellation list (CA-SCL) decoding, belief propagation (BP) decoding, and soft cancellation (SCAN) decoding. This application does not limit the decoding method of the polar code. For example, the polar code is an Arikan Polar code, and SC decoding, SCL decoding, SCS decoding, BP decoding, or SCAN decoding can be used. The polar code is a PC-Polar code, CA-Polar code, or PC-CA-Polar code, and CA-SCL decoding can be used.

[0074] 3. LDPC Code

[0075] LDPC codes are a type of linear block code with a sparse check matrix. This means that the density of nonzero elements in the check matrix (also called a parity check matrix or LDPC matrix) is relatively low, which means that the check matrix must have far more zero elements than nonzero elements. LDPC codes can be represented by a check matrix or a Tanner graph. This application does not limit the specific representation of LDPC codes. For ease of understanding, the following description uses the representation of LDPC codes by a check matrix as an example, which should not be considered a limitation of this application.

[0076] The check matrix of the LDPC code can be seen in Figure 4. In Figure 4, the check matrix includes a high code rate region (highrate region), an incremental redundancy region (incrementalredundancyregion) and an extended check region (raptor-likeregion). The area selected by the dotted line represents the code rate. The main characteristic of the check matrix is ​​nestedness, that is, the low code rate region can contain the high code rate region, and the high code rate region can serve as a submatrix of the low code rate region. In one possible implementation, different matrix regions can be selected as the check matrix according to the code rate. For example, from the upper left area to the lower right area of ​​the matrix, such as the 0th row to the M0th row and the 0th column to the N0th column. M0 and N0 can be integers greater than 0.

[0077] Optionally, the check matrix of the LDPC code can be obtained by a base graph (BG) and a shifting value. The base graph can be determined based on the length of the information bit and the code rate. The code rate refers to the proportion of bits before encoding (i.e., information bits) in the bits after encoding. Among them, the base graph can be divided into BG1 and BG2. Exemplarily, the code length of the information bit applicable to BG1 is 308 bits to 8448 bits, and the code rate is 0.25 to 0.95. The code length of the information bit applicable to BG2 is 40 bits to 3840 bits, and the code rate is 0.20 to 0.95.

[0078] It should be noted that, in this application, the row and column numbers of the base graph can be numbered starting from 0, and the row and column numbers of the matrix can be numbered starting from 0. This application does not limit the specific starting value of the row and column numbers.

[0079] Generally, a base graph can include m×n matrix elements (entries), which can be represented by a matrix with m rows and n columns. The value of a matrix element can be 0 or 1. An element with a value of 0 can be called a zero element, indicating that the element can be replaced by a Z*Z all-zero matrix (zero matrix). An element with a value of 1 can be called a non-zero element, indicating that the element can be replaced by a Z*Z circulant permutation matrix (circulant permutation matrix). In other words, each matrix element represents an all-zero matrix or a circulant permutation matrix.

[0080] Wherein, Z can be a positive integer, which can be called a lifting factor, a lifting size or a lifting factor, etc., and can be determined, for example, based on the length of the information bit. For example, Z can be a j ∈{2,3,5,7,9,11,13,15}, max(k j)∈{7,7,6,5,5,5,4,4}. j is an integer greater than or equal to 0. For example, Z can be k j ∈{0,1,2,3,4,5,6,7}. For example, Z can be k j ∈{0,1,2,3,4,5,6,7}. For example, Z can be k j ∈{0,1,2,3,4,5,6}. For example, Z can be k j ∈{0,1,2,3,4,5}. For example, Z can be k j ∈{0,1,2,3,4,5}. The rest are similar and are not listed here one by one.

[0081] Optionally, there is an association between Z and the translation value. For example, a set consisting of multiple Zs (which can be called a lifting factor set (set of lifting sizes), which is described below using the lifting factor set as an example) can correspond to the translation value, such as the row number of the lifting factor set corresponds to the column number of the translation value. Optionally, the column number of the translation value can be described as a set index (set index). Specifically, in Table 1, the lifting factor set can correspond to the set index. For example, {2, 4, 8, 16, 32, 64, 128, 256} corresponds to 0, and the rest are similar and will not be repeated here.

[0082] Table 1 LDPC lifting factor set (setofLDPCliftingsizeZ)

[0083] The following describes the process of replacing the elements in the base graph with the Z*Z matrix with a specific example. Specifically: Assume that the value of the element in the i-th row and j-th column of the base graph is 1, and its translation value is P i,j , P i,j is an integer greater than or equal to 0. The element with a value of 1 in the i-th row and j-th column of the base graph can be i,j The corresponding Z*Z circulant permutation matrix is ​​replaced by the circulant permutation matrix, which can be obtained by performing P on the Z*Z identity matrix. i,j It can be obtained by cyclic shifting to the right. It can be seen that by replacing each element with a value of 0 in the base graph with a Z*Z all-zero matrix, and replacing each element with a value of 1 with a Z*Z cyclic permutation matrix corresponding to its translation value, the check matrix of the LDPC code can be obtained. The base graph can be used to indicate the position of the offset value, and the non-zero elements in the base graph correspond to the offset value. It can be seen that the size of the parity check matrix H is (m*Z)*(n*Z). For example, assuming Z=4, each zero element is replaced by a 4*4 all-zero matrix, assuming P2,3 =2, then the non-zero elements in the second row and third column are replaced by a 4*4 cyclic permutation matrix, which is obtained by cyclically shifting the 4*4 identity matrix to the right twice. It should be noted that this is only an example and is not intended to be limiting.

[0084] Among them, there are many possible implementation methods of LDPC codes, such as minimum sum algorithm (Min-Sum, MS) decoding or BP decoding. This application does not limit the decoding method of LDPC codes. Optionally, MS decoding can be divided into offset minimum sum algorithm (Offset-MS) decoding and standard minimum sum algorithm (Normalized-MS) decoding. Offset minimum sum algorithm decoding can be, for example, layered offset minimum sum algorithm (LOMS) decoding.

[0085] The embodiments of the present application are described in detail below in conjunction with Figure 5. It should be noted that the execution subjects of the method provided in this application can be the first device and the second device in Figure 2. The following introduction is made by taking the first device as a terminal device and the second device as a network device as an example, which should not be regarded as a limitation of the present application. Among them, the processing performed by the single execution subject (terminal device or network device) shown in the embodiment of the present application can also be divided into execution by multiple execution subjects, and these execution subjects can be logically and / or physically separated. For example, the processing performed by the network device can be divided into execution by at least one of the CU, DU and RU. In addition, the various embodiments of the present application are only illustrated by taking the execution of all the steps included therein as an example, and should not be regarded as a specific limitation of the present application. That is to say, the steps included in the embodiments of the present application (such as any one of the embodiments in Figures 5 to 8) can be partially or fully executed in the absence of logical conflicts.

[0086] As shown in FIG5 , an encoding method is provided in an embodiment of the present application, which includes but is not limited to the following steps:

[0087] 501. A terminal device performs polarization code encoding on a first bit sequence to obtain a second bit sequence.

[0088] The first bit sequence may include at least one of the following: an information bit sequence, a frozen bit sequence, or a check bit sequence. The information bit sequence is a sequence consisting of information bits, and the frozen bit sequence is a sequence consisting of frozen bits. The check bit sequence may include a PC code and / or a CRC code. The first bit sequence is described below in two cases, which should not be considered as a limitation of this application. Specifically:

[0089] In the first case, the first bit sequence includes an information bit sequence.

[0090] In the second case, the first bit sequence includes an information bit sequence and a check bit sequence.

[0091] The second bit sequence may be a polar code. For example, in the first case, the second bit sequence may be an Arikan Polar code. In the second case, the second bit sequence may be a PC-Polar code, a CA-Polar code, or a PC-CA-Polar code.

[0092] In a possible implementation, the length Npolar of the second bit sequence may be determined based on the length T of the first bit sequence and the code rate R corresponding to the second bit sequence. For example, the length of the second bit sequence satisfies the following conditions:

[0093] Among them, the application This is just an example of rounding up, which should not be considered as a limitation of the present application. For example, rounding up in the present application can be replaced by rounding down.

[0094] R may be the code rate corresponding to the second bit sequence. R may be a predefined or preconfigured value greater than 0, or R may be indicated by the network device to the terminal device. For example, R may be 0.9517, or (Nm×0.9517) / Nm, such as 975 / 1024. Nm is the maximum length supported by the polar code. Optionally, Nm may be an integer greater than 0, such as 1024.

[0095] In one possible implementation, the information bit sequence in the first bit sequence may be a partial or complete bit sequence of the initial bit sequence. The initial bit sequence in this application may be referred to as a mother code. The initial bit sequence may include an information bit sequence. Optionally, the initial bit sequence may also include a frozen bit sequence or may not include a frozen bit sequence. The following describes the relationship between the first bit sequence and the initial bit sequence, taking the initial bit sequence not including the frozen bit sequence as an example, which should not be construed as limiting this application. Specifically:

[0096] 1. The information bit sequence in the first bit sequence is the same as the information bit sequence in the initial bit sequence. For example, if the length of the initial bit sequence is less than the maximum length Kcb supported by LDPC coding, the information bit sequence in the first bit sequence is the same as the information bit sequence in the initial bit sequence. In other words, the information bit sequence in the first bit sequence is the entire bit sequence of the initial bit sequence. That is, the first bit sequence before the concatenation of the parity check bit sequence is the same as the initial bit sequence.

[0097] Kcb can be determined based on a base graph. For example, if the base graph is BG1, Kcb is 8448. If the base graph is BG2, Kcb is 3840. The base graph is determined based on the length and code rate of the information bits in the initial bit sequence.

[0098] 2. The terminal device may segment the initial bit sequence based on the first segment length to obtain L bit sequences, where L is an integer greater than 1. For example, when the length of the initial bit sequence is greater than Kcb, the terminal device may segment the initial bit sequence based on the first segment length to obtain L bit sequences. In other words, the information bit sequence in the first bit sequence is a partial bit sequence of the initial bit sequence, that is, the first bit sequence without the cascaded check bit sequence is a partial bit sequence of the initial bit sequence.

[0099] The L bit sequences may include a fourth bit sequence. For example, in the first case described above, the fourth bit sequence may be used as the first bit sequence. In the second case described above, the terminal device may perform check code encoding on the fourth bit sequence to obtain a first bit sequence. The check code encoding may be PC encoding and / or CRC encoding. For example, taking CRC encoding of the fourth bit sequence as an example, the terminal device may concatenate a 24-bit CRC code at the end of the fourth bit sequence to obtain the first bit sequence.

[0100] It should be pointed out that the length of the initial bit sequence being equal to Kcb can be used as a condition for "the information bit sequence in the first bit sequence is the information bit sequence in the initial bit sequence", or as a condition for "the terminal device segments the initial bit sequence based on the first segment length to obtain L bit sequences", which is not limited here.

[0101] In a possible implementation, the first segment length may be determined based on the first value R and Kcb. For example, the first segment length satisfies the following conditions: For example, assuming R is 0.9517 and Kcb is 3840, K1 can be

[0102] In a possible implementation, the lengths of the L bit sequences may be partially identical, completely identical, or completely different. It should be understood that the process of encoding each bit sequence in the L bit sequences is similar, for example, refer to FIG5 , which is not described in detail here.

[0103] In one possible implementation, the length of the information bit sequence in the first bit sequence may be greater than, equal to, or less than Nm. For example, when the length of the information bit sequence in the first bit sequence is greater than or equal to Nm, the terminal device may further segment the first bit sequence based on the second segment length to obtain P bit sequences, where P is an integer greater than 1. In this case, step 501 may include: the terminal device performing polar code encoding on each of the P bit sequences to concatenate them into a second bit sequence. This application does not limit the process of concatenating polar coded bit sequences.

[0104] Optionally, the second segment length may be determined based on Nm and R, for example, by satisfying the following conditions: For example, assuming R is 0.9517 and Nm is 1024, K2 can be

[0105] In one possible implementation, the lengths of the P bit sequences may be partially identical, completely identical, or completely different. For example, if the first bit sequence includes 2924 bits and the second segment length is 975, the terminal device may divide the first bit sequence into three bit sequences based on the second segment length, with lengths of 975, 975, and 974, respectively. That is, two of the three bit sequences have the same length.

[0106] 502. The terminal device performs LDPC encoding on the second bit sequence to obtain a third bit sequence.

[0107] The third bit sequence is an LDPC code, which can also be called an LDPC codeword sequence.

[0108] Optionally, after step 502, step 503 may be further included.

[0109] 503. The terminal device sends a symbol sequence based on the third bit sequence.

[0110] Accordingly, the network device receives the symbol sequence. For example, the network device receives the symbol sequence from the terminal device. Correspondingly, the terminal device sends the symbol sequence to the network device based on the third bit sequence.

[0111] Optionally, step 503 may include: the terminal device modulating the third bit sequence based on a modulation mode to obtain a symbol sequence. The modulation mode in this application may be quadrature phase shift keying (QPSK), binary phase shift keying (BPSK), 16-quadrature amplitude modulation (QAM), 64-QAM, 256-QAM, 1024-QAM or 4096-QAM, etc. This application is not limited to this.

[0112] As can be seen, in the above embodiment, the terminal device can first perform polar code encoding on the first bit sequence to obtain a second bit sequence, and then perform LDPC encoding on the second bit sequence to obtain a third bit sequence, namely, an LDPC code. This can reduce the error floor of LDPC decoding without sacrificing the code rate of the LDPC code, thereby improving the error correction performance of the LDPC code.

[0113] As shown in FIG6 , a decoding method is provided in an embodiment of the present application. It should be noted that the embodiment shown in FIG5 or the embodiment shown in FIG6 can be performed separately, or the embodiment shown in FIG5 and the embodiment shown in FIG6 can be combined. For example, the embodiment shown in FIG5 is performed before step 601 in FIG6 . The embodiment shown in FIG6 is described in detail below. Specifically, the method includes but is not limited to the following steps:

[0114] 601. The network device obtains a symbol sequence.

[0115] For example, a network device receives a sequence of symbols from a terminal device.

[0116] 602. The network device determines a third bit sequence based on the symbol sequence.

[0117] Optionally, the network device may demodulate the symbol sequence based on the modulation mode to obtain a third bit sequence, wherein the third bit sequence is an LDPC code, which may also be referred to as an LDPC codeword sequence.

[0118] 603. The network device performs LDPC decoding on the third bit sequence to obtain a second bit sequence.

[0119] The manner in which the network device performs LDPC decoding on the third bit sequence can refer to the above related description and will not be described in detail here. The second bit sequence is similar to the second bit sequence in step 501 of FIG5 and will not be described in detail here.

[0120] 604. The network device performs polar code decoding on the second bit sequence to obtain a first bit sequence.

[0121] The first bit sequence is similar to the first bit sequence in step 501 of FIG5 and is not described in detail here. The manner in which the network device decodes the polar code for the second bit sequence can be referred to the above related description and is not described in detail here.

[0122] As can be seen, in the above embodiment, the network device can first determine the third bit sequence based on the symbol sequence, and then perform LDPC decoding on the third bit sequence to obtain the second bit sequence. Polar code decoding is then performed on the second bit sequence to obtain the first bit sequence. This can be used to reduce the error floor of LDPC decoding, thereby improving the error correction performance of LDPC codes.

[0123] As shown in FIG7 , another encoding method provided by the present application includes but is not limited to the following steps:

[0124] 701. A terminal device determines a second bit sequence and a third bit sequence based on a first bit sequence, where the third bit sequence includes bit sequences in a base graph corresponding to the first bit sequence and having weights higher than a first threshold.

[0125] The first bit sequence may include at least one of the following: an information bit sequence, a frozen bit sequence, or a check bit sequence. The information bit sequence is a sequence consisting of information bits, and the frozen bit sequence is a sequence consisting of frozen bits. The check bit sequence may include a PC code and / or a CRC code. The first bit sequence is described below in two cases, which should not be considered as a limitation of this application. Specifically:

[0126] The first type, the first bit sequence includes an information bit sequence.

[0127] Second, the first bit sequence includes an information bit sequence and a check bit sequence. In this case, the terminal device can perform check code encoding on the seventh bit sequence to obtain the first bit sequence. The check code encoding can be PC encoding and / or CRC encoding. For example, taking CRC encoding of the seventh bit sequence as an example, the terminal device can cascade a 24-bit CRC code at the end of the seventh bit sequence to obtain the first bit sequence.

[0128] Optionally, step 701 may include: the terminal device determines a first numerical value based on the first number of columns in the base image whose weights are higher than a first threshold, thereby determining a third bit sequence from the first bit sequence based on the first numerical value and the lifting factor corresponding to the first bit sequence, and further determining a second bit sequence based on the third bit sequence and the first bit sequence.

[0129] The terminal device determines the first value based on the number of first columns in the base graph whose weights are higher than the first threshold value. This can be implemented in the following ways, specifically:

[0130] 1. The first value is the first column number. The first column number is an integer greater than or equal to 1, such as 2 or 3. Generally, the weights of the first T columns in the base graph are greater than a first threshold, where T is the first column number. For example, assuming the first column number is 2, the weights of columns 0 through 1 in the base graph are greater than the first threshold. Alternatively, assuming the first column number is 3, the weights of columns 0 through 2 in the base graph are greater than the first threshold. The first threshold can be a predefined or preconfigured value greater than 0.

[0131] 2. The terminal device determines the second column number with the highest reliability (i.e., the lowest bit error rate) from the base graph, excluding the other columns with weights greater than the first threshold, and determines the first value based on the first column number and the second column number. For example, the terminal device sorts the reliabilities of the other columns in order of reliability from high to low or from low to high, and calculates the number of columns with the highest reliability to obtain the second column number. Here, the order of reliability from high to low can be understood as the order of bit error rate from low to high, and vice versa.

[0132] In one possible implementation, the first value may be the sum of the first column number and the second column number. For example, assuming the base graph includes 10 columns and the first column number is 2, that is, the weights of columns 0 through 1 in the base graph are greater than the first threshold. The terminal device may sort the reliabilities of columns 2 through 9 in descending or descending order, and calculate the column number with the highest reliability to obtain the second column number. For example, the second column number may be an integer greater than or equal to 1.

[0133] 3. The terminal device determines a third number of columns in the base graph whose reliability exceeds a second threshold, excluding the columns with weights greater than the first threshold, and determines a first value based on the first and third numbers of columns. For example, the first value is the sum of the first and third numbers of columns. The third threshold may be a predefined or preconfigured value greater than 0.

[0134] Among them, the weight in the base graph can be understood as: the weight of the column in the base graph. This is only introduced here by taking the column weight as an example, and should not be regarded as a limitation of this application. It should be pointed out that in this application, the weight of the base graph is determined by the number of non-zero elements. For example, the weight of a row refers to the number of non-zero elements included in a row, and the weight of a column refers to the number of non-zero elements included in a column. The weight of a row and the weight of a column can be referred to as row weight and column weight, respectively.

[0135] In one possible implementation, the base graph may be determined based on the length and code rate of the information bits in the initial bit sequence. The lifting factor corresponding to the first bit sequence may be determined based on the length of the information bits in the initial bit sequence. The information bit sequence in the first bit sequence may be a partial or complete bit sequence of the initial bit sequence. The initial bit sequence may include an information bit sequence. Optionally, the initial bit sequence may also include a frozen bit sequence or may not include a frozen bit sequence. The following describes the relationship between the first bit sequence and the initial bit sequence, taking the initial bit sequence not including the frozen bit sequence as an example, which should not be regarded as a limitation of the present application. Specifically:

[0136] 1. The information bit sequence in the first bit sequence is the same as the information bit sequence in the initial bit sequence. For example, if the length of the initial bit sequence is less than the maximum length Kcb supported by LDPC coding, the information bit sequence in the first bit sequence is the same as the information bit sequence in the initial bit sequence. In other words, the information bit sequence in the first bit sequence is the entire bit sequence of the initial bit sequence. That is, the first bit sequence before the concatenation of the parity check bit sequence is the same as the initial bit sequence.

[0137] Kcb can be determined based on a base graph. For example, if the base graph is BG1, Kcb is 8448. If the base graph is BG2, Kcb is 3840. The base graph is determined based on the length and code rate of the information bits in the initial bit sequence.

[0138] 2. The terminal device may segment the initial bit sequence based on the first segment length to obtain X bit sequences, where X is an integer greater than 1. For example, when the length of the initial bit sequence is greater than Kcb, the terminal device may segment the initial bit sequence based on the first segment length to obtain X bit sequences. The X bit sequences may include the first bit sequence or the seventh bit sequence. For example, for the first case described above, the X bit sequences include the first bit sequence. That is, the information bit sequence in the first bit sequence is a partial bit sequence of the initial bit sequence. For the second case described above, the X bit sequences include the seventh bit sequence. That is, the seventh bit sequence is a partial bit sequence of the initial bit sequence.

[0139] It should be pointed out that the length of the initial bit sequence being equal to Kcb can be used as a condition for "the information bit sequence in the first bit sequence is the information bit sequence in the initial bit sequence", or as a condition for "the terminal device segments the initial bit sequence based on the first segment length to obtain X bit sequences", which is not limited here.

[0140] Alternatively, the first segment length may be determined based on the first value and a lifting factor. For example, the first segment length may be determined based on the first value, the lifting factor, and a second value. The second value may be determined based on the total number of columns in the base graph and the first value, e.g., the second value may be the difference between the total number of columns in the base graph and the first value.

[0141] Optionally, the first segment length may also be determined based on a third value. The third value is the code rate corresponding to the second bit sequence. The third value may be a predefined or preconfigured value greater than 0, or the third value may be indicated by the network device to the terminal device. For example, the third value may be 0.9517, or the third value may be (Nm×0.9517) / Nm, such as 975 / 1024. Nm is the maximum length supported by the polar code encoding. Nm may be an integer greater than 0, such as 1024.

[0142] In a possible implementation, the first segment length may satisfy the following conditions: Where a is the first value, b is the second value, R is the third value, and Z is the boost factor. For example, assuming Z is 384, a is 2, b is 8, and R is 0.9517, Among them, a×Z=M1, Therefore, K1=M1+M2.

[0143] The terminal device determines the third bit sequence from the first bit sequence based on the first value and a lifting factor corresponding to the first bit sequence. For example, this may include: the terminal device selects the first Q bits from the first bit sequence as the third bit sequence based on a product Q of the first value and the lifting factor. For example, if the first value is 2 and the lifting factor is 104, Q may be 208.

[0144] The terminal device determines the second bit sequence based on the third bit sequence and the first bit sequence, which can be implemented in the following ways, specifically:

[0145] 1. The second bit sequence is the other bit sequences in the first bit sequence except the third bit sequence. For example, when the length of the other bit sequences is less than Nm, the second bit sequence is the other bit sequence.

[0146] 2. The terminal device segments the other bit sequence based on the second segment length to obtain Y bit sequences, where the Y bit sequences include the second bit sequence. For example, when the length of the other bit sequence is greater than Nm, the terminal device segments the other bit sequence based on the second segment length to obtain Y bit sequences. Where Y is an integer greater than 1. The second segment length can be determined based on Nm and the third value. For example, the second segment length satisfies the following conditions:

[0147] It should be pointed out that the length of other bit sequences equal to Nm can be used as a condition for "the second bit sequence is other bit sequences", or as a condition for "the terminal device segments other bit sequences based on the second segment length to obtain Y bit sequences", which is not limited here.

[0148] 702. The terminal device performs polar code encoding on the second bit sequence to obtain a fourth bit sequence.

[0149] For example, in the first case described above, step 702 can be understood as: the terminal device performs check code encoding on the second bit sequence to obtain a sixth bit sequence, and then performs polar code encoding on the sixth bit sequence to obtain a fourth bit sequence. The fourth bit sequence can be a polar code, such as a PC-Polar code, a CA-Polar code, or a PC-CA-Polar code.

[0150] In a possible implementation, the length Npolar of the fourth bit sequence may be determined according to the lengths T and R of the second bit sequence.

[0151] For example, the length of the fourth bit sequence satisfies the following conditions:

[0152] 703. The terminal device performs LDPC encoding on the third bit sequence and the fourth bit sequence to obtain a fifth bit sequence.

[0153] The fifth bit sequence is an LDPC code. It can also be called an LDPC codeword sequence. In one possible implementation, step 703 may include: the terminal device performs LDPC encoding on a bit sequence resulting from the concatenation of the third bit sequence and the fourth bit sequence to obtain a fifth bit sequence. For example, the fourth bit sequence is concatenated onto the end of the third bit sequence.

[0154] Optionally, after step 703 , step 704 may be further included.

[0155] 704. The terminal device sends a symbol sequence based on the fifth bit sequence.

[0156] Accordingly, the network device receives the symbol sequence. For example, the network device receives the symbol sequence from the terminal device. Correspondingly, the terminal device sends the symbol sequence to the network device based on the fifth bit sequence.

[0157] Optionally, step 704 may include: the terminal device modulates the fifth bit sequence based on a modulation mode to obtain a symbol sequence.

[0158] It can be seen that in the above embodiment, the terminal device can determine the second bit sequence and the third bit sequence based on the first bit sequence, and the third bit sequence includes the bit sequences in the base graph corresponding to the first bit sequence whose weights are higher than the first threshold. That is, the weight corresponding to the second bit sequence is lower than the weight corresponding to the third bit sequence. Furthermore, the terminal device can perform polar code encoding on the second bit sequence, which is equivalent to providing additional protection for the second bit sequence with a lower weight by using polar code encoding, so as to improve error correction performance. For the third bit sequence with a higher weight, LDPC encoding can be performed together with the result of polar code encoding (i.e., the fourth bit sequence obtained by performing polar code encoding on the second bit sequence). In this way, the error floor of LDPC decoding can be reduced, thereby improving the error correction performance of the LDPC code. At the same time, the LDPC coding load brought by Polar outer code encoding can also be reduced, thereby reducing the code rate of the LDPC code and improving the waterfall area performance.

[0159] As shown in FIG8 , another decoding method is provided in an embodiment of the present application. It should be noted that the embodiment shown in FIG7 or the embodiment shown in FIG8 can be performed separately, or the embodiment shown in FIG7 and the embodiment shown in FIG8 can be combined. For example, the embodiment shown in FIG7 is performed before step 801 in FIG8 . The embodiment shown in FIG8 is described in detail below. Specifically, the method includes but is not limited to the following steps:

[0160] 801. A network device obtains a symbol sequence.

[0161] For example, a network device receives a sequence of symbols from a terminal device.

[0162] 802. The network device determines a fifth bit sequence based on the symbol sequence.

[0163] Optionally, the network device may demodulate the symbol sequence based on the modulation mode to obtain a fifth bit sequence, wherein the fifth bit sequence is an LDPC code, which may also be referred to as an LDPC codeword sequence.

[0164] 803. The network device performs LDPC decoding on the fifth bit sequence to obtain a third bit sequence and a fourth bit sequence.

[0165] For example, the network device performs LDPC decoding on the fifth bit sequence to obtain a bit sequence that is a concatenation of the third bit sequence and the fourth bit sequence. The manner in which the network device performs LDPC decoding on the fifth bit sequence can refer to the above-mentioned related description and is not described in detail here. The third bit sequence and the fourth bit sequence are similar to the third bit sequence and the fourth bit sequence in step 701 of FIG. 7 , respectively, and are not described in detail here. The length of the fourth bit sequence satisfies the following conditions: For example, the last Npolar bits of the "bit sequence resulting from the concatenation of the third and fourth bit sequences" can be used as the fourth bit sequence, and the remaining bits can be used as the third bit sequence. That is, the difference between the length of the bit sequence resulting from the concatenation of the third and fourth bit sequences and the Npolar length is the length of the third bit sequence.

[0166] 804. The network device performs polarization code decoding on the fourth bit sequence to obtain a second bit sequence.

[0167] The second bit sequence is similar to the second bit sequence in step 701 of FIG7 and is not described in detail here. The manner in which the network device decodes the fourth bit sequence into polar codes can be referred to the above related description and is not described in detail here.

[0168] 805. The network device determines a first bit sequence based on the third bit sequence and the second bit sequence.

[0169] For example, the first bit sequence includes a third bit sequence and a second bit sequence. For example, a bit sequence consisting of the second bit sequence concatenated at the end of the third bit sequence is the first bit sequence. The first bit sequence is similar to the first bit sequence in step 701 of FIG. 7 and is not described in detail here. Optionally, if the first bit sequence includes a check bit sequence, the network device may further perform a check on the first bit sequence. For example, a PC check and / or a CRC check may be performed.

[0170] It can be seen that in the above embodiment, the network device can first determine the fifth bit sequence based on the symbol sequence, then perform LDPC decoding on the fifth bit sequence to obtain the third and fourth bit sequences, and then perform polar code decoding on the fourth bit sequence to obtain the second bit sequence. In this way, the first bit sequence can be determined based on the third and second bit sequences. Because the network device performs polar code decoding on a portion of the bit sequence in the LDPC decoding result (such as the fourth bit sequence), decoding latency is reduced and decoding efficiency is improved. At the same time, it can also be used to reduce the error floor of LDPC decoding, thereby improving the error correction performance of LDPC codes.

[0171] The beneficial effects of the embodiments described in FIG. 5 to FIG. 8 are described in detail below with reference to specific examples. Specifically:

[0172] 1. Examples of the encoding method shown in FIG5 and the decoding method shown in FIG6

[0173] Assuming that the length of the information bit U is 1000 bits, the process of combining the encoding method shown in Figure 5 and the decoding method shown in Figure 6 can be referred to the Polar-LDPC encoding and decoding process in Figure 9. For example, the terminal device sequentially performs CRC24 encoding, polar code encoding, LDPC encoding, and QPSK modulation on the information bit, and then sends the information to the network device through the AWGN channel. Correspondingly, after receiving the information, the network device sequentially performs demodulation, LOMS decoding, and polar code decoding on the information to obtain The information bit U is sequentially CRC24-encoded and polar code-encoded, which is equivalent to adding polar redundancy check bits to the CRC codeword. The bit sequence length after CRC24 encoding is 1024 bits, that is, K_Ca-polar = 1024 bits in Figure 9. The bit sequence length N_polar after 1024 bits is polar code-encoded is N_polar=K_ldpc. Furthermore, after 1076 bits are LDPC-encoded, the length of the bit sequence is N_ldpc, such as 3000 bits.

[0174] The LDPC encoding and decoding process in Figure 9 is as follows: the terminal device sequentially performs CRC24 encoding, LDPC encoding, and QPSK modulation on the information bits, and then sends the information to the network device through the AWGN channel. Correspondingly, after receiving the information, the network device sequentially demodulates and LOMS decodes the information to obtain In addition, in FIG9 , the number of iterations of LOMS decoding may be 15 or 25, the polar code decoding may be SC decoding or SCL decoding, and the path width L may be 8. The length is 1000 bits.

[0175] The following describes the beneficial effects of the encoding method shown in Figure 5 and the decoding method shown in Figure 6 based on the example shown in Figure 9 and in combination with Figure 10. Specifically, in Figure 10, the abscissa represents SNR, i.e., Es / N0, and the ordinate represents BLER.

[0176] In 10-1 of Figure 10, the number of iterations of LOMS decoding is 15. The curve of Polar-LDPC shows the BLER performance corresponding to the Polar-LDPC encoding and decoding process in Figure 9. The curve of LDPC shows the BLER performance corresponding to the LDPC encoding and decoding process in Figure 9. It can be seen that when the BLER is less than or equal to 6×10 -6 In this case, the error correction performance corresponding to Polar-LDPC coding and decoding can still decrease exponentially with the increase of SNR, and there is no error floor.

[0177] In 10-2 of Figure 10, the number of iterations of LOMS decoding is 25. The curve of Polar-LDPC shows the BLER performance corresponding to the Polar-LDPC encoding and decoding process in Figure 9. The curve of LDPC shows the BLER performance corresponding to the LDPC encoding and decoding process in Figure 9. It can be seen that when the BLER is less than or equal to 6×10 -6 In this case, the error correction performance corresponding to Polar-LDPC coding and decoding can still decrease exponentially with the increase of SNR, and there is no error floor.

[0178] 2. Examples of the encoding method shown in FIG7 and the decoding method shown in FIG8

[0179] Assuming that the length of information bit U is 1000 bits (bits), the process for combining the encoding method shown in Figure 7 with the decoding method shown in Figure 8 can be seen in Polar-LDPC encoding and decoding process 1 or Polar-LDPC encoding and decoding process 2 in Figure 11. For example, the terminal device determines the lifting factor Z based on the length of information bit U. For example, if the length of the information bit is 1000 bits and the length N_ldpc after LDPC encoding is 3000 bits, BG2 can be selected, with a total number of columns of 10, and Z = 104. Because the column weights of the first T columns of BG2 are large, the corresponding information bits are relatively reliable and error-prone, so no additional protection through polar code encoding is required. In other words, the bits that cause the LDPC error floor are mainly distributed in positions that do not correspond to large column weights. For example, if T is 2, the column weights of columns 0 to 1 of BG2 are large, and the bits corresponding to columns 2 to 9 (non-large column weights) are prone to errors. The number of bits with large column weights (K_B) is Z × 2 = 208.

[0180] The Polar-LDPC encoding and decoding 1 process of Figure 11 is as follows: the terminal device performs CRC24 encoding and polar code encoding on 792 bits in sequence. After CRC24 encoding of 792 bits, the bit sequence length K_S_CRC is 816 bits. After polar code encoding of 816 bits, the bit sequence length N_polar is 858 bits. Furthermore, after cascading 208 bits and 858 bits (whose length K_ldpc is 1066 bits), LDPC encoding and QPSK modulation are performed in sequence, and the information is sent to the network device through the AWGN channel. Correspondingly, after receiving the information, the network device demodulates and LOMS decodes the information in sequence to obtain the bits that need to be polar code decoded, whose length is K_ldpc-K_B=858 bits. A large column of heavy bits with a length of 208 bits can also be obtained. In this way, we can get

[0181] The Polar-LDPC encoding and decoding 2 process of Figure 11 is as follows: the terminal device performs CRC24 encoding on the information bits to obtain a bit length K_CRC of 1024 bits. The bit sequence length K_polar that needs to be polarized is 816 bits, and the bit sequence length K_B that does not need to be polarized is 208 bits. Further, the 816 bits are polarized and encoded to obtain a bit sequence length N_polar of 858 bits. In this way, 208 bits and 858 bits can be cascaded (their length K_ldpc is 1066 bits) and LDPC encoded and QPSK modulated in sequence, and then the information is sent to the network device through the AWGN channel. Correspondingly, after receiving the information, the network device demodulates and LOMS decodes the information in sequence to obtain bits that need to be polarized and decoded, and the length is K_ldpc-K_B=858 bits. A large column of bits with a length of 208 bits can also be obtained. In this way, we can get In FIG11 , the number of iterations of LOMS decoding may be 15 or 25, the polar code decoding may be SC decoding or SCL decoding, and the path width L may be 8. The length of is 1000 bits. In addition, the LDPC encoding and decoding process of FIG11 is similar to the LDPC encoding and decoding process of FIG9 , and is not described in detail here.

[0182] The following describes the beneficial effects of the encoding method shown in Figure 7 and the decoding method shown in Figure 8 based on the example shown in Figure 11 and in combination with Figure 12. Specifically, in Figure 12, the abscissa represents SNR, i.e., Es / N0, and the ordinate represents BLER.

[0183] In 12-1 of Figure 12, the number of iterations of LOMS decoding is 15, and the largest columns are the first two columns of BG2. The curve of Polar-LDPC shown in Figure 9 represents the BLER performance corresponding to the Polar-LDPC encoding and decoding process in Figure 9. The curve of LDPC represents the BLER performance corresponding to the LDPC encoding and decoding process in Figure 11. The curve of Polar-LDPC shown in Figure 11 represents the BLER performance corresponding to the Polar-LDPC encoding and decoding process 1 in Figure 11. It can be seen that when the BLER is less than or equal to 8×10 -6 In this case, the Polar-LDPC coding and decoding shown in Figure 9, the Polar-LDPC coding and decoding 1 in Figure 11, and the corresponding error correction performance can still decrease exponentially with the increase of SNR, and there is no error flattening.

[0184] In 12-2 of Figure 12, the number of iterations of LOMS decoding is 25, and the largest columns are the first two columns of BG2. The curve of Polar-LDPC shown in Figure 9 represents the BLER performance corresponding to the Polar-LDPC encoding and decoding process in Figure 9. The curve of LDPC represents the BLER performance corresponding to the LDPC encoding and decoding process in Figure 11. The curve of Polar-LDPC shown in Figure 11 represents the BLER performance corresponding to the Polar-LDPC encoding and decoding process 1 in Figure 11. It can be seen that when the BLER is less than or equal to 10 -5 In this case, the Polar-LDPC coding and decoding shown in Figure 9, the Polar-LDPC coding and decoding 1 in Figure 11, and the corresponding error correction performance can still decrease exponentially with the increase of SNR, and there is no error flattening.

[0185] In 12-3 of Figure 12, the number of iterations of LOMS decoding is 15, and the most heavily weighted columns are the first three columns of BG2. The LDPC curve shows the BLER performance corresponding to the LDPC encoding and decoding process in Figure 11. The Polar-LDPC curve shown in Figure 11 shows the BLER performance corresponding to the Polar-LDPC encoding and decoding process 1 in Figure 11. It can be seen that when the BLER is less than or equal to 10 -5 In this case, the Polar-LDPC coding and decoding shown in Figure 9, the Polar-LDPC coding and decoding 1 in Figure 11, and the corresponding error correction performance can still decrease exponentially with the increase of SNR, and there is no error flattening.

[0186] In 12-4 of Figure 12, the number of iterations of LOMS decoding is 25, and the most heavily weighted columns are the first three columns of BG2. The LDPC curve shows the BLER performance corresponding to the LDPC encoding and decoding process in Figure 11. The Polar-LDPC curve shown in Figure 11 shows the BLER performance corresponding to the Polar-LDPC encoding and decoding process 1 in Figure 11. It can be seen that when the BLER is less than or equal to 10 -5 In this case, the Polar-LDPC coding and decoding shown in Figure 9, the Polar-LDPC coding and decoding 1 in Figure 11, and the corresponding error correction performance can still decrease exponentially with the increase of SNR, and there is no error flattening.

[0187] In addition, comparing 12-1 with 12-3 in Figure 12, or comparing 12-2 with 12-4 in Figure 12, in 12-3 and 12-4, polar code encoding is not performed on the information bits corresponding to the large columns in the first three columns, further reducing the redundant bits added by the polar code outer code. The performance loss in the waterfall region is reduced from 0.2 dB to approximately 0.1x dB, thereby improving the performance in the waterfall region.

[0188] It is understandable that, in order to realize the above functions, the above-mentioned devices include hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0189] In the embodiments of the present application, the terminal device or network device can be divided into functional modules according to the above-mentioned method examples. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The above-mentioned integrated module can be implemented in the form of hardware or software functional modules. It should be noted that the division of modules in the embodiments of the present application is schematic and is only a logical functional division. In actual implementation, other division methods may be used.

[0190] Refer to Figure 13, which is a structural diagram of a communication device provided in an embodiment of the present application. The communication device 1300 can be applied to the method shown in any of the embodiments in Figures 5 to 8 above. As shown in Figure 13, the communication device 1300 includes: a processing module 1301 and a transceiver module 1302. The processing module 1301 can be one or more processors, and the transceiver module 1302 can be a transceiver or a communication interface. The communication device can be used to implement the terminal device or network device involved in any of the above method embodiments, or to implement the functions of the network element involved in any of the above method embodiments. The network element or network function can be a network element in a hardware device, a software function running on dedicated hardware, or a virtualization function instantiated on a platform (for example, a cloud platform). Optionally, the communication device 1300 can also include a storage module 1303 for storing program code and data of the communication device 1300.

[0191] In one embodiment, when the communication device serves as a terminal device or a chip used in a terminal device, it executes the steps performed by the terminal device in the above-mentioned method embodiments. The transceiver module 1302 is used to specifically execute the sending and / or receiving actions performed by the terminal device in any of the embodiments of Figures 5 to 8, such as supporting the terminal device to execute other processes of the technology described herein. The processing module 1301 can be used to support the communication device 1300 in executing the processing actions in the above-mentioned method embodiments, such as supporting the terminal device to execute other processes of the technology described herein.

[0192] Illustratively, processing module 1301 is configured to: determine a second bit sequence and a third bit sequence based on a first bit sequence, where the third bit sequence includes bit sequences in a base graph corresponding to the first bit sequence and having weights greater than a first threshold; perform polar code encoding on the second bit sequence to obtain a fourth bit sequence; and perform low-density parity check (LDPC) encoding on the third and fourth bit sequences to obtain a fifth bit sequence.

[0193] In one possible implementation, when determining the second bit sequence and the third bit sequence based on the first bit sequence, the processing module 1301 is configured to: determine a first value based on the number of first columns in the base graph whose weights are greater than a first threshold; determine the third bit sequence from the first bit sequence based on the first value and a lifting factor corresponding to the first bit sequence; and determine the second bit sequence based on the third bit sequence and the first bit sequence.

[0194] In one possible embodiment, when determining the first numerical value based on the first number of columns in the base graph whose weights are higher than the first threshold, the processing module 1301 is used to: determine the second number of columns with the highest reliability from the other columns in the base graph except for the columns whose weights are higher than the first threshold; and determine the first numerical value based on the first number of columns and the second number of columns.

[0195] In a possible implementation, when polar code encoding is performed on the second bit sequence to obtain a fourth bit sequence, the processing module 1301 is configured to: perform check code encoding on the second bit sequence to obtain a sixth bit sequence; and perform polar code encoding on the sixth bit sequence to obtain a fourth bit sequence.

[0196] In a possible implementation, the processing module 1301 is further configured to perform check code encoding on the sixth bit sequence to obtain the first bit sequence.

[0197] In one possible implementation, the processing module 1301 is further configured to segment the initial bit sequence based on the first segment length to obtain X bit sequences, where the X bit sequences include the first bit sequence or the seventh bit sequence, and X is an integer greater than 1; wherein the first segment length is determined based on the first value and the lifting factor.

[0198] In a possible implementation, when determining the second bit sequence based on the third bit sequence and the first bit sequence, the processing module 1301 is configured to segment bit sequences other than the third bit sequence in the first bit sequence based on a second segment length to obtain Y bit sequences, where the Y bit sequences include the second bit sequence, and Y is an integer greater than 1. The second segment length is determined based on a maximum length supported by polar code encoding and a third value.

[0199] In a possible implementation, the transceiver module 1302 is further configured to send a symbol sequence based on a third bit sequence.

[0200] In one embodiment, when the communication device functions as a network device or a chip used in a network device, and executes the steps performed by the network device in the above-described method embodiments, the transceiver module 1302 is configured to specifically execute the sending and / or receiving actions performed by the network device in any of the embodiments shown in Figures 5 to 8 , such as supporting the network device in executing other processes of the technology described herein. The processing module 1301 may be configured to support the communication device 1300 in executing the processing actions in the above-described method embodiments, such as supporting the network device in executing other processes of the technology described herein.

[0201] Illustratively, processing module 1301 is configured to: obtain a symbol sequence; determine a fifth bit sequence based on the symbol sequence; perform LDPC decoding on the fifth bit sequence to obtain a third bit sequence and a fourth bit sequence; perform polar code decoding on the fourth bit sequence to obtain a second bit sequence; and determine a first bit sequence based on the third bit sequence and the second bit sequence.

[0202] In one possible embodiment, when the terminal device or network device is a chip, the transceiver module 1302 can be a communication interface, a pin, or a circuit. The communication interface can be used to input data to be processed into the processor and can output the processing results of the processor. In a specific implementation, the communication interface can be a general purpose input and output (GPIO) interface that can be connected to multiple peripheral devices (such as a display (LCD), a camera, a radio frequency (RF) module, an antenna, etc.). The communication interface is connected to the processor via a bus.

[0203] The processing module 1301 can be a processor that can execute computer-executable instructions stored in the storage module to cause the chip to perform the method involved in any of the embodiments shown in Figures 5 to 8. Furthermore, the processor can include a controller, an arithmetic unit, and registers. For example, the controller is primarily responsible for decoding instructions and issuing control signals for operations corresponding to the instructions. The arithmetic unit is primarily responsible for performing fixed-point or floating-point arithmetic operations, shift operations, and logical operations, and can also perform address operations and conversions. The registers are primarily responsible for storing register operands and intermediate operation results temporarily stored during instruction execution. In a specific implementation, the processor hardware architecture can be an ASIC architecture, a microprocessor without interlocked piped stages architecture (MIPS) architecture, an advanced RISC machine (ARM) architecture, or a network processor (NP) architecture, etc. The processor can be single-core or multi-core. The storage module can be a storage module within the chip, such as a register or cache. The storage module may also be a storage module located outside the chip, such as a ROM or other types of static storage devices that can store static information and instructions, RAM, etc.

[0204] It should be noted that the functions corresponding to the processor and the interface can be implemented through hardware design, software design, or a combination of hardware and software, and there is no limitation here.

[0205] Figure 14 is a schematic diagram of the structure of another communication device provided in an embodiment of the present application. It is understandable that the communication device 1410 includes necessary means such as modules, units, elements, circuits, or interfaces, which are appropriately configured together to implement this solution. The communication device 1410 can be the above-mentioned terminal device or network device, or it can be a component (such as a chip) in these devices to implement the method described in the above-mentioned method embodiment. The communication device 1410 includes one or more processors 1411. The processor 1411 can be a general-purpose processor or a dedicated processor, etc. For example, it can be a baseband processor or a central processing unit. The baseband processor can be used to process communication protocols and communication data, and the central processing unit can be used to control the communication device (such as a terminal device, network device, or chip, etc.), execute software programs, and process data of software programs.

[0206] Optionally, in one design, the processor 1411 may include a program 1413 (sometimes also referred to as code or instruction), and the program 1413 may be run on the processor 1411, so that the communication device 1410 performs the method described in the above embodiment. In another possible design, the communication device 1410 includes a circuit (not shown in Figure 14), which is used to implement the functions of the terminal device, network device, etc. in the above embodiment. Optionally, the communication device 1410 may include one or more memories 1412, on which a program 1414 (sometimes also referred to as code or instruction) is stored, and the program 1414 can be run on the processor 1411, so that the communication device 1410 performs the method described in the above method embodiment. Optionally, data may also be stored in the processor 1411 and / or the memory 1412. The processor and memory may be provided separately or integrated together.

[0207] Optionally, the communication device 1410 may further include a transceiver 1415 and / or an antenna 1416. The processor 1411 may also be referred to as a processing unit, and controls the communication device (e.g., a terminal device or a network device). The transceiver 1415 may also be referred to as a transceiver unit, a transceiver, a transceiver circuit, or a transceiver, and is configured to implement the transceiver functions of the communication device via the antenna 1416.

[0208] An embodiment of the present application further provides a communication device, comprising at least one processor; wherein the at least one processor is configured to execute any one of the methods described in any one of the embodiments in FIG. 5 to FIG. 8 .

[0209] An embodiment of the present application further provides a computer-readable storage medium, which stores computer instructions. When the computer instructions are executed, the computer executes any method as described in any one of the embodiments in Figures 5 to 8.

[0210] An embodiment of the present application further provides a computer program product, which includes: a computer program code, and when the computer program code is executed by a computer, the computer executes any one of the methods described in any one of the embodiments shown in Figures 5 to 8.

[0211] An embodiment of the present application also provides a chip, which includes at least one processor and an interface. The processor is used to read and execute instructions stored in a memory. When the instructions are executed, the chip executes any method as described in any of the embodiments in Figures 5 to 8.

[0212] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed across multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the embodiments of the present application. In addition, the network element units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated units may be implemented in the form of hardware or in the form of software network element units.

[0213] If the above-mentioned integrated unit is implemented in the form of a software network element unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the part that essentially contributes to the technical solution of the present application, or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, terminal device, cloud server, or network device, etc.) to perform all or part of the steps of the above-mentioned methods in each embodiment of the present application. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk. The above is only a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any person skilled in the art can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application shall be based on the scope of protection of the claims.

Claims

1. A coding method, characterized in that, Including: Determining a second bit sequence and a third bit sequence based on a first bit sequence, where the third bit sequence includes a bit sequence in a base graph corresponding to the first bit sequence with a weight higher than a first threshold; Performing polar code encoding on the second bit sequence to obtain a fourth bit sequence; Performing low-density parity-check (LDPC) encoding on the third bit sequence and the fourth bit sequence to obtain a fifth bit sequence.

2. The method according to claim 1, wherein The determining the second bit sequence and the third bit sequence based on the first bit sequence includes: Determining a first value based on a first number of columns in the base graph with a weight higher than the first threshold; Determining the third bit sequence from the first bit sequence based on the first value and a lifting factor corresponding to the first bit sequence; Determining the second bit sequence based on the third bit sequence and the first bit sequence.

3. The method according to claim 1 or 2, characterized in that, The first number of columns is an integer greater than or equal to 1.

4. The method according to any one of claims 1 to 3, characterized in that, The determining the first value based on the first number of columns in the base graph with a weight higher than the first threshold includes: Determining a second number of columns with the highest reliability from other columns in the base graph except those with a weight higher than the first threshold; Determining the first value based on the first number of columns and the second number of columns.

5. The method according to any one of claims 1-4, characterized in that, The performing polar code encoding on the second bit sequence to obtain a fourth bit sequence includes: Performing check code encoding on the second bit sequence to obtain a sixth bit sequence; Performing polar code encoding on the sixth bit sequence to obtain the fourth bit sequence.

6. The method according to any one of claims 1-4, characterized in that, The method further includes: Performing check code encoding on a seventh bit sequence to obtain the first bit sequence.

7. The method according to any one of claims 1-6, characterized in that, The method further includes: Segmenting an initial bit sequence based on a first segmentation length to obtain X bit sequences, where the X bit sequences include the first bit sequence or the seventh bit sequence, and X is an integer greater than 1; wherein the first segmentation length is determined based on the first value and the lifting factor.

8. The method according to claim 7, wherein The first segmentation length being determined based on the first value and the lifting factor includes: The first segmentation length is determined based on the first value, the lifting factor, and a second value; wherein the second value is determined based on the total number of columns in the base graph and the first value.

9. The method according to claim 7 or 8, characterized in that The length of the first segment satisfies the following conditions: wherein a is the first value, b is the second value, R is a third value, and Z is the lifting factor.

10. The method according to any one of claims 1-9, characterized in that, The determining the second bit sequence based on the third bit sequence and the first bit sequence includes: Segmenting other bit sequences in the first bit sequence except the third bit sequence based on a second segmentation length to obtain Y bit sequences, where the Y bit sequences include the second bit sequence, and Y is an integer greater than 1; wherein the second segmentation length is determined based on the maximum length supported by polar code encoding and a third value.

11. The method according to claim 10, characterized in that The length of the second segment satisfies the following conditions: wherein Nm is the maximum length supported by polar code encoding, and R is the third value.

12. A communication device, characterized in that, Including units or modules for implementing the method according to any one of claims 1 to 11.

13. A communication device, characterized in that, The communication device includes at least one processor; wherein, the at least one processor is configured to execute the method according to any one of claims 1 to 11.

14. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions, which, when executed, cause the computer to execute the method according to any one of claims 1 to 11.

15. A computer program product, characterized in that, The computer program product includes: computer program code, which, when run on a computer, causes the computer to execute the method according to any one of claims 1 to 11.

16. A chip, characterized in that, The chip includes at least one processor and an interface, the processor is configured to read and execute instructions stored in a memory, and when the instructions are run, cause the chip to execute the method according to any one of claims 1 to 11.

Citation Information

Patent Citations

  • Coding method, decoding method and device

    CN120301437A

  • Error correction coding method and device

    CN107370488A

  • Coding method, decoding method, encoding device and decoding device

    CN110166167A

  • Polarization code coding method and device, electronic equipment and storage medium

    CN117240307A

  • Bit coding device, bit decoding device, transmission device, reception device, bit coding method, bit decoding method, transmission method, reception method, and program

    US20150244496A1