Data processing method and apparatus
By dividing the sequence to be encoded into segments equal to and less than the maximum mother code length, and performing polar coding and rate matching respectively, the problem of high rate matching complexity in wireless communication is solved, and the stability and performance of the system are improved.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2025-12-16
- Publication Date
- 2026-06-25
AI Technical Summary
In wireless communication, the maximum codeword length of the channel encoder is limited, which means that the data blocks to be transmitted need to be segmented. Existing rate matching processes are complex and difficult to match with the carrying capacity of the physical channel, resulting in high system complexity.
By dividing the sequence to be encoded into a first segment equal to the maximum mother code length and a second segment less than the maximum mother code length, and performing polar coding separately, rate matching is only performed on the second segment which is not the mother code length, simplifying the rate matching process and allowing the length of some coded segments to be mismatched with the physical channel carrying capacity.
It reduces the complexity of rate matching, improves system stability and performance, avoids resource mismatch problems, and simplifies the overall system complexity.
Smart Images

Figure CN2025143016_25062026_PF_FP_ABST
Abstract
Description
A data processing method and apparatus
[0001] This application claims priority to Chinese Patent Application No. 202411874174.0, filed on December 17, 2024, entitled “A Data Processing Method and Apparatus”, the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communications, and more particularly to a data processing method and apparatus in the field of communications. Background Technology
[0003] Channel coding is an important technique in communication technology, which can improve the reliability of signal transmission and enhance the transmission quality of communication systems. Polar codes are a new type of forward error-correcting code with superior error-correcting performance. Their construction principle involves channel polarization, which at the coding end makes each sub-channel exhibit different reliability levels. As the code length continuously increases, the capacity of some channels tends towards 1, while the capacity of others tends towards 0. Information is directly transmitted on channels with capacities approaching 1 to approximate the channel capacity.
[0004] Channel encoders and decoders have limited maximum codeword lengths. Taking the encoding end as an example, when the size of the transport block (TB) to be transmitted exceeds the maximum codeword length supported by the encoder, the TB needs to be segmented to obtain multiple code blocks (CBs). Each of these code blocks is individually polar-coded, and the size of each code block does not exceed the maximum codeword length supported by the encoder. Currently, in wireless communication, the size of these code blocks may not match the carrying capacity of the physical channel. Therefore, the encoding end needs to punch, shorten, or repeat the code blocks to be transmitted to match the carrying capacity of the physical channel. This process can be called rate matching, and the entire rate matching process is relatively complex. Summary of the Invention
[0005] This application provides a data processing method and apparatus to simplify the rate matching process and reduce the overall system complexity.
[0006] In a first aspect, this application provides a data processing method that can be executed by a second communication device. The second communication device may be a radio access network (RAN) device or a terminal device, or a component (such as a chip, chip system, processor, etc.) configured in the RAN device or terminal device, or a logic module or software capable of realizing all or part of the functions of the second communication device. This application does not limit the scope of the method.
[0007] The second communication device can be regarded as the encoding end of information, or the sending end of information.
[0008] For example, the method includes: segmenting the sequence to be encoded according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be encoded and Y second segments to be encoded, wherein the length of the first segment is equal to the maximum mother code length, the length of the second segment is less than the maximum mother code length, and the length of one of the Y second segments is a non-mother code length, X is an integer greater than or equal to 0, Y is an integer greater than or equal to 1, the first segments are used to carry the first segments to be encoded, and the second segments are used to carry the second segments to be encoded; polar coding is performed on the X first segments to be encoded and the Y second segments to be encoded respectively to obtain X first encoded segments and Y second encoded segments; and the X first encoded segments and Y second encoded segments are output.
[0009] In the above scheme, the length of each of the X first segments is equal to the maximum mother code length. Therefore, the X first coding segments corresponding to these X first segments do not need to be rate matched. The length of one of the Y second segments is not the mother code length, and the length of each of the remaining second segments is the mother code length. Therefore, only the second coding segment corresponding to the second segment with the non-mother code length needs to be rate matched. In this way, the number of coding segments that need to be rate matched is greatly reduced, which helps to simplify the rate matching process and reduce the overall system complexity.
[0010] Furthermore, in the above scheme, the sequence to be encoded is segmented based on the length and number of the first segment and the length and number of the second segment. The second segment allows for segments of non-mother code length. In other words, it allows for a mismatch between the length of some encoded segments and the carrying capacity of the physical channel, and allows for rate matching of these encoded segments. The carrying capacity of the physical channel can be understood as the length of the bit sequence that the physical channel can carry. It is understandable that if both the first and second segments were of mother code length, the sum of the lengths of all segments might exceed the length of the bit sequence that the allocated transmission resources can carry. Therefore, by allowing segments of non-mother code length, it is beneficial to avoid the sum of the lengths of all segments exceeding the length of the bit sequence that the allocated transmission resources can carry, or in other words, it is beneficial to avoid the problem of a mismatch between the transmission resources and the allocated resources, thereby improving performance stability.
[0011] In some possible implementations of the first aspect, the length L of the first segment to be encoded satisfies: L = N max ×R, where N max R represents the maximum mother code length, and R represents the code rate corresponding to the first segment; and / or, the Y second segments to be encoded include a third segment to be encoded, which is any one of the aforementioned Y second segments to be encoded, and the length S of the third segment to be encoded is... i+X Satisfy: Si +X =Ei +X ×Ri +X E i+X R represents the length of the second segment i+X. i+X Let i represent the bitrate corresponding to the second segment i+X, where i = 1, 2, ..., Y.
[0012] In other words, based on the length of the first segment and its corresponding bitrate, the length of the first segment to be encoded can be determined. Similarly, based on the length of the second segment and its corresponding bitrate, the length of the second segment to be encoded can be determined. The first and second segments can be considered as segments of transmission resources. Determining the length of the segment to be encoded based on the length of the transmission resource segment carrying the segment to be encoded and its corresponding bitrate helps avoid the problem of resources exceeding the allocated resources, thus improving system stability.
[0013] In some possible implementations of the first aspect, the size S of the TB corresponding to the sequence to be encoded satisfies: Where, N max R represents the maximum mother code length, R represents the code rate corresponding to the first segment, and E represents the maximum mother code length. i+X R represents the length of the second segment i+X. i+XThis represents the bitrate corresponding to the second segment i+X, in TB. CRC This indicates the size of the cyclic redundancy check (CRC) code corresponding to the aforementioned transport block.
[0014] The above TB CRC This represents the size of the CRC code corresponding to the transport block, which can be understood as the aforementioned TB. CRC This indicates the number of bits used for CRC in TB, such as 16, 24, 32, etc. This application does not limit this; when TB does not require CRC, TB... CRC It can also be equal to 0.
[0015] The size of the TB corresponding to the sequence to be encoded can be regarded as the size of the data payload before CRC is performed. In this application, the CRC code also needs to be encoded; therefore, the sequence to be encoded may include both the CRC code and the data payload.
[0016] In the above scheme, by calculating the size of the CRC code corresponding to TB in the code rate of each segment, it is beneficial to avoid the problem of how to allocate the size of the CRC code corresponding to TB when allocating the size of TB to the CB corresponding to each segment to be encoded. In other words, in the above scheme, it is not necessary to determine how to reasonably allocate the size of the CRC code corresponding to TB to the CB corresponding to each segment to be encoded, that is, it is not necessary to determine the size of the CRC code of the CB corresponding to the segment to be encoded, which simplifies the processing and thus helps to reduce the overall complexity of the system.
[0017] Secondly, this application provides a data processing method that can be executed by a third communication device. The third communication device can be a RAN device or a terminal device, or a component (such as a chip, chip system, processor, etc.) configured in the RAN device or terminal device, or a logic module or software capable of realizing all or part of the functions of the third communication device. This application does not limit the scope of the third communication device.
[0018] The third communication device can be viewed as the receiving end of information, or the decoding end of information.
[0019] For example, the method includes: receiving a sequence to be decoded; segmenting the sequence to be decoded according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be decoded and Y second segments to be decoded, wherein the length of the first segment is equal to the maximum mother code length, the length of the second segment is less than the maximum mother code length, and the length of one of the Y second segments is a non-mother code length, X is an integer greater than or equal to 0, Y is an integer greater than or equal to 1, the first segment is used to carry the first segment to be decoded, and the second segment is used to carry the second segment to be decoded; and decoding the X first segments to be decoded and the Y second segments to be decoded respectively to obtain X first decoded segments and Y second decoded segments.
[0020] In the above scheme, the length of each of the X first segments is equal to the maximum mother code length. This means that for the decoder, none of the X first decoded segments corresponding to these X first segments require rate matching. One of the Y second segments has a length other than the mother code length, while the remaining second segments each have the mother code length. Therefore, the decoder only needs to perform rate matching on the second decoded segment corresponding to the non-mother code length second segment. This significantly reduces the number of decoded segments requiring rate matching, thus simplifying the rate matching process and reducing the overall system complexity. Rate matching can be viewed as the inverse process of rate matching, or as the decoder restoring the decoded segments to their corresponding mother code lengths.
[0021] In some possible implementations of the second aspect, the length L of the first segment to be decoded satisfies: L = N max ×R, where N max Let S represent the maximum mother code length, R represent the code rate corresponding to the first segment; and / or, the aforementioned Y second segments to be decoded include a third segment to be decoded, which is any one of the aforementioned Y second segments to be decoded, and the length S of the third segment to be decoded is... i+X Satisfy: Si +X =Ei +X ×Ri +X E i+X R represents the length of the second segment i+X. i+X Let i represent the bitrate corresponding to the second segment i+X, where i = 1, 2, ..., Y.
[0022] In other words, based on the length of the first segment and the code rate corresponding to the first segment, the length of the first segment to be decoded can be determined. Similarly, based on the length of the second segment and the code rate corresponding to the second segment, the length of the second segment to be decoded can be determined, which makes it easier for the decoder to segment the sequence to be decoded based on the length of the segments to be decoded.
[0023] In some possible implementations of the first or second aspect, the aforementioned Y second segments are determined based on the ratio of the length of the third segment to the length of the corresponding mother code of the third segment, the length of which is determined based on the length of the bit sequence corresponding to the transmission resources allocated by the first communication device and the length of the first segment.
[0024] The first communication device may be, for example, a RAN device. The length of the bit sequence corresponding to the transmission resource can be understood as the length of the bit sequence that the transmission resource can carry, or in other words, the number of bits that the transmission resource can carry.
[0025] The ratio of a segment's length to its corresponding mother code length reflects the proportion of bits that need to be matched to that mother code length within that mother code length. This proportion reflects performance; for example, a larger ratio indicates a smaller proportion of bits that need to be matched to that mother code length. In this case, rate matching helps reduce performance loss from segmentation and lowers overall system complexity. Conversely, a smaller ratio indicates a larger proportion of bits that need to be matched to that mother code length. In this case, rate matching results in greater performance loss, so further segmentation can be performed to reduce performance loss. In conclusion, considering the ratio of a segment's length to its corresponding mother code length when segmenting a segment helps reduce performance loss, improve overall performance, and lower overall system complexity.
[0026] In some possible implementations of the first or second aspect, X satisfies the following formula: Where G represents the length of the bit sequence corresponding to the transmission resource, and N max Indicates the maximum mother code length. This indicates rounding down to the nearest integer.
[0027] Determining the number of first segments with a length equal to the maximum mother code length based on the above formula helps obtain as many segments as possible with the maximum mother code length. Since longer codewords typically have better error correction performance, this method improves decoding performance. Furthermore, it simplifies the segmentation process and reduces the overall system complexity.
[0028] In some possible implementations of the first or second aspect, the aforementioned Y second segments are obtained by iteratively performing the following steps: when the ratio of the length of the third segment to the length of the corresponding mother code of the third segment is less than a first threshold, the third segment is segmented to obtain two second segments, one of which has a length equal to half the length of the corresponding mother code of the third segment, and the length of the third segment = the length of the bit sequence corresponding to the transmission resource - the sum of the lengths of the X first segments - the sum of the lengths of the K second segments, where K = 0, 1, 2, ..., Y-2.
[0029] In other words, for a segment whose length is shorter than the corresponding mother code length, if the ratio of the segment length to the corresponding mother code length is less than a first threshold, the segment can be further segmented. This is because if rate matching were performed, the number of bits required to match to the mother code length would be large, leading to reduced decoding reliability and greater performance loss. Therefore, further segmentation of the segment reduces performance loss. The first threshold is less than 1 and greater than 0.
[0030] In some possible implementations of the first or second aspect, the above-mentioned segmentation of the third segment when the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold includes: segmenting the third segment when the length of the third segment is greater than or equal to the second threshold and the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold.
[0031] In other words, for a certain segment, if the length of the segment is less than the second threshold, the segment can be left unsegmented. That is, if the resources of the segment are scarce, it should not be further segmented. This helps to avoid performance loss caused by further segmentation, thereby improving the overall performance of the system.
[0032] In some possible implementations of the first or second aspect, when the ratio of the length of the third segment to the length of the corresponding mother code of the third segment is greater than or equal to the first threshold and less than 1, it is determined that the encoded bits corresponding to the third segment will be punctured.
[0033] If the ratio of the length of the third segment to the length of the corresponding mother code is greater than or equal to the first threshold and less than 1, it can be considered that there are more information bits and fewer puncture bits. Continuing to segment would increase performance loss. Therefore, in this case, puncturing the segment helps to reduce performance loss. In addition, the number of puncture bits is small, so the determination of pre-frozen bits is not required when constructing the polar code, which helps to reduce the construction complexity of the polar code. Moreover, when data needs to be retransmitted, rate matching is performed by puncturing instead of shortening, which reduces the number of rate matching methods and simplifies the construction of the polar code.
[0034] In some possible implementations of the first or second aspect, the aforementioned first threshold is related to the bitrate corresponding to the third segment.
[0035] As an example rather than a limitation, the lower the bit rate corresponding to the third segment, the lower the first threshold can be. The lower the first threshold, the smaller the ratio of the length of the third segment to the length of the corresponding mother code can be. In this way, there are more puncture bits, so that when the bit rate corresponding to the third segment is low, more puncture bits can be allowed. Conversely, when the bit rate corresponding to the third segment is high, fewer puncture bits are allowed. This design is beneficial to improving system performance and resource utilization.
[0036] In some possible implementations of the first or second aspect, the first threshold is determined based on the bitrate corresponding to the third segment and a first correspondence, which indicates the correspondence between multiple bitrates and multiple thresholds, wherein the bitrate corresponding to the third segment is one of the multiple bitrates.
[0037] By determining the first threshold based on the code rate corresponding to the third segment and the aforementioned first correspondence, on the one hand, there is no need for the RAN equipment to configure the first threshold, which helps to reduce signaling overhead; on the other hand, the association between the first threshold and the code rate corresponding to the third segment helps to reduce performance loss, improve the overall system performance, and enhance system efficiency.
[0038] In some possible implementations of the first or second aspect, the bit rate corresponding to at least one of the Y second segments is less than the bit rate corresponding to the first segment.
[0039] The bit rate corresponding to the first segment can be obtained based on the modulation and coding scheme (MCS) table, and this application does not limit it in this regard.
[0040] By reducing the bit rate of at least one of the Y second segments, it is beneficial to improve the performance of the at least one second segment, so that the at least one second segment does not become a performance bottleneck in the entire transmission.
[0041] In some possible implementations of the first or second aspect, when the length of the fourth segment is less than the third threshold, the bitrate corresponding to the fourth segment is less than the bitrate corresponding to the first segment, and the fourth segment is one of the aforementioned Y second segments.
[0042] When the length of the fourth segment is less than the third threshold, the code rate corresponding to the fourth segment can be reduced to improve its performance and prevent it from becoming a performance bottleneck in the overall transmission. For example, the third threshold could be half the maximum mother code length, that is, when the length of the fourth segment is less than N...max When N = 2, the bitrate corresponding to the fourth segment is less than the bitrate corresponding to the first segment. max This represents the maximum mother code length. In other words, when the length of the fourth segment and the maximum mother code length are small (e.g., less than half the maximum mother code length), the code rate does not need to be reduced. This is because when the length of the fourth segment is close to the maximum mother code length, the error correction performance is similar, and reducing the code rate would actually decrease system efficiency. Conversely, when the length of the fourth segment and the maximum mother code length differ significantly (e.g., more than half the maximum mother code length), the code rate can be reduced to improve system performance, as this significant difference may impact system performance.
[0043] In some possible implementations of the first or second aspect, the value of Y is less than or equal to the fourth threshold.
[0044] Limiting the number of segments with lengths other than the maximum mother code helps reduce system complexity. Furthermore, it helps avoid segments with lengths much shorter than the maximum mother code, thereby improving system performance.
[0045] Thirdly, this application provides a communication device that can implement the method described in the first aspect and any possible implementation thereof; or, can implement the method described in the second aspect and any possible implementation thereof. The device includes corresponding modules for performing the above-described methods. The modules included in the device can be implemented in software and / or hardware.
[0046] The communication device may be a second communication device for implementing the method described in the first aspect and any possible implementation of the first aspect.
[0047] In one possible implementation, the communication device may include modules or units that perform the methods / operations / steps / actions described in the first aspect and any possible implementation of the first aspect. These modules or units may be hardware circuits, software, or a combination of hardware circuits and software.
[0048] The communication device may also be a third communication device for implementing the methods described in the second aspect and any possible implementation of the second aspect. In one possible implementation, the communication device may include modules or units that perform the methods / operations / steps / actions described in the second aspect and any possible implementation of the second aspect. These modules or units may be hardware circuits, software, or a combination of hardware circuits and software.
[0049] Fourthly, this application provides a communication device including a processor, which can be used to implement the method described in the first aspect and any possible implementation of the first aspect, or to implement the method described in the second aspect and any possible implementation of the second aspect, by executing a computer program in memory and / or by logic circuitry.
[0050] In one possible implementation, the device further includes a communication interface. The communication interface is used to receive signals from other communication devices outside the device and transmit them to the processor, or to send signals from the processor to other communication devices outside the device. Exemplarily, the communication interface may be a transceiver, circuit, bus, module, pin, or other type of communication interface.
[0051] In one possible implementation, the device further includes a memory. The memory stores program instructions and data. The memory is coupled to the processor, which, when executing the instructions stored in the memory, can implement the methods described in the preceding aspects. Optionally, the memory and the processor can be integrated together; alternatively, the memory can be located outside the processor and exist independently.
[0052] Fifthly, this application provides a computer-readable storage medium storing a computer program (also referred to as code or instructions) that, when executed, implements the method described in the first aspect and any possible implementation thereof, or implements the method described in the second aspect and any possible implementation thereof.
[0053] In a sixth aspect, this application provides a computer program product comprising instructions (also referred to as code) that, when executed, implement the method described in the first aspect and any possible implementation thereof, or implement the method described in the second aspect and any possible implementation thereof.
[0054] In a seventh aspect, this application provides a chip system including at least one processor for supporting the implementation of the functions involved in the first aspect and any possible implementation of the first aspect, or for supporting the implementation of the functions involved in the second aspect and any possible implementation of the second aspect, such as receiving or processing data involved in the above methods.
[0055] In one possible design, the chip system also includes a memory for storing program instructions and data, which is located either inside or outside the processor.
[0056] The chip system can consist of chips or include chips and other discrete components.
[0057] Eighthly, this application provides a communication system comprising a second communication device and a third communication device, wherein the second communication device is used to implement the method described in the first aspect and any possible implementation thereof, and the third communication device is used to implement the method described in the second aspect and any possible implementation thereof.
[0058] It should be understood that the third to eighth aspects of this application correspond to the technical solutions of the first and second aspects of this application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation are similar, and will not be repeated here. Attached Figure Description
[0059] Figure 1 is a schematic diagram of the architecture of a communication system applicable to the method provided in the embodiments of this application;
[0060] Figure 2 is a schematic diagram of the polarization coding process provided in an embodiment of this application;
[0061] Figure 3 is a schematic diagram of the information transmission process provided in an embodiment of this application;
[0062] Figure 4 is a flowchart illustrating the data processing method provided in an embodiment of this application;
[0063] Figure 5 is a schematic block diagram of a communication device provided in an embodiment of this application;
[0064] Figure 6 is another schematic block diagram of the communication device provided in an embodiment of this application;
[0065] Figure 7 is a schematic diagram applicable to the access network equipment provided in this application. Detailed Implementation
[0066] The technical solutions in this application will now be described with reference to the accompanying drawings.
[0067] Before introducing the methods provided in the embodiments of this application, the following points should be noted.
[0068] First, in this application, the terms "first" and "second" are used to distinguish identical or similar items with essentially the same function and effect. For example, "first threshold" and "second threshold" are merely used to distinguish different thresholds; similarly, "first segment" and "second segment" are merely used to distinguish different segments and do not limit their order. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and that "first" and "second" do not necessarily imply that they are different.
[0069] Second, in this application, "when," "under the circumstances," "if," "if," or similar expressions all refer to the device making a corresponding action under certain objective circumstances, and are not limited to a specific time, nor do they require the device to make a judgment action when it is implemented, nor do they imply any other limitations.
[0070] Third, in this application, the words "exemplarily" or "for example" are used to indicate that they are examples, illustrations, or descriptions. Any embodiment or design that is described as "exemplarily" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or design options. Specifically, the use of the words "exemplarily" or "for example" is intended to present the relevant concepts in a specific manner.
[0071] Fourth, in this application, "send" and "receive" indicate the direction of signal transmission. For example, "send information to RAN equipment" can be understood as the destination of the information being the RAN equipment, which may include direct transmission via the air interface, or indirect transmission via the air interface by other devices, units, or modules. "Receive information from terminal equipment" can be understood as the source of the information being the terminal equipment, which may include direct reception from the terminal equipment via the air interface, or indirect reception from the terminal equipment via the air interface by other devices, units, or modules. "Send" can also be understood as the "output" of the chip interface, and "receive" can also be understood as the "input" of the chip interface.
[0072] In other words, sending and receiving can occur between devices, such as between RAN devices and terminal devices; or they can occur within a device, such as between components, modules, chips, software modules, or hardware modules within the device via buses, wiring, or interfaces.
[0073] It is understandable that information may undergo necessary processing, such as encoding and modulation, before being sent from the source to the destination. Similarly, the destination, upon receiving information from the source, can also perform corresponding processing, such as decoding and demodulation, to interpret the valid information from the source. Similar expressions in this application can be understood in a similar way and will not be elaborated further.
[0074] Fifth, in this application, the correspondence shown in each table can be configured or predefined. The values of the information in each table are merely examples and can be configured to other values; this application is not limiting. When configuring the correspondence between information and parameters, it is not necessarily required to configure all the correspondences shown in each table. For example, the correspondences shown in some rows of the tables in this application may not be configured. Furthermore, appropriate modifications and adjustments can be made based on the above tables, such as splitting, merging, etc. The names of the parameters shown in the headings of the above tables can also use other names that the communication device can understand, and the values or representations of the parameters can also be other values or representations that the communication device can understand. When implementing the above tables, other data structures can also be used, such as arrays, queues, containers, stacks, linear lists, pointers, linked lists, trees, graphs, structures, classes, heaps, hash tables, or hash tables, etc.
[0075] It should be noted that the term "predefined" in this application can be replaced with: definition, predefined, storage, pre-storage, pre-negotiation, configuration, or pre-configuration, etc.
[0076] Sixth, the method provided in this application can be applied to fourth-generation (4G) communication systems, such as long-term evolution (LTE) communication systems, as well as fifth-generation (5G) communication systems, such as 5G new radio (NR) communication systems, and can also be applied to future communication systems, etc. This application does not limit it in this regard.
[0077] The system architecture applicable to this application will be described in detail below with reference to Figure 1.
[0078] Figure 1 is a schematic diagram of the architecture of a communication system applicable to the method provided in the embodiments of this application. The application scenarios applicable to this application are illustrated using the communication system architecture shown in Figure 1 as an example. Figure 1 shows a possible, non-limiting system schematic diagram. As shown in Figure 1, the communication system includes a RAN 100 and a core network (CN) 200. Optionally, the communication system also includes an Internet 300. The RAN 100 includes at least one access network device (110a and 110b in Figure 1, collectively referred to as 110) and at least one terminal device (120a-120j in Figure 1, collectively referred to as 120). The RAN 100 may also include other RAN nodes, such as wireless relay devices and / or wireless backhaul devices (not shown in Figure 1). The terminal device 120 is wirelessly connected to the access network device 110. The access network device 110 is wirelessly or wiredly connected to the core network 200. The core network equipment in the core network 200 and the access network equipment 110 in the RAN 100 can be different physical devices, or they can be the same physical device that integrates core network logical functions and radio access network logical functions.
[0079] RAN 100 can be a cellular system related to the 3rd Generation Partnership Project (3GPP), such as 4G, 5G mobile communication systems, or future communication systems. RAN 100 can also be an open access network (open RAN, O-RAN, or ORAN). RAN 100 can also be a cloud radio access network (CRAN), etc. RAN 100 can also be a communication system that integrates two or more of the above systems.
[0080] It is understood that Figure 1 only shows one possible communication system architecture that can be applied to the embodiments of this application, and other devices may also be included in the communication system architecture in other possible scenarios.
[0081] In the aforementioned communication system, access network device 110 assists terminal devices in achieving wireless access. Multiple access network devices 110 in this communication system can be nodes of the same type or different types. In some scenarios, the roles of access network device 110 and terminal device 120 are relative. For example, network element 120i in Figure 1 can be a helicopter or drone, which can be configured as a mobile base station. For terminal devices 120j accessing RAN 100 through network element 120i, network element 120i is a base station; however, for base station 110a, network element 120i is a terminal device. Access network device 110 and terminal device 120 are sometimes referred to as communication devices. For example, network elements 110a and 110b in Figure 1 can be understood as communication devices with base station functions, and network elements 120a-120j can be understood as communication devices with terminal functions.
[0082] In one possible scenario, access network equipment can be a base station, an evolved NodeB (eNodeB), a transmitting and receiving point (TRP), a transmitting point (TP), a next-generation NodeB (gNB), a base station in a future mobile communication system, a satellite, or an access point (AP) in a wireless fidelity (Wi-Fi) system, an integrated access and backhaul (IAB) node, or an access network device in a mobile switching center non-terrestrial network (NTN) communication system, i.e., it can be deployed on a high-altitude platform or satellite, etc. Access network equipment can also be a macro base station (as shown in Figure 1, 110a), a micro base station or indoor station (as shown in Figure 1, 110b), a relay node or donor node, or a radio controller in a CRAN scenario. Access network equipment can also function as a base station in device-to-device (D2D) communication, vehicle-to-everything (V2X) communication, drone communication, and machine-to-machine (M2M) communication. Alternatively, the access network equipment can also be a server, wearable device, vehicle, or in-vehicle equipment. For example, the access network equipment in vehicle-to-everything (V2X) technology can be a roadside unit (RSU).
[0083] In another possible scenario, multiple access network devices collaborate to assist terminals in achieving wireless access, with each device implementing a portion of the base station's functions. For example, access network devices can be central units (CUs), distributed units (DUs), CU-control plane (CPs), CU-user plane (UPs), or radio units (RUs). CUs and DUs can be separate entities or included in the same network element, such as a baseband unit (BBU). RUs can be included in radio equipment or radio units, such as remote radio units (RRUs), active antenna units (AAUs), or remote radio heads (RRHs). It is understood that access network devices can be CU nodes, DU nodes, or devices comprising both CU and DU nodes. Furthermore, CUs can be classified as access network devices within the RAN (RAN) or the CN (CN), without limitation.
[0084] In this embodiment, the form of the access network device is not limited. The device used to implement the function of the access network device can be the access network device itself; or it can be a device that supports the access network device in implementing the function, such as a chip system. The device can be installed in the access network device or used in conjunction with the access network device.
[0085] In this application, the terminal device may also be referred to as a terminal, user equipment (UE), mobile station (MS), mobile terminal (MT), etc., or a device used to provide voice or data connectivity to a user, or an Internet of Things (IoT) device. For example, terminal devices include handheld devices with wireless connectivity, vehicle-mounted devices, etc. Currently, terminal devices can include, for example: mobile phones, tablets, laptops, PDAs, mobile internet devices (MIDs), wearable devices (such as smartwatches, smart bracelets, pedometers, smart glasses, etc.), in-vehicle devices (such as cars, bicycles, electric vehicles, airplanes, ships, trains, high-speed trains, etc.), satellite terminals, virtual reality (VR) devices, augmented reality (AR) devices, smart point-of-sale (POS) machines, customer-premises equipment (CPE), light user equipment (UE), reduced capability user equipment (REDCAP UE), wireless terminals in industrial control, smart home devices (such as refrigerators, televisions, air conditioners, electricity meters, etc.), smart robots, robotic arms, workshop equipment, wireless terminals in autonomous driving, wireless terminals in smart healthcare, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, or wireless terminals in smart homes, and flying equipment (such as smart robots, hot air balloons, drones, airplanes), etc. The terminal can also be a vehicle device, such as a vehicle unit, vehicle module, vehicle chip, on-board unit (OBU), or telematics box (T-BOX). The terminal device can also be other devices with terminal functions. For example, the terminal device can also be a device that plays the role of a terminal in D2D communication.
[0086] This application does not limit the form of the terminal device. The device used to implement the terminal's functions can be a terminal device itself, or it can be a device that supports the terminal in implementing those functions, such as a chip system. This device can be installed in the terminal or used in conjunction with the terminal. In this application, the chip system can be composed of chips, or it can include chips and other discrete components.
[0087] To facilitate understanding of the embodiments of this application, the technical terms involved in the following embodiments will be briefly explained first.
[0088] I. Polar codes: These are forward error-correcting codes used for signal transmission. The core of polar code construction is to make each sub-channel exhibit different reliability through channel polarization processing on the coding side. As the code length continues to increase, the capacity of some channels tends to 1, while the capacity of other channels tends to 0. Directly transmitting information on channels with a capacity tending to 1 to approximate the channel capacity is the only method that can be rigorously proven to reach the Shannon limit.
[0089] The construction process of polar codes will be explained below. In the following text, the unencoded sequence is referred to as the sequence to be encoded, and the encoded sequence is referred to as the encoded sequence. The sequence to be encoded may include information bits and frozen bits. The information bits carry information, while the frozen bits are set to fixed values (usually 0, or other known values). The frozen bits generally do not carry actual information.
[0090] The construction process of polar codes can also be understood as the selection process of information bits. In one possible implementation, rate matching is not considered, for example, in a scenario where the target code length is equal to the mother code length. Here, the target code length can be understood as the length of the bit sequence that the physical channel can carry. The construction process of polar codes includes: constructing a sequence Z[Q[i]] = i, where the value of i represents the reliability of the sub-channel. For example, the larger the value of i, the higher the reliability of the corresponding sub-channel. Q[i] represents the position of the sub-channel, or in other words, the index / number of the sub-channel, etc. The length of the sequence Q is the length of the mother code N. It can be seen that in the sequence Z, the position index of the information bit or frozen bit is directly used as the value in the sequence Z, so that the values in the sequence Z conform to the natural order. In one possible implementation, the sequence Q is arranged in ascending order of reliability. The last K positions in the sequence Q are the K positions with the largest values in the sequence Z. In this case, the positions with values greater than or equal to (NK) are the positions of the information bits, where K is the number of information bits, K is an integer greater than or equal to 0, and K is less than or equal to N, N is the length of the mother code, and N is an integer greater than or equal to 0.
[0091] In another possible implementation, consider rate matching, for example, in scenarios where the target code length is not equal to the mother code length. Before detailing the polar code construction process in this scenario, rate matching will first be explained in detail below.
[0092] Rate matching refers to the puncturing, shortening, or repeating of certain bits to match the carrying capacity of the physical channel. Correspondingly, punctured bits are called punctured bits, shortened bits are called shortened bits, and repeated bits are called repeating bits. The carrying capacity of the physical channel can be understood as the length of the bit sequence that the physical channel can carry. When the number of bits in the input sequence (or the number of bits in the encoded sequence) exceeds the carrying capacity of the physical channel, the input sequence can be punctured or shortened. Puncture of a bit means that the encoder does not transmit that bit, and the decoder recovers the punctured bit based on the received bits. Shortening of a bit means that the encoder sets that bit to a fixed value and does not transmit it, and the decoder knows this fixed value. The similarity between puncturing and shortening lies in the fact that the encoding end does not transmit the bit. The difference is that in puncturing, the value of the untransmitted bit is affected by the information it carries; therefore, the decoding end needs to recover the bit's value based on the decoding method. In shortening, the encoding and decoding ends have agreed on the bit's value (i.e., the aforementioned fixed value), and the bit's value is unaffected by the information it carries; therefore, the decoding end does not need to recover the bit's value based on the decoding method. For example, when the decoding end uses the successive cancellation decoding (SC) algorithm, it sets the log likelihood ratio (LLR) corresponding to the punctured position to 0 and sets the LLR corresponding to the shortened position to infinity.
[0093] When the number of bits in the input sequence does not meet (or is less than) the carrying capacity of the physical channel, all or part of the input bits must be repeated.
[0094] It is understandable that when puncturing or shortening encoded bits exceeding the target code length to reach the target code length, rate matching needs to be de-matched during decoding to pad the received decoded sequence back to the original code length. In this application, rate matching de-matching can be viewed as the inverse process of rate matching, or as the process by which the decoder restores the decoded segments to the corresponding original code length.
[0095] In this application, the mother code length of the polar code can be represented by N, where N is a positive integer and is a power of 2. The target code length can be represented by E, where E is an integer greater than or equal to 0. When the target code length is not a power of 2, one approach is to... Calculate the corresponding mother code length. This indicates rounding up. It should be understood that the corresponding mother code length can also be calculated in other ways, and this application does not limit this.
[0096] When rate matching is considered (taking puncturing or shortening as an example), the construction process of polar codes is as follows:
[0097] 1. Determine the positions of the pre-frozen bits, or in other words, determine the pre-frozen bits. For example, the number of pre-frozen bits is P, where P is an integer greater than or equal to 0. For instance, P bits with lower reliability can be selected as pre-frozen bits.
[0098] 2. Based on the pre-frozen bits, determine the sequence Q'[i]. Sequence Q'[i] is sequence Q[i] with the pre-frozen bits removed. The K bits with higher reliability in sequence Q'[i] are information bits, used to carry information. The remaining (EPK) bits and the aforementioned P pre-frozen bits are frozen bits. Here, K is an integer greater than or equal to 0, and K is less than or equal to E, where E is the target code length, and E is an integer greater than or equal to 0. The reliability of any one of the K bits used to place the K information bits is higher than the reliability of any one of the (EPK) bits used to place the frozen bits. The aforementioned K information bits also include, but are not limited to, one or more of the following check bits: CRC or parity check (PC).
[0099] 3. Determine the (NE) bits that need to be punctured or shortened. For example, the (NE) bits that need to be punctured or shortened can be determined based on a rate matching sequence, where the rate matching sequence indicates which bits are punctured or shortened. Another example is to determine the E bits after rate matching based on the rate matching method.
[0100] The following is an example of the polarization coding process, with reference to Figure 2.
[0101] Figure 2 is a schematic diagram of the polarization coding process provided in an embodiment of this application. In Figure 2, it is assumed that the sequence to be encoded is {u0, u1, u2, ..., u7}.
[0102] As shown in Figure 2, u3, u5, u6, and u7 are the four bits with the highest reliability; these four bits are information bits. u0, u1, u2, and u4 are the remaining four bits; these four bits are frozen bits. The reliability of a particular bit can be understood as the reliability of the polarization sub-channel carrying that bit.
[0103] First, the sequence to be encoded is encoded by the polarization channel layer. Assume that after polarization encoding by the polarization channel layer, the sequence to be encoded is obtained as v0 to v7. For example, v0 can be obtained by XORing u0 with u1, v1 can be obtained directly based on u1, v2 can be obtained by XORing u2 with u3, v3 can be obtained directly based on u3, v4 can be obtained by XORing u4 with u5, v5 can be obtained directly based on u5, v6 can be obtained by XORing u6 with u7, and v7 can be obtained directly based on u7.
[0104] Secondly, v0 to v7 are encoded through an intermediate polarization layer. The process of encoding v0 to v7 through the intermediate polarization layer is similar to the process of polarization encoding of the sequence to be encoded through the polarization channel layer. The sequence obtained after encoding is shown in Figure 2, which will not be described in detail here.
[0105] Finally, the encoding end transmits the encoded sequence through a physical channel (represented by W in Figure 2). This encoded sequence can be a punctured, shortened, or repeated encoded sequence, or it can be an encoded sequence without rate matching; this application does not limit this.
[0106] The polarization encoding process at the encoding end has been explained in detail above. The decoding process at the decoding end will be described below. It is understood that in this application, the decoding end can also be called the decoding end; similarly, decoding can also be called decoding, and this application does not limit the terminology.
[0107] After receiving the encoded sequence, the decoding end decodes it.
[0108] Polar code decoding methods mainly include serial cancellation decoding algorithms. Serial cancellation decoding refers to a decoder progressively decoding the received codeword, using previously decoded bits to aid in decoding subsequent bits. For example, the decoder starts from the first bit and decodes each bit sequentially. For each bit, previously decoded bits are used as known information to improve the decoding accuracy of the current bit. Serial cancellation decoding algorithms include, but are not limited to: SC decoding, successive cancellation list (SCL) decoding, or CRC-aided successive cancellation list (CA-SCL) decoding. Among these, SC decoding has relatively poor performance, SCL decoding offers improved performance compared to SC decoding, and CA-SCL decoding can make polar codes perform better than low-density parity check codes (LDPC) and turbo codes (Turbo).
[0109] It is understandable that when polar codes are applied to data channels, they can be used not only for initial transmissions but also for retransmissions, such as hybrid automatic repeat request (HARQ) retransmissions. HARQ is a retransmission mechanism that combines forward error correction (FEC) and automatic repeat request (ARQ). In the HARQ mechanism, if the receiver fails to decode, it saves the received data and requests the sender to retransmit the data. The receiver then combines the retransmitted data with the previously received data before decoding, thereby generating diversity gain, reducing the number of retransmissions, and thus reducing latency.
[0110] HARQ retransmission can be divided into chase combine (CC) retransmission and incremental redundancy (IR) retransmission. CC retransmission refers to retransmitting part or all of the codewords from the initial transmission, and then decoding the received data after combining the multiple transmissions based on the consistent position of the data on the codewords. IR retransmission refers to incrementally transmitting codewords that were not transmitted in the initial transmission.
[0111] When polar codes are applied to IR retransmission, the rate matching branches during retransmission are shown in Table 1. Here, NRV0 represents the length of the mother code during the initial transmission, ERV0 represents the length of the bit sequence that the physical channel can carry during the initial transmission, or the length of the coded sequence after rate matching, and ERV1 represents the length of the bit sequence that the physical channel can carry during retransmission, or the length of the coded sequence after rate matching.
[0112] Table 1
[0113] As shown in Table 1, IR retransmission needs to consider rate matching during the initial transmission, and the rate matching method is relatively complex. The initial transmission uses NR (5G) rate matching: when NRV0 > ERV0, the first (NRV0-ERV0) length of bits is punctured according to the code rate, pre-freezing the corresponding uninterleaved positions; or the last (NRV0-ERV0) length of bits is shortened. In puncturing mode, based on NRV0 and ERV0, an additional portion of bits is pre-frozen to ensure that positions where reliability changes too much due to puncturing are not selected as information bits. The repeated branches during the initial transmission and the various branches of rate matching during IR retransmission can be found in Table 1, and will not be elaborated here.
[0114] The following example, with reference to Figure 3, illustrates the detailed process of information being encoded and transmitted at the encoding end, and received and decoded at the decoding end.
[0115] Figure 3 is a schematic diagram of the information transmission process provided in an embodiment of this application.
[0116] As shown in Figure 3, the information source is the origin of information and information sequences. The information source outputs an information sequence, which is converted into a binary (or multi-level) information sequence through source coding. Then, this information sequence (or the sequence to be encoded) is channel-coded to obtain an encoded sequence, thereby improving the reliability of message transmission. Further, the encoded sequence can be modulated and then transmitted through the channel. Correspondingly, after receiving the modulated encoded sequence (or modulation symbol), the receiving end demodulates it and then performs channel decoding using decoding techniques corresponding to channel coding. Further source decoding is then performed to obtain the original information sequence. The information sink is the object (or destination) of information transmission. The method provided in this application mainly involves channel coding and channel decoding. Furthermore, the channel coding in this application mainly involves polar coding.
[0117] Encoders and decoders have limited maximum codeword lengths. Taking the encoding end as an example, when the length of the sequence to be encoded exceeds the maximum codeword length supported by the channel encoder, the sequence needs to be segmented to ensure that the length of each segment does not exceed the maximum codeword length supported by the encoder. Then, each segment is encoded separately. The scheme described above can be considered an implementation plan for polar coding and decoding of each segment.
[0118] Currently, in wireless communication, after the encoding end segments the sequence to be encoded, the length of each segment does not match the carrying capacity of the physical channel. Therefore, rate matching needs to be performed separately after encoding each segment, which makes the rate matching process relatively complex.
[0119] For example, assuming the length of the bit sequence that the transmission resources can carry is 10000, in this application, the unit of the length of the bit sequence that the transmission resources can carry can be bits, which will not be elaborated further below. If the segments are not divided according to the mother code length, then after the encoding end divides the sequence to be encoded, each segment needs to be rate matched. For example, if it is divided into 5 segments on average, then the length of each segment is 2000, which is not equal to the mother code length. Therefore, after the encoding end divides the sequence to be encoded, each segment needs to be rate matched. If the segments are all divided according to the maximum mother code length, such as the maximum mother code length being 2048, then it can be divided into 5 segments of length 2048. In this case, the sum of the lengths of the segments (10240) does not match the length of the bit sequence that the allocated resources can carry (10000).
[0120] In view of this, this application provides a data processing method in which the encoding end can segment the sequence to be encoded based on the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be encoded and Y second segments to be encoded. The length of the first segment is equal to the maximum mother code length, so the X first encoded segments corresponding to the X first segments do not need to be rate matched. The length of the second segment is less than the maximum mother code length, and the length of one of the Y second segments is not the mother code length, while the length of each of the remaining second segments is the mother code length. Therefore, only the second encoded segments corresponding to the second segments with the non-mother code length need to be rate matched. In this way, the number of encoded segments that need to be rate matched is greatly reduced, which helps to simplify the rate matching process and reduce the overall system complexity.
[0121] Furthermore, in the above scheme, the sequence to be encoded is segmented based on the length and number of the first segment and the length and number of the second segment. The second segment allows for segments of non-mother code length. In other words, it allows for a mismatch between the length of some encoded segments and the carrying capacity of the physical channel, and allows for rate matching of these encoded segments. The carrying capacity of the physical channel can be understood as the length of the bit sequence that the physical channel can carry. It is understandable that if both the first and second segments were entirely of mother code length, the sum of the lengths of all segments might exceed the length of the bit sequence that the allocated transmission resources can carry. Therefore, by allowing segments of non-mother code length, it is beneficial to avoid the sum of the lengths of all segments exceeding the length of the bit sequence that the allocated transmission resources can carry. In other words, it is beneficial to avoid the problem of a mismatch between the resources required to transmit the encoded sequence and the allocated resources, thereby improving performance stability.
[0122] For example, assuming the transmission resource can carry a bit sequence length of 10000, and the maximum mother code length is 2048, the maximum mother code length is predefined / configured / pre-configured. The encoder can determine the number of first segments of X maximum mother code lengths and the length and number of Y non-maximum mother code lengths of the second segment based on the length of the bit sequence that the transmission resource can carry. For example, four segments of the maximum mother code length (2048) and two segments of non-maximum mother code lengths (1024 and 784), where 1024 is the mother code length segment and 784 is the non-mother code length segment. Furthermore, the encoder can segment the sequence to be encoded according to the aforementioned length and number of the first and second segments. In this way, the encoder only needs to perform rate matching on the encoded segments corresponding to the 784-length segments, greatly reducing the number of encoded segments requiring rate matching and thus reducing the overall system complexity. In addition, the total length of each segment will not exceed the length of the bit sequence that the allocated resources can carry (10000), that is, ensuring that the resources required to send each encoded segment match the resources allocated to the encoding end.
[0123] The data processing method of this application will be described in detail below with reference to Figure 4. The method provided by this application is illustrated from the perspective of communication device interaction. This application does not limit the specific form or number of each communication device. Below, the data processing method of this application embodiment will be described in detail using the second and third communication devices as examples. The method described below can be applied, for example, to the system shown in Figure 1. The second communication device can be, for example, the terminal device 120 in the system shown in Figure 1, and the third communication device can be, for example, the access network device 110 in the system shown in Figure 1. Alternatively, the second communication device can be, for example, the access network device 110 in the system shown in Figure 1, and the third communication device can be, for example, the terminal device 120 in the system shown in Figure 1. These will not be listed individually here.
[0124] It should be understood that the second communication device can be the terminal device or access network device itself, or it can be a chip, chip system, or processor that supports the terminal device or access network device in implementing data processing methods, or it can be a logic module or software that can implement all or part of the functions of the terminal device or access network device. This application does not specifically limit this. The third communication device can be the terminal device or access network device itself, or it can be a chip, chip system, or processor that supports the terminal device or access network device in implementing data processing methods, or it can be a logic module or software that can implement all or part of the functions of the terminal device or access network device. This application does not specifically limit this.
[0125] Figure 4 is a flowchart illustrating a data processing method 400 provided in an embodiment of this application. The method 400 includes the following steps:
[0126] In step 410, the second communication device segments the sequence to be encoded according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be encoded and Y second segments to be encoded.
[0127] The second communication device can be considered as the information sending end or the information encoding end. The second communication device can be a terminal device (terminal device 120 as shown in Figure 1) or an access network device (access network device 110 as shown in Figure 1), and this application does not limit it in this way.
[0128] The length of each of the aforementioned X first segments is equal to the maximum mother code length, where X is an integer greater than or equal to 0. The maximum mother code length can be the maximum codeword length supported by the system (e.g., an encoder or decoder), and this maximum mother code length can be characterized by the number of bits. This maximum mother code length can be predefined, preconfigured, or configured, and this application does not impose any limitations on it.
[0129] The aforementioned X first segments and the aforementioned X first segments to be encoded are in one-to-one correspondence. Each first segment corresponds to one first segment to be encoded. Each first segment can be used to carry the first segment to be encoded corresponding to the first segment, or in other words, to carry the first encoded segment corresponding to the first segment (the first encoded segment is obtained by polar coding of the first segment to be encoded).
[0130] In the Y second segments mentioned above, the length of each second segment is less than the maximum mother code length. Furthermore, one of the Y second segments has a length that is not the mother code length, while the length of each of the remaining second segments is the mother code length. Y is an integer greater than or equal to 1. Here, "the length of a second segment is not the mother code length" can be understood as the length of the second segment not being an integer power of 2. "The length of a second segment is the mother code length" can be understood as the length of the second segment being an integer power of 2, but less than the maximum mother code length. It should be understood that the above understanding of whether the second segment is the mother code length is merely an example; for example, it could be based on... In the scenario of calculating the corresponding mother code length, but this should not constitute any limitation on this application. When other methods are used to calculate the mother code length, the understanding of whether the second segment is the mother code length may also be different from the above understanding.
[0131] The above Y second segments and the above Y second segments to be encoded are in one-to-one correspondence. Each second segment corresponds to a second segment to be encoded. Each second segment can be used to carry the second segment to be encoded corresponding to the second segment, or in other words, to carry the second encoded segment corresponding to the second segment (the second encoded segment is obtained by polar coding of the second segment to be encoded).
[0132] The aforementioned X first segments and Y second segments can be viewed as segments of transmission resources allocated to the second communication device. These transmission resources may be allocated by the first communication device (such as RAN equipment). The aforementioned transmission resources can be understood as physical resources used to carry data, such as time-domain resources, frequency-domain resources, and spatial-domain resources. The length of each of the X first segments can be viewed as the length of the bit sequence that the first segment can carry, or as the number of bits that the first segment can carry, or as the amount of data that the first segment can carry. Similarly, the length of each of the Y second segments can be viewed as the length of the bit sequence that the second segment can carry, or as the number of bits that the second segment can carry, or as the amount of data that the second segment can carry.
[0133] In one possible implementation, the number of the aforementioned X first segments, the number of Y second segments, and the length of each of the Y second segments can be determined based on the transmission resources allocated to the second communication device.
[0134] One possible design is that the second communication device can determine the length of the bit sequence that the transmission resource can carry (or, in other words, the number of bits that the transmission resource can carry, or the amount of data that the transmission resource can carry) based on the transmission resource, and then, based on the length of the bit sequence that the transmission resource can carry, determine the number of X first segments, the number of Y second segments, and the length of each of the Y second segments. The following first presents a possible implementation of the second communication device determining the length of the bit sequence that the transmission resource can carry based on the transmission resource.
[0135] One implementation involves the second communication device determining the length of the bit sequence that the transmission resources can carry based on at least one of the following: resource quantity, code rate (which can be obtained based on an MCS table), modulation order, and stream number. The resource quantity can be characterized by the number of resource blocks (RBs) or resource elements (REs), and this application does not limit this to a specific number.
[0136] For example, the length of the bit sequence that a transmission resource can carry = number of resources * code rate * modulation order * number of streams. It should be noted that in practical applications, the length of the bit sequence that a transmission resource can carry can also be determined in other ways. For example, in a multiple-input multiple-output system, multiple streams may support different modulation schemes. In this case, the length of the bit sequence that a transmission resource can carry is calculated as the sum of the number of bits that each stream can transmit. A more detailed description of determining the length of the bit sequence that a transmission resource can carry can be found in existing standards (such as technical specifications (TS) 38.214, section 5.1.3.2). Furthermore, the length of the bit sequence that a transmission resource can carry can also be characterized by parameters other than the number of bits, such as bytes, which this application does not limit.
[0137] After determining the length of the bit sequence that the transmission resource can carry based on the transmission resource, the second communication device can determine the number of X first segments, the number of Y second segments, and the length of each of the Y second segments based on the length of the bit sequence that the transmission resource can carry.
[0138] In one possible implementation, X satisfies Formula 1: Where G represents the length of the bit sequence corresponding to the transmission resource, and N max Indicates the maximum mother code length. This indicates rounding down. The length of the bit sequence corresponding to the transmission resource can be understood as the length of the bit sequence that the transmission resource can carry, or the number of bits that the transmission resource can carry, or the amount of data that the transmission resource can carry.
[0139] Determining the number of first segments with a length equal to the maximum mother code length based on the above formula helps obtain as many segments as possible with the maximum mother code length. Since longer codewords typically have better error correction performance, this method improves decoding performance. Furthermore, it simplifies the segmentation process and reduces the overall system complexity.
[0140] For example, assuming the length of the bit sequence that the transmission resource can carry is 10000 and the maximum mother code length is 2048, the second communication device can determine the number of first segments with a length equal to the maximum mother code length based on the above formula one.
[0141] The second communication device segments the transmission resources to obtain the aforementioned X first segments. It can then further segment the remaining resources (excluding the X first segments) to determine the length of each of the Y second segments and the number of these Y second segments. It can be understood that if the second communication device does not further segment the remaining resources (excluding the X first segments), the number of Y second segments is 1, and the length of this single second segment equals the length of the transmission resource minus the sum of the lengths of the X first segments.
[0142] The following describes how the second communication device determines the length of each of the Y second segments and the number of the Y second segments.
[0143] In one possible implementation of method 400 shown in Figure 4, the aforementioned Y second segments are determined based on the ratio of the length of the third segment to the length of the corresponding mother code. The length of the third segment is determined based on the length of the bit sequence corresponding to the transmission resources allocated by the first communication device and the length of the first segment. That is, for a segment whose length is less than the maximum mother code length and whose length is not the mother code length, the second communication device can determine whether to continue segmenting the segment based on the ratio of the length of the segment to the length of the corresponding mother code.
[0144] It's understandable that, for a given segment, the ratio of the segment's length to the corresponding mother code length reflects the proportion of bits that need to be matched to that mother code length within the mother code length. This proportion reflects performance; for example, a larger ratio indicates a smaller proportion of bits needing to be matched to that mother code length, resulting in less performance loss during rate matching. Conversely, further segmentation can lead to significant performance loss. Conversely, a smaller ratio indicates a larger proportion of bits needing to be matched to that mother code length, resulting in greater performance loss during rate matching. Therefore, further segmentation can reduce this performance loss. In conclusion, considering the ratio of the segment's length to the corresponding mother code length to determine whether to further segment the segment helps reduce performance loss, improve overall performance, and reduce overall system complexity.
[0145] As one possible implementation, the second communication device can determine the length of the third segment based on the length of the bit sequence corresponding to the transmission resource and the length of the first segment, and then determine the aforementioned Y second segments based on the ratio of the length of the third segment to the length of the mother code corresponding to the third segment.
[0146] For example, assume the length of the bit sequence that the transmission resource can carry is 10000, and the maximum mother code length is 2048. The second communication device can determine the length of the third segment based on the length of the bit sequence that the transmission resource can carry and the length of the first segment. For example, the length of the third segment = G × N max =10000 - 4 * 2048 = 1808. A more general rule is that the length of the third segment = G * N. max -The sum of the lengths of the K second segments, where K = 0, 1, 2, ..., Y-2.
[0147] In one possible implementation, the aforementioned Y second segments are obtained by iteratively executing the following steps: when the ratio of the length of the third segment to the length of the corresponding mother code of the third segment is less than a first threshold, the third segment is segmented to obtain two second segments, one of which has a length equal to half the length of the corresponding mother code of the third segment. The length of the third segment = the length of the bit sequence corresponding to the transmission resource - the sum of the lengths of the X first segments - the sum of the lengths of the K second segments, where K = 0, 1, 2, ..., Y-2.
[0148] Wherein, the first threshold is less than 1 and the first threshold is greater than 0.
[0149] In other words, for a segment whose length is less than the corresponding mother code length, if the ratio of the segment length to the corresponding mother code length is less than the first threshold, the segment can be further segmented. This is because if rate matching is performed, the number of bits that need to be matched to the mother code length will be large, which will reduce the reliability of decoding and increase the performance loss. Therefore, the segment can be further segmented to reduce the performance loss.
[0150] For example, when K = 0, the length E0 of segment 0 (an example of the third segment) is GX * N. max If the ratio of E0 to the length of the mother code corresponding to segment 0 is less than the first threshold, then segment 0 is divided into segment 1 and segment 2. The length of segment 1 is equal to the length of the mother code corresponding to segment 0 / 2. The length of segment 2 is E1 = E0 - (length of the mother code corresponding to segment 0 / 2). Segment 1 is one of the Y second segments.
[0151] When K=1, segment 2 is another example of the third segment, and the length of segment 2 is E1=GX*N. max- If the ratio of E1 to the length of the mother code corresponding to segment 2 is less than the first threshold, then segment 2 is further segmented in a similar manner to segment 0. The above operation is repeated until the ratio of a certain segment to the length of the mother code corresponding to that segment is greater than or equal to the first threshold. That is, K takes values of 0, 1, 2, 3, ..., Y-2 in sequence.
[0152] For example, assuming the transmission resource can carry a bit sequence length of 10000 and the maximum mother code length is 2048, the second communication device can determine the number of the first segments of the maximum mother code length based on Formula 1. Further, the second communication device determines Y second segments. Assuming the ratio of the length of the remaining resource (denoted as segment 0) (10000 - 2048 * 4 = 1808) to its corresponding mother code length (2048) is less than a first threshold, segment 0 is further segmented, resulting in segment 1 and segment 2. The length of segment 1 is half the length of the mother code corresponding to segment 0, i.e., 1024. The length of segment 2 = the length of segment 0 - half the length of the mother code corresponding to segment 0 = 784. Assuming the ratio of the length of segment 2 to its corresponding mother code length (1024) is less than the first threshold, it is further segmented, resulting in segment 3 and segment 4. The length of segment 3 is 512, and the length of segment 4 is 272. If the length of segment 4 and the length of the corresponding mother code (512) are greater than the first threshold, then segmentation is stopped. Therefore, three second segments are obtained, namely segment 1, segment 3 and segment 4, where the length of segment 4 is not the length of the mother code.
[0153] In one possible implementation of the method 400 shown in Figure 4, the segmentation of the third segment when the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold includes: segmenting the third segment when the length of the third segment is greater than or equal to the second threshold and the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold.
[0154] In other words, for a certain segment, if the length of the segment is less than the second threshold, the segment can be left unsegmented. That is, if the resources of the segment are scarce, it should not be further segmented. This helps to avoid performance loss caused by further segmentation, thereby improving the overall performance of the system.
[0155] The aforementioned second threshold can be predefined, preconfigured, or configured.
[0156] Example 1: Assuming the transmission resource can carry a bit sequence length of 10000 and the maximum mother code length is 2048, the second communication device can determine the number of first segments with a length equal to the maximum mother code length based on Formula 1. Further, the second communication device can determine Y second segments. Assuming the ratio of the length of the remaining resource (denoted as segment 0) (10000 - 2048 * 4 = 1808) to its corresponding mother code length (2048) is less than a first threshold, segment 0 is further segmented, resulting in segment 1 and segment 2. Segment 1 has a length of 1024, and segment 2 has a length of 784. Assuming the ratio of the length of segment 2 to its corresponding mother code length (1024) is less than the first threshold, it is further segmented, resulting in segment 3 and segment 4. Segment 3 has a length of 512, and segment 4 has a length of 272. Assuming the length of segment 4 is less than the first threshold, no further segmentation is performed. Thus, we have obtained three second segments: segment 1, segment 3, and segment 4. The length of segment 4 is the length of the non-mother code.
[0157] In one possible implementation, when the length of the third segment is less than the second threshold, if the code rate corresponding to the third segment is further reduced or the CRC corresponding to the third segment is added, the amount of data that can be carried is relatively small. Therefore, the second communication device can discard the third segment or merge it into the shortest segment. This helps to reduce the possibility that the amount of data that the third segment can carry is too small, thereby simplifying the entire encoding process. Taking Example 1 as an example, the second communication device can discard segment 4, that is, abandon the use of segment 4's resources to transmit data, thereby reducing the situation where the segment carries a small amount of data but continues to be used to transmit data, which helps to simplify the entire encoding process; or it can merge segment 4 into the shortest segment among the existing segments. For example, the resources of segment 4 can be merged into segment 3, that is, the length of segment 3 = 512 + 272 = 784. The length of segment 3 is greater than its mother code length of 512. By merging segment 4 into the shortest segment among the existing segments, it helps to reduce the situation where the segment 4 carries a small amount of data but continues to be encoded independently. On the one hand, it helps to simplify the overall encoding process; on the other hand, the amount of data that segment 3 can carry is greatly increased, which helps to improve data transmission efficiency.
[0158] In one possible implementation of the method 400 shown in Figure 4, when the ratio of the length of the third segment to the length of the corresponding mother code of the third segment is greater than or equal to a first threshold and less than 1, it is determined that the encoded bits corresponding to the third segment will be punctured.
[0159] If the ratio of the length of the third segment to the length of the corresponding mother code is greater than or equal to the first threshold and less than 1, it can be considered that there are more information bits and fewer puncture bits. Continuing to segment would increase performance loss. Therefore, in this case, puncturing the segment helps to reduce performance loss. Furthermore, since there are fewer puncture bits, the determination of pre-frozen bits is not required when constructing the polar code, which helps to reduce the construction complexity of the polar code. Moreover, when data needs to be retransmitted via IR, rate matching can be performed through puncturing instead of shortening, which helps to simplify the construction of the polar code. For example, referring to Table 1, if rate matching is performed through puncturing, the number of rate matching branches can be greatly reduced during retransmission, simplifying the construction of the polar code.
[0160] For example, assuming the transmission resource can carry a bit sequence length of 10000 and the maximum mother code length is 2048, the second communication device can determine the number of first segments with the maximum mother code length based on Formula 1. Further, the second communication device determines Y second segments. Assuming the ratio of the length of the remaining resource (denoted as segment 0) (10000 - 2048 * 4 = 1808) to its corresponding mother code length (2048) is less than a first threshold, segment 0 is further segmented, resulting in segment 1 and segment 2. Segment 1 has a length of 1024, and segment 2 has a length of 784. Assuming the ratio of the length of segment 2 to its corresponding mother code length (1024) is greater than the first threshold but less than 1, it is determined that the encoded bits corresponding to segment 2 will be punctured. Thus, the second segment includes segment 1 and segment 2, where the length of segment 2 is not the mother code length.
[0161] It should be understood that in this application, "greater than or equal to" and "greater than" are interchangeable, as are "less than or equal to" and "less than," meaning the position of the equals sign is not limited. For example, determining to puncture the encoded bits corresponding to the third segment when the ratio of the length of the third segment to the length of the corresponding mother code is greater than or equal to a first threshold and less than 1 can be replaced by determining to puncture the encoded bits corresponding to the third segment when the ratio of the length of the third segment to the length of the corresponding mother code is greater than a first threshold and less than 1. Examples are not listed here.
[0162] In one possible implementation, when the ratio of the length of the third segment to the length of the corresponding mother code is greater than 1, the encoded segment corresponding to the third segment is repeated, or in other words, the mother code corresponding to the third segment is repeated.
[0163] As mentioned earlier, a certain segment may be merged with other segments. For example, the resources of segment 4 are merged into segment 3. That is, the length of segment 3 = 512 + 272 = 784. Therefore, the length of segment 3 is greater than its mother code length of 512. In other words, the ratio of the length of segment 3 to the corresponding mother code length is greater than 1. In this case, the encoded segment corresponding to segment 3 is repeated.
[0164] In one possible implementation of method 400 shown in Figure 4, the first threshold is related to the bitrate corresponding to the third segment. In other words, the first threshold can be determined based on the bitrate corresponding to the third segment.
[0165] As an example, and not a limitation, the lower the bitrate corresponding to the third segment, the lower the first threshold can be. A lower first threshold allows for a smaller ratio of the third segment length to the corresponding mother code length. This results in a larger number of puncture points, allowing for more puncture points when the bitrate corresponding to the third segment is low, and conversely, allowing for fewer puncture points when the bitrate corresponding to the third segment is high. This design improves system performance and resource utilization. For example, puncturing can affect system performance; therefore, when the bitrate corresponding to the third segment is high, the first threshold can be set larger, allowing for fewer puncture points and thus improving system performance. Conversely, when the bitrate corresponding to the third segment is low, the first threshold can be set smaller, allowing for more puncture points and thus improving resource utilization.
[0166] In one possible design, there is a correspondence between the first threshold and the bitrate corresponding to the third segment. For example, the first correspondence indicates a correspondence between multiple bitrates and multiple thresholds, where the bitrate corresponding to the third segment is one of these multiple bitrates, and the first threshold can be determined based on the bitrate corresponding to the third segment and the first correspondence.
[0167] By determining the first threshold based on the code rate corresponding to the third segment and the aforementioned first correspondence, on the one hand, there is no need for network devices to configure the first threshold, which helps to reduce signaling overhead; on the other hand, the association between the first threshold and the code rate corresponding to the third segment helps to improve system performance and increase resource utilization.
[0168] The aforementioned first correspondence can be predefined / preconfigured / configured, and this application does not impose any restrictions on it. An example of the first correspondence will be given below with reference to Table 2.
[0169] Table 2
[0170] As shown in Table 2, when the bitrate corresponding to the third segment is greater than 7 / 8, the first threshold can be 127 / 128; when the bitrate corresponding to the third segment is greater than 6 / 8 and less than or equal to 7 / 8, the first threshold can be 126 / 128; when the bitrate corresponding to the third segment is greater than 5 / 8 and less than or equal to 6 / 8, the first threshold can be 124 / 128; ...; when the bitrate corresponding to the third segment is greater than 1 / 8 and less than or equal to 2 / 8, the first threshold can be 112 / 128; when the bitrate corresponding to the third segment is other values (such as less than 1 / 8), the first threshold can be 96 / 128.
[0171] It should be understood that the bitrate ranges shown in Table 2 are merely examples and should not constitute any limitation on this application. For example, when the bitrate corresponding to the third segment is greater than or equal to 7 / 8, the first threshold can be 127 / 128; when the bitrate corresponding to the third segment is greater than or equal to 6 / 8 and less than 7 / 8, the first threshold can be 126 / 128; and so on, which will not be listed here.
[0172] It should also be understood that in Table 2, the multiple bitrates in the first correspondence are examples of bitrate ranges, but this should not constitute any limitation on this application. For example, the multiple bitrates mentioned above can also be specific values of bitrates, such as when the bitrate corresponding to the third segment is equal to 7 / 8, the first threshold can be 127 / 128, etc., which will not be listed here.
[0173] Furthermore, the threshold values shown in Table 2 are merely examples and should not be construed as limiting the scope of this application. For instance, when the bitrate corresponding to the third segment is greater than 7 / 8, the first threshold can be 126 / 128.
[0174] In one possible implementation of the method 400 shown in Figure 4, the code rate corresponding to each of the X first segments can be predefined, obtained from the MCS table, or configured by the RAN device; this application does not limit this.
[0175] One possible implementation is that the bitrate of at least one of the Y second segments is less than the bitrate of the first segment.
[0176] In one possible design, the code rate of the second segment whose length is less than the corresponding mother code length among the aforementioned Y second segments is less than the code rate of the first segment. That is, when the length of a second segment is less than the length of its corresponding mother code, the code rate of that second segment can be reduced, meaning the code rate of the second segment is less than the code rate of the first segment. As mentioned above, when the length of a second segment is less than the length of its corresponding mother code, it can be determined that the encoded bits corresponding to that second segment will be punctured. However, puncturing may affect system performance. Therefore, when the length of a second segment is less than the length of its corresponding mother code, the performance of the second segment can be improved by reducing its code rate.
[0177] In another possible design, when the length of the fourth segment is less than the third threshold, the bitrate corresponding to the fourth segment is less than the bitrate corresponding to the first segment, and the fourth segment is one of the aforementioned Y second segments.
[0178] When the length of the fourth segment is less than the third threshold, the bit rate corresponding to the fourth segment can be reduced to improve the performance of the fourth segment, so that the fourth segment does not become a performance bottleneck in the entire transmission.
[0179] For example, the third threshold mentioned above can be half the maximum mother code length, that is, when the length of the fourth segment is less than N. max When N = 2, the bitrate corresponding to the fourth segment is less than the bitrate corresponding to the first segment. max This indicates the maximum mother code length. In other words, when the length of the fourth segment and the maximum mother code length differ slightly (e.g., less than half the maximum mother code length), the code rate does not need to be reduced, as reducing the code rate would actually decrease system efficiency. However, when the length of the fourth segment and the maximum mother code length differ significantly (e.g., more than half the maximum mother code length), the code rate can be reduced to improve system performance, as this significant difference may impact system performance.
[0180] For example, when the length of the fourth segment is less than the third threshold, the bitrate corresponding to the fourth segment is R*m, where R represents the bitrate corresponding to the first segment, and m is greater than 0 and less than 1. For instance, m = 1 / 2, meaning the bitrate corresponding to the fourth segment is half the bitrate corresponding to the first segment.
[0181] It should be understood that the above examples should not constitute any limitation on this application. The relationship between the bitrate corresponding to the fourth segment and the bitrate corresponding to the first segment can also be represented by other formulas, such as the bitrate corresponding to the fourth segment = Rk, where R represents the bitrate corresponding to the first segment and k represents the reduced bitrate, such as k = 1 / 16. Another example is the bitrate corresponding to the fourth segment = R*(1-n), where R represents the bitrate corresponding to the first segment, and n is greater than 0 and less than 1. These are not all listed here.
[0182] In one possible implementation of method 400 shown in Figure 4, the value of Y is less than or equal to the fourth threshold. Limiting the number of segments with non-maximum mother code lengths helps reduce system complexity. Furthermore, it helps avoid segments with lengths much smaller than the maximum mother code length, thereby improving system performance.
[0183] For example, the value of Y is 3, that is, the number of segments with a non-maximum mother code length is 3. For example, if the length of the above transmission resource is 10000 and the maximum mother code length is 2048, then the above transmission resource can be divided into 4 segments with a maximum mother code length (2048). The length of the sequence that the remaining transmission resource (denoted as segment 0) can carry is 1808. The mother code length corresponding to segment 0 is 2048. Segment 0 is further divided into segments, one of which has a length of N / 2, where N is the mother code length corresponding to segment 0. That is, segment 0 can be divided into a segment with a length of 1024 and a segment with a length of 784. For a segment of length 784, the corresponding mother code length is 1024. If it is further segmented, a segment of length 1024 / 2 = 512 and a segment of length 272 are obtained. Thus, the second segment includes a segment of length 1024, a segment of length 512, and a segment of length 272. The number of the second segment reaches 3, and the second communication device does not continue to segment it.
[0184] In one possible implementation of method 400 shown in Figure 4, after the second communication device determines the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, it can calculate the size of the TB corresponding to the sequence to be encoded. As one possible implementation, the size S of the TB corresponding to the sequence to be encoded satisfies: Where, N max R represents the maximum mother code length, R represents the code rate corresponding to the first segment, and E represents the maximum mother code length. i+X R represents the length of the second segment i+X. i+X This represents the bitrate corresponding to the second segment i+X, in TB. CRC This indicates the size of the CRC code corresponding to TB.
[0185] The above TB CRCThis represents the size of the CRC code corresponding to the transport block, which can be understood as the aforementioned TB. CRC This indicates the number of bits used for CRC in TB, such as 16, 24, 32, etc. This application does not limit this; when TB does not require CRC, TB... CRC It can also be equal to 0.
[0186] The size of the TB corresponding to the sequence to be encoded can be regarded as the size of the data payload before CRC is performed. In this application, the CRC code also needs to be encoded; therefore, the sequence to be encoded may include the CRC code and the data payload.
[0187] In the above scheme, by calculating the size of the CRC code corresponding to TB in the code rate of each segment, it is beneficial to avoid the problem of how to allocate the size of the CRC code corresponding to TB when allocating the size of TB to the CB corresponding to each segment to be encoded. In other words, in the above scheme, it is not necessary to determine how to reasonably allocate the size of the CRC code corresponding to TB to the CB corresponding to each segment to be encoded, that is, it is not necessary to determine the size of the CRC code of the CB corresponding to the segment to be encoded, which simplifies the processing and thus helps to reduce the overall complexity of the system.
[0188] After determining the size of the TB corresponding to the sequence to be encoded, the second communication device reads the data payload to be transmitted. Then, the second communication device segments the sequence to be encoded (which includes the data payload to be transmitted and the CRC code) according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be encoded and Y second segments to be encoded.
[0189] In one possible implementation, the second communication device determines the length and number of the first segment to be encoded based on the number of X first segments and the maximum mother code length. For example, the length L of the first segment to be encoded satisfies: L = N max ×R, where N max R represents the maximum mother code length, and R represents the code rate corresponding to the first segment. The number of the first segments to be encoded is the same as the number of the first segments. The second communication device determines the length and number of the second segments to be encoded based on the number of Y second segments and the length of each second segment. For example, the Y second segments to be encoded include a third segment to be encoded, which is any one of the Y second segments to be encoded, and the length S of the third segment to be encoded is... i+X Satisfy: Si +X =Ei +X ×Ri +X E i+X R represents the length of the second segment i+X. i+XThis represents the code rate corresponding to the second segment i+X, where i = 1, 2, ..., Y. The number of segments to be encoded in the second segment is the same as the number of segments in the second segment.
[0190] The second communication device can segment the sequence to be encoded based on the length of the first segment to be encoded, the number of the first segments to be encoded, the length of the second segment to be encoded, and the number of the second segments to be encoded, to obtain X first segments to be encoded and Y second segments to be encoded.
[0191] In step 420, the second communication device performs polar coding on the X first segments to be encoded and the Y second segments to be encoded, respectively, to obtain X first encoded segments and Y second encoded segments.
[0192] After the second communication device obtains X first segments to be encoded and Y second segments to be encoded, it performs polar coding on the X first segments to be encoded and the Y second segments to be encoded respectively to obtain X first encoded segments and Y second encoded segments. The specific polar coding process can refer to existing technologies and will not be described in detail here.
[0193] In step 430, the second communication device outputs the aforementioned X first coded segments and Y second coded segments.
[0194] It is understandable that before sending the aforementioned X first coded segments and Y second coded segments, the second communication device can also perform interleaving, concatenation, modulation, and other processing on them, and then send them as a data block to the third communication device.
[0195] In step 440, the third communication device receives the sequence to be decoded.
[0196] The third communication device can be regarded as an information receiving end or an information decoding end. The third communication device can be an access network device (access network device 110 shown in Figure 1) or a terminal device (terminal device 120 shown in Figure 1), and this application does not limit it in this regard.
[0197] It is understood that the sequence sent by the second communication device and the sequence received by the third communication device are not necessarily completely identical. Therefore, in this application, the sequence received by the third communication device is denoted as the sequence to be decoded, but it is not limited to the sequence to be decoded being completely identical to the sequence sent by the second communication device.
[0198] In step 450, the third communication device segments the above-mentioned sequence to be decoded according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be decoded and Y second segments to be decoded.
[0199] After receiving the sequence to be decoded, the third communication device segments the sequence according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, resulting in X first segments and Y second segments to be decoded. The process for determining the number of X first segments, the number of Y second segments, and the length of each of the Y second segments can be found in the explanation provided by the second communication device; it will not be repeated here.
[0200] In one possible implementation, the third communication device determines the length and number of the first segment to be decoded based on the number of X first segments and the maximum mother code length. For example, the length L of the first segment to be decoded satisfies: L = N max ×R, where N max R represents the maximum mother code length, and R represents the code rate corresponding to the first segment. The number of the first segments to be decoded is the same as the number of the first segments. The third communication device determines the length and number of the second segments to be decoded based on the number of Y second segments and the length of each second segment. For example, the aforementioned Y second segments to be decoded include a third segment to be decoded, which is any one of the aforementioned Y second segments to be decoded, and the length S of the third segment to be decoded is... i+X Satisfy: Si +X =Ei +X ×Ri +X E i+X R represents the length of the second segment i+X. i+X Let represent the code rate corresponding to the second segment i+X, where i = 1, 2, ..., Y. The number of the second segment to be decoded is the same as the number of the second segment.
[0201] The third communication device can segment the sequence to be decoded based on the length of the first segment to be decoded, the number of the first segments to be decoded, the length of the second segment to be decoded, and the number of the second segments to be decoded, to obtain X first segments to be decoded and Y second segments to be decoded.
[0202] In step 460, the third communication device decodes the X first segments to be decoded and the Y second segments to be decoded, respectively, to obtain X first decoded segments and Y second decoded segments.
[0203] After obtaining X first segments to be decoded and Y second segments to be decoded, the third communication device decodes the X first segments to be decoded and the Y second segments to be decoded respectively to obtain X first decoded segments and Y second decoded segments.
[0204] It should be noted that the order of the methods listed above does not imply the order of execution. The execution order of each process should be determined by its function and internal logic.
[0205] The data processing method of the embodiments of this application has been described in detail above. The communication device of the embodiments of this application will be described in detail below. The communication device includes modules or units for executing each part of the above embodiments. The modules or units may be software, hardware, or a combination of software and hardware. The following only provides a brief illustrative example of the communication device; for details of the implementation, please refer to the description of the foregoing method embodiments, which will not be repeated below.
[0206] It should be understood that the devices shown in Figures 5 to 7 can be used to implement the functions of the second or third communication device in the above method embodiments, and thus can also achieve the beneficial effects of the above method embodiments.
[0207] Figure 5 is a schematic block diagram of the communication device 500 provided in an embodiment of this application.
[0208] As shown in Figure 5, the communication device 500 includes a processing module 510 and a transceiver module 520. This communication device 500 can be used to implement the functions of the second or third communication device in the method embodiment shown in Figure 4.
[0209] The modules included in the communication device 500 can be implemented through software and / or hardware.
[0210] One possible implementation is that the communication device 500 can be used to implement the steps performed by the second communication device in the method embodiment shown in FIG4. The second communication device can be an access network device or a terminal device, or a component (e.g., a chip, a chip system, or a processor) in the access network device or terminal device, or a device that can be used in conjunction with the access network device or terminal device, or a logic module or software that can implement all or part of the functions of the access network device or terminal device.
[0211] Another possible implementation is that the communication device 500 can be used to implement the steps performed by the third communication device in the method embodiment shown in FIG4. The third communication device can be an access network device or a terminal device, or a component (e.g., a chip, a chip system, or a processor) in the access network device or terminal device, or a device that can be used in conjunction with the access network device or terminal device, or a logic module or software that can implement all or part of the functions of the access network device or terminal device.
[0212] For example, the communication device 500 may include modules or units that correspond one-to-one with the methods / operations / steps / actions described in the method embodiment shown in FIG4. The modules or units may be hardware circuits, software, or a combination of hardware circuits and software.
[0213] For example, when the communication device 500 is used to implement the function of the second communication device in the method embodiment shown in FIG4, the processing module 510 is used to segment the sequence to be encoded according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be encoded and Y second segments to be encoded, wherein the length of the first segment is equal to the maximum mother code length, the length of the second segment is less than the maximum mother code length, and the length of one of the Y second segments is a non-mother code length, X is an integer greater than or equal to 0, Y is an integer greater than or equal to 1, the first segment is used to carry the first segment to be encoded, and the second segment is used to carry the second segment to be encoded; the processing module 510 is also used to perform polar coding on the X first segments to be encoded and the Y second segments to be encoded respectively, to obtain X first encoded segments and Y second encoded segments; the transceiver module 520 is used to output the X first encoded segments and Y second encoded segments.
[0214] In one possible implementation, the length L of the first segment to be encoded satisfies: L = N max ×R, where N max Represents the maximum mother code length, R represents the code rate corresponding to the first segment; and / or, the Y second segments to be encoded include a third segment to be encoded, which is any one of the aforementioned Y second segments to be encoded, and the length S of the third segment to be encoded is... i+X Satisfy: Si +X =Ei +X ×Ri +X E i+X R represents the length of the second segment i+X. i+X Let i represent the bitrate corresponding to the second segment i+X, where i = 1, 2, ..., Y.
[0215] In one possible implementation, the size S of the TB corresponding to the sequence to be encoded satisfies: Where, N max R represents the maximum mother code length, R represents the code rate corresponding to the first segment, and E represents the maximum mother code length. i+X R represents the length of the second segment i+X. i+X This represents the bitrate corresponding to the second segment i+X, in TB. CRC This indicates the size of the CRC code corresponding to the aforementioned transport block.
[0216] In one possible implementation, the aforementioned Y second segments are determined based on the ratio of the length of the third segment to the length of the corresponding mother code of the third segment. The length of the third segment is determined based on the length of the bit sequence corresponding to the transmission resources allocated by the first communication device and the length of the first segment.
[0217] In one possible implementation, X satisfies the following formula: Where G represents the length of the bit sequence corresponding to the transmission resource, and N max Indicates the maximum mother code length. This indicates rounding down to the nearest integer.
[0218] In one possible implementation, the aforementioned Y second segments are obtained by iteratively executing the following steps: when the ratio of the length of the third segment to the length of the corresponding mother code of the third segment is less than a first threshold, the third segment is segmented to obtain two second segments, one of which has a length equal to half the length of the corresponding mother code of the third segment. The length of the third segment = the length of the bit sequence corresponding to the transmission resource - the sum of the lengths of the X first segments - the sum of the lengths of the K second segments, where K = 0, 1, 2, ..., Y-2.
[0219] In one possible implementation, the above-mentioned segmentation of the third segment when the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold includes: segmenting the third segment when the length of the third segment is greater than or equal to the second threshold and the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold.
[0220] In one possible implementation, when the ratio of the length of the third segment to the length of the corresponding mother code is greater than or equal to the first threshold and less than 1, it is determined that the encoded bits corresponding to the third segment will be punctured.
[0221] In one possible implementation, the first threshold is related to the bitrate corresponding to the third segment.
[0222] In one possible implementation, the first threshold is determined based on the bitrate corresponding to the third segment and a first correspondence, which indicates the correspondence between multiple bitrates and multiple thresholds, and the bitrate corresponding to the third segment is one of the multiple bitrates.
[0223] In one possible implementation, the bitrate of at least one of the Y second segments is less than the bitrate of the first segment.
[0224] In one possible implementation, when the length of the fourth segment is less than the third threshold, the bitrate corresponding to the fourth segment is less than the bitrate corresponding to the first segment, and the fourth segment is one of the aforementioned Y second segments.
[0225] In one possible implementation, the value of Y is less than or equal to the fourth threshold.
[0226] For example, when the communication device 500 is used to implement the function of the third communication device in the method embodiment shown in FIG4, the transceiver module 520 is used to receive the sequence to be decoded; the processing module 510 is used to segment the sequence to be decoded according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be decoded and Y second segments to be decoded. The length of the first segment is equal to the maximum mother code length, the length of the second segment is less than the maximum mother code length, and the length of one of the Y second segments is a non-mother code length. X is an integer greater than or equal to 0, and Y is an integer greater than or equal to 1. The first segment is used to carry the first segment to be decoded, and the second segment is used to carry the second segment to be decoded. The processing module 510 is also used to decode the X first segments to be decoded and the Y second segments to be decoded respectively to obtain X first decoded segments and Y second decoded segments.
[0227] In one possible implementation, the length L of the first segment to be decoded satisfies: L = N max ×R, where N max Let S represent the maximum mother code length, R represent the code rate corresponding to the first segment; and / or, the aforementioned Y second segments to be decoded include a third segment to be decoded, which is any one of the aforementioned Y second segments to be decoded, and the length S of the third segment to be decoded is... i+X Satisfy: Si +X =Ei +X ×Ri +X E i+X R represents the length of the second segment i+X. i+X Let i represent the bitrate corresponding to the second segment i+X, where i = 1, 2, ..., Y.
[0228] In one possible implementation, the aforementioned Y second segments are determined based on the ratio of the length of the third segment to the length of the corresponding mother code of the third segment. The length of the third segment is determined based on the length of the bit sequence corresponding to the transmission resources allocated by the first communication device and the length of the first segment.
[0229] In one possible implementation, X satisfies the following formula: Where G represents the length of the bit sequence corresponding to the transmission resource, and N max Indicates the maximum mother code length. This indicates rounding down to the nearest integer.
[0230] In one possible implementation, the aforementioned Y second segments are obtained by iteratively executing the following steps: when the ratio of the length of the third segment to the length of the corresponding mother code of the third segment is less than a first threshold, the third segment is segmented to obtain two second segments, one of which has a length equal to half the length of the corresponding mother code of the third segment. The length of the third segment = the length of the bit sequence corresponding to the transmission resource - the sum of the lengths of the X first segments - the sum of the lengths of the K second segments, where K = 0, 1, 2, ..., Y-2.
[0231] In one possible implementation, the above-mentioned segmentation of the third segment when the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold includes: segmenting the third segment when the length of the third segment is greater than or equal to the second threshold and the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold.
[0232] In one possible implementation, when the ratio of the length of the third segment to the length of the corresponding mother code is greater than or equal to the first threshold and less than 1, it is determined that the encoded bits corresponding to the third segment will be punctured.
[0233] In one possible implementation, the first threshold is related to the bitrate corresponding to the third segment.
[0234] In one possible implementation, the first threshold is determined based on the bitrate corresponding to the third segment and a first correspondence, which indicates the correspondence between multiple bitrates and multiple thresholds, and the bitrate corresponding to the third segment is one of the multiple bitrates.
[0235] In one possible implementation, the bitrate of at least one of the Y second segments is less than the bitrate of the first segment.
[0236] In one possible implementation, when the length of the fourth segment is less than the third threshold, the bitrate corresponding to the fourth segment is less than the bitrate corresponding to the first segment, and the fourth segment is one of the aforementioned Y second segments.
[0237] In one possible implementation, the value of Y is less than or equal to the fourth threshold.
[0238] For a more detailed description of each of the above modules, please refer directly to the relevant descriptions in the method embodiment shown in Figure 4, which will not be repeated here.
[0239] It should be understood that the module division in the embodiments of this application is illustrative and only represents a logical functional division. In actual implementation, there may be other division methods. Furthermore, the functional modules in the various embodiments of this application can be integrated into a single processor, exist as separate physical entities, or be integrated into a single module. The integrated modules described above can be implemented in hardware or as software functional modules.
[0240] Figure 6 is another schematic block diagram of the communication device 600 provided in an embodiment of this application.
[0241] The communication device 600 can be a chip system, or an apparatus configured with a chip system to implement the methods described in the above-described method embodiments. In the embodiments of this application, the chip system can be composed of chips, or it can include chips and other discrete devices.
[0242] As shown in FIG6, the communication device 600 may include a processor 610, which can be used to implement the steps performed by the second or third communication device in the embodiment shown in FIG4 by means of logic circuits and / or executing computer programs or instructions in memory.
[0243] In one possible implementation, the communication device 600 further includes a communication interface 620. The communication interface 620 can be used to communicate with other devices via a transmission medium, thereby enabling the communication device 600 to communicate with other devices. The communication interface 620 can be, for example, a transceiver, interface, pin, bus, circuit, or a device capable of transmitting and receiving functions. The processor 610 can use the communication interface 620 to input and output data and to implement the steps performed by the second or third communication device in the embodiment shown in FIG. 4.
[0244] In one possible implementation, the communication device 600 further includes at least one memory 630 for storing program instructions and / or data. The memory 630 is coupled to the processor 610. The coupling in this embodiment is an indirect coupling or communication connection between devices, units, or modules, and can be electrical, mechanical, or other forms, for information exchange between devices, units, or modules. The processor 610 may operate in conjunction with the memory 630. The processor 610 may execute program instructions stored in the memory 630. At least one of the at least one memory may be included in the processor.
[0245] In one possible implementation, the processor 610 can be a logic circuit for executing the various possible methods described above, and the communication interface 620 can be an input and / or output interface for inputting and / or outputting signals.
[0246] It should be understood that the coupling in the embodiments of this application is an indirect coupling or communication connection between devices, units, or modules, which can be electrical, mechanical, or other forms, used for information interaction between devices, units, or modules. The processor 610 may operate in conjunction with the memory 630. The specific connection medium between the processor 610, communication interface 620, and memory 630 is not limited in the embodiments of this application. Optionally, the processor 610, communication interface 620, and memory 630 are connected via a bus 640. The bus 640 is represented by a thick line in Figure 6. The connection methods between other components are only illustrative and not intended to be limiting. The bus can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of illustration, only one thick line is used in Figure 6, but this does not indicate that there is only one bus or one type of bus.
[0247] In one possible implementation, the communication device 600 is a system-on-a-chip (SoC). Alternatively, the processor 610 is an SoC.
[0248] Figure 7 is a schematic diagram applicable to the access network equipment provided in this application. As shown in Figure 7, the access network equipment includes one or more CUs, one or more DUs, and one or more RUs. For clarity, only one CU, DU, and RU are shown in Figure 7. The CU is used to connect to the core network and one or more DUs. Optionally, the CU may have some of the functions of the core network. The CU may include CU-CP and CU-UP.
[0249] The CU and DU can be configured according to the protocol layer functions of the wireless network they implement: for example, the CU can be configured to implement the functions of the Packet Data Convergence Protocol (PDCP) layer and above (such as the Radio Resource Control (RRC) layer and / or the Service Data Adaptation Protocol (SDAP) layer); the DU can be configured to implement the functions of the protocol layers below the PDCP layer (such as the Radio Link Control (RLC) layer, the Medium Access Control (MAC) layer, and / or the Physical (PHY) layer). Alternatively, the CU can be configured to implement the functions of the protocol layers above the PDCP layer (such as the RRC and / or SDAP layers), and the DU can be configured to implement the functions of the protocol layers below the PDCP layer (such as the RLC, MAC, and / or PHY layers).
[0250] When a CU includes CU-CP and CU-UP, CU-CP is used to implement the control plane functions of the CU, and CU-UP is used to implement the user plane functions of the CU. For example, when a CU is configured to implement the functions of the PDCP layer, RRC layer, and SDAP layer, CU-CP is used to implement the RRC layer functions and the control plane functions of the PDCP layer, and CU-UP is used to implement the SDAP layer functions and the user plane functions of the PDCP layer.
[0251] The CU-CP can interact with network elements in the core network used to implement control plane functions. These network elements can be access and mobility function (AMF) network elements, such as the AMF network element in a 5G system. The AMF network element is responsible for mobility management in the mobile network, such as terminal device location updates, terminal device registration with the network, and terminal device handover.
[0252] CU-UP can interact with network elements in the core network used to implement user plane functions. These network elements, such as the user plane function (UPF) element in a 5G system, are responsible for forwarding and receiving data in terminal devices.
[0253] The above CU and DU configurations are merely examples; the functions of the CU and DU can be configured as needed. For instance, the CU or DU can be configured to have more protocol layer functions, or only some protocol layer processing functions. For example, some RLC layer functions and protocol layer functions above the RLC layer can be placed in the CU, while the remaining RLC layer functions and protocol layer functions below the RLC layer can be placed in the DU. Furthermore, the functions of the CU or DU can be divided according to service type or other system requirements, such as by latency. Functions that require low latency can be placed in the DU, while functions that do not require low latency can be placed in the CU.
[0254] DU and RU can cooperate to implement the functions of the PHY layer. A DU can be connected to one or more RUs. The functions of DU and RU can be configured in various ways depending on the design. For example, a DU can be configured to implement baseband functions, and an RU can be configured to implement mid-RF functions. Another example is that a DU can be configured to implement higher-level functions in the PHY layer, and an RU can be configured to implement lower-level functions in the PHY layer, or to implement both lower-level and RF functions. Higher-level functions in the physical layer can include a portion of the physical layer's functions that are closer to the MAC layer, while lower-level functions in the physical layer can include another portion of the physical layer's functions that are closer to the mid-RF side.
[0255] In different systems, CU (or CU-CP and CU-UP), DU, or RU may have different names, but those skilled in the art will understand their meaning. For example, in an ORAN system, CU can also be called an open-CU (open-CU, O-CU), DU can also be called an open-DU (open-DU, O-DU), CU-CP can also be called an open-CU-CP (open-CU-CP, O-CU-CP), CU-UP can also be called an open-CU-UP (open-CU-UP, O-CU-UP), and RU can also be called an open-RU (open-RU, O-RU). For ease of description, this application uses CU, CU-CP, CU-UP, DU, and RU as examples. Any of the units among CU (or CU-CP, CU-UP), DU, and RU in this application can be implemented through software modules, hardware modules, or a combination of software and hardware modules.
[0256] In the embodiment shown in Figure 4, when the second communication device is an access network device, step 410 can be implemented as follows: the DU corresponding to the access network device segments the sequence to be encoded based on the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be encoded and Y second segments to be encoded. In the O-RAN system, step 410 can be implemented as follows: the O-DU corresponding to the access network device segments the sequence to be encoded based on the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be encoded and Y second segments to be encoded.
[0257] Step 420 can be implemented as follows: the DU corresponding to the access network device performs polar coding on the X first segments to be coded and the Y second segments to be coded, respectively, to obtain X first coded segments and Y second coded segments. In the O-RAN system, step 420 can be implemented as follows: the O-DU corresponding to the access network device performs polar coding on the X first segments to be coded and the Y second segments to be coded, respectively, to obtain X first coded segments and Y second coded segments.
[0258] Step 430 can be specifically implemented as follows: the DU corresponding to the access network device outputs the aforementioned X first coding segments and Y second coding segments. In the O-RAN system, step 430 can be specifically implemented as follows: the O-DU corresponding to the access network device outputs the aforementioned X first coding segments and Y second coding segments.
[0259] Step 440 can be implemented as follows: the DU corresponding to the access network device sends a coding sequence through the RU. This coding sequence is obtained by processing X first coding segments and Y second coding segments. In the O-RAN system, step 440 can be implemented as follows: the O-DU corresponding to the access network device sends a coding sequence through the O-RU.
[0260] When the third communication device is an access network device, step 440 can be implemented as follows: the DU corresponding to the access network device receives the sequence to be decoded through the RU. In the O-RAN system, step 440 can be implemented as follows: the O-DU corresponding to the access network device receives the sequence to be decoded through the O-RU.
[0261] Step 450 can be implemented as follows: The DU corresponding to the access network device segments the above-mentioned sequence to be decoded according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be decoded and Y second segments to be decoded. In the O-RAN system, step 450 can be implemented as follows: The O-DU corresponding to the access network device segments the above-mentioned sequence to be decoded according to the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, to obtain X first segments to be decoded and Y second segments to be decoded.
[0262] Step 460 can be implemented as follows: the DU corresponding to the access network device decodes the X first segments to be decoded and the Y second segments to be decoded respectively, to obtain X first decoded segments and Y second decoded segments. In the O-RAN system, step 460 can be implemented as follows: the O-DU corresponding to the access network device decodes the X first segments to be decoded and the Y second segments to be decoded respectively, to obtain X first decoded segments and Y second decoded segments.
[0263] This application also provides a computer program product, which includes a computer program (also referred to as code or instructions) that, when run, can implement the steps performed by the second or third communication device in the embodiment shown in FIG4.
[0264] This application also provides a computer-readable storage medium storing a computer program (also referred to as code or instructions). When the computer program is run, it can implement the steps performed by the second or third communication device in the embodiment shown in FIG4.
[0265] It should be understood that the processor in the embodiments of this application can be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method embodiments can be completed by the integrated logic circuitry in the processor's hardware or by instructions in software form. The processor can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a microprocessor unit (MPU), a microcontroller unit (MCU), a graphics processing unit (GPU), an artificial intelligence processor (AI processor) or a neural processing unit (NPU), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or a combination of one or more discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software module can reside in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method.
[0266] It should also be understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be a cache, random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM). It should be noted that the memory used in the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0267] The terms "unit," "module," etc., used in this specification can be used to refer to computer-related entities, hardware, firmware, combinations of hardware and software, software, or software in execution. In the embodiments of this application, "unit" and "module" have the same meaning and can be used interchangeably.
[0268] Those skilled in the art will recognize that the various illustrative logical blocks and steps described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application. In the several embodiments provided in this application, it should be understood that the disclosed apparatus, devices, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the shown or discussed mutual couplings or direct couplings or communication connections may be through some interfaces; indirect couplings or communication connections between devices or units may be electrical, mechanical, or other forms.
[0269] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0270] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0271] In the above embodiments, the functions of each functional unit can be implemented entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions (programs). When the computer program instructions (programs) are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., digital video discs, DVDs), or semiconductor media (e.g., solid-state drives, SSDs), etc.
[0272] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the technology, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.
[0273] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A data processing method, characterized in that, include: Based on the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, the sequence to be encoded is segmented to obtain X first segments to be encoded and Y second segments to be encoded. The length of the first segment is equal to the maximum mother code length, the length of the second segment is less than the maximum mother code length, and the length of one of the Y second segments is a non-mother code length. X is an integer greater than or equal to 0, and Y is an integer greater than or equal to 1. The first segment is used to carry the first segment to be encoded, and the second segment is used to carry the second segment to be encoded. Polar coding is performed on the X first segments to be encoded and the Y second segments to be encoded respectively to obtain X first encoded segments and Y second encoded segments; Output the X first coded segments and the Y second coded segments.
2. The method as described in claim 1, characterized in that, The length L of the first segment to be encoded satisfies: L = N max ×R, where N max R represents the maximum mother code length, and R represents the code rate corresponding to the first segment; and / or, The Y second segments to be encoded include a third segment to be encoded, and the third segment to be encoded is any one of the Y second segments to be encoded. The length S of the third segment to be encoded is... i+X Satisfy: Si +X =E i+X ×R i+X E i+X R represents the length of the second segment i+X. i+X Let i represent the bitrate corresponding to the second segment i+X, where i = 1, 2, ..., Y.
3. The method as described in claim 1 or 2, characterized in that, The size S of the transport block corresponding to the sequence to be encoded satisfies: Where, N max R represents the maximum mother code length, R represents the code rate corresponding to the first segment, and E represents the maximum mother code length. i+X R represents the length of the second segment i+X. i+X This represents the bitrate corresponding to the second segment i+X, in TB. CRC This indicates the size of the cyclic redundancy check code corresponding to the transport block.
4. A data processing method, characterized in that, include: Receive the sequence to be decoded; Based on the number of X first segments, the maximum mother code length, the number of Y second segments, and the length of each of the Y second segments, the sequence to be decoded is segmented to obtain X first segments to be decoded and Y second segments to be decoded. The length of the first segment is equal to the maximum mother code length, the length of the second segment is less than the maximum mother code length, and the length of one of the Y second segments is a non-mother code length. X is an integer greater than or equal to 0, and Y is an integer greater than or equal to 1. The first segment is used to carry the first segment to be decoded, and the second segment is used to carry the second segment to be decoded. The X first segments to be decoded and the Y second segments to be decoded are decoded respectively to obtain X first decoded segments and Y second decoded segments.
5. The method as described in claim 4, characterized in that, The length L of the first segment to be decoded satisfies: L = N max ×R, where N max R represents the maximum mother code length, and R represents the code rate corresponding to the first segment; and / or, The Y second segments to be decoded include a third segment to be decoded, and the third segment to be decoded is any one of the Y second segments to be decoded, and the length S of the third segment to be decoded is... i+X Satisfy: Si +X =E i+X ×Ri +X E i+X R represents the length of the second segment i+X. i+X Let i represent the bitrate corresponding to the second segment i+X, where i = 1, 2, ..., Y.
6. The method according to any one of claims 1 to 5, characterized in that, The Y second segments are determined based on the ratio of the length of the third segment to the length of the corresponding mother code of the third segment. The length of the third segment is determined based on the length of the bit sequence corresponding to the transmission resources allocated by the first communication device and the length of the first segment.
7. The method as described in claim 6, characterized in that, X satisfies the following formula: Where G represents the length of the bit sequence corresponding to the transmission resource, and N max This indicates the maximum mother code length. This indicates rounding down to the nearest integer.
8. The method as described in claim 6 or 7, characterized in that, The Y second segments are obtained by repeatedly executing the following steps: When the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold, the third segment is divided into two second segments, one of which has a length equal to half the length of the corresponding mother code of the third segment. The length of the third segment is equal to the length of the bit sequence corresponding to the transmission resource - the sum of the lengths of the X first segments - the sum of the lengths of the K second segments, where K = 0, 1, 2, ..., Y-2.
9. The method as described in claim 8, characterized in that, When the ratio of the length of the third segment to the length of the corresponding mother code is less than a first threshold, the third segment is segmented, including: When the length of the third segment is greater than or equal to the second threshold, and the ratio of the length of the third segment to the length of the corresponding mother code is less than the first threshold, the third segment is segmented.
10. The method according to any one of claims 6 to 9, characterized in that, When the ratio of the length of the third segment to the length of the corresponding mother code is greater than or equal to the first threshold and less than 1, it is determined that the encoded bits corresponding to the third segment will be punctured.
11. The method according to any one of claims 8 to 10, characterized in that, The first threshold is related to the bitrate corresponding to the third segment.
12. The method as described in claim 11, characterized in that, The first threshold is determined based on the bitrate corresponding to the third segment and the first correspondence, which indicates the correspondence between multiple bitrates and multiple thresholds, and the bitrate corresponding to the third segment is one of the multiple bitrates.
13. The method according to any one of claims 1 to 12, characterized in that, At least one of the Y second segments has a bitrate less than that of the first segment.
14. The method as described in claim 13, characterized in that, When the length of the fourth segment is less than the third threshold, the bitrate corresponding to the fourth segment is less than the bitrate corresponding to the first segment, and the fourth segment is one of the Y second segments.
15. The method according to any one of claims 1 to 14, characterized in that, The value of Y is less than or equal to the fourth threshold.
16. A communication device, characterized in that, Includes modules for implementing the method as described in any one of claims 1 to 15.
17. A communication device, characterized in that, Includes a processor configured to perform the method of any one of claims 1 to 15 by means of logic circuits and / or by executing a computer program stored in a memory.
18. The communication device according to claim 17, characterized in that, The communication device also includes the memory.
19. The communication device according to claim 17 or 18, characterized in that, The communication device also includes a communication interface for inputting and / or outputting signals.
20. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, and when the computer program is executed by a computer, the method as described in any one of claims 1 to 15 is implemented.
21. A computer program product, characterized in that, The computer program product includes instructions that, when executed by a computer, implement the method as described in any one of claims 1 to 15.
22. A communication system, characterized in that, It includes a communication device for performing any one of claims 1-3, 6-15, and a communication device for performing any one of claims 4-15.