Data processing method, device and equipment
Patent Information
- Application Number
- CN202280098384.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-08
- Publication Date
- 2025-02-28
AI Technical Summary
The existing Polar code encoding scheme needs to receive the complete data to be encoded or the data to be decoded before it can start processing during the encoding and decoding process. This results in the size of the encoder and cache in the device being large, and stream encoding and streaming cannot be realized. decoding.
A new Polar code encoding matrix G is designed. By dividing the information bit sequence into multiple segments, and using the Polar generation matrix GN′ to encode and XOR each segment, stream coding and stream decoding are achieved. Reduced encoder and cache size in end devices.
It realizes the function of encoding and decoding after receiving a part of the information, reduces the size of the encoder and cache in the device, and improves the efficiency and flexibility of data processing.
Smart Images

Figure CN119547333A_ABST
Abstract
Description
Data processing method, device and equipment Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a data processing method, apparatus, and device. Background Art
[0002] Polar code is a channel coding scheme that can be rigorously proven to "reach" the Shannon channel capacity. It has the characteristics of good performance and low complexity and can be applied to the fifth generation (5 th Polar code is a linear block code that generates encoded data using a coding matrix. Currently, the Polar code coding matrix dictates that a device must receive the complete data to be encoded or decoded before it can begin encoding or decoding.
[0003] Summary of the Invention
[0004] The present application provides a data processing method, apparatus, and device. The method can implement stream encoding and / or stream decoding by designing a new Polar code encoding matrix.
[0005] In a first aspect, the present application provides a first data processing method, which can be executed by a terminal device or a network device. Taking the terminal device as the execution subject and the terminal device as the encoding side as an example, the terminal device obtains an information bit sequence, encodes the information bit sequence according to the encoding matrix G, obtains encoded data, and then sends the encoded data. The encoding matrix G is expressed as:
[0006] The encoding matrix G is a matrix of size (m×2n)×(m×2n), where m and n are positive integers. N′ For size 2 n ×2 n Polar generator matrix, matrix O is of size 2 n ×2 n An all-zero matrix.
[0007] This method designs a new Polar code encoding matrix G. When a terminal device uses this encoding matrix G to encode the information bits to be encoded, it can encode and transmit the encoded data after receiving a portion of the information bits during the encoding process. This implements stream coding, which helps reduce the size of the encoder and cache in the terminal device. Furthermore, using this encoding matrix to encode the information bits to obtain the encoded data facilitates stream decoding.
[0008] In one possible implementation, the information bit sequence includes m segments, and the Polar generator matrix of each segment is G N′ .
[0009] In this method, the information bit sequence can also be divided into m segments, and each segment is compared with the matrix G N′ Performs modular two multiplication.
[0010] In one possible implementation, the number of information bits in the m segments is k0, k1, ..., k m-1 , where k0 is less than k m-1 , and k0≤k1≤...≤k m-1 .
[0011] In one possible implementation, the number of information bits in the i-th segment is k i , the i satisfies 0≤i≤m-1.
[0012] In this method, the number of information bits in each segment is different and changes according to a certain quantity rule.
[0013] In a possible implementation, m cache data are obtained, wherein the jth cache data is obtained using the matrix G N′ The jth segment of the information bit sequence is encoded, where j satisfies 0≤j≤m-1;
[0014] The encoded data includes m segments, wherein the 0th segment of the encoded data is the m-1th cache data, and the i-th segment of the encoded data is obtained by XORing the j-th cache data with the m-1th cache data, i satisfies 1≤i≤m-1, and j satisfies 0≤j≤m-2.
[0015] In a possible implementation, the m-1th cached data is sent first, and then the i-th segment of encoded data is sent in sequence, 1≤i≤m-1.
[0016] In this method, information bits in m segments are converted into m pieces of cached data, and the encoded data are sent in a set order.
[0017] In one possible implementation, the encoding matrix G is subjected to elementary column transformation, and the transformed encoding matrix The information bit sequence is encoded according to the transformed encoding matrix G′ to obtain encoded data.
[0018] In this method, the coding matrix G is subjected to elementary column transformation, so that when the terminal device uses the transformed coding matrix G′ to encode the information bits to be encoded, stream coding can also be implemented, which is beneficial to reducing the size of the encoder and cache in the terminal device.
[0019] In one possible implementation, the number of information bits in the m segments is k0, k1, ..., k m-1 , k1 is less than k0, and k1≤...≤k m-1 ≤k0.
[0020] In one possible implementation, the number of information bits in the i-th segment is k i , the i satisfies 0≤i≤m-1.
[0021] In this method, each segment contains a different number of information bits. Assuming the first k0 received information bits are the largest (i.e., segment 0 has the largest number of information bits), the encoder encodes the remaining m-1 segments based on the encoded data corresponding to the first k0 received information bits, which facilitates stream coding.
[0022] In one possible implementation, the coded data includes m segments, wherein the coded data of segment 0 is based on the matrix G N′ The 0th segment of the information bit sequence is encoded; the i-th segment encoded data is obtained according to the matrix G N′ After encoding the i-th segment of the information bit sequence, it is XORed with the 0th segment of the encoded data to obtain .
[0023] In this method, since the information bit sequence is divided into m segments, the coded data corresponding to the m segments is also divided into m segments. In this encoding method, the coded data of segment 0 is cached and XORed with the remaining m-1 segments (for example, information interleaving), thereby achieving the purpose of supporting stream coding.
[0024] In the second aspect, the present application provides a second data processing method, which can be executed by a terminal device or a network device. In which, taking the terminal device as the execution subject and the terminal device as the encoding side as an example, the terminal device obtains an information bit sequence, the information bit sequence includes m segments, and uses the Polar generation matrix G of each segment N′ Process each segment to obtain m cache data, where the matrix G N′ For size 2 n ×2 n Polar generator matrix. Then, based on the m cached data, coded data is obtained and sent. The coded data includes m segments, where segment 0 is the m-1th cached data, and segment i is the result of XORing the jth cached data with the m-1th cached data, where i satisfies 1≤i≤m-1 and j satisfies 0≤j≤m-2.
[0025] In this method, the terminal device divides the information bit sequence to be encoded into m segments and uses a size of 2 for each segment. n ×2 n The Polar generator matrix is used for encoding and information interleaving, and the encoded data is sent interleaved, which is conducive to stream decoding.
[0026] In one possible implementation, the number of information bits in the m segments is k0, k1, ..., k m-1 , where k0 is less than k m-1 , and k0≤k1≤...≤k m-1 .
[0027] In one possible implementation, the number of information bits in the i-th segment is k i , the i satisfies 0≤i≤m-1.
[0028] In a possible implementation, the terminal device may encode the information bit sequence according to the encoding matrix G to obtain encoded data. The encoding matrix G is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n Polar generator matrix, matrix O is of size 2 n ×2 n An all-zero matrix.
[0029] In this method, a coding matrix based on the Polar generator matrix is designed, which is similar to constructing a coupling matrix of the Polar generator matrix, which is conducive to realizing stream decoding under the coding matrix G.
[0030] In a third aspect, the present application provides a third data processing method, which can be executed by a terminal device or a network device. Taking the terminal device as the execution subject and the terminal device as the encoding side as an example, the terminal device obtains an information bit sequence, which includes m segments, and uses the Polar generation matrix G of each segment N′ Process each segment to obtain and send coded data. N′ For size 2 n ×2 n Polar generator matrix, the coded data includes m segments, the 0th segment coded data is based on the matrix G N′ The 0th segment of the information bit sequence is encoded; the i-th segment encoded data is obtained according to the matrix G N′After encoding the i-th segment of the information bit sequence, it is XORed with the 0-th segment of the encoded data to obtain.
[0031] In this method, the terminal device divides the information bit sequence to be encoded into m segments and uses a size of 2 for each segment. n ×2 n The Polar generation matrix is used for encoding and information interleaving, which can support encoding and sending part of the information after receiving it during the encoding process (that is, achieving the purpose of supporting stream coding), reducing the size of the encoder and cache.
[0032] In one possible implementation, the number of information bits in the m segments is k0, k1, ..., k m-1 , k1 is less than k0, and k1≤...≤k m-1 ≤k0.
[0033] In one possible implementation, the number of information bits in the i-th segment is k i , the i satisfies 0≤i≤m-1.
[0034] In a possible implementation, the terminal device may encode the information bit sequence according to the encoding matrix G′ to obtain encoded data. The encoding matrix G′ is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n Polar generator matrix, matrix O is of size 2 n ×2 n An all-zero matrix.
[0035] In this method, a coding matrix based on the Polar generator matrix is designed, which is similar to constructing a coupling matrix of the Polar generator matrix, which is conducive to realizing stream coding under the coding matrix G′.
[0036] It should be noted that the methods described in the first to third aspects above can also be executed by a network device. In this case, the network device is the encoding side and the terminal device is the decoding side.
[0037] In a fourth aspect, the present application provides a fourth data processing method, which can be executed by a terminal device or a network device. In this case, the network device is the execution subject, and the network device is the decoding side. For example, the network device receives the coded data and decodes the coded data to obtain the decoded data. The coded data is obtained by encoding the information bit sequence according to the coding matrix G. The coding matrix The encoding matrix G is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n Polar generator matrix, matrix O is of size 2 n ×2 n An all-zero matrix.
[0038] In this method, since the encoded data is obtained based on a new Polar code encoding matrix G designed in this application, after the decoding side receives the encoded data, it can support decoding of part of the information after receiving the part of the information during the decoding process, thereby reducing the size of the decoder.
[0039] In one possible implementation, the information bit sequence includes m segments, and the Polar generator matrix of each segment is G N′ .
[0040] In one possible implementation, the network device obtains the tag data corresponding to the 0th segment of the coded data and the tag data corresponding to the 1st segment of the coded data, performs F operation on the tag data corresponding to the 0th segment of the coded data and the tag data corresponding to the 1st segment of the coded data, and obtains the tag data corresponding to the 1st segment of the coded data after the F operation; and performs Polar code decoding on the tag data corresponding to the 1st segment of the coded data after the F operation to obtain the decoded data corresponding to the 1st segment of the coded data; and then enhances the tag data corresponding to the 0th segment of the coded data according to the tag data corresponding to the 1st segment of the coded data and the decoded data corresponding to the 1st segment of the coded data. It should be noted that the 0th segment of the coded data includes the last N′ columns of the coding matrix G, or the 0th segment of the coded data includes the first (m-1)×2 n Column and back 2 n After the elementary column transformation, the first N' columns of the encoding matrix G' are obtained. The first segment of the encoded data includes the first N' columns of the encoding matrix G, or the first segment of the encoded data includes the first N'+1 columns to N'*2 columns of the encoding matrix G'.
[0041] In this method, the network device decodes the first received coded data segment 0 and its adjacent coded data segment 1, thereby realizing stream decoding, and enhances the coded data segment 0, which is conducive to realizing stream decoding based on the enhanced coded data segment 0 in the subsequent decoding process.
[0042] In one possible implementation, the network device continues to obtain the marked data corresponding to the qth segment of coded data, where q is 2≤q≤m-1, and performs an F operation on the marked data corresponding to the qth segment of coded data and the marked data corresponding to the enhanced 0th segment of coded data to obtain the marked data corresponding to the qth segment of coded data after the F operation. The marked data corresponding to the qth segment of coded data after the F operation is then decoded using Polar code to obtain the decoded data corresponding to the qth segment of coded data. Furthermore, the marked data corresponding to the enhanced 0th segment of coded data is enhanced based on the marked data corresponding to the qth segment of coded data and the decoded data corresponding to the qth segment of coded data.
[0043] In this method, the same method is used to decode the second to the m-1th segment of coded data. In addition, the marker data corresponding to the 0th segment of coded data is continuously enhanced as the decoding progresses, which is conducive to stream decoding.
[0044] It should be noted that the method described in the fourth aspect can also be executed by a terminal device. In this case, the network device is the encoding side and the terminal device is the decoding side.
[0045] In a fifth aspect, an embodiment of the present application provides a data processing device, which may be a terminal device, a device in a terminal device, or a device that can be used in conjunction with a terminal device. In one design, the data processing device may include a module that executes the methods / operations / steps / actions described in any one of the possible implementations of the first to third aspects, and the first to third aspects. The module may be a hardware circuit, software, or a combination of a hardware circuit and software. In one design, the data processing device may include a processing unit and a communication unit.
[0046] The specific description of the method / operation / step / action performed by the terminal device can refer to the corresponding description of the first to third aspects above, and any possible implementation of the first to third aspects, and will not be repeated here. It is understandable that the data processing device can also achieve the effects that can be achieved in the first to third aspects.
[0047] In a sixth aspect, an embodiment of the present application provides a data processing device, which may be a network device, a device in a network device, or a device that can be used in conjunction with a network device. In one design, the data processing device may include a module that executes the method / operation / step / action described in the fourth aspect and any possible implementation of the fourth aspect, and the module may be a hardware circuit, software, or a combination of a hardware circuit and software. In one design, the data processing device may include a processing unit and a communication unit.
[0048] The specific description of the method executed by the network device can refer to the corresponding description in the above-mentioned fourth aspect and any possible implementation of the fourth aspect, which will not be repeated here. It can be understood that the data processing device can also achieve the effect that can be achieved in the fourth aspect.
[0049] In the seventh aspect, an embodiment of the present application provides a communication device, which consists of an input and output interface and a logic circuit, wherein the input and output interface is used to input or output data; the logic circuit processes the data according to the method in any possible implementation manner of the first aspect to the third aspect, and the first aspect to the third aspect, to obtain the processed data.
[0050] In an eighth aspect, an embodiment of the present application provides a communication device, which consists of an input / output interface and a logic circuit, wherein the input / output interface is used to input or output data; the logic circuit processes the data according to the method in the fourth aspect and any possible implementation method of the fourth aspect to obtain the processed data.
[0051] In the ninth aspect, an embodiment of the present application provides a terminal device, comprising: a processor, the processor being coupled to a memory, the memory being used to store instructions, and when the instructions are executed by the processor, the terminal device implements the method in any possible implementation of the above-mentioned first to fourth aspects, or the first to fourth aspects.
[0052] In the tenth aspect, an embodiment of the present application provides a network device, comprising: a processor, the processor being coupled to a memory, the memory being used to store instructions, and when the instructions are executed by the processor, the network device implements the method of any possible implementation of the above-mentioned first to fourth aspects, or the first to fourth aspects.
[0053] In the eleventh aspect, an embodiment of the present application provides a communication system, which includes a transmitting end and a receiving end. The transmitting end is used to implement the functions of the method in any possible implementation of the first to third aspects above. The receiving end is used to implement the functions of the method in any possible implementation of the fourth aspect above and the fourth aspect. Optionally, the communication system may include a data processing device as described in the fifth and sixth aspects, or may include a communication device as described in the seventh and eighth aspects, or may include a device as described in the ninth and tenth aspects.
[0054] In the twelfth aspect, a computer-readable storage medium is also provided in an embodiment of the present application, on which instructions are stored. When the instructions are executed on a computer, the computer executes the method in any possible implementation of the first to fourth aspects and the first to fourth aspects.
[0055] In a thirteenth aspect, embodiments of the present application provide a chip system, comprising a processor and further comprising a memory, for implementing the functions of the method of any one of the possible implementations of aspects 1 to 4 above. The chip system may be composed of a chip, or may include a chip and other discrete devices.
[0056] In the fourteenth aspect, an embodiment of the present application also provides a computer program product, comprising instructions, which, when executed on a computer, enable the computer to execute the method of any possible implementation of the first to fourth aspects, and the first to fourth aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0057] FIG1 is a schematic diagram of a communication system provided by the present application;
[0058] FIG2 is a schematic diagram of an 8×8 polar code encoding;
[0059] FIG3 is a flow chart of a data processing method provided by the present application;
[0060] FIG4 is a schematic diagram of a stream encoding supporting stream decoding provided by the present application;
[0061] FIG5 is a schematic diagram of a stream encoding provided by the present application;
[0062] FIG6 is a flow chart of another data processing method provided by the present application;
[0063] FIG7 is a schematic diagram of a stream decoding method provided by the present application;
[0064] FIG8 is a performance analysis diagram of the data processing method provided by this application;
[0065] FIG9 is a schematic diagram of a device provided by the present application;
[0066] FIG10 is a schematic diagram of a communication device provided in this application. DETAILED DESCRIPTION
[0067] In this application, " / " can indicate that the objects associated with each other are in an "or" relationship. For example, A / B can mean A or B. "And / or" can be used to describe the existence of three relationships between the associated objects. For example, "A and / or B" can mean: A exists alone, A and B exists simultaneously, and B exists alone. A and B can be singular or plural. To facilitate the description of the technical solutions of this application, the words "first" and "second" may be used to distinguish between technical features with the same or similar functions. The words "first" and "second" do not limit the quantity or order of execution, and the words "first" and "second" do not necessarily mean different. In this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any design described as "exemplary" or "for example" should not be construed as preferred or advantageous over other designs. The use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete way to facilitate understanding.
[0068] The technical solution in this application will be described below in conjunction with the drawings in this application.
[0069] This application provides a data processing method that constructs a new coding matrix for Polar codes. This coding matrix is used to process the information bits to be encoded, thereby implementing stream encoding and / or stream decoding of Polar codes. This data processing method can be applied to a communication system, the system architecture of which is shown in Figure 1. The communication system includes network devices and terminal devices, and the network devices can provide communication services to the terminal devices.
[0070] The communication systems mentioned in this application include but are not limited to: narrowband Internet of Things (NB-IoT), global system for mobile communications (GSM), enhanced data rate for GSM evolution (EDGE), wideband code division multiple access (WCDMA), code division multiple access 2000 (CDMA2000), time division-synchronization code division multiple access (TD-SCDMA), long term evolution (LTE), and three major application scenarios of 5G mobile communication systems: enhanced mobile broadband (eMBB), ultra-reliable and low latency communications (URLLC), and enhanced machine-type communications (eMTC), as well as future communication systems (such as 6G / 7G, etc.).
[0071] Among them, the network device can be a device that can communicate with the terminal device. The network device can be a base station, a relay station or an access point. Among them, the base station can be a base transceiver station (BTS) in the global system for mobile communication (GSM) system or the code division multiple access (CDMA) network, or it can be a 3G base station NodeB in the wideband code division multiple access (WCDMA) system, or it can be an evolutionary NodeB (abbreviated as eNB or eNodeB) in the long term evolution (LTE) system. The network device can also be a satellite in a satellite communication system. The network device can also be a wireless controller in a cloud radio access network (CRAN) scenario. The network device can also be a network device in a 5G network or a network device (such as gNodeB) in a future evolved public land mobile network (PLMN) network. The network device may also be a wearable device, a drone, or a device in an Internet of Vehicles (e.g., vehicle to everything (V2X)), or a communication device in device to device (D2D) communication, or a network device used in future communication systems.
[0072] The terminal device may be user equipment (UE), access terminal, terminal unit, terminal station, mobile station, mobile station, remote station, remote terminal, mobile device, terminal, wireless communication device, terminal agent, or terminal apparatus, etc. The access terminal may be a cellular phone, a cordless phone, a session initiation protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device with wireless communication capabilities, a computing device or other processing device connected to a wireless modem, a wearable device, a drone, a V2X device, a D2D device, a terminal device in a 5G network, a terminal device in a future evolved PLMN network, or a terminal device in a future communication system, etc.
[0073] It is understood that the present application is a coding scheme that can be used in dedicated network equipment or general equipment, can be used in network equipment, and can also be used in various terminal devices. The present application can be implemented through a dedicated chip (such as an application specific integrated circuit (ASIC)), can also be implemented through a programmable chip (such as a field programmable gate array (FPGA)), and can also be implemented through software (program code in memory), and the present application does not limit this.
[0074] 1. Relevant concepts of this application
[0075] 1. Polar code:
[0076] Polar code is a channel coding scheme that can be rigorously proven to reach the channel capacity. Polar code has the characteristics of high performance, low complexity, and flexible matching methods. Currently, Polar code has been identified as the fifth generation mobile communication (the 5 th generation, 5G) control channel enhanced mobile broadband (eMBB) scenarios uplink and / or downlink control channel coding scheme.
[0077] For example, Figure 2 shows an 8×8 polar code encoding scheme, where the bits to be encoded are sorted by their reliability and arranged in different positions within the block to be encoded. Generally speaking, bits with higher reliability are set as information bits (data), while bits with lower reliability are set as fixed bits (frozen). The value of the fixed bits is usually set to 0 and is known to both the sender and receiver in actual transmission. As shown in Figure 2, u7, u6, u5, and u3 are the four bits with the highest reliability and are set as information bits; u4, u2, u1, and u0 are the four bits with the lowest reliability and are set as fixed bits.
[0078] Among them, Polar code is a linear block code. Its generator matrix is G N , the encoding process is in, G is a binary row vector with a length of N (i.e., code length). N is an N×N matrix, and in, It is defined as the Kronecker product of log2(N) matrices F2. For example, when N=4, log2(N)=log2(4)=2, then When N=8, log2(N)=log2(8)=3, then Therefore, the mother code length of the standard Polar code is N=2 n , n is a positive integer.
[0079] 2. A coding matrix G provided in this application:
[0080] The coding matrix provided by this application Among them, G is a n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n The Polar generator matrix is expressed as The matrix O is of size 2 n ×2 n An all-zero matrix.
[0081] That is to say, if the encoding matrix G is regarded as an m×m matrix, each element in the matrix is a 2 n ×2 n The matrix, each element in the diagonal of the matrix is the matrix G N′ , each element in the bottom side of the matrix is the matrix G N′ , all elements except the diagonal and base are matrix O.
[0082] The mother code length of the encoding matrix G is N′=m×2 n It can be understood that when m=1 or m=2, the encoding matrix G is the same as the encoding matrix of the common Polar code. When m≥3, the encoding matrix
[0083] 3. Another encoding matrix G′ provided by this application:
[0084] Performing elementary column transformation on the coding matrix G can obtain the transformed coding matrix It can be understood that the first (m-1)×2 n Column and back 2 n The encoding matrix G′ can be obtained by performing elementary column transformation on the columns. The same as the encoding matrix G is that the encoding matrix G′ is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n The Polar generator matrix is expressed as The matrix O is of size 2 n ×2n The mother code length of the coding matrix G′ is N′=m×2 n .
[0085] 4. F operation:
[0086] The F operation is the basic operation for decoding Polar codes, and is processed using a predefined F-function. The input of the F-function is L0 and L1, and the F-function can be simplified as follows:
[0087] f(L0,L1)=(sig(L0)∧sig(L1)?-1:1)*(abs(L0)>abs(L1)?abs(L1):abs(L0)),
[0088] Among them, sig is the sign operation. If the immediate value is greater than 0, the return value is 0, otherwise the return value is 1. abs is the absolute value operation. For example, suppose there are coded data x0 and x1 of length N'. m-1 , for x0 and x m-1 Perform F operation to compare x0 and x m-1 If the two are consistent, the immediate value is 1, otherwise it is -1.
[0089] 5. G operation:
[0090] The G operation is the basic operation for decoding Polar codes and uses a predefined G-function. The inputs to the G-function are L0, L1, and the feedback value B. The G-function is: g(L0, L1, B) = (B == 0)? L1 + L0: L1 - L0.
[0091] 2. Data Processing Method for Implementing Stream Coding Provided by This Application
[0092] 1. The process of implementing stream coding using the coding matrix G:
[0093] Figure 3 is a flow chart of a data processing method provided by the present application. The data processing method can be executed by a terminal device or a network device, and mainly performs an encoding process, including the following steps:
[0094] S101: Obtain an information bit sequence.
[0095] The information bit sequence includes multiple information bits to be encoded. For example, the information bit sequence can be represented as {a0, a1, a2, ..., a k-1}, an element in the information bit sequence represents a bit to be encoded. It is understandable that the length of the information bit sequence may not be the specified code length (for example, the length is not m×2 n), the information bit sequence can be processed (for example, frozen bits are inserted into the information bit sequence) so that the length of the coded data obtained after encoding the information bit sequence is N′=m×2 n .
[0096] It can also be understood that the bits to be encoded in the present application may also include cyclic redundancy check (CRC) bits and / or parity check (PC) bits, and may also involve operations such as scrambling some or even all of the bits. Since these operations are not actually relevant to the solution of the present application, they are all uniformly stated as bits to be encoded and will not be further described here.
[0097] S102: Encode the information bit sequence according to the encoding matrix G to obtain encoded data.
[0098] The description of the encoding matrix G can refer to the relevant concepts in the previous article and will not be repeated here. The following is an example to describe the encoding process. Assume that the information bit sequence is u={a0,a1,a2,...,a k-1}, the encoding process can be expressed as:
[0099]
[0100] Among them, u N is the information bit sequence, and u N Perform modular square multiplication with the encoding matrix G to obtain the encoded data x N , x N The length is m×2 n .
[0101] In one possible implementation, the information bit sequence can be divided into m segments, that is, the information bit sequence includes m segments, and the Polar generator matrix of each segment is G N′ . The length of each segment is 2 n , then each segment can be connected with a size of 2 n ×2 n Polar generator matrix G N′ By performing modular two multiplication operations and interleaving information between segments, coded data can be obtained. Specifically, using this implementation to encode the information bit sequence to obtain coded data includes two cases:
[0102] Case 1: The number of information bits in m segments is k0,k1,...,k m-1 , k0 is less than k m-1 , and k0≤k1≤...≤k m-1 .
[0103] Among them, k0 is the number of information bits in the 0th segment, k1 is the number of information bits in the 1st segment, and so on. m-1 is the number of information bits in the m-1th segment. Furthermore, the number of information bits in the 0th segment is less than the number of information bits in the m-1th segment, and the m-1th segment has the largest number of information bits (that is, the last segment includes the most information bits). In this case, the encoding process includes the following steps:
[0104] Get m cache data, where the jth cache data is obtained using matrix G N′ The value obtained by encoding the j-th segment of the information bit sequence, where j satisfies 0≤j≤m-1;
[0105] The encoded data consists of m segments,
[0106] Among them, the 0th segment of coded data is the m-1th cache data,
[0107] The i-th segment of coded data is obtained by performing an XOR operation on the j-th cache data and the m-1-th cache data, where i satisfies 1≤i≤m-1 and j satisfies 0≤j≤m-2.
[0108] For example, the terminal device first uses the matrix G N′ A modular two multiplication operation is performed on each segment in the information bit sequence to obtain m cache data, and then the m-1th cache data is XORed with the first m-2 cache data (for example, a modular two addition operation) to obtain the encoded data.
[0109] It can be understood that the encoding principle of encoding the information bit sequence using the encoding process described in Case 1 is similar to the encoding principle of encoding the information bit sequence using the encoding matrix G.
[0110] Case 2: The number of information bits in m segments is k0,k1,...,k m-1 , k1 is less than k0, and k1≤...≤k m-1 ≤k0.
[0111] Among them, k0 is the number of information bits in the 0th segment, k1 is the number of information bits in the 1st segment, and so on. m-1 is the number of information bits in the m-1th segment. Moreover, the number of information bits in the 0th segment is greater than the number of information bits in the 1st segment, and the number of information bits in the 0th segment is the largest (that is, the 1st segment includes the most information bits). In this case, the coded data includes m segments, where the 0th segment coded data is based on the matrix G N′The 0th segment of the information bit sequence is encoded; the i-th segment encoded data is obtained according to the matrix G N′ After encoding the i-th segment of the information bit sequence, it is XORed with the 0th segment of the encoded data to obtain .
[0112] For example, the terminal device first uses the matrix G N′ Perform a modular square operation on the 0th segment in the information bit sequence to obtain the 0th segment coded data, and then use the matrix G N′ A modular 2 multiplication operation is performed on the first segment of the information bit sequence, and the result of the operation is XORed with the 0th segment of the coded data (for example, a modular 2 addition operation) to obtain the first segment of the coded data. This is repeated until the m-1th segment of the coded data is obtained. It can be understood that the above encoding process can be regarded as a stream encoding process, that is, the encoder can receive the data to be encoded while encoding the received data to be encoded and sending it.
[0113] Optionally, the encoding matrix G′ corresponding to the encoding process described in Case 2 is obtained by performing an elementary column transformation on the encoding matrix G, where the encoding matrix That is, the encoding principle of encoding the information bit sequence using the encoding process described in Case 2 is similar to that of encoding the information bit sequence using the encoding matrix G.
[0114] S103, sending the encoded data.
[0115] If the encoding process described in S102 can implement stream encoding (e.g., scenario 2 described in S102), the terminal device can send a segment of encoded data after completing encoding, without having to wait until all bits in the information bit sequence are encoded before sending the entire encoded data. If the encoding process described in S102 is designed to implement stream decoding (e.g., scenario 1 described in S102), the terminal device sends the entire encoded data after all bits in the information bit sequence are encoded.
[0116] As can be seen, the data processing method provided in this application designs a new Polar code encoding matrix G. When a terminal device uses this encoding matrix G to encode information bits to be encoded, it can encode and transmit the encoded data after receiving a portion of the information bits during the encoding process. This implements stream coding, which helps reduce the size of the encoder and cache in the terminal device. Furthermore, using this encoding matrix to encode the information bits to be encoded to obtain encoded data facilitates stream decoding.
[0117] 2. Stream encoding process that supports stream decoding
[0118] FIG4 is a schematic diagram of a stream encoding supporting stream decoding provided by the present application. In which, the information bit sequence can be represented as {a0, a1, a2, ..., a k-1}, an element in the information bit sequence represents a bit to be coded. The information bit sequence is divided into m sub-segments, and k are allocated to each sub-segment. i The first k0 information bits received After inserting the freeze bit, we get Then With the matrix G N′ Performing modular square multiplication, we get Will Keep it in the cache. Using the same process for k0 information bits, we can get and will Keep in cache.
[0119] Please note that sending The order is:
[0120] First, As send;
[0121] Then, and After XOR, get and send
[0122] Secondly, and After XOR, get and send
[0123] By analogy, and After XOR, get and send
[0124] When the above sequence is completed, the stream encoding process is completed.
[0125] 3. Support stream encoding process
[0126] Figure 5 is a schematic diagram of a stream coding provided by this application. In which the information bit sequence can be represented as {a0, a1, a2, ..., a k-1}, an element in the information bit sequence represents a bit to be coded. The information bit sequence is divided into m sub-segments, and k are allocated to each sub-segment. i The first k0 information bits received After inserting the freeze bit, we get Then With the matrix GN′ Performing modular square multiplication, we get Will Keep a copy in the cache and As send.
[0127] The next k1 information bits received After inserting the freeze bit, we get Then With the matrix G N′ Performing modular square multiplication, we get Get from cache Will and After XOR, we get send Using the same process for k1 information bits, we can get and send After sending After that, delete the cache The stream encoding process is complete.
[0128] 3. Data Processing Method for Implementing Stream Decoding Provided by This Application
[0129] 1. Stream decoding process
[0130] FIG6 is a flow chart of another data processing method provided by the present application. This data processing method can be executed by a terminal device or a network device. It is understood that when the terminal device executes the data processing method described in the third section, that is, the terminal device is on the decoding side, and the network device executes the data processing method described in the second section, that is, the network device is on the encoding side. When executing the decoding process, the following steps are included:
[0131] S201, receiving coded data, where the coded data is obtained by encoding an information bit sequence according to a coding matrix G.
[0132] The description of the coding matrix G, the coded data, and the encoding of the information bit sequence according to the coding matrix G refers to the corresponding description in the second part of the previous text and is not repeated here. For example, to support stream decoding, the coded data can be obtained by encoding the information bit sequence based on the coding matrix G, or by encoding the information bit sequence according to the method described in case 1 in S102.
[0133] S202: Decode the encoded data to obtain decoded data.
[0134] The process of decoding the coded data is a stream decoding process. The terminal device can first decode the received coded data segment 0 and coded data segment 1. That is, after receiving a part of the information during the decoding process, the terminal device can decode the part of the information. Specifically, the following steps can be included:
[0135] s11, obtain the tag data corresponding to the 0th segment of the encoded data and the tag data corresponding to the 1st segment of the encoded data;
[0136] s12, performing an F operation on the label data corresponding to the 0th segment of the coded data and the label data corresponding to the 1st segment of the coded data to obtain the label data corresponding to the 1st segment of the coded data after the F operation;
[0137] s13, performing Polar code decoding on the marked data corresponding to the first segment of the coded data after the F operation to obtain decoded data corresponding to the first segment of the coded data;
[0138] s14, enhancing the marked data corresponding to the 0th segment of the coded data according to the marked data corresponding to the 1st segment of the coded data and the decoded data corresponding to the 1st segment of the coded data.
[0139] The labeled data corresponding to the 0th segment of the coded data is the log likelihood ratio (LLR) of the 0th segment of the coded data, and the labeled data corresponding to the 1st segment of the coded data is the LLR of the 1st segment of the coded data. The LLR of the 0th segment of the coded data and the LLR of the 1st segment of the coded data are used as inputs to the F function to obtain the labeled data corresponding to the 1st segment of the coded data after the F operation. The description of the F function is referred to above and will not be repeated here.
[0140] Among them, the method of performing Polar code decoding on the marked data corresponding to the first segment of coded data after the F operation can refer to the existing Polar code decoding method, and this application is not limited thereto. The LLR of the 0th segment of coded data, the LLR of the 1st segment of coded data, and the decoded data corresponding to the 1st segment of coded data are used as the input of the G function, thereby enhancing the marked data corresponding to the 0th segment of coded data, which is conducive to stream decoding based on the enhanced 0th segment of coded data in the subsequent decoding process. Among them, the description of the G function refers to the previous description and will not be repeated here.
[0141] In one possible implementation, the labeled data corresponding to the 0th segment of coded data can be the likelihood probability of the 0th segment of coded data, and the labeled data corresponding to the 1st segment of coded data can be the likelihood probability of the 1st segment of coded data. In this case, step s12 described above becomes: performing a probability operation on the labeled data corresponding to the 0th segment of coded data and the labeled data corresponding to the 1st segment of coded data to obtain the labeled data corresponding to the 1st segment of coded data in the probability domain. It is understood that the subsequent processing flow is still executed according to s13 and s14, and the labeled data corresponding to the 0th segment of coded data can be enhanced.
[0142] Furthermore, for each subsequent segment of coded data received, the processing method is similar to the above steps s11 to s14, and may include the following steps:
[0143] s15, obtain the tag data corresponding to the qth segment of coded data, where q is 2≤q≤m-1,
[0144] s16, performing an F operation on the label data corresponding to the qth segment of the coded data and the label data corresponding to the enhanced 0th segment of the coded data to obtain the label data corresponding to the qth segment of the coded data after the F operation;
[0145] s17, performing Polar code decoding on the marked data corresponding to the qth segment of coded data after the F operation to obtain decoded data corresponding to the qth segment of coded data;
[0146] s18, enhancing the mark data corresponding to the enhanced 0th segment of coded data according to the mark data corresponding to the qth segment of coded data and the decoded data corresponding to the qth segment of coded data.
[0147] For example, obtain the label data corresponding to the second segment of coded data, and perform an F operation on the label data corresponding to the second segment of coded data and the label data corresponding to the enhanced 0th segment of coded data to obtain the label data corresponding to the second segment of coded data after the F operation; perform Polar code decoding on the label data corresponding to the second segment of coded data after the F operation to obtain the decoded data corresponding to the second segment of coded data; perform secondary enhancement on the label data corresponding to the enhanced 0th segment of coded data based on the label data corresponding to the second segment of coded data and the decoded data corresponding to the second segment of coded data to obtain the label data corresponding to the second enhanced 0th segment of coded data. The specific implementation of the above steps can refer to the specific implementation corresponding to s11 to s14, which will not be repeated here.
[0148] It can be seen that after receiving the encoded data, the data processing method provided by the present application can support decoding of part of the information after receiving it during the decoding process, that is, stream decoding is realized, which can reduce the size of the decoder and thus reduce the overhead on the decoding side.
[0149] 2. A specific example of a stream decoding process
[0150] FIG7 is a schematic diagram of a stream decoding method provided by the present application. When receiving the 0th segment of coded data (length N′=2 n ), according to the description in the above embodiment, the 0th segment of coded data is the m-1th cache data, then the 0th segment of coded data is marked as Then cache it. for LLR of the transmitted data, This is what is described in the third section of the second part of the previous article. As send.
[0151] When receiving the first segment of coded data (length N′=2 n ), the first segment of coded data is the 0th cache data, then the first segment of coded data is marked as Afterwards, with Perform F operation (for example, using the f-function defined by Polar code) to obtain right Perform ordinary Polar code decoding to obtain decoded data right Perform G operation (such as g-function defined by Polar code) to obtain enhanced
[0152] When receiving the second segment of coded data (length N′=2 n ), the second segment of coded data is the first cached data, then the second segment of coded data is marked as Afterwards, with Perform F operation and get right Perform ordinary Polar code decoding to obtain decoded data right Perform G operation to obtain the secondary enhanced
[0153] It is understandable that the decoded data can be obtained by the same method. At the same time, it can be enhanced multiple times as the decoding proceeds. Finally, for multiple enhancements Perform ordinary polar code decoding to obtain decoded data The stream decoding process is completed.
[0154] IV. Performance Analysis of the Data Processing Method Provided in This Application
[0155] Figure 8 is a performance analysis diagram of the data processing method provided by the present application. The performance analysis diagram is a schematic diagram of the decoding performance obtained by using a simulated decoder with a code length of N′={128,512,2048} and a code rate of R=1 / 8, wherein the horizontal axis of the performance analysis diagram is EsN0, which represents the ratio of each symbol energy to the noise power spectrum density; the vertical axis is the block error rate (BLER), which is used to measure the system performance test. It can be understood that using the flow decoding process described in the third part of the previous article, the decoder only needs to receive two segments of encoded data (that is, N′×2 LLRs) to start decoding, so the size of the decoder can be designed to be N′×2.
[0156] Among them, the three line types, solid line, first dashed line, and second dashed line, are grouped together, which can be used to compare the difference in decoding performance when using decoders of different sizes and the same decoding method under the same information bit sequence, or when using decoders of the same size and different decoding methods.
[0157] The first group: the solid line with diamond symbols, the first dotted line and the second dotted line are the first group of decoding performance comparisons. Among them, assuming that the number of information bits in the information bit sequence is K=64, the transmission length E=K / R=64 / (1 / 8)=512; assuming that the decoder size is 256 or 512, the decoding method is to use the existing Polar code decoding or the stream decoding provided by this application. For example, the first dotted line with diamond symbols represents the decoding performance when the transmission length E=512, the decoder size is 512, the number of information bits is K=64, and the existing Polar code decoding is used; the solid line with diamond symbols represents the decoding performance when the transmission length E=512, the decoder size is 256, the number of information bits is K=64, and the stream decoding is used; the second dotted line with diamond symbols represents the decoding performance when the transmission length E=512, the decoder size is 256, the number of information bits is K=64, and the existing Polar code decoding is used. Comparing the first group shows that, given the same EsN0, stream decoding performs slightly worse than standard Polar codes, which use larger decoders (i.e., longer code lengths). However, stream decoding uses a smaller decoder, significantly reducing decoding overhead. Given the same EsN0 and decoder size, stream decoding performs better than standard Polar codes.
[0158] Group 2: The solid line with square symbols, the first dashed line, and the second dashed line are the second group of decoding performance comparisons. Assuming the number of information bits in the information bit sequence is K = 256, the transmission length E = K / R = 256 / (1 / 8) = 2048; assuming the decoder size is 1024 or 2048, and the decoding method uses existing Polar code decoding or the stream decoding provided by this application. For example, the first dashed line with square symbols represents the decoding performance when using a transmission length of E = 2048, a decoder size of 2048, and information bits of K = 256, using existing Polar codes. The solid line with square symbols represents the decoding performance when using a transmission length of E = 2048, a decoder size of 1024, and information bits of K = 256, using stream decoding. The second dashed line with square symbols represents the decoding performance when using a transmission length of E = 2048, a decoder size of 2048, and information bits of K = 256, using existing Polar codes. Comparing the second group shows that, for the same EsN0, the decoding performance of stream decoding is slightly worse than that of ordinary Polar codes with larger decoders (i.e., longer code lengths). However, stream decoding uses a smaller decoder, significantly reducing decoding overhead. Under the same EsN0 and the same decoder size, the decoding performance of stream decoding is better than that of ordinary Polar code.
[0159] Group 3: The solid line with an asterisk, the first dashed line, and the second dashed line are comparisons of the decoding performance of the second group. Assuming the number of information bits in the information bit sequence is K = 1024, the transmission length E = K / R = 1024 / (1 / 8) = 8192; assuming the decoder size is 4096 or 8192, and the decoding method uses existing Polar code decoding or the stream decoding provided by this application. For example, the first dashed line with square symbols represents the decoding performance when using a transmission length of E = 8192, a decoder size of 8192, and information bits of K = 1024, using existing Polar codes. The solid line with asterisks represents the decoding performance when using a transmission length of E = 8192, a decoder size of 4096, and information bits of K = 1024, using stream decoding. The second dashed line with asterisks represents the decoding performance when using a transmission length of E = 8192, a decoder size of 8192, and information bits of K = 1024, using existing Polar codes. Comparing the third group shows that, for the same EsN0, the decoding performance of stream decoding is slightly worse than that of ordinary Polar codes with larger decoders (i.e., longer code lengths). However, stream decoding uses a smaller decoder, significantly reducing decoding overhead. Under the same EsN0 and the same decoder size, the decoding performance of stream decoding is better than that of ordinary Polar code.
[0160] In order to realize the various functions in the method provided by the present application, the device or equipment provided by the present application may include a hardware structure and / or a software module, and realize the above-mentioned various functions in the form of a hardware structure, a software module, or a hardware structure plus a software module. Whether a certain function among the above-mentioned functions is executed in the form of a hardware structure, a software module, or a hardware structure plus a software module depends on the specific application and design constraints of the technical solution. The division of modules in the present application is schematic and is only a logical function division. There may be other division methods in actual implementation. In addition, the various functional modules in the various embodiments of the present application can be integrated into a processor, or they can exist physically separately, or two or more modules can be integrated into one module. The above-mentioned integrated modules can be implemented in the form of hardware or in the form of software functional modules.
[0161] Figure 9 is a schematic diagram of an apparatus provided by the present application. The apparatus may include modules that execute the methods / operations / steps / actions described in the method embodiments corresponding to Figures 3 to 7 . The modules may be implemented as hardware circuits, software, or a combination of hardware circuits and software. For example, the apparatus may be referred to as a data processing apparatus or a communication apparatus.
[0162] The apparatus includes a communication unit 901 and a processing unit 902, and is used to implement the method executed by the terminal device or the network device in the above embodiment.
[0163] In a possible implementation, the processing unit 902 is configured to obtain an information bit sequence and encode the information bit sequence according to the encoding matrix G to obtain encoded data. G is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n Polar generator matrix, matrix O is of size 2 n ×2 n The communication unit 901 is used to send encoded data.
[0164] Optionally, the information bit sequence includes m segments, and the Polar generator matrix of each segment is G N′ .
[0165] Optionally, the number of information bits in m segments is k0,k1,...,k m-1 , where k0 is less than k m-1 , and k0≤k1≤...≤k m-1 .
[0166] Optionally, the number of information bits in the i-th segment is k i , the i satisfies 0≤i≤m-1.
[0167] Optionally, the processing unit 902 is configured to obtain m cache data, wherein the jth cache data is obtained by using the matrix G N′ The j-th segment of the information bit sequence is encoded, where j satisfies 0≤j≤m-1; the encoded data includes m segments, wherein the 0-th segment of the encoded data is the m-1-th cache data, and the i-th segment of the encoded data is obtained by XORing the j-th cache data with the m-1-th cache data, i satisfies 1≤i≤m-1, and j satisfies 0≤j≤m-2.
[0168] Optionally, the communication unit 901 is configured to first send the m-1th cached data, and then sequentially send the i-th segment of encoded data, where 1≤i≤m-1.
[0169] Optionally, the processing unit 902 is configured to perform elementary column transformation on the coding matrix G. The transformed coding matrix The information bit sequence is encoded according to the transformed encoding matrix G′ to obtain encoded data.
[0170] Optionally, the number of information bits in m segments is k0,k1,...,k m-1 , k1 is less than k0, and k1≤...≤k m-1 ≤k0.
[0171] Optionally, the coded data includes m segments, wherein the coded data of segment 0 is based on the matrix G N′ The 0th segment of the information bit sequence is encoded; the i-th segment encoded data is obtained according to the matrix G N′ After encoding the i-th segment of the information bit sequence, it is XORed with the 0th segment of the encoded data to obtain .
[0172] The specific execution process of the communication unit 901 and the processing unit 902 in this embodiment can also refer to the description of the method embodiments corresponding to Figures 3 to 7, and will not be repeated here. The data processing method implemented by this device designs a new Polar code encoding matrix G. When the terminal device uses this encoding matrix G to encode the information bits to be encoded, it can encode the information bits after receiving a portion of the information bits during the encoding process and send the encoded data, that is, it implements stream coding, which is beneficial to reducing the size of the encoder and cache in the terminal device. In addition, using this encoding matrix to encode the information bits to be encoded to obtain encoded data is beneficial to implement stream decoding.
[0173] In another possible implementation, the processing unit 902 is configured to obtain an information bit sequence, the information bit sequence including m segments, and using the Polar generator matrix G of each segment. N′ Process each segment to obtain m cache data, where the matrix G N′ For size 2 n ×2 n Polar generator matrix. The processing unit 902 is further configured to obtain coded data based on the m cached data. The coded data includes m segments, where the 0th segment of coded data is the m-1th cached data, and the i-th segment of coded data is obtained by performing an exclusive-OR operation on the jth cached data and the m-1th cached data, where i satisfies 1≤i≤m-1 and j satisfies 0≤j≤m-2. The communication unit 901 is configured to send the coded data.
[0174] Optionally, the number of information bits in m segments is k0,k1,...,k m-1 , where k0 is less than k m-1 , and k0≤k1≤...≤k m-1 .
[0175] Optionally, the number of information bits in the i-th segment is k i , the i satisfies 0≤i≤m-1.
[0176] Optionally, the processing unit 902 is configured to encode the information bit sequence according to the encoding matrix G to obtain encoded data. The encoding matrix G is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n Polar generator matrix, matrix O is of size 2 n ×2 n An all-zero matrix.
[0177] The specific execution process of the communication unit 901 and the processing unit 902 in this embodiment can also refer to the description of the method embodiments corresponding to Figures 3 to 7, which will not be repeated here. The data processing method implemented by the device divides the information bit sequence to be encoded into m segments, and uses a size of 2 for each segment. n ×2 n The Polar generator matrix is used for encoding and information interleaving, and the encoded data is sent interleaved, which is conducive to stream decoding.
[0178] In another possible implementation, the processing unit 902 is configured to obtain an information bit sequence, the information bit sequence including m segments, and using the Polar generator matrix G of each segment. N′ Each segment is processed to obtain the encoded data. Among them, the matrix G N′ For size 2 n ×2 n Polar generator matrix, the coded data includes m segments, the 0th segment coded data is based on the matrix G N′ The 0th segment of the information bit sequence is encoded; the i-th segment encoded data is obtained according to the matrix G N′ After encoding the i-th segment of the information bit sequence, XOR processing is performed with the 0-th segment of the encoded data to obtain the communication unit 901, which is used to send the encoded data.
[0179] Optionally, the number of information bits in m segments is k0,k1,...,k m-1 , k1 is less than k0, and k1≤...≤k m-1 ≤k0.
[0180] Optionally, the number of information bits in the i-th segment is k i , the i satisfies 0≤i≤m-1.
[0181] Optionally, the processing unit 902 is configured to encode the information bit sequence according to the encoding matrix G′ to obtain encoded data. The encoding matrix G′ is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n Polar generator matrix, matrix O is of size 2 n ×2 n An all-zero matrix.
[0182] The specific execution process of the communication unit 901 and the processing unit 902 in this embodiment can also refer to the description of the method embodiments corresponding to Figures 3 to 7, which will not be repeated here. The data processing method implemented by the device divides the information bit sequence to be encoded into m segments, and uses a size of 2 for each segment. n ×2 n The Polar generation matrix is used for encoding and information interleaving, which can support encoding and sending part of the information after receiving it during the encoding process (that is, achieving the purpose of supporting stream coding), reducing the size of the encoder and cache.
[0183] In another possible implementation, the communication unit 901 is used to receive coded data, and the processing unit 902 is used to decode the coded data to obtain decoded data. The coded data is obtained by encoding the information bit sequence according to the coding matrix G. The encoding matrix G is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ Generate a Polar matrix of size 2n×2n, matrix O is of size 2 n ×2 n An all-zero matrix.
[0184] Optionally, the processing unit 902 is used to obtain the label data corresponding to the 0th segment of the coded data and the label data corresponding to the 1st segment of the coded data, perform F operation on the label data corresponding to the 0th segment of the coded data and the label data corresponding to the 1st segment of the coded data, and obtain the label data corresponding to the 1st segment of the coded data after the F operation; and perform Polar code decoding on the label data corresponding to the 1st segment of the coded data after the F operation to obtain the decoded data corresponding to the 1st segment of the coded data; and then enhance the label data corresponding to the 0th segment of the coded data according to the label data corresponding to the 1st segment of the coded data and the decoded data corresponding to the 1st segment of the coded data.
[0185] Optionally, the processing unit 902 is configured to obtain label data corresponding to the qth segment of coded data, where q is 2≤q≤m-1, perform an F operation on the label data corresponding to the qth segment of coded data and the label data corresponding to the enhanced 0th segment of coded data to obtain the label data corresponding to the qth segment of coded data after the F operation, perform Polar code decoding on the label data corresponding to the qth segment of coded data after the F operation to obtain decoded data corresponding to the qth segment of coded data. Furthermore, the label data corresponding to the enhanced 0th segment of coded data is enhanced based on the label data corresponding to the qth segment of coded data and the decoded data corresponding to the qth segment of coded data.
[0186] The specific execution process of the communication unit 901 and the processing unit 902 in this embodiment can also refer to the description of the method embodiments corresponding to Figures 3 to 7, and will not be repeated here. The data processing method implemented by this device can support decoding of part of the information after receiving it during the decoding process, thereby reducing the size of the decoder.
[0187] The following describes a device including the multiple functional units shown in Figure 9. The device described in this application includes the multiple functional units shown in Figure 9. Figure 10 is a schematic diagram of a communication device provided in this application, which is used to implement the data processing method in the above method embodiment. The communication device 1000 can also be a chip system. It is understood that the communication device 1000 can be, for example, a terminal device or a network device.
[0188] Communication device 1000 includes a communication interface 1001 and a processor 1002. Communication interface 1001 may be, for example, a transceiver, an interface, a bus, a circuit, or a device capable of performing transceiver functions. Communication interface 1001 is used to communicate with other devices via a transmission medium, thereby enabling device 1000 to communicate with other devices. Processor 1002 is used to execute processing-related operations.
[0189] In a possible implementation, the processor 1002 is configured to obtain an information bit sequence and encode the information bit sequence according to the encoding matrix G to obtain encoded data. G is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n Polar generator matrix, matrix O is of size 2 n ×2 n The communication interface 1001 is used to send encoded data.
[0190] The specific execution process of the communication interface 1001 and the processor 1002 in this embodiment can also refer to the description of the first aspect and the method embodiments corresponding to Figures 3 to 7, and will not be repeated here. The data processing method implemented by this communication device designs a new Polar code encoding matrix G. When the terminal device uses this encoding matrix G to encode the information bits to be encoded, it can encode the information bits after receiving them during the encoding process and send the encoded data. This is to achieve stream coding, which is beneficial to reducing the size of the encoder and cache in the terminal device. In addition, using this encoding matrix to encode the information bits to be encoded to obtain encoded data is beneficial to achieve stream decoding.
[0191] In another possible implementation, the processor 1002 is configured to obtain an information bit sequence, the information bit sequence including m segments, and using the Polar generator matrix G of each segment. N′ Process each segment to obtain m cache data, where the matrix G N′ For size 2n ×2 n Polar generator matrix. Processor 1002 is further configured to obtain coded data based on m cached data. The coded data includes m segments, where segment 0 of coded data is the m-1th cached data, and segment i of coded data is obtained by performing an exclusive-OR operation on the jth cached data and the m-1th cached data, where i satisfies 1≤i≤m-1 and j satisfies 0≤j≤m-2. Communication interface 1001 is configured to transmit the coded data.
[0192] The specific execution process of the communication interface 1001 and the processor 1002 in this embodiment can also refer to the description of the second aspect and the method embodiments corresponding to Figures 3 to 7, which will not be repeated here. The data processing method implemented by the communication device divides the information bit sequence to be encoded into m segments, and uses a size of 2 for each segment. n ×2 n The Polar generator matrix is used for encoding and information interleaving, and the encoded data is sent interleaved, which is conducive to stream decoding.
[0193] In another possible implementation, the processor 1002 is configured to obtain an information bit sequence, the information bit sequence including m segments, and using the Polar generator matrix G of each segment. N′ Each segment is processed to obtain the encoded data. Among them, the matrix G N′ For size 2 n ×2 n Polar generator matrix, the coded data includes m segments, the 0th segment coded data is based on the matrix G N′ The 0th segment of the information bit sequence is encoded; the i-th segment encoded data is obtained according to the matrix G N′ After encoding the i-th segment of the information bit sequence, the information bit sequence is XORed with the 0-th segment of the encoded data to obtain the information bit sequence. The communication interface 1001 is used to send the encoded data.
[0194] The specific execution process of the communication interface 1001 and the processor 1002 in this embodiment can also refer to the description of the third aspect and the method embodiments corresponding to Figures 3 to 7, which will not be repeated here. The data processing method implemented by the communication device divides the information bit sequence to be encoded into m segments, and uses a size of 2 for each segment. n ×2 n The Polar generation matrix is used for encoding and information interleaving, which can support encoding and sending part of the information after receiving it during the encoding process (that is, achieving the purpose of supporting stream coding), reducing the size of the encoder and cache.
[0195] In another possible implementation, the communication interface 1001 is used to receive coded data, and the processor 1002 is used to decode the coded data to obtain decoded data. The coded data is obtained by encoding the information bit sequence according to the coding matrix G. The encoding matrix G is of size (m×2 n )×(m×2 n ), m and n are positive integers, the matrix G N′ For size 2 n ×2 n Polar generator matrix, matrix O is of size 2 n ×2 n An all-zero matrix.
[0196] The specific execution process of the communication interface 1001 and the processor 1002 in this embodiment can also refer to the description of the fourth aspect and the method embodiments corresponding to Figures 3 to 7, and will not be repeated here. The data processing method implemented by the communication device can support decoding of a portion of information after receiving the portion of information during the decoding process, thereby reducing the size of the decoder.
[0197] Optionally, the communication device 1000 may further include at least one memory 1003 for storing program instructions and / or data. In one embodiment, the memory and the processor are coupled. Coupling in this application is an indirect coupling or communication connection between devices, units, or modules, which may be electrical, mechanical, or other forms, and is used for information exchange between devices, units, or modules. The processor may operate in conjunction with the memory. The processor may execute program instructions stored in the memory. The at least one memory and the processor are integrated together.
[0198] The specific connection medium between the communication interface, processor, and memory described above is not limited in this application. For example, the memory, processor, and communication interface are connected via a bus. Bus 1004 is represented by a bold line in Figure 10 . The connection methods between other components are merely illustrative and not limiting. The bus can be categorized as an address bus, a data bus, a control bus, etc. For ease of illustration, Figure 10 uses only a single bold line, but this does not imply that there is only one bus or only one type of bus.
[0199] In this application, a processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, and may implement or execute the methods, steps, and logic block diagrams disclosed in this application. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in this application may be directly executed by a hardware processor, or by a combination of hardware and software modules within the processor.
[0200] In the present application, the memory may be a non-volatile memory, such as a hard disk drive (HDD) or a solid-state drive (SSD), or a volatile memory, such as a random-access memory (RAM). The memory is any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory in the present application may also be a circuit or any other device that can implement a storage function, for storing program instructions and / or data.
[0201] The present application provides a communication device, which is composed of an input and output interface and a logic circuit. The input and output interface is used to input or output data; the logic circuit processes the data according to the methods in the embodiments corresponding to Figures 3 to 7 to obtain processed data.
[0202] The present application provides a communication device, which is composed of an input and output interface and a logic circuit. The input and output interface is used to input or output data; the logic circuit processes the data according to the methods in the embodiments corresponding to Figures 3 to 7 to obtain processed data.
[0203] The present application provides a communication system, which includes a terminal device and a network device as shown in the embodiments corresponding to Figures 3 to 7.
[0204] The present application provides a computer-readable storage medium. The computer-readable storage medium stores a program or instruction. When the program or instruction is executed on a computer, the computer executes the data processing method in the embodiments corresponding to Figures 3 to 7.
[0205] The present application provides a computer program product. The computer program product includes instructions. When the instructions are executed on a computer, the computer executes the data processing method in the embodiments corresponding to Figures 3 to 7.
[0206] The present application provides a chip or chip system, which includes at least one processor and an interface, the interface and the at least one processor are interconnected through lines, and the at least one processor is used to run computer programs or instructions to execute the data processing methods in the embodiments corresponding to Figures 3 to 7.
[0207] The interface in the chip may be an input / output interface, a pin, or a circuit.
[0208] The chip system may be a system on chip (SOC) or a baseband chip, wherein the baseband chip may include a processor, a channel encoder, a digital signal processor, a modem, an interface module, and the like.
[0209] In one implementation, the chip or chip system described above in this application further includes at least one memory, in which instructions are stored. The memory may be a storage unit within the chip, such as a register, a cache, etc., or a storage unit of the chip (e.g., a read-only memory, a random access memory, etc.).
[0210] The technical solutions provided in this application can be implemented in whole or in part through software, hardware, firmware, or any combination thereof. When implemented using software, they can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in this application are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a terminal device, 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 can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a digital video disc (DVD)), or a semiconductor medium.
[0211] In this application, under the premise that there is no logical contradiction, the various embodiments may reference each other, for example, the methods and / or terms between method embodiments may reference each other, for example, the functions and / or terms between device embodiments may reference each other, for example, the functions and / or terms between device embodiments and method embodiments may reference each other.
[0212] Obviously, those skilled in the art may make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include these modifications and variations.
Claims
1. A data processing method, characterized in that: include: obtaining an information bit sequence; Encoding the information bit sequence according to the encoding matrix G to obtain encoded data; The encoding matrix The size of G is (m×2 n )×(m×2 n ), said m and said n are positive integers, The matrix G N′ For size 2 n ×2 n The Polar generator matrix, The matrix O is of size 2 n ×2 n An all-zero matrix; The encoded data is transmitted.
2. The method according to claim 1, characterized in that The information bit sequence includes m segments, and the Polar generator matrix of each segment is G N′ .
3. The method according to claim 2, characterized in that The number of information bits in the m segments is k0, k1, ..., k m-1 , The k0 is smaller than the k m-1 , and k0≤k1≤...≤k m-1 .
4. The method according to claim 2 or 3, characterized in that The number of information bits in the i-th segment is k i , the i satisfies 0≤i≤m-1.
5. The method according to claim 4, characterized in that The encoding of the information bit sequence according to the encoding matrix G to obtain encoded data includes: Get m cache data, where the jth cache data is obtained by using the matrix G N′ obtained by encoding the j-th segment of the information bit sequence, where j satisfies 0≤j≤m-1; The coded data includes m segments, Among them, the 0th segment of coded data is the m-1th cache data, The i-th segment of coded data is obtained by performing an XOR process on the j-th cache data and the m-1-th cache data, where i satisfies 1≤i≤m-1 and j satisfies 0≤j≤m-2.
6. The method according to any one of claims 2 to 5, characterized in that The sending of the encoded data comprises: Send the m-1th cache data, Then, the i-th segment of coded data is sent sequentially, where i satisfies 1≤i≤m-1.
7. The method according to claim 1, characterized in that The method further comprises: Perform elementary column transformation on the coding matrix G, and the transformed coding matrix The information bit sequence is encoded according to the transformed encoding matrix G′ to obtain encoded data.
8. The method according to claim 2 or 7, characterized in that The number of information bits in the m segments is k0, k1, ..., k m-1 , The k1 is smaller than the k0, and k1≤...≤k m-1 ≤k0.
9. The method according to claim 8, characterized in that The coded data includes m segments, Among them, the 0th segment coded data is based on the matrix G N′ obtained by encoding the 0th segment of the information bit sequence; The i-th segment of coded data is based on the matrix G N′ After encoding the i-th segment of the information bit sequence, it is XORed with the 0-th segment of the encoded data to obtain.
10. A data processing method, characterized in that: include: receiving coded data, wherein the coded data is obtained by encoding an information bit sequence according to a coding matrix G, The encoding matrix The encoding matrix G is of size (m×2 n ) × (m×2 n ), said m and said n are positive integers, The matrix G N′ For size 2 n ×2 n The Polar generator matrix, The matrix O is of size 2 n ×2 n An all-zero matrix; The encoded data is decoded to obtain decoded data.
11. The method according to claim 10, characterized in that The information bit sequence includes m segments, and the Polar generator matrix of each segment is G N′ .
12. The method according to claim 10 or 11, characterized in that The decoding of the encoded data to obtain decoded data includes: Get the tag data corresponding to the 0th segment of the encoded data and the tag data corresponding to the 1st segment of the encoded data, Performing an F operation on the tag data corresponding to the 0th segment of the coded data and the tag data corresponding to the 1st segment of the coded data to obtain the tag data corresponding to the 1st segment of the coded data after the F operation, Perform Polar code decoding on the marked data corresponding to the first segment of the coded data after the F operation to obtain the decoded data corresponding to the first segment of the coded data; The marked data corresponding to the 0th segment of the coded data is enhanced according to the marked data corresponding to the 1st segment of the coded data and the decoded data corresponding to the 1st segment of the coded data.
13. The method according to claim 12, characterized in that The method further comprises: Obtain the tag data corresponding to the qth segment of coded data, where q is 2≤q≤m-1; Performing an F operation on the label data corresponding to the qth segment of coded data and the label data corresponding to the enhanced 0th segment of coded data to obtain label data corresponding to the qth segment of coded data after the F operation; Perform Polar code decoding on the labeled data corresponding to the qth segment of coded data after the F operation to obtain decoded data corresponding to the qth segment of coded data; The mark data corresponding to the enhanced 0th segment of coded data is enhanced according to the mark data corresponding to the qth segment of coded data and the decoded data corresponding to the qth segment of coded data.
14. A data processing method, characterized in that: include: Obtaining an information bit sequence, where the information bit sequence includes m segments; Use the Polar generator matrix G of each segment N′ Process each segment to obtain m cache data. Among them, the matrix G N′ For size 2 n ×2 n Polar generator matrix; Based on m cached data, the encoded data is obtained. sending the encoded data, Among them, the encoded data includes m segments, among which the 0th segment of encoded data is the m-1th cache data, and the i-th segment of encoded data is obtained by XORing the jth cache data with the m-1th cache data, and the i satisfies 1≤i≤m-1, and the j satisfies 0≤j≤m-2.
15. The method according to claim 14, characterized in that The number of information bits in the m segments is k0, k1, ..., k m-1 , The k0 is smaller than the k m-1 , and k0≤k1≤...≤k m-1 .
16. The method according to claim 15, characterized in that The number of information bits in the i-th segment is k i , the i satisfies 0≤i≤m-1.
17. The method according to any one of claims 14 to 16, characterized in that The obtaining of the encoded data comprises: According to the coding matrix Encode the information bit sequence to obtain the encoded data, The size of G is (m×2 n )×(m×2 n ), said m and said n are positive integers, The matrix G N′ For size 2 n ×2 n The Polar generator matrix, The matrix O is of size 2 n ×2 n An all-zero matrix.
18. A data processing method, characterized in that: include: Obtain an information bit sequence, the information bit sequence includes m segments, Use the Polar generator matrix G of each segment N′ Process each segment to obtain encoded data; sending the encoded data; Among them, the matrix G N′ For size 2 n ×2 n The Polar generator matrix, The coded data includes m segments, and the 0th segment of coded data is based on the matrix G N′ The 0th segment of the information bit sequence is encoded; the i-th segment encoded data is obtained according to the matrix G N′ After encoding the i-th segment of the information bit sequence, it is XORed with the 0-th segment of the encoded data to obtain.
19. The method according to claim 18, characterized in that The number of information bits in the m segments is k0, k1, ..., k m-1 , The k1 is smaller than the k0, and k1≤...≤k m-1 ≤k0.
20. The method according to claim 18 or 19, characterized in that The obtaining of the encoded data comprises: According to the coding matrix Encode the information bit sequence to obtain the encoded data, The G′ is a matrix with a size of (m×2 n )×(m×2 n ), said m and said n are positive integers, The matrix G N′ For size 2 n ×2 n The Polar generator matrix, The matrix O is of size 2 n ×2 n An all-zero matrix.
21. A data processing device, characterized in that: The method comprises units or modules for executing the method according to any one of claims 1 to 20.
22. A communication device, characterized in that: include: memory and processor; The memory is used to store instructions; The processor is configured to execute the instructions so that the method according to any one of claims 1 to 20 is performed.
23. A communication system, characterized in that: include: A sending end, configured to execute the method according to any one of claims 1 to 9 or 14 to 17 or 18 to 20; A receiving end, configured to execute the method according to any one of claims 10 to 13.
24. A chip, characterized in that: Including processor and interface; The processor is configured to read instructions to execute the method according to any one of claims 1 to 20.
25. A communication device, characterized in that: The communication device is composed of an input / output interface and a logic circuit, wherein the input / output interface is used to input or output data; the logic circuit processes the data according to the method described in any one of claims 1 to 9 or 14 to 17 or 18 to 20 to obtain the processed data.
26. A communication device, characterized in that: The communication device is composed of an input / output interface and a logic circuit, wherein the input / output interface is used to input or output data; the logic circuit processes the data according to the method according to any one of claims 10 to 13 to obtain the processed data.
27. A computer-readable storage medium, characterized in that The method comprises a program or an instruction, and when the program or the instruction is run on a computer, the method according to any one of claims 1 to 20 is executed.