Rate matching method and communication device
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-28
- Publication Date
- 2026-03-10
AI Technical Summary
In the process of rate matching in the prior art, when the transmission code length E is small, the decoding performance will have poor performance points, resulting in poor decoding.
By interleaving the first codeword sequence, a second codeword sequence is obtained, and then holed the second codeword sequence from behind to front to improve the code distance characteristics and thereby improve the decoding performance.
This method can improve the code distance characteristics during the rate matching process, reduce the probability of performance failure points, and improve the decoding performance.
Smart Images

Figure CN121646884A_ABST
Abstract
Description
Rate matching method and communication device Technical Field
[0001] The embodiments of the present application relate to the field of channel coding, and more specifically, to a rate matching method and a communication device. Background Art
[0002] Long term evolution (LTE) Reed-Muller (RM) code is a method used in the existing new radio (NR) standard to encode small packets (or ultra-short messages, small code blocks) of 3 to 11 bits. The specific encoding process is as follows. Assume that the packet sequence / ultra-short message sequence before encoding is c0, c1, ..., c K-1 (3≤K≤11), the codeword sequence after LTE-RM code encoding is d0,d1,…,d N-1 , where N = 32. When the length E of the codeword sequence actually transmitted is smaller than the encoded codeword sequence d0, d1, ..., d N-1 When the length is N, the corresponding rate matching method is: for the codeword sequence d0, d1, ..., d N-1 Punch from back to front, specifically, from the codeword sequence d0,d1,…,d N-1 Starting from the last bit of , bits at consecutive (32-E) bit positions are punctured. However, when the value of E is small, that is, when a large number of punctures are required, the output sequence after rate matching will have performance defects and poor decoding performance.
[0003] Summary of the Invention
[0004] The embodiment of the present application provides a rate matching method, which can improve the code distance characteristics after the first codeword sequence is punctured, thereby improving the decoding performance.
[0005] In a first aspect, a rate matching method is provided, comprising: encoding a sequence to be encoded based on a first coding sequence to obtain a first codeword sequence with a length of 32 bits, where the first coding sequence is a basic sequence corresponding to packet encoding; interleaving the first codeword sequence to obtain a second codeword sequence; puncturing the second codeword sequence based on a value E to obtain a third codeword sequence, where the value E indicates the number of bits of the second codeword sequence after rate matching, and E is a positive integer less than 32; and outputting the third codeword sequence.
[0006] In the above technical solution, before rate matching is performed on the first codeword sequence, the first codeword sequence is first interleaved based on the first coding sequence. This can improve the code distance characteristics of the first codeword sequence after puncturing, making the Hamming distance between different legal codewords as large as possible, thereby reducing the probability of the decoder misdecoding a legal codeword into another legal codeword, that is, improving the decoding performance and reducing the probability of performance failure points. The code distance refers to the Hamming distance between two codewords. For example, after encoding message 1 (i.e., sequence #1 to be encoded), a codeword of length 4 is obtained as C1 = [0 0 0 0], and after encoding message 2 (i.e., sequence #2 to be encoded), another codeword of length 4 is obtained as C2 = [0 0 1 1]. The code distance between these two codewords is the number of different elements at the corresponding positions of C1 and C2. The code distance between C1 and C2 is 2. If interleaving is not performed before puncturing, and puncturing is performed directly from back to front, assuming that two positions are punctured, the corresponding codewords of C1 and C2 after puncturing are C1′ = [0 0] and C2′ = [0 0]. After puncturing, the code distance of the two codewords is 0, which is exactly the same. Therefore, the decoder cannot distinguish whether the sender sent message 1 or message 2. However, if C1 and C2 are interleaved, and the first two elements are interleaved to the 3rd and 4th bits, C1 becomes [0 0 0 0] and C2 becomes [1 1 0 0]. Then, 2 bits are punctured from back to front, then C1″=[0 0], C2″=[1 1]. The code distance after puncturing is 2, and the decoder can easily distinguish whether the sender sends message 1 or message 2, thereby improving the decoding performance after puncturing.
[0007] In certain implementations of the first aspect, interleaving the first codeword sequence includes: interleaving the first codeword sequence based on a first interleaving pattern, wherein the first interleaving pattern is used to reset positions of some or all of the 32 bits of the first codeword sequence.
[0008] In certain implementations of the first aspect, the first coding sequence is a matrix of 32 rows and 11 columns, and the first coding sequence is shown in the following table.
[0009] In certain implementations of the first aspect, the length of the sequence to be encoded is K, and when K is any value from 3 to 11, the first interleaving pattern is as shown in Table #1 or Table #2 below.
[0010] Table #1
[0011] Table #2
[0012] Wherein, i represents the i+1th position of the second codeword sequence, P(i) represents placing the bit at the P(i)+1th position of the first codeword sequence at the i+1th position of the second codeword sequence, and 0≤i≤31.
[0013] It is understood that the second codeword sequence is determined based on the first interleaving pattern. When the second codeword sequence needs to be punctured, it needs to be punctured from back to front. Therefore, the interleaving pattern in this application can also be understood as a puncturing sequence. The puncturing sequence and interleaving pattern in this application can be used interchangeably.
[0014] The first interleaving pattern corresponding to Table #1 and Table #2 can be a K-nested puncturing sequence, which means that multiple sequences to be encoded with different lengths use the same puncturing sequence for rate matching, wherein multiple sequences to be encoded with different lengths refer to sequences with lengths of 3 to 11.
[0015] In the above technical solution, the first codeword sequence is interleaved based on Table #1 and Table #2 to obtain a second codeword sequence. The second codeword sequence is then punctured (32-E) times from back to front, ensuring that the output sequence after rate matching (i.e., the third codeword sequence) has no performance degradation. In addition, since performance degradation only occurs when the number of punctures exceeds 12 when puncturing the first codeword sequence, interleaving can be performed only on the first 20 positions of the first codeword sequence. Therefore, the present application proposes an interleaving pattern based on Table #3. Based on this interleaving pattern, the bits in the last 12 bit positions of the second codeword sequence can be the same as the bits in the last 12 bit positions of the first codeword sequence, and the bits in the remaining positions are interleaved. Compared with interleaving bits in all positions, this interleaving pattern can reduce implementation complexity.
[0016] In the above technical solutions, the interleaving patterns given in Table 2 or Table 3 can improve decoding performance and avoid performance degradation.
[0017] In certain implementations of the first aspect, the length of the sequence to be encoded is K,
[0018] When K is equal to 3, the first interleaving pattern is shown in Table #3.
[0019] Table #3
[0020] or,
[0021] When K is equal to 4, the first interleaving pattern is shown in Table #4.
[0022] Table #4
[0023] or,
[0024] When K is equal to 5, the first interleaving pattern is shown in Table #5.
[0025] Table #5
[0026] or,
[0027] When K is equal to 6, the first interleaving pattern is shown in Table #6.
[0028] Table #6
[0029] or,
[0030] When K is equal to 7, the first interleaving pattern is shown in Table #7.
[0031] Table #7
[0032] or,
[0033] When K is equal to 8, the first interleaving pattern is shown in Table #8.
[0034] Table #8
[0035] or,
[0036] When K is equal to 9, the first interleaving pattern is shown in Table #9.
[0037] Table #9
[0038] or,
[0039] When K is equal to 10, the first interleaving pattern is shown in Table #10.
[0040] Table #10
[0041] or,
[0042] When K is equal to 11, the first interleaving pattern is shown in Table #11.
[0043] Table #11
[0044] Wherein, i represents the i+1th position of the second codeword sequence, P(i) represents placing the bit at the P(i)+1th position of the first codeword sequence at the i+1th position of the second codeword sequence, and 0≤i≤31.
[0045] It should be understood that the puncturing sequences given in Tables #3 to #11 are K non-nested puncturing sequences. K non-nested puncturing sequences refer to multiple sequences to be encoded of different lengths using their own puncturing sequences for rate matching.
[0046] In the above technical solution, the first codeword sequence is interleaved with the sequence to be encoded of length K based on the corresponding interleaving patterns in Tables #4 to #11 to obtain a second codeword sequence. The second codeword sequence is then punctured (32-E) times from back to front, which can ensure that the output sequence after rate matching (i.e., the third codeword sequence) has no performance defects.
[0047] In certain implementations of the first aspect, the first coding sequence is a matrix of 32 rows and 11 columns, and the first coding sequence is shown in the following table.
[0048] In certain implementations of the first aspect, the length of the sequence to be encoded is K, and when K is any value from 3 to 11, the first interleaving pattern is as shown in the following table.
[0049] Wherein, i represents the i+1th position of the second codeword sequence, P(i) represents placing the bit at the P(i)+1th position of the first codeword sequence at the i+1th position of the second codeword sequence, and 0≤i≤31.
[0050] It should be understood that the puncturing sequence is a K-nested puncturing sequence.
[0051] Based on the above technical solution, it can be ensured that the output sequence after rate matching (ie, the third codeword sequence) has no performance defects.
[0052] In certain implementations of the first aspect, the length of the sequence to be encoded is K,
[0053] When K is equal to 3, the first interleaving pattern is shown in Table #12.
[0054] Table #12
[0055] or,
[0056] When K is equal to 4, the first interleaving pattern is as shown in Table #13.
[0057] Table #13
[0058] or,
[0059] When K is equal to 5, the first interleaving pattern is shown in Table #14.
[0060] Table #14
[0061] or,
[0062] When K is equal to 6, the first interleaving pattern is shown in Table #15.
[0063] Table #15
[0064] or,
[0065] When K is equal to 7, the first interleaving pattern is shown in Table #16.
[0066] Table #16
[0067] or,
[0068] When K is equal to 8, the first interleaving pattern is shown in Table #17.
[0069] Table #17
[0070] or,
[0071] When K is equal to 9, the first interleaving pattern is shown in Table #18.
[0072] Table #18
[0073] or,
[0074] When K is equal to 10, the first interleaving pattern is shown in Table #19.
[0075] Table #19
[0076] or,
[0077] When K is equal to 11, the first interleaving pattern is shown in Table #20.
[0078] Table #20
[0079] Wherein, i represents the i+1th position of the second codeword sequence, P(i) represents placing the bit at the P(i)+1th position of the first codeword sequence at the i+1th position of the second codeword sequence, and 0≤i≤31.
[0080] It should be understood that the puncturing sequences corresponding to Table #12 to Table #20 are K non-nested puncturing sequences.
[0081] Based on the above technical solution, it can be ensured that the output sequence after rate matching (ie, the third codeword sequence) has no performance defects.
[0082] In a second aspect, a rate matching method is provided, the method comprising: performing row interleaving on a first coding sequence to obtain a second coding sequence, where the first coding sequence is a basic sequence corresponding to the packet coding; encoding the sequence to be encoded based on the second coding sequence to obtain a second codeword sequence with a length of 32 bits; puncturing the second codeword sequence based on a value E to obtain a third codeword sequence, where the value E indicates the number of bits of the second codeword sequence after rate matching, and E is a positive integer less than 32; and outputting the third codeword sequence.
[0083] The above-described scheme first encodes the sequence to be encoded based on the first coding sequence to obtain a first codeword sequence, and then interleaves the first codeword sequence based on the first interleaving pattern to obtain a second codeword sequence. In contrast, the scheme shown in the first aspect first row-interleaves the first coding sequence based on the first interleaving pattern to obtain a second coding sequence, and then encodes the sequence to be encoded based on the second coding sequence to obtain a second codeword sequence. It will be understood that in the methods shown in the first and second aspects, when the first coding sequence, the sequence to be encoded, and the first interleaving pattern are the same, the second codeword sequences obtained by the two methods are the same.
[0084] Therefore, for the beneficial effects of the second aspect, please refer to the description of the first aspect and will not be repeated here.
[0085] In certain implementations of the second aspect, row interleaving of the first coding sequence includes: row interleaving of the first coding sequence based on a first interleaving pattern, wherein the first interleaving pattern is used to reset positions of some or all of the 32 rows of the first coding sequence.
[0086] In certain implementations of the second aspect, the first coding sequence is a matrix of 32 rows and 11 columns, and the first coding sequence is shown in the following table.
[0087] In certain implementations of the second aspect, the first interleaving pattern is as shown in Table #21 or Table #22 below:
[0088] Table #21
[0089] Table #22
[0090] Wherein, i represents the i+1th row of the first coding sequence, P(i) represents placing the row element corresponding to the P(i)+1th row of the first coding sequence on the i+1th row of the second coding sequence, and 0≤i≤31.
[0091] In certain implementations of the second aspect, the length of the sequence to be encoded is K, 3≤K≤11,
[0092] When K is equal to 3, the first interleaving pattern is shown in Table #23.
[0093] Table #23
[0094] or,
[0095] When K is equal to 4, the first interleaving pattern is shown in Table #24.
[0096] Table #24
[0097] or,
[0098] When K is equal to 5, the first interleaving pattern is shown in Table #25.
[0099] Table #25
[0100] or,
[0101] When K is equal to 6, the first interleaving pattern is shown in Table #26.
[0102] Table #26
[0103] or,
[0104] When K is equal to 7, the first interleaving pattern is shown in Table #27.
[0105] Table #27
[0106] or,
[0107] When K is equal to 8, the first interleaving pattern is shown in Table #28.
[0108] Table #28
[0109] or,
[0110] When K is equal to 9, the first interleaving pattern is shown in Table #29.
[0111] Table #29
[0112] or,
[0113] When K is equal to 10, the first interleaving pattern is shown in Table #30.
[0114] Table #30
[0115] or,
[0116] When K is equal to 11, the first interleaving pattern is shown in Table #31.
[0117] Table #31
[0118] Wherein, i represents the i+1th row of the first coding sequence code, P(i) represents placing the row element on the P(i)+1th row of the first coding sequence on the i+1th row of the second coding sequence, and 0≤i≤31.
[0119] In a third aspect, a communication device is provided, wherein the communication device has the function of implementing the method of the first aspect or any possible implementation of the first aspect. The function can be implemented by hardware or by hardware executing corresponding software implementation. The hardware or software includes one or more units corresponding to the above-mentioned functions.
[0120] In a fourth aspect, a communication device is provided, wherein the communication device has the function of implementing the method of the second aspect or any possible implementation of the second aspect. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more units corresponding to the above-mentioned functions.
[0121] In a fifth aspect, a communication device is provided, comprising a processor and a memory. Optionally, the device may further comprise a transceiver. The memory is configured to store a computer program, and the processor is configured to call and execute the computer program stored in the memory and control the transceiver to transmit and receive signals, so that the communication device performs the method according to the first aspect or any possible implementation of the first aspect.
[0122] In a sixth aspect, a communication device is provided, comprising a processor and a memory. Optionally, the device may further comprise a transceiver. The memory is configured to store a computer program, and the processor is configured to call and execute the computer program stored in the memory and control the transceiver to transmit and receive signals, so that the communication device performs the method according to the second aspect or any possible implementation of the second aspect.
[0123] In the seventh aspect, a communication device is provided, comprising a processor and a communication interface, wherein the communication interface is used to receive data and / or information and transmit the received data and / or information to the processor, and the processor processes the data and / or information, and the communication interface is also used to output the data and / or information processed by the processor, so that the method in the first aspect, or any possible implementation of the first aspect, is executed.
[0124] In an eighth aspect, a communication device is provided, comprising a processor and a communication interface, wherein the processor processes data and / or information to be sent, and the communication interface is also used to output data and / or information processed by the processor, so that the method in the second aspect, or any possible implementation of the second aspect, is executed.
[0125] In a ninth aspect, a computer-readable storage medium is provided, in which computer instructions are stored. When the computer instructions are executed on a computer, the method in the first aspect or the second aspect, or any possible implementation of these aspects, is executed.
[0126] In a tenth aspect, a computer program product is provided, which includes a computer program code, and when the computer program code is run on a computer, the method in the first aspect or the second aspect, or any possible implementation of any of these aspects, is executed.
[0127] In the eleventh aspect, a communication system is provided, comprising the communication device as described in the fifth aspect, or the communication device as described in the sixth aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0128] FIG1 is a schematic diagram of the system architecture of a communication system applicable to the technical solution of the present application.
[0129] FIG2 is a schematic flow chart of a rate matching method 200 provided in this application.
[0130] FIG3 is a schematic diagram of a puncture sequence search algorithm for determining K nesting proposed in this application.
[0131] FIG4 is a schematic flowchart of another rate matching method 400 provided in this application.
[0132] FIG5 is a performance simulation comparison diagram corresponding to four different rate matching methods when K=11.
[0133] FIG6 is a schematic block diagram of a communication device 600 provided in this application.
[0134] FIG7 is a schematic structural diagram of a communication device 700 provided in this application. DETAILED DESCRIPTION
[0135] The technical solution in this application will be described below with reference to the accompanying drawings.
[0136] The technical solutions of the embodiments of the present application can be applied to various communication systems, including but not limited to: satellite communication systems, fifth generation (5G) systems, long term evolution (LTE) systems (LTE frequency division duplex (FDD) systems, LTE time division duplex (TDD) systems), etc. The technical solutions provided in the present application can also be applied to future communication systems, such as the sixth generation mobile communication system. In addition, it can also be applied to device to device (D2D) communication, vehicle-to-everything (V2X) communication, machine to machine (M2M) communication, machine type communication (MTC), and Internet of Things (IoT) communication systems or other communication systems, etc., which are not limited in this article.
[0137] Figure 1 is a schematic diagram of the system architecture of a communication system applicable to the technical solution of the present application. The communication system may include one or more network devices and one or more terminal devices.
[0138] For example, a terminal device may also be referred to as user equipment (UE), access terminal, user unit, user station, mobile station, mobile station, mobile terminal (MT), remote station, remote terminal, mobile device, user terminal, terminal, wireless communication device, user agent, or user apparatus. The terminal device in the embodiments of the present application may refer to a device that provides voice and / or data connectivity to a user and can be used to connect people, objects, and machines, such as a handheld device with wireless connection function, a vehicle-mounted device, etc. The terminal device in the embodiments of the present application can be a mobile phone, a tablet computer, a laptop computer, a PDA, a mobile internet device (MID), a wearable device, a virtual reality (VR) device, an augmented reality (AR) device, a wireless terminal in industrial control, a wireless terminal in self-driving, a wireless terminal in remote medical surgery, a wireless terminal in smart grid, a wireless terminal in transportation safety, a wireless terminal in smart city, a wireless terminal in smart home, etc. Optionally, the UE can be used to act as a base station. For example, the UE can act as a scheduling entity that provides sidelink signals between UEs in V2X or D2D, etc.
[0139] In the embodiments of the present application, the device for implementing the function of the terminal can be the terminal, or it can be a device that can support the terminal to implement the function, such as a chip system or chip, which can be installed in the terminal. In the embodiments of the present application, the chip system can be composed of a chip, or it can include a chip and other discrete devices.
[0140] Exemplarily, the network device may be a device with wireless transceiver functions, and the network device may be a device that provides wireless communication function services, usually located on the network side, including but not limited to the next generation base station (gNodeB, gNB) in the fifth generation (5G) communication system, the base station in the sixth generation (6G) mobile communication system, the base station in the future mobile communication system or the access node in the wireless fidelity (Wi-Fi) system, the evolved node B (eNB) in the long term evolution (LTE) system, the radio network controller (RNC), the node B (NB), the base station controller (BSC), the home base station (for example, home evolved NodeB, or home Node B, HNB), the base band unit (BBU), the transmission reception point (TRP), the transmitting point (TP), the base transceiver station (BTS), etc. In a network structure, the network device may include a centralized unit (CU) node, or a distributed unit (DU) node, or a RAN device including a CU node and a DU node, or a RAN device including a control plane CU node and a user plane CU node, and a DU node, or the network device may also be a wireless controller, relay station, vehicle-mounted device, and wearable device in a cloud radio access network (CRAN) scenario. In addition, the base station may be a macro base station, a micro base station, a relay node, a donor node, or a combination thereof. The base station may also refer to a communication module, a modem, or a chip for being set in the aforementioned device or apparatus. The base station may also be a mobile switching center and a device that performs the base station function in D2D, V2X, and M2M communications, a network-side device in a 6G network, a device that performs the base station function in future communication systems, and the like. The base station can support networks with the same or different access technologies without limitation.
[0141] In the embodiments of the present application, the device for implementing the function of the network device can be the network device, or it can be a device that can support the network device to implement the function, such as a chip system or chip, which can be installed in the network device. In the embodiments of the present application, the chip system can be composed of a chip, or it can include a chip and other discrete devices.
[0142] It should be understood that the rate matching method provided in this application can be considered as a channel coding scheme, which can be used in dedicated network equipment or general equipment, can be applied to various network equipment (e.g., base station equipment) as described above, and can also be applied to various terminal equipment as described above. Specifically, the channel coding scheme is mainly implemented by the channel coding unit in these devices.
[0143] The method provided in the embodiments of the present application can also be implemented by an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., or by software (for example, program code in a memory), without limitation.
[0144] LTE-RM code is a method for encoding small packets (or ultra-short messages, small code blocks) of 3 to 11 bits. The specific encoding process is as follows. Assume that the small packet sequence / ultra-short message sequence before encoding is c0, c1, ..., c K-1 (3≤K≤11), the packet sequence / ultra-short message sequence is encoded based on the basis sequences for (32,K) code shown in Table 1, where i represents the row index of the matrix, M represents the column index of the matrix, and the encoded codeword sequence is d0, d1, ..., d N-1 , where N = 32,
[0145] Table 1
[0146] When the length of the codeword sequence actually transmitted after encoding (i.e., code length) E is not equal to the encoded codeword sequence d0, d1, ..., d N-1 When the length of N is N, the existing rate matching method is: the input sequence of rate matching is the encoded codeword sequence d0, d1, ..., d N-1 , the output codeword sequence of rate matching is f0,f1,…,f E-1 , where E indicates the length of the codeword sequence actually sent after rate matching (i.e., code length). E-1Obtained by the following method. for k=0 to E-1 f k =d k mod N ; end for
[0147] Based on the above method, the existing rate matching method can be understood as follows:
[0148] 1) When E is less than N, for the codeword sequence d0, d1, ..., d N-1 Punch from back to front, specifically, from the codeword sequence d0,d1,…,d N-1 Starting from the last bit of , the bits at the consecutive (32-E) bit positions are discarded. For example, when E = 30, the codeword sequence output after rate matching is d0, d1, ..., d N-3 .
[0149] It should be noted that if the length of the ultra-short message sequence before encoding is K, when the transmission code length E is less than N, the minimum value of the transmission code length E is K+1.
[0150] 2) When E is greater than N, the codeword sequence d0, d1, ..., d N-1 Repeat from front to back until the code length of the obtained codeword sequence is E. For example, E is equal to 2N, then the codeword sequence output after rate matching is d0, d1, ..., d N-1 ,d0,d1,…,d N-1 .
[0151] When E is smaller than N, if the value of E is small, that is, if the number of punctures is large, performance dropouts may occur, leading to poor decoding performance. For example, when K = 6 and E = 7, the performance dropout occurs. Specifically, when K = 6 and E = 7, the codeword sequence of length 7 output based on the above rate matching method fails to drop to 0.01 as the signal-to-noise ratio (SNR) continues to increase.
[0152] In view of this, the present application proposes a rate matching method that can solve the above technical problems. The method proposed in the present application is described in detail below with reference to FIG2 .
[0153] FIG2 is a schematic flow chart of a rate matching method 200 provided by the present application. The method includes the following steps.
[0154] S210: The first device encodes the sequence to be encoded based on the first encoding sequence to obtain a first codeword sequence with a length of 32 bits. The first encoding sequence is a basic sequence corresponding to the packet encoding.
[0155] The basic sequence corresponding to the packet encoding in this application can also be called the basic sequence corresponding to the (32, K) encoding, where 32 represents the length of the encoded sequence and K represents the length of the sequence to be encoded. Therefore, the packet encoding can be understood as encoding a sequence of length K, where 3≤K≤11.
[0156] In a possible implementation, the first coding sequence is the coding sequence shown in Table 1. For how to generate the first codeword sequence based on the coding sequence shown in Table 1, refer to the above description and will not be repeated here.
[0157] S220: The first device interleaves the first codeword sequence to obtain a second codeword sequence.
[0158] Interleaving the first codeword sequence specifically refers to swapping the positions of some or all of the 32 bits in the first codeword sequence. When the positions of at least two of the 32 bits in the first codeword sequence are changed, the first codeword is considered to have been interleaved. It should be noted that the interleaving operation only swaps the bit positions in the first codeword sequence. Therefore, the code length of the second codeword sequence is also 32.
[0159] Optionally, the first device interleaves the first codeword sequence, including: the first device interleaves the first codeword sequence based on a first interleaving pattern (first interleaving pattern), wherein the first interleaving pattern is used to reset positions of 32 bits in the first codeword sequence.
[0160] For example, when the first coding sequence is the coding sequence shown in Table 1, the first interleaving pattern is as shown in Table 2, where i represents the i+1th position of the second codeword sequence, and P(i) represents placing the bit at the P(i)+1th position of the first codeword sequence at the i+1th position of the second codeword sequence.
[0161] Table 2
[0162] Specifically, the first codeword sequence obtained after encoding the sequence to be encoded based on the encoding sequence shown in Table 1 is d0, d1, ..., d N-1 , N = 32, the second codeword sequence is e0, e1, e2, ..., e N-1 , obtained as follows: for n=0 to N-1 e n =d P(n) end for
[0163] Optionally, the first interleaving pattern is used to indicate that the bits at the last M bit positions in the second codeword sequence obtained after interleaving the first codeword sequence based on the first interleaving pattern are the same as the bits at the last M bit positions in the first codeword sequence. For example, M=12. Since performance degradation occurs only when the number of punctures exceeds 12 when puncturing the first codeword sequence, the bits at the last M bit positions in the second codeword sequence can be the same as the bits at the last 12 bit positions in the first codeword sequence, that is, only the first 20 positions of the first codeword sequence are interleaved.
[0164] For example, when the first coding sequence is the coding sequence shown in Table 1, M=12, the first interleaving pattern is as shown in Table 3, i in the first interleaving pattern represents the i+1th position of the second codeword sequence, P(i) represents placing the bit at the P(i)+1th position of the first codeword sequence at the i+1th position of the second codeword sequence, and when M=12 and i=20 to 31, the corresponding P(i) is equal to i.
[0165] Table 3
[0166] It is understood that the second codeword sequence is determined based on the first interleaving pattern. When the second codeword sequence needs to be punctured, it needs to be punctured from back to front. Therefore, the first interleaving pattern in this application can also be understood as a puncturing sequence. The puncturing sequence and interleaving pattern in this application can be used interchangeably.
[0167] When E is small, if the first codeword sequence is directly punctured 32-E times from back to front, the output sequence after rate matching may have performance degradation. However, if the first codeword sequence is interleaved based on Tables 2 and 3 to obtain a second codeword sequence, and the second codeword sequence is then punctured (32-E) times from back to front, the output sequence after rate matching (i.e., the third codeword sequence) can be guaranteed to have no performance degradation.
[0168] It should be noted that the first interleaving pattern corresponding to Table 2 and Table 3 is a K-nested puncturing sequence. The K-nested puncturing sequence refers to a plurality of sequences to be encoded of different lengths using the same puncturing sequence for rate matching, wherein the plurality of sequences to be encoded of different lengths refers to sequences with a length of 3 to 11.
[0169] For example, when the first coding sequence is the coding sequence shown in Table 1, Tables 4 to 12 give K non-nested puncturing sequences. The K non-nested puncturing sequences refer to multiple sequences to be coded with different lengths using their own puncturing sequences for rate matching. Specifically, Table 4 is the puncturing sequence of the sequence to be coded with a length of 3, Table 5 is the puncturing sequence of the sequence to be coded with a length of 4, and so on. Table 11 is the puncturing sequence of the sequence to be coded with a length of 10, and Table 12 is the puncturing sequence of the sequence to be coded with a length of 11.
[0170] Table 4
[0171] Table 5
[0172] Table 6
[0173] Table 7
[0174] Table 8
[0175] Table 9
[0176] Table 10
[0177] Table 11
[0178] Table 12
[0179] Tables 4 to 12 above may represent puncturing sequences with E nesting when K is not nested. Taking Figure 12 corresponding to K = 11 as an example, the puncturing sequence with E nesting refers to the same puncturing sequence used when 12 ≤ E ≤ 31. As described above, when the length of the sequence to be encoded is K, the length E of the third codeword sequence obtained after rate matching is at least K + 1. That is, when E = K + 1, the maximum number of puncturing operations required is (32 - K - 1). For example, taking Table 12 as an example, K = 11, E takes the minimum value of 12, that is, the number of punctures is the maximum number of punctures 20. If the obtained first codeword sequence is punctured 20 times from back to front, the output sequence after rate matching will have performance degradation. However, the present application interleaves the first codeword sequence based on Table 12 to obtain a second codeword sequence. The second codeword sequence is punctured 20 times from back to front, which can ensure that the output sequence after rate matching (i.e., the third codeword sequence) has no performance degradation. Specifically, based on Table 12, the bits at positions 7, 12, 25, ..., 17, 11, and 26 in the first codeword sequence can be placed at positions i = 12 to 31 of the second codeword sequence, respectively. In addition, the bit values of the remaining 12 positions in the first codeword sequence can be placed one-to-one at positions i = 0 to 11 of the second codeword sequence, and the order of placing the bit values of the remaining 12 positions is not limited in this application. However, it should be noted that although the order of the remaining 12 positions is not limited, in actual application of Table 12, specific values of P(i) corresponding to i = 0 to 11 still need to be given. That is, Table 12 only schematically provides specific values of P(i) corresponding to i = 0 to 11. The other tables in this application are similar to Table 12 and will not be described in detail below.
[0180] Still taking K = 11 as an example, when 12 < E < 32, the maximum number of punctures is 20, meaning the number of punctures required for rate matching is less than 20. Therefore, puncturing can also be performed based on Table 12. Alternatively, since the number of punctures required for rate matching varies depending on the value of E, puncturing can also be performed based on the interleaving pattern corresponding to each E given in Table 12. For example, when E is not nested, taking E = 18 as an example, the number of punctures is 14, and the corresponding first interleaving pattern is shown in Table 13. Other examples are not detailed here.
[0181] Table 13
[0182] That is to say, when K=11 and E=18, based on Table 13, the bits at positions 25, 27, 16, ..., 29, 20, and 23 in the first codeword sequence can be placed at positions i=18 to 31 in the second codeword sequence, respectively. In addition, the bits at the remaining 18 positions in the first codeword sequence can be placed one-to-one at positions i=0 to 17 in the second codeword sequence, and the order of placement of the bits at the remaining 18 positions is not restricted in this application. Similarly, although the order of the remaining 18 positions is not restricted, when actually applying Table 13, it is still necessary to give the specific values of P(i) corresponding to i=0 to 17. The " / " here means that the order is not restricted, and does not mean that P(i) corresponding to i=0 to 17 does not exist. When " / " is involved in other interleaving patterns in this application, it means the same meaning and will not be repeated one by one.
[0183] S230: The first device punctures the second codeword sequence based on the value E to obtain a third codeword sequence, where the value E indicates the number of bits of the second codeword sequence after rate matching, and E is a positive integer less than 32.
[0184] It can be understood that the second codeword sequence is the input sequence of rate matching, and the third codeword sequence is the output sequence of rate matching. For the rate matching method, please refer to the description of the current rate matching method above, which will not be repeated here.
[0185] For example, the first interleaving pattern is shown in Table 2, and the second codeword is obtained by interleaving the first codeword sequence according to Table 2. When E = 14, rate matching is performed, and the second codeword sequence is sequentially punctured 18 times from back to front, which is equivalent to dropping the bits at positions {8, 27, 14, 6, 0, 11, 9, 31, 20, 7, 16, 24, 21, 29, 2, 26, 25, 10} of the first codeword sequence, to obtain the third codeword sequence. For another example, when E = 22, rate matching is performed, and the second codeword sequence is sequentially punctured 10 times from back to front, which is equivalent to dropping the bits at positions {8, 27, 14, 6, 0, 11, 9, 31, 20, 7} of the first codeword sequence, to obtain the third codeword sequence. It should be understood that in the above description, dropping the bit at the 0th position of the first code word sequence can be understood as dropping the bit at the starting position of the first code word sequence, dropping the bit at the 1st position of the first code word sequence can be understood as dropping the bit at the first position after the starting position of the first code word sequence, and so on. Dropping the bit at the 30th position of the first code word sequence can be understood as dropping the bit at the second-to-last position of the first code word sequence, and dropping the bit at the 31st position of the first code word sequence can be understood as dropping the bit at the last position of the first code word sequence. The same descriptions will not be repeated hereafter.
[0186] S240: The first device outputs a third codeword sequence.
[0187] In the above technical solution, before rate matching is performed on the first codeword sequence, the first codeword sequence is first interleaved based on the first coding sequence, which can improve the code distance characteristics of the first codeword sequence after puncturing, so that the Hamming distance between different legal codewords is as large as possible, thereby reducing the probability of the decoder misdecoding a legal codeword into another legal codeword, thereby improving the decoding performance. The code distance refers to the Hamming distance between two codewords. For example, after encoding message 1 (i.e., sequence #1 to be encoded), a codeword of length 4 is obtained as C1 = [0 0 0 0], and after encoding message 2 (i.e., sequence #2 to be encoded), another codeword of length 4 is obtained as C2 = [0 0 1 1]. The code distance between these two codewords is the number of different elements at the corresponding positions of C1 and C2. The code distance between C1 and C2 is 2. If interleaving is not performed before puncturing, and puncturing is performed directly from back to front, assuming that two positions are punctured, the corresponding codewords of C1 and C2 after puncturing are C1′ = [0 0] and C2′ = [0 0]. After puncturing, the code distance of the two codewords is 0, which is exactly the same. Therefore, the decoder cannot distinguish whether the sender sent message 1 or message 2. However, if C1 and C2 are interleaved, and the first two elements are interleaved to the 3rd and 4th bits, C1 becomes [0 0 0 0] and C2 becomes [1 1 0 0]. Then, 2 bits are punctured from back to front, then C1″=[0 0], C2″=[1 1]. The code distance after puncturing is 2, and the decoder can easily distinguish whether the sender sends message 1 or message 2, thereby improving the decoding performance after puncturing.
[0188] Based on the method shown in FIG2 , in another possible implementation, the first coding sequence is the coding sequence shown in Table 14, which is a matrix of 32 rows and 11 columns, where i represents the row index of the matrix and M represents the column index of the matrix. For example, the sequence to be coded is c0, c1, …, c K-1 (3≤K≤11), the codeword sequence after encoding based on the encoding sequence shown in Table 13 is d0, d1, ..., d N-1 , where N = 32, i=0,1,2,…,N-1. Specifically, the coding sequence may be a coding sequence obtained by row interleaving the coding sequence shown in Table 1, and the elements corresponding to the 32 rows and the first 6 columns of the coding sequence constitute a first-order RM code, wherein the first RM code refers to a coding matrix in which the first column is an all-1 column, the second column is a column alternating between 1 0 and 1 1, the third column is a column alternating between 2 0s and 2 1s, the fourth column is a column alternating between 4 0s and 4 1s, the fifth column is a column alternating between 8 0s and 8 1s, and the sixth column is a column alternating between 16 0s and 16 1s.
[0189] Table 14
[0190] For example, when the first coding sequence is the coding sequence shown in Table 14, the first interleaving pattern is as shown in Table 15, and the first interleaving pattern is a K-nested puncturing sequence, wherein i in any table represents the i+1th position of the second codeword sequence, P(i) represents placing the bit at the P(i)+1th position of the first codeword sequence at the i+1th position of the second codeword sequence, and 0≤i≤31.
[0191] Table 15
[0192] When E is small, if the first codeword sequence is directly punctured 32-E times from back to front, the output sequence after rate matching may have performance degradation. However, by encoding the sequence to be encoded based on Table 14 to obtain the first codeword sequence, then interleaving the first codeword sequence based on Table 15 to obtain the second codeword sequence, and then puncturing the second codeword sequence 32-E times from back to front, the output sequence after rate matching (i.e., the third codeword sequence) can be guaranteed to have no performance degradation.
[0193] For example, when the first coding sequence is the coding sequence shown in Table 14, Tables 16 to 24 respectively give K non-nested puncturing sequences. Specifically, Table 16 is a puncturing sequence for a sequence to be coded with a length of 3, Table 17 is a puncturing sequence for a sequence to be coded with a length of 4, and so on. Table 23 is a puncturing sequence for a sequence to be coded with a length of 10, and Table 24 is a puncturing sequence for a sequence to be coded with a length of 11, wherein i in any table represents the i+1th position of the second codeword sequence, P(i) represents placing the bit at the P(i)+1th position of the first codeword sequence at the i+1th position of the second codeword sequence, and 0≤i≤31.
[0194] Table 16
[0195] Table 17
[0196] Table 18
[0197] Table 19
[0198] Table 20
[0199] Table 21
[0200] Table 22
[0201] Table 23
[0202] Table 24
[0203] Similarly, Tables 16 to 24 above may represent puncturing sequences with E nested when K is not nested. Taking Table 24 corresponding to K = 11 as an example, the puncturing sequence with E nested refers to the same puncturing sequence used when 12 ≤ E ≤ 31. As described above, when the length of the sequence to be encoded is K, the length E of the third codeword sequence obtained after rate matching is at least K + 1. That is, when E = K + 1, the maximum number of puncturing operations is (32 - K - 1). If the codeword sequence obtained by encoding the sequence to be encoded based on the encoding sequence shown in Table 1 is punctured (32-E) times from back to front, the output sequence after rate matching will have performance degradation. However, the present application encodes the sequence to be encoded based on Table 14 to obtain a first codeword sequence, interleaves the first codeword sequence based on the tables corresponding to the length K of the sequence to be encoded in Tables 16 to 24 to obtain a second codeword sequence, and punctures the second codeword sequence (32-E) times from back to front. This ensures that the output sequence after rate matching (i.e., the third codeword sequence) has no performance degradation.
[0204] Taking K=11 as an example, the minimum value of E is 12, and the maximum number of punctures is 20. Then, when 12<E<32, the number of punctures required for rate matching is less than 20, so puncturing can also be performed based on Table 24. Alternatively, since the number of punctures required for rate matching is different based on different E, the interleaving pattern corresponding to each E can also be given based on Table 12, and puncturing can be performed based on the given interleaving pattern. For example, when E is not nested, taking E=18 as an example, the number of punctures is 14. For example, the corresponding first interleaving pattern is shown in Table 25. Other examples are not repeated here.
[0205] Table 25
[0206] Specifically, when K=11 and E=14, Table 25 shows that the bits at positions 25, 27, 16, ..., 29, 20, and 23 of the first codeword sequence are placed at positions i=18 to 31 of the second codeword sequence, respectively. In addition, the bits at the remaining 18 positions in the first codeword sequence can be placed one-to-one at positions i=0 to 17 of the second codeword sequence, and the order of placement of the bits at the remaining 18 positions is not restricted in this application. Although the order of the remaining 18 positions is not restricted, when Table 25 is actually applied, it is still necessary to give the specific values of P(i) corresponding to i=0 to 17. The " / " here means that the order is not restricted, and does not mean that P(i) corresponding to i=0 to 17 does not exist.
[0207] It should be noted that the K-nested interleaving patterns (Tables 2 and 3) or K-nonnested interleaving patterns (Tables 4 to 12) corresponding to Table 1 above are merely examples. Although these interleaving patterns all result in a rate-matched output sequence with no performance degradation, there are 32 possible interleaving patterns. Using an enumeration approach to find these interleaving patterns would be extremely complex. Therefore, this application proposes a search algorithm for determining interleaving patterns that reduces the complexity of finding these interleaving patterns. The following describes this search algorithm based on the determination of K-nonnested and K-nested interleaving patterns, taking different cases into consideration.
[0208] 1) Based on the search algorithm proposed in this application, determine K nested puncturing sequences, that is, determine the same first interleaving pattern corresponding to sequences to be encoded of different lengths. This is illustrated using sequences to be encoded of lengths K1 and K2 as examples, where K1 is the length of the sequence to be encoded, and K1 and K2 are not equal. For example, 3≤K1≤11, and 3≤K2≤11.
[0209] FIG3 is a schematic diagram of a puncture sequence search algorithm for determining K nesting proposed in this application. The method includes steps 1 to 20, wherein steps 7 to 20 are optional steps if the judgment in step 6 is "no". FIG3 only schematically shows steps 1 to 13.
[0210] Step 1: Randomly generate a first random sequence with a length of K1 and a second random sequence with a length of K2.
[0211] Step 2: Encode the first random sequence and the second random sequence based on the coding sequence shown in Table 1 to obtain a first random codeword sequence and a second random codeword sequence with a length of 32.
[0212] Step 3: Determine the value of the first performance of the first random codeword sequence and the second random codeword sequence after the i-th position is deleted, 1≤i≤32.
[0213] Step 4: Determine the average value A of the first value and the second value i , the first value is the value of the first performance of the sequence after the i-th position of the first random codeword sequence is deleted, and the second value is the value of the first performance of the sequence after the i-th position of the second random codeword sequence is deleted.
[0214] Specifically, the value of the first performance is the value of the SNR corresponding to when the BLER is equal to 0.01. The smaller the value of the first performance is, the better the first performance is.
[0215] Step 5: Determine the first position, the first position is A1 to A 32 The position corresponding to the smallest value in , the first position is the first punching position.
[0216] Step 6: Determine that the current number of punching positions is 1, and determine whether 1 is less than (32-E).
[0217] If the number of punctures 1 is equal to (32-E), the process ends and the first interleaving pattern (i.e., the optimal interleaving pattern) is output. The first interleaving pattern indicates that after the first sequence is interleaved based on the first interleaving pattern, the bit at the first position of the first sequence is swapped and placed at the last bit position of the first sequence. The first sequence is a sequence with a length of 32.
[0218] If the number of punctures 1 is less than (32-E), execute steps 7 to 13.
[0219] Step 7: Randomly generate a third random sequence with a length of K1 and a fourth random sequence with a length of K2.
[0220] Step 8: Encode the third random sequence and the fourth random sequence based on the coding sequence shown in Table 1 to obtain a third random codeword sequence and a fourth random codeword sequence with a length of 32.
[0221] Step 9: Determine a fifth random code sequence and a sixth random code sequence. The fifth random code sequence is the sequence obtained by removing the bit at the first position in the third random code sequence, and the sixth random code sequence is the sequence obtained by removing the bit at the first position in the fourth random code sequence.
[0222] Step 10: Determine the value of the first performance of the fifth random codeword sequence and the sixth random codeword sequence after the j-th position is deleted, 1≤j≤31.
[0223] Step 11: Determine the average value A of the third value and the fourth value j , the third value is the value of the first performance of the sequence after the j-th position of the fifth random code word sequence is deleted, and the fourth value is the value of the first performance of the sequence after the j-th position of the sixth random code word sequence is deleted.
[0224] Step 12: Determine the second position, which is the range from A1 to A2 determined in step 11. 31 The position corresponding to the smallest value in , the second position is the second punching position.
[0225] Step 13: Determine that the current number of punching positions is 2, and determine whether 2 is less than (32-E).
[0226] If the number of punctures 2 is equal to (32-E), the process ends and a first interleaving pattern is generated. The first interleaving pattern indicates that after the first sequence is interleaved based on the first interleaving pattern, the bit at the first position of the first sequence is swapped and placed at the last bit position of the first sequence, and the bit at the second position of the first sequence is swapped and placed at the second-to-last bit position of the first sequence.
[0227] If the number of punctures 2 is less than (32-E), execute steps 14 to 20.
[0228] Step 14: Randomly generate a fifth random sequence with a length of K1 and a sixth random sequence with a length of K2.
[0229] Step 15: Encode the fifth random sequence and the sixth random sequence based on the coding sequence shown in Table 1 to obtain a seventh random codeword sequence and an eighth random codeword sequence with a length of 32.
[0230] Step 16: Determine a ninth random code sequence and a tenth random code sequence. The ninth random code sequence is obtained by removing the bit at the first position in the seventh random code sequence, and the tenth random code sequence is obtained by removing the bit at the first position in the eighth random code sequence.
[0231] Step 17: Determine the value of the first performance of the sequence after the s-th position of the ninth random code word sequence and the tenth random code word sequence is deleted, 1≤s≤30.
[0232] Step 18: Determine the average value A of the fifth and sixth values s , the fifth value is the value of the first performance of the sequence after the s-th position of the ninth random codeword sequence is deleted, and the sixth value is the value of the first performance of the sequence after the s-th position of the tenth random codeword sequence is deleted.
[0233] Step 19: Determine the third position, which is A1 to A determined in step 18. 30 The position corresponding to the smallest value in , the second position is the second punching position.
[0234] Step 20: Determine that the current number of punching positions is 3, and determine whether 3 is less than (32-E).
[0235] If the number of punctures 3 is equal to (32-E), the process ends and a first interleaving pattern is generated. The first interleaving pattern indicates that after the first sequence is interleaved based on the first interleaving pattern, the bit at the first position of the first sequence is swapped and placed at the last bit position of the first sequence, the bit at the second position of the first sequence is swapped and placed at the second-to-last bit position of the first sequence, and the bit at the third position of the first sequence is swapped and placed at the third-to-last bit position of the first sequence.
[0236] If the number of punctures 3 is less than (32-E), the above operation is repeated until the number of punctures is equal to (32-E) to obtain the corresponding optimal first interleaving pattern, which will not be described in detail here.
[0237] It can be understood that since the position corresponding to the minimum value of the average value of the first performance value is selected in steps 5, 12, and 19, it can be considered that the first interleaving pattern obtained at the end of the process is the optimal interleaving pattern.
[0238] For example, in steps 5, 12, and 19, the punching position corresponding to the second-to-last minimum value or the third-to-last minimum value can also be selected as the punching position determined in the corresponding step, and this application does not limit this.
[0239] It should be noted that the above process uses the to-be-encoded sequences corresponding to two K values as an example to introduce the search process of the puncturing sequence, and what is obtained is the nested puncturing sequence of K1 and K2. Then, correspondingly, if it is necessary to obtain the nested puncturing sequence corresponding to K=3 to 11, it is necessary to randomly generate 9 random sequences corresponding to K=3 to 11 in step 1, and encode each random sequence based on the encoding sequence shown in Table 1 to generate 9 random codeword sequences in step 2. In step 3, the value of the first performance of each random codeword sequence after the i-th position is punctured is determined, and in step 4, the average value of the first performance values of the 9 random codeword sequences after the i-th position is punctured is determined. The first position determined in step 5 is the minimum value of the average value of the first performance values corresponding to the 9 random codeword sequences after puncturing at the 1st position to the 32nd position. The subsequent steps will not be repeated one by one.
[0240] For example, Table 26 shows the optimal K-nested puncturing sequence obtained based on the above search algorithm. Each row corresponding to different K in Table 26 can be another representation of Table 2.
[0241] Table 26
[0242] Table 26 can be considered to represent a common puncturing sequence for all sequences of length K. The length E of a sequence of length K after puncturing is a minimum of (K+1) and a maximum of (N-1). The elements in Table 26 represent the positions of the puncturing. It can be understood that when K=3, the minimum length after puncturing is E=K+1=4, and the maximum number of punctures for any sequence of length K does not exceed (32-E)=28. Therefore, based on the above search algorithm, it is sufficient to determine the 28 puncturing positions corresponding to E=31 to 4 when K=3 in Table 26. The positions corresponding to E=4 to 0 will not be punctured. The remaining 4 bit positions can be arranged arbitrarily, and this application does not specifically limit this. For example, in the embodiment shown in FIG2 , when K=11 and E=14, the first codeword sequence of length 32 needs to be interleaved according to Table 26 to obtain a second codeword sequence, and then punctured 18 times from back to front, which is equivalent to dropping the bits at positions {8, 27, 14, 6, 0, 11, 9, 31, 20, 7, 16, 24, 21, 29, 2, 26, 25, 10} of the first codeword sequence. For another example, when K=7 and E=22, the first codeword sequence of length 32 needs to be interleaved according to Table 26 to obtain a second codeword sequence, and then punctured 10 times from back to front, which is equivalent to dropping the bits at positions {8, 27, 14, 6, 0, 11, 9, 31, 20, 7} of the first codeword sequence. It should be understood that the 8th position here is numbered starting from the first position as position 0. If the first position is numbered starting from position 1, then the 8th position is the 9th position. The order of other positions is similar, and no examples will be given here one by one.
[0243] For example, if E is less than 20, that is, the number of punctures (32-E) is greater than 12, the search algorithm given in this application needs to obtain the interleaving pattern in Table 3. It can be considered that the 12 positions determined after 12 rounds of search based on the above search algorithm are the 12 positions from the back to the front of the first codeword sequence. When performing the 13th round of search, the 13th puncture position is determined according to the above process, and it is determined whether 13 is less than (32-E). If the number of punctures 13 is equal to (32-E), the process is terminated and the first interleaving pattern is generated. If the number of punctures 13 is less than (32-E), the search operation is repeated until the number of punctures is equal to E, and the corresponding first interleaving pattern is obtained. No further details are given here.
[0244] 2) Based on the search algorithm proposed in this application, K non-nested puncturing sequences are determined, that is, the first interleaving patterns corresponding to the sequences to be encoded of different lengths are determined.
[0245] Step 1: Randomly generate a first random sequence of length K. For example, 3≤K≤11.
[0246] Step 2: Encode the first random sequence based on the encoding sequence shown in Table 1 to obtain a first random codeword sequence with a length of 32.
[0247] Step 3: Determine the value B of the first performance of the sequence after the i-th position of the first random codeword sequence is deleted i , 1≤i≤32.
[0248] For example, the value of the first performance in this application is the value of the SNR corresponding to a BLER of 0.01.
[0249] Step 4: Determine the first position, the first position is B1 to B 32 The position corresponding to the smallest value in , the first position is the first punching position determined.
[0250] Step 5: Determine that the current number of punching positions is 1, and determine whether 1 is less than (32-E).
[0251] If the number of punctures 1 is equal to (32-E), the process ends and a first interleaving pattern (i.e., the optimal interleaving pattern) is generated. The first interleaving pattern indicates that after the first sequence is interleaved based on the first interleaving pattern, the bit at the first position of the first sequence is swapped and placed at the last bit position of the first sequence. The first sequence is a sequence with a length of 32.
[0252] If the number of punctures 1 is less than (32-E), execute steps 6 to 11.
[0253] Step 6: Randomly generate a second random sequence of length K.
[0254] Step 7: Encode the second random sequence based on the encoding sequence shown in Table 1 to obtain a second random codeword sequence with a length of 32.
[0255] Step 8: Determine a third random codeword sequence, where the third random codeword sequence is the sequence obtained by removing the bit at the first position in the second random codeword sequence.
[0256] Step 9: Determine the value B of the first performance of the sequence after the j-th position of the third random codeword sequence is deleted j , 1≤j≤31.
[0257] Step 10: Determine the second position, which is the B1 to B determined in step 9. 31 The position corresponding to the smallest value in , the second position is the second punching position.
[0258] Step 11: Determine that the current number of punching positions is 2, and determine whether 2 is less than (32-E).
[0259] If the number of punctures 2 is equal to (32-E), the process ends and a first interleaving pattern is generated. The first interleaving pattern indicates that after the first sequence is interleaved based on the first interleaving pattern, the bit at the first position of the first sequence is swapped and placed at the last bit position of the first sequence, and the bit at the second position of the first sequence is swapped and placed at the second-to-last bit position of the first sequence.
[0260] If the number of punctures 2 is less than (32-E), execute steps 12 to 17.
[0261] Step 12: Randomly generate a third random sequence of length K.
[0262] Step 13: Encode the third random sequence based on the encoding sequence shown in Table 1 to obtain a fourth random codeword sequence with a length of 32.
[0263] Step 14: Determine a fifth random codeword sequence, where the fifth random codeword sequence is a sequence obtained by removing bits at the first position and the second position in the fourth random codeword sequence.
[0264] Step 15: Determine the value B of the first performance of the sequence after the s-th position of the fifth random codeword sequence is deleted s , 1≤s≤30.
[0265] Step 16: Determine the third position, which is the position from B1 to B determined in step 15. 30 The position corresponding to the smallest value in the , the third position is the third punching position.
[0266] Step 17: Determine that the current number of punching positions is 3, and determine whether 3 is less than (32-E).
[0267] If the number of punctures 3 is equal to (32-E), the process ends and a first interleaving pattern is generated. The first interleaving pattern indicates that after the first sequence is interleaved based on the first interleaving pattern, the bit at the first position of the first sequence is swapped and placed at the last bit position of the first sequence, the bit at the second position of the first sequence is swapped and placed at the second-to-last bit position of the first sequence, and the bit at the third position of the first sequence is swapped and placed at the third-to-last bit position of the first sequence.
[0268] If the number of punctures 3 is less than (32-E), the above operation is repeated until the number of punctures is equal to (32-E) to obtain the corresponding first interleaving pattern, which will not be described in detail here.
[0269] It can be understood that, since the position corresponding to the minimum value of the first performance value is selected in steps 4, 10, and 16, it can be considered that the first interleaving pattern obtained at the end of the process is the optimal interleaving pattern.
[0270] For example, in steps 4, 10, and 16, the punching position corresponding to the second-to-last minimum value or the third-to-last minimum value can also be selected as the punching position determined in the corresponding step, and this application does not limit this.
[0271] For example, Table 27 shows the optimal puncturing sequences corresponding to different K when K is not nested, that is, the table designs puncturing sequences based on different K. It can be understood that each row corresponding to different K in Table 27 can be another form of Tables 4 to 19.
[0272] Table 27
[0273] For each K, the length E after puncturing is at least (K+1) and at most (N-1), and the elements in Table 27 represent the positions of the puncturing. For example, taking K=11 as an example, the minimum length after puncturing can be E=K+1=12, and the maximum number of puncturing is (32-E)=20. Therefore, based on the above search algorithm, it is only necessary to determine the 20 puncturing positions corresponding to E=31 to 12 in Table 27. The positions corresponding to E=11 to 0 will not be punctured. The remaining 12 bit positions are arbitrarily ordered, and this application does not make specific restrictions. It should be noted that when K=11, since the length E after puncturing can be at least K+1=12 and at most N-1=31. When E is greater than 12 and less than 31, since the number of puncturing is less than 20, the first device can determine which positions to puncture based on the interleaving pattern corresponding to K=11 in Table 27. For example, when K=11 and E=14, the first codeword sequence with a length of 32 needs to be interleaved according to Table 27 to obtain a second codeword sequence, and then punctured 18 times from back to front, which is equivalent to dropping the bits at positions {26, 11, 17, 5, 2, 3, 9, 23, 1, 8, 31, 24, 28, 14, 16, 10, 13, 25} of the first codeword sequence. For another example, when K=7 and E=22, the first codeword sequence with a length of 32 needs to be interleaved according to Table 29 to obtain a second codeword sequence, and then punctured 18 times from back to front, which is equivalent to dropping the bits at positions {4, 5, 11, 28, 30, 13, 16, 20, 27, 25} of the first codeword sequence.
[0274] Similarly, the K-nested interleaving patterns (Table 15) or K-non-nested interleaving patterns (Tables 16 to 24) corresponding to Table 14 above are merely examples. Although these interleaving patterns all result in a rate-matched output sequence with no performance degradation, there are 32 possible interleaving patterns. Using an enumeration approach to find these interleaving patterns would be extremely complex. Therefore, this application proposes a search algorithm for determining interleaving patterns that can find the optimal interleaving pattern. This search algorithm is described below, based on the determination of K-non-nested and K-nested interleaving patterns, in different scenarios.
[0275] 1) Determine a K-nested puncturing sequence based on the search algorithm proposed in this application, that is, determine the same optimal first interleaving pattern corresponding to sequences to be encoded of different lengths. This is illustrated using sequences to be encoded of lengths K1 and K2 as examples, where K1 is the length of the sequence to be encoded, and K1 and K2 are not equal. For example, 3≤K1≤11, and 3≤K2≤11.
[0276] This search algorithm is basically similar to the search process for determining the K-nested puncturing sequence based on Table 1. The main difference between the two is described here. Specifically, the difference is that step 2 needs to be modified to encode the first random sequence and the second random sequence based on the coding sequence shown in Table 14, respectively, to obtain the first random codeword sequence and the second random codeword sequence. Since the encoding is performed based on Table 14 in step 2, the first random codeword sequence and the second random codeword sequence also need to be decoded based on Table 14 in step 3, and then the value of the first performance of the sequence after the i-th position is punctured is calculated. Similarly, steps 8 and 15 are modified in the same way as step 2, and steps 9 and 16 are modified in the same way as step 3. The specific process will not be repeated here.
[0277] For example, Table 28 shows a K-nested puncturing sequence obtained based on the encoding matrix shown in Table 14. It can be understood that each row corresponding to different K in Table 28 can be another representation of Table 15.
[0278] Table 28
[0279] All sequences of length K share a common puncturing sequence. The length E of a sequence of length K after puncturing is at least (K+1) and at most (N-1). The elements in Table 28 represent the positions of the puncturing. It can be understood that when K=3, the minimum length after puncturing is E=K+1=4, and the maximum number of punctures for any sequence of length K does not exceed (32-E)=28. Therefore, based on the above search algorithm, it is sufficient to determine the 28 puncturing positions corresponding to E=31 to 4 when K=3 in Table 28. The positions corresponding to E=4 to 0 will not be punctured. The remaining 4 bit positions can be arranged arbitrarily and are not specifically limited by this application. For example, in the embodiment shown in Figure 2, when K=11 and E=14, the first codeword sequence with a length of 32 needs to be interleaved according to Table 26 to obtain the second codeword sequence, and then punctured 18 times from back to front, which is equivalent to dropping the bits at positions {13, 23, 24, 10, 1, 19, 14, 0, 2, 12, 27, 15, 5, 30, 4, 22, 17, 18} of the first codeword sequence. For another example, when K=7 and E=22, the second codeword sequence with a length of 32 needs to be punctured according to the positions given in Table 28, that is, the bits at positions {13, 23, 24, 10, 1, 19, 14, 0, 2, 12} of the first codeword sequence are dropped.
[0280] 2) Based on the search algorithm proposed in this application, determine K non-nested puncturing sequences, that is, determine the optimal first interleaving pattern corresponding to each of the to-be-encoded sequences of different lengths.
[0281] This search algorithm is basically similar to the search process for determining K non-nested puncturing sequences based on Table 1. The main difference between the two is described here. Specifically, the difference is that step 2 needs to be modified to encode the first random sequence based on the coding sequence shown in Table 14 to obtain the first random codeword sequence. Since encoding is performed based on Table 14 in step 2, the first random codeword sequence and the second random codeword sequence need to be decoded based on Table 14 in step 3, and then the value of the first performance of the sequence after the i-th position is punctured is calculated. Steps 7 and 13 are modified in the same way as step 2, and steps 8 and 14 are modified in the same way as step 3. The specific process will not be repeated here.
[0282] For example, Table 29 shows the optimal puncturing sequences corresponding to different K when K is not nested and E is nested, that is, the table designs puncturing sequences based on different K. It can be understood that each row in Table 29 can be another form of Tables 16 to 24.
[0283] Table 29
[0284] For each K, the length E after puncturing is at least (K+1) and at most (N-1), and the elements in Table 29 represent the positions of the puncturing. For example, taking K=11 as an example, the minimum length after puncturing can be E=K+1=12, and the maximum number of puncturing is (32-E)=20. Therefore, based on the above search algorithm, it is only necessary to determine the 20 puncturing positions corresponding to E=31 to 12 in Table 29. The positions corresponding to E=11 to 0 will not be punctured. The remaining 12 bit positions are arbitrarily ordered, and this application does not make specific restrictions. It should be noted that when K=11, since the length E after puncturing can be at least K+1=12 and at most N-1=31. When E is greater than 12 and less than 31, since the number of puncturing is less than 20, the first device can determine which positions to puncture based on the interleaving pattern corresponding to K=11 in Table 29. For example, when K=11 and E=14, the first codeword sequence with a length of 32 needs to be interleaved according to Table 29 to obtain a second codeword sequence, and then punctured 18 times from back to front, which is equivalent to dropping the bits at positions {22, 19, 28, 9, 4, 6, 14, 11, 3, 13, 0, 15, 26, 24, 27, 18, 21, 19} of the first codeword sequence. For another example, when K=7 and E=22, the first codeword sequence with a length of 32 needs to be interleaved according to Table 29 to obtain a second codeword sequence, and then punctured 10 times from back to front, which is equivalent to dropping the bits at positions {7, 9, 19, 26, 31, 21, 27, 2, 22, 17} of the first codeword sequence.
[0285] The following is a detailed description of another rate matching method provided by this application.
[0286] FIG4 is a schematic flow chart of another rate matching method 400 provided by the present application. The method includes the following steps.
[0287] S410: The first device performs row interleaving on a first coding sequence to obtain a second coding sequence, where the first coding sequence is a basic sequence corresponding to the packet coding.
[0288] The first coding sequence is a matrix with 32 rows and 11 columns. Row interleaving of the first coding sequence specifically refers to swapping some or all of the 32 rows in the first coding sequence. Row interleaving of the first coding sequence occurs when the positions of at least two of the 32 rows in the first coding sequence are changed. It should be noted that row interleaving swaps the positions of row elements in the sequence. Therefore, the second coding sequence also has 32 rows and 11 columns.
[0289] In a possible implementation, the first coding sequence is the coding sequence shown in Table 1.
[0290] Optionally, the first device performs row interleaving on the first coding sequence, including: the first device performs row interleaving on the first coding sequence based on a first interleaving pattern, wherein the first interleaving pattern is used to reset positions of some or all of the 32 rows of the first coding sequence.
[0291] The row interleaving operation in S410 is described below with an example. For example, the first coding sequence is shown in Table 1, the first interleaving pattern is shown in Table 2, and after row interleaving the first coding sequence shown in Table 1 based on Table 2, the obtained second coding sequence is shown in Table 30.
[0292] Table 30
[0293] Optionally, the first interleaving pattern is used to indicate the last M rows in a second coded sequence obtained by performing row interleaving on the first coded sequence based on the first interleaving pattern, and is the same as the last M rows of the first coded sequence. For example, M=12, the first coded sequence is shown in Table 1, the first interleaving pattern is shown in Table 3, and the second coded sequence obtained by performing row interleaving on the first coded sequence shown in Table 1 based on Table 3 is shown in Table 31, where Table 31 is the same as the last 12 rows of Table 1.
[0294] Table 31
[0295] S420: The first device encodes the sequence to be encoded based on the second encoding sequence to obtain a second codeword sequence with a length of 32.
[0296] For example, the sequence to be encoded has a length of K, where 3≤K≤11.
[0297] It can be understood that when the first coding sequence is the sequence shown in Table 1, the difference between the methods shown in Figure 2 and Figure 4 is that the method shown in Figure 2 first encodes the sequence to be encoded based on the first coding sequence to obtain a first codeword sequence, and then interleaves the first codeword sequence based on the first interleaving pattern to obtain a second codeword sequence, while the method shown in Figure 4 first row-interleaves the first coding sequence based on the first interleaving pattern to obtain a second coding sequence, and then encodes the sequence to be encoded based on the second coding sequence to obtain a second codeword sequence. It can also be understood that in the methods shown in Figures 2 and 4, when the first coding sequence, the sequence to be encoded, and the first interleaving pattern are the same, the second codeword sequences obtained by the methods shown in Figures 2 and 4 are also the same.
[0298] S430: The first device punctures the second codeword sequence based on the value E to obtain a third codeword sequence, where the value E indicates the number of bits of the second codeword sequence after rate matching, and E is a positive integer less than 32.
[0299] Regarding S430, please refer to the description of S230, which will not be repeated here.
[0300] S440: The first device outputs a third codeword sequence.
[0301] In addition, the method for obtaining the first interleaving pattern in this method can refer to the description of the search algorithm corresponding to K nesting and K non-nesting in FIG2 , which will not be repeated here.
[0302] The method proposed in this application is described in detail above. As an example, the following is a schematic diagram of the simulation results of rate matching when K=11 based on the method proposed in this application.
[0303] Figure 5 compares the performance of four different rate matching methods when K = 11. Figure 5 includes four curves, each corresponding to the four different rate matching methods. The horizontal axis represents the code length E after puncturing, ranging from K + 1 to N (i.e., from 12 to 32), and the vertical axis represents the SNR corresponding to a BLER of 0.01. Among them, curve #1 marked as a "cross" is a performance simulation graph corresponding to the existing rate matching method, curve #2 marked as a triangle pointing to the right is a performance simulation graph for rate matching when the first coding sequence in the method shown in Figure 2 is the coding sequence shown in Table 14, and a puncturing sequence (i.e., Table 12) is designed separately for K=11, and curve #3 marked as pointing to the left is a performance simulation graph for rate matching based on Table 2 when the first coding sequence in the method shown in Figure 2 (or Figure 4) is the coding sequence shown in Table 1. Among them, the simulation channels corresponding to curve #1, curve #2 and curve #3 are additive white Gaussian noise (AWGN) channels, the modulation mode is quadrature phase shift keying (QPSK) modulation, the coding mode is the LTE-RM code in Table 1 or Table 14 corresponding to each curve, and the decoding mode is fast Hadamard transform (FHT) decoding. Curve #4, marked with a circle, is the best known performance baseline. This curve simulates an AWGN channel, uses QPSK modulation, parity check (PC)-polarization coding, and successive cancellation list (SCL) 8 decoding.
[0304] As can be seen from Figure 5, curve #1 has a performance poor point when E = 12 to 17, that is, when K = 11 and E = 12 to 17, the first performance value of the puncturing sequence output based on the existing rate matching method does not exist, and the first performance value is the SNR value corresponding to BLER = 0.01. However, the simulation curve #2 and curve #4 obtained based on the embodiment of the present application do not have a performance poor point when E = 12 to 17, and are closer to the circle curve.
[0305] It is understood that the steps in the above figures are merely illustrative and not intended to be strict limitations. Furthermore, the sequence numbers of the above processes do not necessarily indicate the order in which they are to be executed. The order in which each process is to be executed should be determined by its function and inherent logic, and should not constitute any limitation on the implementation of the embodiments of this application.
[0306] It can also be understood that some coding sequence names are involved in the various embodiments of the present application, and their naming does not limit the protection scope of the embodiments of the present application.
[0307] It can also be understood that some optional features in the various embodiments of the present application may not depend on other features in certain scenarios, and may also be combined with other features in certain scenarios, without limitation.
[0308] It can also be understood that in the above-mentioned various method embodiments, the methods and operations implemented by the first device can also be implemented by components (such as chips or circuits) that can be implemented by the first device, without limitation.
[0309] Corresponding to the methods provided in the above method embodiments, embodiments of the present application also provide corresponding apparatuses, which include modules for executing the corresponding methods in the above method embodiments. The modules may be software, hardware, or a combination of software and hardware. It is understood that the technical features described in the above method embodiments are also applicable to the following apparatus embodiments.
[0310] Figure 6 is a schematic block diagram of a communication device 600 provided in this application. As shown in Figure 6, the communication device 600 includes a processing unit 610 and a communication unit 620. The device 600 can implement the steps or processes corresponding to those performed by the first device in the above method embodiment, wherein the processing unit 610 is used to perform the processing-related operations of the first device in the above method embodiment, and the communication unit 620 is used to perform the sending-related operations of the first device in the above method embodiment. For example, the various units of the communication device 600 are used to implement the following functions:
[0311] Processing unit 610 is configured to encode a sequence to be encoded based on a first encoding sequence to obtain a first codeword sequence having a length of 32 bits, where the first encoding sequence is a basic sequence corresponding to packet encoding. Processing unit 610 is further configured to interleave the first codeword sequence to obtain a second codeword sequence. Processing unit 610 is further configured to puncture the second codeword sequence based on a value E to obtain a third codeword sequence, where the value E indicates the number of bits in the second codeword sequence after rate matching, and E is a positive integer less than 32. Communication unit 620 is configured to output the third codeword sequence.
[0312] In various embodiments of the communication apparatus 600 corresponding to a transmitting end, the processing unit 610 is configured to perform processing and / or operations implemented within the first device in addition to the sending and receiving operations. The communication unit 620 is configured to perform the receiving (or inputting) operation of the first device and / or the sending (or outputting) operation of the first device.
[0313] It should be understood that the apparatus 600 herein is embodied in the form of a functional unit. The term "unit" herein may refer to an application specific integrated circuit (ASIC), an electronic circuit, a processor (e.g., a shared processor, a dedicated processor, or a group processor, etc.) and memory for executing one or more software or firmware programs, combined logic circuits, and / or other suitable components that support the described functionality.
[0314] The apparatus 600 of each of the above-mentioned solutions has the function of implementing the corresponding steps performed by the first device in the above-mentioned method. The functions can be implemented by hardware, or the corresponding software can be implemented by hardware. The hardware or software includes one or more modules corresponding to the above-mentioned functions; for example, the communication unit can be replaced by a transceiver (for example, the sending unit in the communication unit can be replaced by a transmitter, and the receiving unit in the communication unit can be replaced by a receiver), and other units, such as the processing unit, can be replaced by a processor to respectively perform the sending and receiving operations and related processing operations in each method embodiment.
[0315] In addition, the above-mentioned communication unit can also be a transceiver circuit (for example, it can include a receiving circuit and a transmitting circuit), and the processing unit can be a processing circuit. In an embodiment of the present application, the device 600 can be the first device in the aforementioned embodiment, or it can be a chip or a chip system, such as a system on chip (SoC), wherein the communication unit can be an input / output circuit or a communication interface; and the processing unit can be a processor, microprocessor, or integrated circuit integrated on the chip. This is not limited here.
[0316] Figure 7 is a schematic structural diagram of a communication device 700 provided in this application. As shown in Figure 7, the communication device 700 includes: one or more processors 710, one or more memories 720, and one or more communication interfaces 730. The processor 710 is used to control the communication interface 730 to send and receive signals, and the memory 720 is used to store a computer program. The processor 710 is used to call and execute the computer program from the memory 720 to enable the communication device 800 to perform the processing performed by the transmitting end or the receiving end in each method embodiment of the present application.
[0317] For example, the processor 710 may have the functionality of the processing unit 610 shown in Figure 6, and the communication interface 730 may have the functionality of the communication unit 620 shown in Figure 6. Specifically, the processor 710 may be configured to execute a process or operation executed internally by the communication device, and the communication interface 730 may be configured to execute the sending and / or receiving operations of the communication device.
[0318] Optionally, the memory and processor in the above-mentioned device embodiments may be physically independent units, or the memory may be integrated with the processor, which is not limited in this application.
[0319] In addition, the present application also provides a computer-readable storage medium, which stores computer instructions. When the computer instructions are executed on a computer, the operations and / or processing performed by the first device in each method embodiment of the present application are executed.
[0320] In addition, the present application also provides a computer program product, which includes computer program code or instructions. When the computer program code or instructions are run on a computer, the operations and / or processing performed by the first device in each method embodiment of the present application are executed.
[0321] In addition, the present application also provides a chip, which includes a processor, a memory for storing computer programs is set independently of the chip, and the processor is used to execute the computer program stored in the memory, so that the device equipped with the chip performs the operations and / or processing performed by the first device in any method embodiment.
[0322] Furthermore, the chip may further include a communication interface. The communication interface may be an input / output interface, or an interface circuit, etc. Furthermore, the chip may further include the memory.
[0323] Optionally, the processor may be one or more, the memory may be one or more, or the memory may be one or more.
[0324] In addition, the present application also provides a communication device (for example, a chip or a chip system), including a processor and a communication interface, wherein according to the operation and / or processing performed by the first device in any of the aforementioned method embodiments, the communication interface is used to receive (or input) message bits to be encoded, and the processor encodes the message bits to be encoded. Optionally, the communication interface is also used to send (or output) data and / or information processed by the processor.
[0325] In addition, the present application also provides a communication device, comprising at least one processor, wherein the at least one processor is coupled to at least one memory, and the at least one processor is used to execute a computer program or instruction stored in the at least one memory, so that the communication device performs the operations and / or processing performed by the first device in any method embodiment.
[0326] In addition, the present application also provides a communication system, including the first device in the method embodiment of the present application.
[0327] The memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DRRAM). It should be noted that the memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0328] The methods provided in the above embodiments can be implemented in whole or in part by 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 may include one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may 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 integrated therein.
[0329] To facilitate a clear description of the technical solutions of the embodiments of the present application, numbers such as "first" and "second" are used in the embodiments of the present application to distinguish identical or similar items having substantially the same functions and effects. Those skilled in the art will appreciate that numbers such as "first" and "second" do not limit the quantity or order of execution, and that words such as "first" and "second" do not necessarily define differences.
[0330] In the embodiments of this application, "at least one" refers to one or more, and "more" refers to two or more. "And / or" describes the relationship between associated objects, indicating that three possible relationships exist. For example, "A and / or B" can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the associated objects are in an "or" relationship.
[0331] Those skilled in the art will appreciate that the units and algorithm steps of each example 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 performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0332] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0333] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0334] The units described as separate components may or may not be physically separate, and 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 these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0335] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0336] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0337] If the functions are implemented in the form of 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 the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
Claims
1. A rate matching method, characterized in that: include: Encode the sequence to be encoded based on the first encoding sequence to obtain a first codeword sequence with a length of 32 bits, where the first encoding sequence is a basic sequence corresponding to the packet encoding; Interleaving the first codeword sequence to obtain a second codeword sequence; Puncturing the second codeword sequence based on a value E to obtain a third codeword sequence, wherein the value E indicates the number of bits of the second codeword sequence after rate matching, and E is a positive integer less than 32; The third codeword sequence is output.
2. The method according to claim 1, characterized in that The interleaving the first codeword sequence comprises: The first codeword sequence is interleaved based on a first interleaving pattern, wherein the first interleaving pattern is used to reset positions of some or all of the 32 bits of the first codeword sequence.
3. The method according to claim 2, characterized in that The first coding sequence is a matrix of 32 rows and 11 columns. The first coding sequence is shown in the following table, where i represents the row index of the matrix and M represents the column index of the matrix.
4. The method according to claim 2 or 3, characterized in that: The length of the sequence to be encoded is K, and when K is any value from 3 to 11, the first interleaving pattern is as shown in the following Table #1 or Table #2, Table #1 Table #2 Wherein, i represents the i+1th position of the second code word sequence, P(i) represents placing the bit at the P(i)+1th position of the first code word sequence at the i+1th position of the second code word sequence, and 0≤i≤31.
5. The method according to claim 2 or 3, characterized in that: The length of the sequence to be encoded is K, When K is equal to 3, the first interleaving pattern is as shown in Table #3, Table #3 or, When K is equal to 4, the first interleaving pattern is as shown in Table #4, Table #4 or, When K is equal to 5, the first interleaving pattern is as shown in Table #5, Table #5 or, When K is equal to 6, the first interleaving pattern is as shown in Table #6, Table #6 or, When K is equal to 7, the first interleaving pattern is as shown in Table #7, Table #7 or, When K is equal to 8, the first interleaving pattern is as shown in Table #8, Table #8 or, When K is equal to 9, the first interleaving pattern is as shown in Table #9, Table #9 or, When K is equal to 10, the first interleaving pattern is as shown in Table #10, Table #10 or, When K is equal to 11, the first interleaving pattern is as shown in Table #11, Table #11 Wherein, i represents the i+1th position of the second code word sequence, P(i) represents placing the bit at the P(i)+1th position of the first code word sequence at the i+1th position of the second code word sequence, and 0≤i≤31.
6. The method according to claim 2, characterized in that The first coding sequence is a matrix of 32 rows and 11 columns. The first coding sequence is shown in the following table, where i represents the row index of the matrix and M represents the column index of the matrix.
7. The method according to claim 2 or 6, characterized in that: The length of the sequence to be encoded is K, and when K is any value from 3 to 11, the first interleaving pattern is as shown in the following table: Wherein, i represents the i+1th position of the second code word sequence, P(i) represents placing the bit at the P(i)+1th position of the first code word sequence at the i+1th position of the second code word sequence, and 0≤i≤31.
8. The method according to claim 2 or 6, characterized in that: The length of the sequence to be encoded is K, When K is equal to 3, the first interleaving pattern is as shown in Table #12, Table #12 or, When K is equal to 4, the first interleaving pattern is as shown in Table #13, Table #13 or, When K is equal to 5, the first interleaving pattern is as shown in Table #14, Table #14 or, When K is equal to 6, the first interleaving pattern is as shown in Table #15, Table #15 or, When K is equal to 7, the first interleaving pattern is as shown in Table #16, Table #16 or, When K is equal to 8, the first interleaving pattern is as shown in Table #17, Table #17 or, When K is equal to 9, the first interleaving pattern is as shown in Table #18, Table #18 or, When K is equal to 10, the first interleaving pattern is as shown in Table #19, Table #19 or, When K is equal to 11, the first interleaving pattern is as shown in Table #20, Table #20 Wherein, i represents the i+1th position of the second code word sequence, P(i) represents placing the bit at the P(i)+1th position of the first code word sequence at the i+1th position of the second code word sequence, and 0≤i≤31.
9. A rate matching method, characterized in that: include: Performing row interleaving on a first coding sequence to obtain a second coding sequence, wherein the first coding sequence is a basic sequence corresponding to the packet coding; Encode the sequence to be encoded based on the second encoding sequence to obtain a second codeword sequence with a length of 32 bits; Puncturing the second codeword sequence based on a value E to obtain a third codeword sequence, wherein the value E indicates the number of bits of the second codeword sequence after rate matching, and E is a positive integer less than 32; The third codeword sequence is output.
10. The method according to claim 9, characterized in that The performing row interleaving on the first coding sequence comprises: The first coding sequence is row interleaved based on a first interleaving pattern, wherein the first interleaving pattern is used to reset the first The position of some or all of the 32 lines of the encoding sequence.
11. The method according to claim 10, characterized in that The first coding sequence is a matrix of 32 rows and 11 columns. The first coding sequence is shown in the following table, where i represents the row index of the matrix and M represents the column index of the matrix.
12. The method according to claim 10 or 11, characterized in that: The first interleaving pattern is shown in Table #21 or Table #22 below, Table #21 Table #22 Wherein, i represents the i+1th row of the first coding sequence, P(i) represents placing the row element corresponding to the P(i)+1th row of the first coding sequence on the i+1th row of the second coding sequence, and 0≤i≤31.
13. The method according to claim 10 or 11, characterized in that: The length of the sequence to be encoded is K, 3≤K≤11, When K is equal to 3, the first interleaving pattern is as shown in Table #23, Table #23 or, When K is equal to 4, the first interleaving pattern is as shown in Table #24, Table #24 or, When K is equal to 5, the first interleaving pattern is as shown in Table #25, Table #25 or, When K is equal to 6, the first interleaving pattern is as shown in Table #26, Table #26 or, When K is equal to 7, the first interleaving pattern is as shown in Table #27, Table #27 or, When K is equal to 8, the first interleaving pattern is as shown in Table #28, Table #28 or, When K is equal to 9, the first interleaving pattern is as shown in Table #29, Table #29 or, When K is equal to 10, the first interleaving pattern is as shown in Table #30, Table #30 or, When K is equal to 11, the first interleaving pattern is as shown in Table #31, Table #31 Wherein, i represents the i+1th row of the first coding sequence code, P(i) represents placing the row element on the P(i)+1th row of the first coding sequence on the i+1th row of the second coding sequence, and 0≤i≤31.
14. A communication device, characterized in that: The method comprises a module or a unit for executing the method according to any one of claims 1 to 8, or comprises a module or a unit for executing the method according to any one of claims 9 to 13.
15. A communication device, characterized in that: The device comprises at least one processor coupled to at least one memory, wherein the at least one processor is used to execute a computer program or instruction stored in the at least one memory so that the communication device performs the method according to any one of claims 1 to 8 or the method according to any one of claims 9 to 13.
16. A chip, characterized in that: The method comprises a processor and a communication interface, wherein the communication interface is used to receive a sequence to be encoded and send the sequence to be encoded to the processor, wherein the processor encodes and interleaves the sequence to be encoded according to the method according to any one of claims 1 to 8 to obtain a third codeword sequence; the communication interface is also used to output the third codeword sequence; or The communication interface is used to receive a sequence to be encoded and send the sequence to be encoded to the processor, and the processor encodes the sequence to be encoded based on a second encoding sequence according to the method described in any one of claims 9 to 13 to obtain a third code word sequence; the communication interface is used to output the third code word sequence.
17. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and when the computer instructions are executed on a computer, the method according to any one of claims 1 to 8 or the method according to any one of claims 9 to 13 is implemented.
18. A computer program product, characterized in that The computer program product comprises a computer program code, and when the computer program code is run on a computer, the method according to any one of claims 1 to 8 or the method according to any one of claims 9 to 13 is implemented.