WO2021249080A1 - 编码方法及装置 - Google Patents

编码方法及装置 Download PDF

Info

Publication number
WO2021249080A1
WO2021249080A1 PCT/CN2021/092560 CN2021092560W WO2021249080A1 WO 2021249080 A1 WO2021249080 A1 WO 2021249080A1 CN 2021092560 W CN2021092560 W CN 2021092560W WO 2021249080 A1 WO2021249080 A1 WO 2021249080A1
Authority
WO
WIPO (PCT)
Prior art keywords
data unit
data
coded
encoded
original data
Prior art date
Application number
PCT/CN2021/092560
Other languages
English (en)
French (fr)
Inventor
祝慧颖
董朋朋
谭志远
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP21821363.5A priority Critical patent/EP4149031A4/en
Publication of WO2021249080A1 publication Critical patent/WO2021249080A1/zh
Priority to US18/077,061 priority patent/US20230103108A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Definitions

  • This application relates to the field of communication technology, and in particular to an encoding method and device.
  • RLNC random linear network coding
  • the embodiments of the present application provide an encoding method and device.
  • the embodiments of the present application provide an encoding method, which can be executed by a terminal or a network device, or a component (such as a processor, a chip, or a chip system, etc.) of the terminal or the network device, including: obtaining T data units to be encoded, and T is an integer greater than 1.
  • each to-be-coded data unit group in the L to-be-coded data unit groups respectively, to obtain one or more coded data units corresponding to each to-be-coded data unit group in the L to-be-coded data unit groups one-to-one
  • the L data unit groups to be coded include all the above T data units to be coded
  • each data unit group to be coded in the L data unit groups to be coded contains at most M of the T data units to be coded
  • L is an integer greater than or equal to T
  • M is an integer greater than 0 and less than T.
  • L satisfies T ⁇ L ⁇ T+M-1.
  • the coding type can be block coding, convolutional coding, or random linear coding
  • the coding type can also be network coding (such as block network coding, convolutional network coding, or random linear network coding).
  • the above method divides the to-be-coded data unit into multiple to-be-coded data unit groups for encoding respectively, and the number of to-be-coded data units contained in each to-be-coded data unit group is less than the number of all to-be-coded data units.
  • the encoding of the data unit group to be encoded can be implemented in many different ways.
  • a coding matrix can be used to encode the data unit to be coded in the data unit group to be coded
  • a coding core can also be used to encode the data data unit to be coded in the data unit group to be coded.
  • the encoding kernel can be understood as a kind of encoding vector, and the encoding kernel can also be called a convolution kernel, encoding kernel vector, coefficient vector or coefficient vector, etc.
  • the encoding core is included in the encoding matrix.
  • the encoding core may include all non-zero elements in a row or column of the encoding matrix.
  • the above M can be understood as the convolution depth, coding constraint degree, constraint length, convolution constraint length, memory depth, coding depth, coding core size, coding core length or coding core depth corresponding to the coding.
  • the above T, L, and M can be collectively referred to as coding parameters.
  • one or more of the foregoing encoding parameters may be predefined or configured by a network device.
  • each of the L data unit groups to be coded does not simultaneously contain the first data unit to be coded and the last data unit to be coded among the T data units to be coded, or L
  • One or more to-be-coded data unit groups in the to-be-coded data unit group include the first to-be-coded data unit and the last to-be-coded data unit of the T data units to be coded.
  • each of the L data unit groups to be coded contains the first data unit to be coded and the last data unit to be coded among the T data units to be coded
  • the coding complexity can be reduced.
  • the storage overhead in the encoding process is reduced.
  • one or more of the L data unit groups to be coded contains the first data unit to be coded and the last data unit to be coded among the T data units to be coded, because there are more data units to be coded.
  • the coded data unit can participate in the coding, can obtain higher coding gain, and further improve the ability of the coded data to resist channel fading and channel changes, thereby further improving the receiving reliability of the coded data and increasing the spectral efficiency.
  • the T data units to be encoded include N original data units, and each of the L data unit groups to be encoded includes at most N original data units.
  • N is an integer greater than 1
  • M is an integer greater than 0 and less than N.
  • the above N, L, and M can be collectively referred to as coding parameters.
  • the number L of data unit groups to be encoded satisfies N ⁇ L ⁇ N+M-1.
  • obtaining one or more coded data units corresponding to each of the L to-be-coded data unit groups in a one-to-one manner is specifically implemented as follows: One coded data unit corresponding to one data unit group to be coded.
  • the original data unit can be selectively encoded, thereby reducing the correlation of the encoded data of the original data unit, and improving the ability of the encoded data of the original data unit to resist channel fading and channel changes, thereby improving the original data unit Receiving reliability of the encoded data and improve the spectrum efficiency.
  • each of the L data unit groups to be encoded does not contain the first original data unit and the last original data unit of the N original data units at the same time.
  • one or more of the L data unit groups to be encoded includes the first original data unit and the last original data unit of the N original data units.
  • the foregoing N original data units are included in B original data blocks, and B is an integer greater than 1.
  • This optional implementation mode can perform inter-block joint coding on the original data units contained in two or more original data blocks, and therefore can support the correction of transmission errors between blocks, thereby further improving the coding reliability and The ability of data transmission to resist random errors in the channel, thereby improving the spectrum efficiency.
  • header information may be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, and the original encoding data unit corresponding to the original
  • the number information of the original data unit contained in the data block the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data
  • the header information may also contain the identification information of the sender.
  • the receiving end can identify the coded data unit used for decoding according to the header information, thereby enabling correct decoding of the coded data unit, thereby improving the spectrum efficiency.
  • the L data unit groups to be coded may be obtained in a sliding window manner, and each data unit to be coded in the L data unit groups to be coded The groups are respectively coded to obtain one coded data unit corresponding to each group of data units to be coded in the group of L data unit groups to be coded.
  • the L data unit groups to be encoded include all the original data units in the N original data units obtained by using a sliding window method.
  • M can be understood as the maximum number of original data units that can be included in the sliding window.
  • each of the L data unit groups to be encoded does not contain the first original data unit and the last original data unit of the N original data units.
  • the sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • the sliding window does not perform a cyclic shift when sliding, which can reduce the coding complexity during coding and at the same time can reduce the storage overhead in the coding process.
  • the sliding window is cyclically shifted when it is sliding. Since more data units to be coded can participate in coding, higher coding gain can be obtained, and the ability of coded data to resist channel fading and channel changes is further improved, thereby further improving the reception of coded data Reliability and improve spectrum efficiency.
  • the T data units to be encoded include N original data units and P interleaved data units, and each data unit to be encoded in the group of L data units to be encoded
  • the group contains at most M original data units and/or interleaved data units out of N original data units and P interleaved data units.
  • N is an integer greater than 1
  • P is an integer greater than 1
  • M is greater than 0 and less than N+ An integer of P.
  • the aforementioned N, P, L, and M can be collectively referred to as coding parameters.
  • the number L of data unit groups to be encoded satisfies N+P ⁇ L ⁇ N+P+M-1.
  • obtaining one or more coded data units corresponding to each of the L to-be-coded data unit groups in a one-to-one manner is specifically implemented as follows: One coded data unit corresponding to one data unit group to be coded.
  • the foregoing embodiments can be understood as interleaving the N original data units and then dividing the data unit groups to be encoded. On the basis of reducing the correlation of the encoded data, the interleaving can further improve the resistance of the encoded data against channel fading and channel changes. Capability to further improve the reliability of the coded data reception and increase the spectral efficiency.
  • each of the L data unit groups to be encoded does not simultaneously contain N+P original data units and the first data unit and the last one of the interleaved data units.
  • the data unit can be understood as the sliding window does not perform cyclic shift when sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains N+P original data units and the first data unit and the last data unit in the interleaved data unit, which can be understood as sliding
  • the window is cyclically shifted.
  • the first data unit and the last data unit are the original data unit or the interleaved data unit, it depends on the arrangement of the original data unit and the interleaved data unit, which is not limited in this application.
  • the foregoing N original data units are included in B original data blocks, and B is an integer greater than 1.
  • This optional implementation mode can perform inter-block joint coding on the original data units contained in two or more original data blocks, and therefore can support the correction of transmission errors between blocks, thereby further improving the coding reliability and The ability of data transmission to resist random errors in the channel, thereby improving the spectrum efficiency.
  • header information may be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, and the original encoding data unit corresponding to the original
  • the number information of the original data unit contained in the data block the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data
  • the header information may also contain the identification information of the sender.
  • the L data unit groups to be coded may be obtained in a sliding window manner, and each data unit to be coded in the L data unit groups to be coded The groups are respectively coded to obtain one coded data unit corresponding to each group of data units to be coded in the group of L data unit groups to be coded.
  • the L data unit groups to be coded obtained by means of a sliding window include all the original data units and interleaved data units in the N original data units and the P interleaved data units.
  • M can be understood as the maximum number of original data units and/or interleaved data units that can be included in the sliding window.
  • each of the L data unit groups to be coded contains N+P original data units and the first data unit and the last data unit of the interleaved data unit when different
  • the sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains N+P original data units and the first data unit and the last data unit in the interleaved data unit, it can be understood as sliding
  • the window is cyclically shifted.
  • the T data units to be encoded include B original data blocks, and each of the above-mentioned L data unit groups to be encoded includes at most B data unit groups.
  • B is an integer greater than 1
  • M is an integer greater than 0 and less than B.
  • the original data block can generally be understood as a data unit to be encoded larger than the original data unit.
  • B original data blocks may contain original data units, where the b-th original data block includes N b original data units, and b is An integer greater than 0 and less than or equal to B.
  • the original data block may include original data units and interleaved data units, where the b-th original data block includes N b original data units and interleaved data units, and b is an integer greater than 0 and less than or equal to B.
  • B, L, N b, and M can be collectively referred to as coding parameters.
  • the number L of the data unit groups to be encoded satisfies B ⁇ L ⁇ B+M-1.
  • obtaining one or more coded data units corresponding to each of the L to-be-coded data unit groups in a one-to-one manner is specifically implemented as follows: A plurality of coded data units corresponding to one data unit group to be coded.
  • the foregoing implementation manner can be understood as dividing B original data blocks into L to-be-coded data unit groups, and respectively encoding the L to-be-coded data unit groups, where L satisfies B ⁇ L ⁇ B+M-1.
  • M can also be understood as the inter-block convolution depth in this embodiment.
  • each of the L data unit groups to be encoded does not simultaneously contain the first original data block and the last original data block of the B original data blocks.
  • one or more of the L data unit groups to be encoded includes the first original data block and the last original data block of the B original data blocks.
  • header information may be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, and the original encoding data unit corresponding to the original
  • the number information of the original data unit contained in the data block the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data
  • the header information may also contain the identification information of the sender.
  • the L data unit groups to be coded may be obtained in a sliding window manner, and each data unit to be coded in the L data unit groups to be coded The groups are respectively coded, and a plurality of coded data units corresponding to each of the L data unit groups to be coded in a one-to-one correspondence is obtained.
  • the L data unit groups to be encoded include all the original data blocks in the B original data blocks obtained by using a sliding window method.
  • M can be understood as the maximum number of original data blocks that can be included in the sliding window.
  • each of the L data unit groups to be coded does not contain the first original data block and the last original data block of the B original data blocks .
  • the sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains the first original data block and the last original data block of the B original data blocks, it can be understood as a sliding window for cyclic shift Bit.
  • T data units to be encoded include B original data blocks and Q interleaved data blocks, and each data unit to be encoded in the group of L data units to be encoded
  • the group contains at most B original data blocks and M original data blocks and/or interleaved data blocks of the Q interleaved data blocks, B is an integer greater than 1, Q is an integer greater than 1, and M is greater than 0 and less than An integer of B+Q.
  • the original data block contains the original data unit, and the interleaved data block contains the interleaved data unit.
  • B, Q, L, and M can be collectively referred to as coding parameters.
  • the number L of data unit groups to be encoded satisfies B+Q ⁇ L ⁇ B+Q+M-1.
  • obtaining one or more coded data units corresponding to each of the L to-be-coded data unit groups in a one-to-one manner is specifically implemented as follows: A plurality of coded data units corresponding to one data unit group to be coded.
  • the foregoing implementation manner can be understood as interleaving the original data units in the B original data blocks and then dividing the data unit groups to be coded, combined with inter-block coding, and on the basis of supporting inter-block transmission error correction, the interleaving can be further used. Improve the ability of coded data to resist channel fading and channel changes, thereby further improving the reliability of coded data reception and increasing spectral efficiency.
  • each of the L data unit groups to be encoded does not simultaneously contain B+Q original data blocks and the first data block and the last one of the interleaved data blocks.
  • the data block can be understood as the sliding window does not perform cyclic shift (that is, the end-to-end cyclic shift) when sliding.
  • one or more of the L data unit groups to be coded contains B+Q original data blocks and the first data block and the last data block of the interleaved data blocks, which can be understood as sliding
  • the window is cyclically shifted.
  • the first data block and the last data block are original data blocks or interleaved data blocks, respectively, it depends on the arrangement of the original data blocks and the interleaved data blocks, which is not limited in this application.
  • header information may be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, and the original encoding data unit corresponding to the original
  • the number information of the original data unit contained in the data block the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data
  • the header information may also contain the identification information of the sender.
  • the L data unit groups to be coded may be obtained in a sliding window manner, and each data unit to be coded in the L data unit groups to be coded The groups are respectively coded to obtain one coded data unit corresponding to each group of data units to be coded in the group of L data unit groups to be coded.
  • the L data unit groups to be coded obtained by means of a sliding window include all the original data blocks and the interleaved data blocks in the B original data blocks and the Q interleaved data blocks.
  • M can be understood as the maximum number of original data blocks and/or interleaved data blocks that can be included in the sliding window.
  • each of the L data unit groups to be encoded contains B+Q original data blocks and the first data block and the last data block of the interleaved data blocks when different
  • the sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains B+Q original data blocks and the first data block and the last data block in the interleaved data block, it can be understood as sliding
  • the window is cyclically shifted.
  • the T data units to be encoded include error data units, and the number of the error data units is one or more.
  • Each to-be-coded data unit group in the L to-be-coded data unit groups does not include the erroneous data unit, or one or more to-be-coded data unit groups in the L to-be-coded data unit groups include the erroneous data unit.
  • the above method further includes generating and outputting first indication information indicating the erroneous data unit, and the first indication information may Carried in the header information.
  • the execution subject of this optional implementation method can be a relay device or a forwarding device, for example, a relay network device, a relay terminal, a forwarding network device or a forwarding terminal, or a relay network device, a relay terminal, and a forwarding device.
  • the relay device first receives the data unit to be forwarded, but due to the fading characteristics of the wireless channel, the relay device may not be able to correctly receive some data units to be forwarded. These data units to be forwarded that cannot be correctly received by the relay device can be understood as The above-mentioned error data unit.
  • the relay device can reasonably re-encode the data to be forwarded when the data is forwarded, so that the receiving reliability of the encoded data and the spectrum efficiency can be improved in the scenario of relaying and forwarding.
  • each data unit group to be encoded in the L data unit groups to be encoded does not contain the error data unit
  • each data unit group to be encoded in the L data unit groups to be encoded is separately coded to generate and L
  • no coded data unit corresponding to the erroneous data unit is generated.
  • the implementation method may also optionally include: generating and outputting second indication information, the second indication information indicating that the coded data unit corresponding to the error data unit is incomplete, and the second indication information may be carried in the header information It can also be carried in a control protocol data unit (protocol data unit, PDU), and can also be carried in a media access control (media access control, MAC) control element (CE).
  • PDU control protocol data unit
  • MAC media access control
  • CE media access control element
  • the transmission or diffusion of the erroneous data unit can be avoided, the reliability of decoding at the receiving end is improved, and the waste of spectrum resources for transmitting the erroneous data unit can also be reduced.
  • each data unit group to be encoded in the L data unit groups to be encoded does not contain the error data unit
  • each data unit group to be encoded in the L data unit groups to be encoded is separately coded to generate and L
  • the error data unit can also be set to 0, which can also be understood as the error data unit does not participate in encoding.
  • it may also optionally include: generating and outputting third indication information, the third indication information indicating the error data unit, the third indication information may be carried in the header information, or may be carried in the control PDU , Can also be carried in MAC CE.
  • the third indication information enables the receiving device to complete the decoding of the received data in the case of missing erroneous data units.
  • the transmission or diffusion of erroneous data units can be avoided, and the ability of the coded data of the data unit to be coded to resist channel fading and channel changes can be improved, thereby improving the reliability of data reception and increasing the spectral efficiency.
  • each data unit group to be encoded in the L data unit groups to be encoded is separately encoded to generate and When each of the L data unit groups to be coded corresponds to one or more coded data units in a one-to-one manner, the erroneous data unit participates in encoding.
  • the above-mentioned first indication information indicating the error data unit is also generated and output.
  • the first indication information may be carried in the header information, may be carried in the control PDU, or may be carried in the MAC CE.
  • the first indication information enables the receiving device to complete the decoding of the received data when the encoded data unit corresponding to the erroneous data unit is included.
  • the implementation complexity of the relay device can be reduced, and the ability of the coded data of the data unit to be coded to resist channel fading and channel change can be improved, thereby improving the reliability of data reception and increasing the spectral efficiency.
  • the embodiments of the present application provide an encoding method.
  • the method can be executed by a terminal or a network device, or can be executed by a component (such as a processor, a chip, or a chip system, etc.) of the terminal or the network device, including: obtaining T data units to be encoded, and T is an integer greater than 1.
  • Data to be encoded on the T units O 1, O 2, ..., O T K obtained by encoding the encoded data units A 1, A 2, ..., A K, K is greater than or equal to T, K coded data unit satisfies:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix.
  • the diagonal line of the sub-matrix contains the elements in GF(q) Non-zero elements.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than T.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • the above method uses the coding matrix containing the sub-matrix to encode the data unit to be coded.
  • the correlation of the coded data can be reduced and the coding can be improved.
  • the T data units to be encoded include N original data units X 1 , X 2 ,..., X N , and the N original data units are encoded to obtain K
  • a number of coded data units A 1 , A 2 ,..., A K , K is greater than or equal to N, and K coded data units satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix.
  • the diagonal line of the sub-matrix contains the elements in GF(q) Non-zero elements.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than N.
  • the above N, K, R, and M can be collectively referred to as coding parameters.
  • the coding matrix H (can be denoted as H 1 ) is an N*K-dimensional matrix, which contains N*N-dimensional sub-matrices And N*(KN) dimensional submatrices Among them, the sub-matrix There are non-zero elements in GF(q) on the main diagonal of and the M-1 diagonal diagonals parallel to the main diagonal.
  • the coding matrix H (can be denoted as H 2 ) is an N*K-dimensional matrix, which contains N*(N+M-1)-dimensional sub-matrices And N*(KN-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero elements in GF(q) on M diagonal diagonals.
  • the complexity of encoding and decoding can be reduced, the correlation of the encoded data of at least N original data units can be reduced, and the ability of the encoded data of the original data units to resist channel fading and channel changes is improved, thereby improving the encoding of the original data units Reliability of data reception and improvement of spectrum efficiency.
  • I N is an N*N-dimensional identity matrix.
  • 1 H in the matrix H contains one or more column vector, or matrix H 'H 2 comprising one or more column vector' as described above or H 1 H 2, or matrix H '.
  • the decoding delay of the encoded data unit can be reduced, and the correlation of the encoded data of at least N original data units can be reduced, and the ability of the encoded data of the original data unit to resist channel fading and channel changes is improved, thereby improving the original Receiving reliability of the encoded data of the data unit and improving the spectrum efficiency.
  • the foregoing N original data units are included in B original data blocks, and B is an integer greater than 1.
  • This optional implementation mode can perform inter-block joint coding on the original data units contained in two or more original data blocks, and therefore can support the correction of transmission errors between blocks, thereby further improving the coding reliability and The ability of data transmission to resist random errors in the channel, thereby improving the spectrum efficiency.
  • header information may be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, and the original encoding data unit corresponding to the original
  • the number information of the original data unit contained in the data block the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data
  • the header information may also contain the identification information of the sender.
  • T data units to be encoded include N original data units X 1 , X 2 ,..., X N and P interleaved data units X′ 1 , X′ 2 ,...,X′ P , encode the N original data units and P interleaved data units to obtain K coded data units A 1 , A 2 ,..., A K , K is greater than or equal to N+P, K
  • the coded data unit satisfies:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix.
  • the diagonal line of the sub-matrix contains the elements in GF(q) Non-zero elements.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than N+P.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • the T data units O 1 , O 2 ,..., O T to be encoded in the method 400 are the aforementioned N original data units X 1 , X 2 ,..., X N and P interleaved data units X′ 1 ,X′ 2 ,...,X′ P.
  • the coding matrix H (can be denoted as H 4 ) is a (N+P)*K-dimensional matrix, which contains (N+P)*(N+P)-dimensional sub-matrices And (N+P)*(KNP) dimensional submatrices Among them, the sub-matrix There are non-zero elements in GF(q) on the main diagonal of and the M-1 diagonal diagonals parallel to the main diagonal.
  • the coding matrix H (can be denoted as H 5 ) is a (N+P)*K-dimensional matrix, which contains (N+P)*(N+P+M-1)-dimensional sub-matrices And (N+P)*(KNP-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero elements in GF(q) on M diagonal diagonals.
  • I N+P is a (N+P)*(N+P)-dimensional identity matrix.
  • Comprising a matrix H H 4 or more column vector, or matrix H 'H 5 comprises a one or more column vector' as described above or H 5 H 4, or matrix H '.
  • the foregoing N original data units are included in B original data blocks, and B is an integer greater than 1.
  • This optional implementation mode can perform inter-block joint coding on the original data units contained in two or more original data blocks, and therefore can support the correction of transmission errors between blocks, thereby further improving the coding reliability and The ability of data transmission to resist random errors in the channel, thereby improving the spectrum efficiency.
  • header information may be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, and the original encoding data unit corresponding to the original
  • the number information of the original data unit contained in the data block the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data
  • the header information may also contain the identification information of the sender.
  • the embodiments of the present application provide an encoding method.
  • the method can be executed by a terminal or a network device, or can be executed by a component (such as a processor, a chip, or a chip system, etc.) of the terminal or the network device, including: obtaining T data units to be encoded, and T is an integer greater than 1.
  • T data to be coded units O 1, O 2, ..., O T encoding obtain D encoded data block C comprises encoding data unit 1, C 2, ..., C D, D is greater than or equal to T, the D The coded data block satisfies:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix
  • the diagonal of the sub-matrix contains elements in GF(q)
  • the non-zero matrix is M
  • M is an integer greater than 0 and less than T.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • the above method uses the coding matrix containing the sub-matrix to encode the data unit to be coded.
  • the correlation of the coded data can be reduced.
  • T data units to be encoded include B>1 original data blocks BL 1 ,..., BL B containing original data units, or T data to be encoded
  • the unit includes B>1 original data blocks BL 1 ,..., BL B containing original data units and interleaved data units.
  • the original data blocks B obtained by encoding the encoded data D comprises a coded data block unit C 1, C 2, ..., C D, D is greater than or equal to B, D coded data block satisfies:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix
  • the diagonal of the sub-matrix contains elements in GF(q)
  • the non-zero matrix is M
  • M is an integer greater than 0 and less than B.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • B, D, and M can be collectively referred to as coding parameters.
  • the ability of the coded data to resist channel fading and channel changes can be further improved by means of interleaving, thereby further improving the receiving reliability of the coded data and increasing the spectral efficiency.
  • the coding matrix H (can be denoted as H 7 ) is a B*D-dimensional matrix, which contains B*B-dimensional sub-matrices And B*(DB) dimensional submatrices
  • the sub-matrix contained in the above H No special requirements, for example, it can be randomly obtained in GF(q) Elements in.
  • Submatrix There are non-zero matrices containing elements in GF(q) on the main diagonal of and on the M-1 diagonal diagonals parallel to the main diagonal.
  • the coding matrix H (can be denoted as H 8 ) is a B*D-dimensional matrix, which contains a B*(B+M-1)-dimensional sub-matrix And B*(DB-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero matrices containing elements in GF(q) on the M diagonal diagonals.
  • the B*B-dimensional matrix I B contains B*B N b ⁇ N b -dimensional unit matrices, N b represents the number of original data units contained in the original data block b, 1 ⁇ b ⁇ B, different The number of original data units contained in the original data block may be the same or different.
  • Matrix H 'as described above or H 7 H 8, or matrix H' to H 7 comprises one or more column vector, or matrix H 'contains one or more of H 8 column vectors.
  • header information may be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, and the original encoding data unit corresponding to the original
  • the number information of the original data unit contained in the data block the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data
  • the header information may also contain the identification information of the sender.
  • the T data units to be encoded include B original data blocks BL 1 ,..., BL B and Q interleaved data blocks BL′ 1 ,..., BL′ Q .
  • B original data blocks in the original data block contains N b b raw data units
  • the data block interleave Q interlaces data block q 'comprises N q' interleaving data units.
  • Encode the B original data blocks and Q interleaved data blocks to obtain D coded data blocks C 1 , C 2 ,..., C D containing coded data units, D is greater than or equal to B+Q
  • D coded data blocks satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix
  • the diagonal of the sub-matrix contains elements in GF(q) The non-zero matrix.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than B+Q.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • this application does not limit the arrangement order of the above-mentioned B original data blocks and Q interleaved data blocks in [BL 1 ,...,BL B ,BL′ 1 ,...,BL′ Q ], [BL 1 ,... ,BL B ,BL′ 1 ,...,BL′ Q ] means that it contains the above B original data blocks and Q interleaved data blocks, but the arrangement order of the B+Q data blocks can be arbitrary, and this application does not Make a limit.
  • the above-mentioned B, Q, N b , N q′ , D and M can be collectively referred to as coding parameters.
  • the coding matrix H (can be denoted as H 10 ) is a (B+Q)*D-dimensional matrix, which contains (B+Q)*(B+Q)-dimensional sub-matrices And (B+Q)*(DBQ) dimensional submatrices Among them, the sub-matrix There are non-zero matrices containing elements in GF(q) on the main diagonal of and on the M-1 diagonal diagonals parallel to the main diagonal.
  • the coding matrix H (can be denoted as H 11 ) is a (B+Q)*D-dimensional matrix, which contains (B+Q)*(B+Q+M-1)-dimensional sub-matrices And (B+Q)*(DBQ-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero matrices containing elements in GF(q) on the M diagonal diagonals.
  • the (B+Q)*(B+Q)-dimensional matrix I B+Q contains (B+Q)*(B+Q) (N b +N q′ ) ⁇ (N b +N q′ )
  • the dimensional identity matrix Matrix H 'as described above or H 10 H 11, or matrix H' H 10 contained in the one or more column vector, or matrix H 'H 11 comprising one or more column vector.
  • header information may be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, and the original encoding data unit corresponding to the original
  • the number information of the original data unit contained in the data block the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data
  • the header information may also contain the identification information of the sender.
  • an embodiment of the present application provides a device that can implement any possible implementation manner of the first aspect, second aspect, third aspect, and first aspect, any possible implementation manner of the second aspect, Or the method in any possible implementation of the third aspect.
  • the device includes corresponding units or components for performing the above-mentioned methods.
  • the units included in the device can be implemented in software and/or hardware.
  • the device may be, for example, a terminal, a network device, a server, or a centralized controller, or a chip, a chip system, or a processor that can support a terminal, a network device, a server, or a centralized controller to implement the foregoing method.
  • an embodiment of the present application provides a device, including a processor, the processor is coupled with a memory, and the memory is used to store a program or instruction, and when the program or instruction is executed by the processor, To enable the device to implement any possible implementation manner of the first aspect, second aspect, third aspect, and first aspect, any possible implementation manner of the second aspect, or any possible implementation manner of the third aspect In the method.
  • an embodiment of the present application provides a computer-readable storage medium on which a computer program or instruction is stored.
  • the computer executes the first, second, and third aspects described above. , Any possible implementation manner of the first aspect, any possible implementation manner of the second aspect, or any possible implementation manner of the third aspect.
  • an embodiment of the present application provides a computer program product, which includes computer program code, which when running on a computer, causes the computer to execute the first, second, third, and first aspects described above.
  • the method in any possible implementation manner of the aspect, any possible implementation manner of the second aspect, or any possible implementation manner of the third aspect.
  • an embodiment of the present application provides a chip, including a processor, the processor is coupled with a memory, and the memory is used to store a program or instruction, and when the program or instruction is executed by the processor, Enable the chip to implement any possible implementation manner of the first aspect, the second aspect, the third aspect, the first aspect, any possible implementation manner of the second aspect, or any possible implementation manner of the third aspect In the method.
  • FIG. 1 is a schematic diagram of a communication system applied by an embodiment provided by this application;
  • Figure 2 shows a schematic diagram of an example architecture of a communication system
  • Figure 3 shows a schematic diagram of encoding provided by the present application
  • Figure 4 shows a schematic flow chart of the encoding method provided by the present application
  • FIG. 5A-FIG. 5C, FIG. 6A-FIG. 6C, FIG. 7A-FIG. 7C, and FIG. 8A-FIG. 8C show other schematic diagrams of encoding provided by this application;
  • FIG. 9 is a schematic structural diagram of a communication device provided by an embodiment of this application.
  • FIG. 10 is a schematic structural diagram of a terminal provided by an embodiment of this application.
  • FIG. 11 is a schematic diagram of another communication device provided by an embodiment of this application.
  • Figure 1 shows a schematic diagram of the structure of a communication system.
  • the communication system 100 includes one or more network devices (the network device 110 and the network device 120 are shown in the figure), and one or more terminals that communicate with the one or more network devices.
  • the terminal 114 and the terminal 118 shown in FIG. 1 communicate with the network device 110, and the terminal 124 and the terminal 128 shown in FIG. 1 communicate with the network device 120.
  • network devices and terminals may also be referred to as communication devices.
  • the methods and devices provided in the embodiments of this application can be used in various communication systems, such as fourth generation (4G) communication systems, 4.5G communication systems, 5G communication systems, systems that integrate multiple communication systems, or evolved in the future Communication system (such as 5.5G communication system or 6G communication system).
  • 4G fourth generation
  • 4.5G communication systems 5G communication systems
  • 5G communication systems systems that integrate multiple communication systems
  • evolved in the future Communication system such as 5.5G communication system or 6G communication system.
  • LTE long term evolution
  • NR new radio
  • WiFi wireless-fidelity
  • 3GPP 3rd generation partnership project
  • the method and device provided in the embodiments of this application can be applied to a variety of communication scenarios, such as transmission scenarios between network equipment and terminals, transmission scenarios between terminals, relay transmission scenarios between network equipment and terminals, and multiple communication scenarios. Dual connectivity (DC) or multiple connections between network devices and terminals, and multi-hop transmission scenarios.
  • DC Dual connectivity
  • FIG 2 shows a schematic diagram of an example of a possible architecture of a communication system.
  • the network equipment in the radio access network is a centralized unit (CU) and a distributed unit (distributed unit).
  • unit, DU A base station with a separate architecture (such as gNodeB or gNB).
  • the RAN can be connected to a core network (for example, it can be a core network of LTE, or a core network of 5G, etc.).
  • CU and DU can be understood as the division of base stations from the perspective of logical functions.
  • CU and DU can be physically separated or deployed together. Multiple DUs can share one CU.
  • One DU can also be connected to multiple CUs (not shown in the figure).
  • the CU and the DU can be connected through an interface, for example, an F1 interface.
  • CU and DU can be divided according to the protocol layer of the wireless network.
  • the functions of the packet data convergence protocol (PDCP) layer and the radio resource control (RRC) layer are set in the CU, while the radio link control (RLC) and media access control
  • the functions of the (media access control, MAC) layer and the physical layer are set in the DU.
  • PDCP packet data convergence protocol
  • RRC radio resource control
  • RLC radio link control
  • the functions of the (media access control, MAC) layer and the physical layer are set in the DU.
  • CU or DU processing functions according to this protocol layer is only an example, and it can also be divided in other ways.
  • CU or DU can be divided into functions with more protocol layers.
  • the CU or DU can also be divided into part of the processing functions with the protocol layer.
  • the functions of the CU or DU can also be divided according to business types or other system requirements. For example, it is divided by time delay, and the functions whose processing time needs to meet the delay requirement are set in the DU, and the functions that do not need to meet the delay requirement are set in the CU.
  • the network architecture shown in FIG. 2 can be applied to a 5G communication system, and it can also share one or more components or resources with an LTE system.
  • the CU may also have one or more functions of the core network.
  • One or more CUs can be set centrally or separately.
  • the CU can be set on the network side to facilitate centralized management.
  • the DU can have multiple radio frequency functions, or the radio frequency functions can be set remotely.
  • the function of the CU can be realized by one entity, or the control plane (CP) and the user plane (UP) can be further separated, that is, the control plane (CU-CP) and the user plane (CU-UP) of the CU can have different functions Realized by entity, the CU-CP and CU-UP can be coupled with the DU to jointly complete the function of the base station.
  • the network device can be any device with a wireless transceiver function. Including but not limited to: evolved base station in LTE (NodeB or eNB or e-NodeB, evolutional NodeB), base station in NR (gNodeB or gNB) or transmission receiving point/transmission reception point (TRP), 3GPP Subsequent evolution of base stations, access nodes in the WiFi system, wireless relay nodes, wireless backhaul nodes, etc.
  • the base station can be: a macro base station, a micro base station, a pico base station, a small station, a relay station, or a balloon station, etc. Multiple base stations can support networks of the same technology mentioned above, or networks of different technologies mentioned above.
  • the base station may contain one or more co-site or non-co-site TRPs.
  • the network device may also be a wireless controller, a CU, and/or a DU in a cloud radio access network (cloud radio access network, CRAN) scenario.
  • the network device can also be a server, a wearable device, a machine communication device, or a vehicle-mounted device, etc.
  • the following description takes the network device as a base station as an example.
  • the multiple network devices may be base stations of the same type, or base stations of different types.
  • the base station can communicate with the terminal equipment, and it can also communicate with the terminal equipment through the relay station.
  • the terminal device can communicate with multiple base stations of different technologies.
  • the terminal device can communicate with a base station that supports an LTE network, can also communicate with a base station that supports a 5G network, and can also support communication with a base station of an LTE network and a base station of a 5G network. Double connection.
  • a terminal is a device with wireless transceiver function. It can be deployed on land, including indoor or outdoor, handheld, wearable or vehicle-mounted; it can also be deployed on the water (such as ships, etc.); it can also be deployed in the air (such as airplanes, balloons, etc.) And satellite class).
  • the terminal may be a mobile phone (mobile phone), a tablet computer (Pad), a computer with wireless transceiver function, virtual reality (VR) terminal equipment, augmented reality (AR) terminal equipment, industrial control (industrial control) control), in-vehicle terminal equipment, unmanned driving (self-driving) terminal, assisted driving terminal, remote medical (remote medical) terminal, smart grid (smart grid) terminal, transportation safety ( Terminals in transportation safety, terminals in smart cities, terminals in smart homes, etc.
  • VR virtual reality
  • AR augmented reality
  • industrial control industrial control
  • in-vehicle terminal equipment unmanned driving (self-driving) terminal
  • assisted driving terminal remote medical (remote medical) terminal
  • smart grid (smart grid) terminal smart grid (smart grid) terminal
  • transportation safety Terminals in transportation safety, terminals in smart cities, terminals in smart homes, etc.
  • the embodiments of this application do not limit the application scenarios.
  • Terminals can sometimes be referred to as terminal equipment, user equipment (UE), access terminal equipment, vehicle-mounted terminal, industrial control terminal, UE unit, UE station, mobile station, mobile station, remote station, remote terminal equipment, mobile Equipment, UE terminal equipment, wireless communication equipment, machine terminal, UE agent or UE device, etc.
  • the terminal can be fixed or mobile.
  • the terminal may be a wearable device.
  • Wearable devices can also be called wearable smart devices. It is a general term for the application of wearable technology to intelligently design daily wear and develop wearable devices, such as glasses, gloves, watches, clothing and shoes.
  • a wearable device is a portable device that is directly worn on the body or integrated into the user's clothes or accessories. Wearable devices are not only a hardware device, but also realize powerful functions through software support, data interaction, and cloud interaction.
  • wearable smart devices include full-featured, large-sized, complete or partial functions that can be achieved without relying on smart phones, such as smart watches or smart glasses, and only focus on a certain type of application function, which need to cooperate with other devices such as smart phones.
  • Use such as all kinds of smart bracelets and smart jewelry for physical sign monitoring.
  • the terminal may be a terminal in the Internet of Things (IoT) system.
  • IoT Internet of Things
  • the terminal in this application may be a terminal in machine type communication (MTC).
  • MTC machine type communication
  • the terminal of the present application may be an in-vehicle module, an in-vehicle module, an in-vehicle component, an in-vehicle chip, or an in-vehicle unit that is built into a vehicle as one or more components or units.
  • the on-board chip or on-board unit can implement the method of this application. Therefore, the embodiments of the present application can be applied to the Internet of Vehicles, such as vehicle to everything (V2X), long term evolution vehicle (LTE-V), and vehicle to vehicle (V2V). Wait.
  • V2X vehicle to everything
  • LTE-V long term evolution vehicle
  • V2V vehicle to vehicle
  • network coding has become an important technical direction, which is to combat packet loss or errors in wireless communication by encoding the original data unit and adding redundant information. , In order to improve the reliability of data transmission.
  • the data unit in this application may also be referred to as a data packet, a data segment, or a data block.
  • N original data units are respectively represented as X 1 , X 2 ,..., X N , and the N original data units may be included in one original data block.
  • a data block can also be called a data group, a data generation, or a data batch.
  • the original data block may also be referred to as the to-be-coded data block.
  • the N original data units can be multiplied by K code vectors to obtain K coded data units (represented as Y 1 , Y 2 ,..., Y K ) .
  • K code vectors can be expressed as [g 1,1 ,g 1,2 ,...,g 1,N ], [g 2,1 ,g 2,2 ,...,g 2,N ],..., [g K,1 ,g K,2 ,...,g K,N ], where each coding vector contains N coding coefficients, and the n-th coding coefficient in the k-th coding vector is denoted as g k,n .
  • the coding coefficients in the coding vector can be randomly selected from a finite field or a Galois field (galois field, GF), where GF is a field containing a finite number of elements, and GF(q) can be used to represent a field containing q elements GF.
  • Multiplying N original data units X 1 , X 2 ,..., X N with K code vectors to obtain K coded data units Y 1 , Y 2 ,..., Y K can satisfy:
  • the foregoing multiplying N original data units and K code vectors to obtain K coded data units can also be understood as multiplying N original data units and a coding matrix to obtain K coded data units.
  • the coding matrix may also be referred to as a generator matrix, a convolution generator matrix or a coefficient matrix.
  • the vectors in this application are all written in the form of row vectors for convenience of expression, but they can also be expressed in the form of column vectors, which is not limited in this application.
  • the encoded data is processed and sent.
  • linearly correlated coded data may be generated, thereby affecting the reliability of receiving the coded data. Therefore, how to reduce the linear correlation of the coded data and improve the reliability of receiving the coded data has become an urgent problem in the coding technology.
  • the embodiments in this application provide an encoding method and device for network encoding.
  • multiple data units to be encoded are divided into multiple data unit groups to be encoded for encoding respectively, and each data unit to be encoded is The number of data units to be coded contained in the group is less than the number of all data units to be coded.
  • This method can reduce the correlation of the coded data, improve the ability of the coded data to resist channel fading and channel changes, thereby improving the reliability of receiving the coded data.
  • GF Galois Field
  • GF is a field containing a finite number of elements, and GF(q) can be used to represent a GF containing q elements, where q is a positive integer.
  • GF(2) contains two elements of 0 and 1 (it can also be understood that the elements in GF(2) can be expressed in binary), GF(4) contains four elements of 0, 1, 2 and 3, GF(q) Contains q elements of 0, 1,..., q-1.
  • the elements in GF can be generated by the primitive polynomial P(x) on GF, and the polynomial multiplication on GF can be generated by corresponding to the elements in GF in the form of polynomials, and the multiplication operation on the GF field corresponds to polynomial multiplication and then the primitive
  • the polynomial P(x) takes the modulus.
  • 2-bit data such as '10', the corresponding polynomial form is x
  • the addition of polynomials on GF can correspond to the addition of polynomials in the GF field by mapping the elements in GF to polynomials (for example, the exclusive OR of the coefficients of similar terms). For example, 2-bit data (such as '10', the corresponding polynomial form is x), and 2-bit data (such as '11', the corresponding polynomial form is x+1) XOR addition on GF, satisfy ( Represents exclusive-or addition), the corresponding binary representation is "01".
  • FIG. 4 is a schematic flowchart of a communication method 400 provided by an embodiment of this application.
  • the execution body of the method may be a terminal, or a chip, a chip system, or a processor that supports the terminal to implement the method.
  • the execution body of the method may also be a network device, or a chip, a chip system, or a processor that supports the network device to implement the method.
  • the method 400 of this embodiment may include a part 410, a part 420, and a part 430:
  • Part 410 Obtain T data units to be encoded, where T is an integer greater than 1.
  • Part 420 Encode each data unit group to be encoded in the L data unit groups to be encoded, and obtain one or more data unit groups corresponding to each of the L data unit groups to be encoded.
  • An encoded data unit where the L data unit groups to be encoded include all the above T data units to be encoded, and each data unit group to be encoded in the L data unit groups to be encoded includes at most the above T data units to be encoded
  • L is an integer greater than or equal to T
  • M is an integer greater than 0 and less than T.
  • L satisfies T ⁇ L ⁇ T+M-1.
  • the coding type can be block coding, convolutional coding, or random linear coding
  • the coding type can also be network coding (such as block network coding, convolutional network coding, or random linear network coding).
  • each of the L data unit groups to be coded does not simultaneously contain the first data unit to be coded and the last data unit to be coded among the T data units to be coded, or L
  • One or more to-be-coded data unit groups in the to-be-coded data unit group include the first to-be-coded data unit and the last to-be-coded data unit of the T data units to be coded.
  • the encoding of the data unit group to be encoded can be implemented in many different ways.
  • a coding matrix can be used to encode the data unit to be coded in the data unit group to be coded
  • a coding core can also be used to encode the data data unit to be coded in the data unit group to be coded.
  • the encoding kernel can be understood as a kind of encoding vector, and the encoding kernel can also be called a convolution kernel, encoding kernel vector, coefficient vector or coefficient vector, etc.
  • the encoding core is included in the encoding matrix.
  • the encoding core may include all non-zero elements in a row or column of the encoding matrix.
  • the above M can be understood as the convolution depth, coding constraint degree, constraint length, convolution constraint length, memory depth, coding depth, coding core size, coding core length or coding core depth corresponding to the coding.
  • the above T, L, and M can be collectively referred to as coding parameters.
  • one or more of the coding parameters T, L, or M involved in part 410 and part 420 may be predefined or configured by a network device.
  • Part 430 Output coded data unit.
  • the output coded data unit can be understood as the terminal sends the coded data unit to a network device or other terminal.
  • the output coded data unit can be understood as the network device sending the coded data unit to the terminal or other network devices.
  • Sending a coded data unit may also be understood as sending a processed coded data unit, and the processing includes, for example, one or more of modulation, layer mapping, antenna port mapping, precoding, or resource mapping.
  • the output coded data unit can be understood as outputting the coded data unit in the terminal or the network device through the communication interface to the subsequent processing.
  • the module that encodes the data unit is a chip, a chip system, or a processor in the terminal or in the network device.
  • the output in this application may refer to the transmission of signals or data on the air interface, or may refer to the output of signals or data to other modules in the device through the communication interface in the device.
  • the data unit to be encoded is divided into a plurality of data unit groups to be encoded for encoding respectively, and the number of data units to be encoded contained in each data unit group to be encoded is less than the number of all data units to be encoded.
  • the method can reduce the relevance of the encoded data and improve the ability of the encoded data to resist channel fading and channel changes, thereby improving the receiving reliability of the encoded data and increasing the spectral efficiency.
  • the part 420 in the method 400 can also be replaced by another embodiment.
  • data to be encoded on the T units O 1, O 2, ..., O T K obtained by encoding the encoded data units A 1, A 2, ..., A K, K is greater than or equal to T, K
  • a coded data unit satisfies:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix.
  • the diagonal line of the sub-matrix contains the elements in GF(q) Non-zero elements.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than T.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • this embodiment is simply referred to as alternative embodiment 420-A.
  • the part 420 in the method 400 can also be replaced by another embodiment.
  • data to be encoded on the T units O 1, O 2, ..., O T encoding, encoded data block D is obtained containing the encoded data unit C 1, C 2, ..., C D, D Greater than or equal to T, D coded data blocks satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix
  • the diagonal of the sub-matrix contains elements in GF(q)
  • the non-zero matrix is M
  • M is an integer greater than 0 and less than T.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • this embodiment is simply referred to as alternative embodiment 420-B.
  • the T data units to be encoded include N original data units, and each data unit group to be encoded in the L data unit groups to be encoded It contains at most M original data units out of N original data units, where N is an integer greater than 1, and M is an integer greater than 0 and less than N.
  • N is an integer greater than 1
  • M is an integer greater than 0 and less than N.
  • T is equal to N
  • the data unit to be encoded is the original data unit.
  • the above N, L, and M can be collectively referred to as coding parameters.
  • part 410 of the method 400 may be implemented as: obtaining N original data units.
  • the protocol layer can be the RLC layer, the PDCP layer, the RRC layer, and the backhaul adaptation protocol in the communication protocol. (backhaul adaptation protocol, BAP) layer, MAC layer or application layer, etc.
  • N original data units can be received from other devices (such as other network equipment or terminals).
  • the number L of data unit groups to be encoded satisfies N ⁇ L ⁇ N+M-1.
  • obtaining one or more coded data units corresponding to each of the L to-be-coded data unit groups in a one-to-one manner is specifically implemented as follows: Each to-be-coded data unit group in the to-be-coded data unit group corresponds to one coded data unit one-to-one.
  • each of the L data unit groups to be encoded does not simultaneously contain the first original data unit and the last original data unit of the N original data units.
  • one or more of the L data unit groups to be encoded includes the first original data unit and the last original data unit of the N original data units.
  • the foregoing embodiment 1-1 can be understood as dividing N original data units into L data unit groups to be coded, and encoding the L data unit groups to be coded respectively, where L satisfies N ⁇ L ⁇ N+M- 1.
  • the original data unit can be selectively coded, thereby reducing the correlation of the coded data of the original data unit, and improving the ability of the coded data of the original data unit to resist channel fading and channel changes, thereby improving The reception reliability of the encoded data of the original data unit and the improvement of the spectrum efficiency.
  • Embodiment 1-1 the foregoing N original data units are included in B original data blocks, and B is an integer greater than 1.
  • This optional implementation mode can perform inter-block joint coding on the original data units contained in two or more original data blocks, and therefore can support the correction of transmission errors between blocks, thereby further improving the coding reliability and The ability of data transmission to resist random errors in the channel, thereby improving the spectrum efficiency.
  • header information may also be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, corresponding to the encoded data unit The number information of the original data unit contained in the original data block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), The coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), or the identification information of the original data unit corresponding to the coding start position (such as the original data unit index). If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the L data unit groups to be coded can be obtained in a sliding window manner, and each data unit group to be coded in the L data unit groups to be coded Encoding is performed separately to obtain an encoded data unit corresponding to each data unit group to be encoded in the L data unit groups to be encoded one-to-one.
  • the L data unit groups to be encoded include all the original data units in the N original data units obtained by using a sliding window method.
  • M can be understood as the maximum number of original data units that can be included in the sliding window.
  • each of the L to-be-coded data unit groups is different and contains the first original data unit and the last original data unit of the N original data units, it can be understood as a sliding window No cyclic shift (ie end-to-end cyclic shift) is performed during sliding.
  • one or more of the L data unit groups to be coded contains the first original data unit and the last original data unit of the N original data units, it can be understood as a sliding window for circular shifting Bit.
  • the dashed frame represents the sliding window
  • a group of data units to be coded where the first group of data units to be coded G 1 includes original data units X 1 , the second group of data units to be coded G 2 includes original data units X 1 and X 2 , and the third to be coded
  • the data unit group G 3 includes original data units X 2 and X 3
  • the fourth to-be-encoded data unit group G 4 includes original data units X 3 and X 4 .
  • the sliding window starts from the position containing only X 1 , and slides to the right with the original data unit as the granularity, so as to obtain G 1 , G 2 , G 3 , G 4 groups of four data units to be encoded.
  • the four data unit groups G 1 , G 2 , G 3 , and G 4 to be coded are respectively coded to obtain one coded data unit corresponding to each data unit group to be coded.
  • the raw data in the G 1 cell X 1 obtained by encoding the G 1 corresponding to a coded data unit A 1
  • the original data unit X in the G 2 1 and X 2 for a coding obtain G 2 corresponding to encoding data unit a 2
  • the G 4 original data unit X 3 and X 4 obtained by encoding G 4 with a corresponding encoded data unit a 4.
  • N original data units are represented as X 1 ,...X n ,...,X N , (1 ⁇ n ⁇ N)
  • each data unit group to be encoded includes at most M original data units among the N original data units.
  • the first to-be-coded data unit group G 1 includes original data units X 1 ,..., and the n-th to-be-coded data unit group G n includes original data units X n-M+1 ,..., X n-1 , X n , (n-M+1>0),..., the N-th to-be-encoded data unit group G N includes original data units X N-M+1 ,..., X N-1 , X N.
  • the coding core [h 1 , h 2 ,..., h M ] can be used to encode the data unit group to be coded, and the elements in the coding core [h 1 , h 2 ,..., h M ] can be GF(q) Elements.
  • the data unit group and the sliding window are not cyclically shifted as an example to illustrate another specific implementation of the foregoing embodiment 1-1 in a sliding window manner.
  • FIG. 5B The difference between FIG. 5B and FIG. 5A is that the sliding window slides once more, and a fifth data unit group G 5 to be encoded is added, and G 5 includes the original data unit X 4 .
  • five data unit groups G 1 , G 2 , G 3 , G 4 , and G 5 to be coded are respectively coded to obtain one coded data unit corresponding to each data unit group to be coded.
  • the original data unit X in the G 2 1 and X 2 for a coding obtain G 2 corresponding to encoding data unit a 2
  • the G 3 original data unit X 2 and X 3 obtained by encoding means a and 3 a code corresponding to the G data 3
  • the G 4 original data unit X 3 and X 4 obtained by encoding encoding data with a corresponding unit G 4 a 4
  • G 5 of the original data unit obtained by encoding data X 4 and 5 corresponding to a coding unit G a 5 5.
  • the data unit group is expressed as G 1 ,...,G n ,...,G N ,G N+1 ,...,G N+M-1 ,(1 ⁇ n ⁇ N+M-1), each data unit to be encoded
  • the group contains at most M original data units among the N original data units.
  • the first to-be-coded data unit group G 1 includes original data units X 1 ,..., and the n-th to-be-coded data unit group G n includes original data units X n-M+1 ,..., X n-1 , X n , (n-M+1>0),..., the Nth to-be-encoded data unit group G N contains original data units X N-M+1 ,...,X N-1 ,X N , the N+1th to-be-encoded
  • the data unit group G N+1 contains the original data unit X N-M+2 ,..., X N-1 , X N ,..., the N+M-1th data unit group to be encoded G N+M-1 contains the original data unit group G N+M-1 Data unit X N.
  • the coding core [h 1 , h 2 ,..., h M ] can be used to encode the data unit group to be coded, and the elements in the coding core [h 1 , h 2 ,..., h M ] can be GF(q) Elements.
  • the data unit group and the cyclic shift of the sliding window are taken as an example to illustrate another specific implementation of the foregoing embodiment 1-1 in the manner of a sliding window.
  • the fifth data unit group G 5 to be coded includes original data units X 4 and X 1 , which can be regarded as the sliding window moving to the fifth data unit group G 5 to be coded.
  • the position of is cyclically shifted, that is, the first original data unit X 1 is cyclically moved into the fifth data unit group G 5 to be coded.
  • five data unit groups G 1 , G 2 , G 3 , G 4 , and G 5 to be coded are respectively coded to obtain one coded data unit corresponding to each data unit group to be coded one-to-one.
  • the raw data in the G 1 cell X 1 obtained by encoding the G 1 corresponding to a coded data unit A 1
  • the original data unit X in the G 2 1 and X 2 for a coding obtain G 2 corresponding to encoding data unit a 2
  • the G 3 original data unit X 2 and X 3 obtained by encoding means a and 3 a code corresponding to the G data 3
  • the G 4 original data unit X 3 and X 4 obtained by encoding G 4 obtained coded data corresponding to a unit a 4
  • G 5 of the original data unit X 4 and X 1 and G 5 encoding a coded data unit corresponding to a 5.
  • the data unit group is expressed as G 1 ,...,G n ,...,G N ,G N+1 ,...,G N+M-1 ,(1 ⁇ n ⁇ N+M-1), each data unit to be encoded
  • the group contains at most M original data units among the N original data units.
  • the first to-be-coded data unit group G 1 includes original data units X 1 ,..., and the n-th to-be-coded data unit group G n includes original data units X n-M+1 ,..., X n-1 , X n , (n-M+1>0),..., the Nth to-be-encoded data unit group G N contains original data units X N-M+1 ,...,X N-1 ,X N , the N+1th to-be-encoded
  • the data unit group G N+1 includes original data units X N-M+2 ,..., X N-1 , X N , X 1 ,..., the N+M-1th data unit group to be encoded G N+M- 1 contains the original data units X N , X 1 ,..., X M-2 , X M-1 .
  • Encode each of the data unit groups to be coded in L N+M-1 data unit groups to be coded, and obtain the data unit to be
  • the coding core [h 1 , h 2 ,..., h M ] can be used to encode the data unit group to be coded, and the elements in the coding core [h 1 , h 2 ,..., h M ] can be GF(q) Elements.
  • the T data units to be encoded include N original data units X 1 , X 2 ,...,X N , encode the N original data units to obtain K coded data units A 1 , A 2 ,..., A K , K is greater than or equal to N, and K coded data units satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix.
  • the diagonal line of the sub-matrix contains the elements in GF(q) Non-zero elements.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than N.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • it may be considered to be a method of coded data 400 T units O 1, O 2, ..., O T above N original data unit X 1, X 2, ..., X N.
  • the above N, K, R, and M can be collectively referred to as coding parameters.
  • Embodiment 1-2 the possible implementation of part 410 of the method 400 can be referred to the description in Embodiment 1-1, which will not be repeated here.
  • the coding matrix H (can be denoted as H 1 ) is an N*K-dimensional matrix, which contains N*N-dimensional sub-matrices And N*(KN) dimensional submatrices Among them, the sub-matrix There are non-zero elements in GF(q) on the main diagonal of and the M-1 diagonal diagonals parallel to the main diagonal, for example, sub-matrix It satisfies the form of the example in Table 1 below:
  • Embodiment 1-2 another possible coding matrix H satisfies:
  • the coding matrix H (can be denoted as H 2 ) is an N*K-dimensional matrix, which contains N*(N+M-1)-dimensional sub-matrices And N*(KN-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero elements in GF(q) on the M diagonal diagonals, for example, sub-matrix Meet the form of the example in Table 2 below:
  • the element of the i diagonal diagonal line in can be abbreviated as 1 ⁇ i ⁇ M.
  • 1 ⁇ i ⁇ M There is at least one non-zero element in GF(q).
  • the value of the N elements in can be the same, can be partially different, or all can be different.
  • Embodiment 1-2 another possible coding matrix H satisfies:
  • I N is an N*N-dimensional identity matrix.
  • 1 H in the matrix H contains one or more column vector, or matrix H 'H 2 comprising one or more column vector' as described above or H 1 H 2, or matrix H '.
  • Embodiment 1-2 optionally, the aforementioned N original data units are included in B original data blocks, and B is an integer greater than 1.
  • This optional implementation mode can perform inter-block joint coding on the original data units contained in two or more original data blocks, and therefore can support the correction of transmission errors between blocks, thereby further improving the coding reliability and The ability of data transmission to resist random errors in the channel, thereby improving the spectrum efficiency.
  • header information may also be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, corresponding to the encoded data unit The number information of the original data unit contained in the original data block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), The coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), or the identification information of the original data unit corresponding to the coding start position (such as the original data unit index). If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • T data units to be encoded include N original data units and P interleaved data units, and in the group of L data units to be encoded
  • Each data unit group to be coded contains at most M original data units and/or interleaved data units out of N original data units and P interleaved data units.
  • N is an integer greater than 1
  • P is an integer greater than 1
  • M is An integer greater than 0 and less than N+P.
  • T is equal to N+P
  • the data unit to be encoded is the original data unit and/or the interleaved data unit.
  • the aforementioned N, P, L, and M can be collectively referred to as coding parameters.
  • part 410 of the method 400 can be implemented as: obtaining N original data units and P interleaved data units.
  • the protocol layer may be the RLC layer, PDCP layer, RRC layer, BAP layer, MAC layer, or application layer in the communication protocol.
  • N original data units can be received from other devices (such as other network equipment or terminals).
  • P interleaved data units can be obtained by interleaving or rearranging all or part of the original data units in the N original data units.
  • all or part of the original data units in the N original data units can be interleaved through an interleaving matrix. Obtain P interleaved data units.
  • the number L of data unit groups to be encoded satisfies N+P ⁇ L ⁇ N+P+M-1.
  • obtaining one or more coded data units corresponding to each of the L to-be-coded data unit groups in a one-to-one manner is specifically implemented as follows: Each to-be-coded data unit group in the to-be-coded data unit group corresponds to one coded data unit one-to-one.
  • each of the L data unit groups to be coded does not simultaneously contain N+P original data units and the first data unit in the interleaved data unit and The last data unit can be understood as the sliding window does not perform cyclic shift when sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains N+P original data units and the first data unit and the last data unit in the interleaved data unit, which can be understood as sliding The window is cyclically shifted.
  • the first data unit and the last data unit are the original data unit or the interleaved data unit, it depends on the arrangement of the original data unit and the interleaved data unit, which is not limited in this application.
  • the foregoing embodiment 2-1 can be understood as interleaving the N original data units and then dividing the data unit groups to be encoded. On the basis of reducing the correlation of the encoded data, the interleaving can further improve the encoded data against channel fading and The ability to change the channel to further improve the reliability of the coded data reception and improve the spectrum efficiency.
  • Embodiment 2-1 the foregoing N original data units are included in B original data blocks, and B is an integer greater than 1.
  • This optional implementation manner can perform inter-block joint coding on the original data units contained in two or more original data blocks, and therefore can support the correction of inter-block transmission errors, thereby further improving the coding reliability and The ability of data transmission to resist random errors in the channel, thereby improving the spectrum efficiency.
  • header information may also be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, corresponding to the encoded data unit The number information of the original data unit contained in the original data block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), The coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit) ), or interleaved information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the L to-be-encoded data unit groups can be obtained by means of a sliding window, and for each of the L to-be-encoded data unit groups Encoding is performed separately to obtain an encoded data unit corresponding to each data unit group to be encoded in the L data unit groups to be encoded one-to-one.
  • the L data unit groups to be coded obtained by means of a sliding window include all the original data units and interleaved data units in the N original data units and the P interleaved data units.
  • M can be understood as the maximum number of original data units and/or interleaved data units that can be included in the sliding window.
  • each of the L data unit groups to be coded contains N+P original data units and the first data unit and the last data unit of the interleaved data unit when different
  • the sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains N+P original data units and the first data unit and the last data unit in the interleaved data unit, it can be understood as sliding
  • the window is cyclically shifted.
  • the dashed frame represents the sliding window
  • the five data unit groups to be encoded in FIG. 6A include original data units and/or interleaved data units, which can also be understood as original data units and/or interleaved data units included in the sliding window.
  • the sliding window starts from the position containing only X 1 , and slides to the right with the original data unit or interleaved data unit as the granularity, thereby Obtain five data unit groups G 1 , G 2 , G 3 , G 4 , and G 5 to be coded.
  • five data unit groups G 1 , G 2 , G 3 , G 4 , and G 5 to be coded are respectively coded to obtain one coded data unit corresponding to each data unit group to be coded.
  • the raw data in the G 1 cell X 1 obtained by encoding the G 1 corresponding to a coded data unit A 1
  • the original data unit X in the G 2 1 and X 2 for a coding obtain G 2 corresponding to encoding data unit a 2
  • the G 3 original data unit X 2 and X 3 obtained by encoding means a and 3 a code corresponding to the G data 3
  • the G 4 original data unit X 3 and X 4 obtained by encoding encoding data with a corresponding unit G 4 a 4
  • G 5 of the original data and the interleaved data units X 4 unit X '1 and 5 obtained by encoding data corresponding to one coding unit G a 5.
  • the coding core [h 1 , h 2 ,..., h M ] can be used to encode the data unit group to be coded, and the elements in the coding core [h 1 , h 2 ,..., h M ] can be GF(q) Elements.
  • the above implementation is implemented by the sliding window as an example. Another specific implementation of Mode 2-1.
  • FIG. 6B The difference between FIG. 6B and FIG. 6A is that the sliding window slides once more, and a sixth data unit group G 6 to be coded is added, and G 6 includes interleaved data unit X′ 1 .
  • the six data unit groups G 1 , G 2 , G 3 , G 4 , G 5 , and G 6 to be coded are respectively coded to obtain one coded data unit corresponding to each data unit group to be coded.
  • the original data unit X in the G 2 1 and X 2 for a coding obtain G 2 corresponding to encoding data unit a 2
  • the G 4 original data unit X 3 and X 4 obtained by encoding data encoding G 4 corresponding to units a 4
  • interleaved in G 6 is data unit X '1 obtained by
  • the coding core [h 1 , h 2 ,..., h M ] can be used to encode the data unit group to be coded, and the elements in the coding core [h 1 , h 2 ,..., h M ] can be GF(q) Elements.
  • the sixth data unit group G 6 to be coded includes interleaved data unit X′ 1 and original data unit X 1 , which can be regarded as the sliding window moving to the sixth data to be coded
  • the position of the unit group G 6 is cyclically shifted, that is, the first original data unit X 1 is cyclically moved into the sixth data unit group G 6 to be encoded.
  • the six data unit groups G 1 , G 2 , G 3 , G 4 , G 5 , G 6 to be coded are respectively coded to obtain one coded data unit corresponding to each data unit group to be coded.
  • the original data unit X in the G 2 1 and X 2 for a coding obtain G 2 corresponding to encoding data unit a 2
  • the G 4 original data unit X 3 and X 4 obtained by encoding data encoding G 4 corresponding to units a 4
  • interleaved in G 6 is a coded data unit X
  • the coding core [h 1 , h 2 ,..., h M ] can be used to encode the data unit group to be coded, and the elements in the coding core [h 1 , h 2 ,..., h M ] can be GF(q) Elements.
  • the original data unit X 1 and the interleaved data unit X′ 1 can be respectively understood as the first data unit and the last data unit involved in the above-mentioned embodiment 2-1.
  • this application only uses the arrangement of the original data unit and the interleaved data unit in FIG. 6A-6C as an example to illustrate the foregoing embodiment 2-1.
  • the present application does not limit the arrangement of the original data unit and the interleaved data unit.
  • the above-mentioned first data unit and last data unit may also be other data units.
  • the above-mentioned first data unit and the last data unit may be an original data unit and an original data unit, respectively, or the above-mentioned first data unit and the last data unit may be an interleaved data unit and an interleaved data unit, respectively.
  • the above-mentioned first data unit and the last data unit may be an interleaved data unit and an original data unit, respectively, or the above-mentioned first data unit and the last data unit may be an original data unit and an interleaved data unit, respectively.
  • the T data units to be encoded include N original data units X 1 , X 2 ,...,X N and P interleaved data units X′ 1 ,X′ 2 ,...,X′ P , encode the N original data units and P interleaved data units to obtain K coded data units A 1 , A 2 ,...,A K , K is greater than or equal to N+P, and K coded data units satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix.
  • the diagonal line of the sub-matrix contains the elements in GF(q) Non-zero elements.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than N+P.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • the T data units O 1 , O 2 ,..., O T to be encoded in the method 400 are the aforementioned N original data units X 1 , X 2 ,..., X N and P interleaved data units X′ 1 ,X′ 2 ,...,X′ P.
  • Embodiment 2-2 the possible implementation of part 410 of the method 400 can refer to the description in Embodiment 2-1, which will not be repeated here.
  • the coding matrix H (can be denoted as H 4 ) is a (N+P)*K-dimensional matrix, which contains (N+P)*(N+P)-dimensional sub-matrices And (N+P)*(KNP) dimensional submatrices Among them, the sub-matrix There are non-zero elements in GF(q) on the main diagonal of and the M-1 diagonal diagonals parallel to the main diagonal. For example, It has a similar form to the matrix illustrated in Table 1, except that the dimension is changed from the N*N dimension illustrated in Table 1 to the (N+P)*(N+P) dimension.
  • Embodiment 2-2 another possible coding matrix H satisfies:
  • the coding matrix H (can be denoted as H 5 ) is a (N+P)*K-dimensional matrix, which contains (N+P)*(N+P+M-1)-dimensional sub-matrices And (N+P)*(KNP-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero elements in GF(q) on M diagonal diagonals.
  • Embodiment 2-2 another possible coding matrix H satisfies:
  • I N+P is a (N+P)*(N+P)-dimensional identity matrix.
  • Comprising a matrix H H 4 or more column vector, or matrix H 'H 5 comprises a one or more column vector' as described above or H 5 H 4, or matrix H '.
  • Embodiment 2-2 optionally, the aforementioned N original data units are included in B original data blocks, and B is an integer greater than 1.
  • This optional implementation mode can perform inter-block joint coding on the original data units contained in two or more original data blocks, and therefore can support the correction of transmission errors between blocks, thereby further improving the coding reliability and The ability of data transmission to resist random errors in the channel, thereby improving the spectrum efficiency.
  • header information may also be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, corresponding to the encoded data unit The number information of the original data unit contained in the original data block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), The coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit) ), or interleaved information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the T data units to be encoded include B original data blocks, and each data to be encoded in the foregoing L data unit groups to be encoded
  • the unit group includes at most M original data blocks out of B original data blocks, B is an integer greater than 1, and M is an integer greater than 0 and less than B.
  • T and B are equal in the method 400
  • the data unit to be encoded is an original data block.
  • the original data block can generally be understood as a data unit to be encoded larger than the original data unit.
  • B original data blocks may contain original data units, where the b-th original data block includes N b original data units, and b is An integer greater than 0 and less than or equal to B.
  • the original data block may include original data units and interleaved data units, where the b-th original data block includes N b original data units and interleaved data units, and b is an integer greater than 0 and less than or equal to B.
  • the above B, L, N b, and M can be collectively referred to as coding parameters.
  • the ability of the coded data to resist channel fading and channel changes can be further improved by means of interleaving, thereby further improving the receiving reliability of the coded data and increasing the spectral efficiency.
  • part 410 of the method 400 can be implemented as: obtaining B original data blocks. For example, by dividing the PDU from the protocol layer to obtain B original data blocks.
  • the protocol layer can be the RLC layer, PDCP layer, RRC layer, BAP layer, MAC layer, or application layer in the communication protocol.
  • B original data blocks from other devices can be received.
  • the interleaved data units can be obtained by interleaving or rearranging all or part of the original data units contained in the original data blocks.
  • the original data blocks can be obtained through an interleaving matrix. All or part of the original data unit in the data block is interleaved to obtain the interleaved data unit in the original data block.
  • the number L of data unit groups to be encoded satisfies B ⁇ L ⁇ B+M-1.
  • obtaining one or more coded data units corresponding to each of the L to-be-coded data unit groups in a one-to-one manner is specifically implemented as follows: Each to-be-coded data unit group in the to-be-coded data unit group has a one-to-one correspondence with multiple coded data units.
  • each of the L data unit groups to be encoded does not simultaneously contain the first original data block and the last original data block of the B original data blocks.
  • one or more of the L data unit groups to be encoded includes the first original data block and the last original data block of the B original data blocks.
  • the foregoing embodiment 3-1 can be understood as dividing B original data blocks into L data unit groups to be coded, and encoding the L data unit groups to be coded respectively, where L satisfies B ⁇ L ⁇ B+M- 1.
  • M can also be understood as the inter-block convolution depth in this embodiment.
  • header information may also be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, corresponding to the encoded data unit The number information of the original data unit contained in the original data block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), The coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit) ), or interleaved information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the L data unit groups to be coded can be obtained in a sliding window manner, and each data unit group to be coded in the L data unit groups Encoding is performed separately to obtain a plurality of encoded data units corresponding to each of the L data unit groups to be encoded one-to-one.
  • the L data unit groups to be encoded include all the original data blocks in the B original data blocks obtained by using a sliding window method.
  • M can be understood as the maximum number of original data blocks that can be included in the sliding window.
  • each of the L data unit groups to be coded when each of the L data unit groups to be coded is different and contains the first original data block and the last original data block of the B original data blocks, it can be understood as a sliding window No cyclic shift (ie end-to-end cyclic shift) is performed during sliding.
  • a sliding window for cyclic shift Bit when one or more of the L data unit groups to be coded contains the first original data block and the last original data block of the B original data blocks.
  • Embodiment 1-1 the method for encoding the original data unit in Embodiment 1-1 can be used.
  • the description in Embodiment 1-1 which will not be repeated here.
  • the original data unit in the original data block can be encoded by using RLNC or systematic code.
  • the original data unit in the original data block can also be coded in an overlapping coding manner.
  • the so-called overlapping (overlapping) encoding refers to encoding all the original data units in a part of the original data blocks in the multiple original data blocks, and performing the encoding of some original data units in the other part of the original data blocks in the multiple original data blocks.
  • the specific encoding method can be RLNC, system code, or the method described in Embodiment 1-1.
  • the b-th original data block BL b includes N b original data units (1 ⁇ b ⁇ 4, N b > 1)
  • the dashed frame represents the sliding window
  • the first data unit group G 1 to be coded includes original data Block BL 1
  • the second to-be-coded data unit group G 2 includes original data blocks BL 1 and BL 2
  • the third to-be-coded data unit group G 3 includes original data blocks BL 2 and BL 3
  • the unit group G 4 includes original data blocks BL 3 and BL 4 .
  • the 4 data unit groups to be encoded in FIG. 7A include original data blocks, which can also be understood as original data blocks included in the sliding window.
  • the sliding window starts from the position containing only BL 1 , and slides to the right with the original data block as the granularity, so as to obtain G 1 , G 2 , G 3 , G 4 groups of four data units to be encoded.
  • FIG. 7A four data unit groups G 1 , G 2 , G 3 , and G 4 to be coded are respectively coded to obtain multiple coded data units corresponding to each data unit group to be coded one-to-one.
  • the original data in the blocks BL 1 and BL 2 G obtained by encoding more than two corresponding to G 2 data encoding means
  • the original data block G 3 BL and BL 2.
  • 3 G 3 obtained by encoding the plurality of coded data units corresponding to the original data in block BL and BL. 4
  • 3 and G 4 obtained by encoding Corresponding multiple coded data units.
  • FIG. 7A illustrates this implementation manner by taking as an example that the number of multiple encoded data units corresponding to each data unit group to be encoded obtained by encoding is 8. It can be understood that this application does not limit the number of multiple coded data units corresponding to each data unit group to be coded obtained in this implementation manner, nor does it limit the multiple codes obtained corresponding to each data unit group to be coded. Is the number of data units the same? For example, the number of obtained multiple coded data units corresponding to each to-be-coded data unit group may be the same, or may be partially the same, or may be completely different.
  • the data unit group and the sliding window are not cyclically shifted as an example to illustrate another specific implementation of the foregoing embodiment 3-1 in the manner of a sliding window.
  • FIG. 7B The difference between FIG. 7B and FIG. 7A is that the sliding window slides once more, and a fifth data unit group G 5 to be encoded is added, and G 5 includes the original data block BL 4 .
  • five data unit groups G 1 , G 2 , G 3 , G 4 , and G 5 to be coded are respectively coded to obtain multiple coded data units corresponding to each data unit group to be coded one-to-one.
  • the raw data of the block BL 1, G 1 obtained by encoding a plurality of coded data units corresponding to the G 1 the original data in the blocks BL 1 and BL 2 G obtained by encoding more than two corresponding to G 2 data encoding means, the original data block G 3 BL and BL 2.
  • 3 and G 4 obtained by encoding the plurality of coded data units corresponding to the original data block BL 4 G 5 is obtained by coding a plurality of coded data units corresponding to the G 5.
  • the data unit group and the cyclic shift of the sliding window are taken as an example to illustrate another specific implementation of the foregoing embodiment 3-1 in the manner of a sliding window.
  • the fifth data unit group G 5 to be coded includes original data blocks BL 4 and BL 1 , which can be regarded as the sliding window moving to the fifth data unit group G 5 to be coded.
  • the position of is cyclically shifted, that is, the first original data block BL 1 is cyclically moved into the fifth data unit group G 5 to be coded.
  • five data unit groups G 1 , G 2 , G 3 , G 4 , and G 5 to be coded are respectively coded to obtain a plurality of coded data units corresponding to each data unit group to be coded one-to-one.
  • the raw data of the block BL 1, G 1 obtained by encoding a plurality of coded data units corresponding to the G 1 the original data in the blocks BL 1 and BL 2 G obtained by encoding more than two corresponding to G 2 data encoding means, the original data block G 3 BL and BL 2.
  • 3 G 3 obtained by encoding the plurality of coded data units corresponding to the original data in block BL and BL. 4 G 4.
  • 3 and G 4 obtained by encoding the plurality of coded data units corresponding to the original data block 5 G BL 4 BL 1 and a plurality of coded data obtained by coding unit corresponding to G 5.
  • the T data units to be encoded include B>1 containing original data units
  • the original data blocks BL 1 ,..., BL B , or the T data units to be encoded include B>1 original data blocks BL 1 ,..., BL B that contain original data units and interleaved data units.
  • the original data blocks B obtained by encoding the encoded data D comprises a coded data block unit C 1, C 2, ..., C D, D is greater than or equal to B, D coded data block satisfies:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix
  • the diagonal of the sub-matrix contains elements in GF(q)
  • the non-zero matrix is M
  • M is an integer greater than 0 and less than B.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal. In this case it may be considered to be a method of coded data 400 T units O 1, O 2, ..., O T B of the above-described original data blocks BL 1, ..., BL B.
  • the above B, D, and M can be collectively referred to as coding parameters.
  • the ability of the coded data to resist channel fading and channel changes can be further improved by means of interleaving, thereby further improving the receiving reliability of the coded data and increasing the spectral efficiency.
  • Embodiment 3-2 the possible implementation of part 410 of the method 400 can be referred to the description in Embodiment 3-1, which will not be repeated here.
  • the coding matrix H (can be denoted as H 7 ) is a B*D-dimensional matrix, which contains B*B-dimensional sub-matrices And B*(DB) dimensional submatrices
  • the sub-matrix contained in the above H No special requirements, for example, it can be randomly obtained in GF(q) Elements in.
  • Submatrix There are non-zero matrices containing elements in GF(q) on the main diagonal of and on the M-1 diagonal diagonals parallel to the main diagonal, for example, a sub-matrix It satisfies the form of the example in Table 4 below:
  • Table 4 Schematic Contains B*B sub-matrices, where 0 means all 0-element sub-matrices, 1 ⁇ m ⁇ M, 1 ⁇ b ⁇ B represents a matrix with the number of rows N b , the number of columns is at least N b or the number of columns is K d , N b represents the number of original data units contained in the original data block b, K d represents the number of coded data units included in the coded data block d, where 1 ⁇ d ⁇ D, and N b ⁇ K d .
  • m and/or b It can be the same matrix or a different matrix. There can be many different specific implementations, for example, It can have the following possible forms.
  • M b represents the convolution depth corresponding to the original data block b, and 1 ⁇ M b ⁇ N b .
  • 1 ⁇ i ⁇ M b There is at least one non-zero element in GF(q).
  • the values of the N b -i+1 elements in can be the same, can be partially different, or all can be different.
  • M b represents the convolution depth corresponding to the original data block b, 1 ⁇ M b ⁇ N b , Is an N b ⁇ (N b +M b -1)-dimensional matrix, for example It satisfies the form of the example in Table 6 below:
  • the element of the i diagonal diagonal line in can be abbreviated as 1 ⁇ i ⁇ M b .
  • 1 ⁇ i ⁇ M b There is at least one non-zero element in GF(q).
  • the value of the N b elements in can be the same, can be partially different, or all can be different.
  • the contained elements h nk (1 ⁇ n ⁇ N b , 1 ⁇ k ⁇ K d ) are elements in GF(q), and can be obtained randomly from elements of GF(q), for example.
  • the contained elements h nk (1 ⁇ n ⁇ N b , 1 ⁇ k ⁇ K d -N b ) are elements in GF(q), which can be obtained randomly from elements of GF(q), for example.
  • Implementation mode 5 When multiple original data blocks participate in encoding together, for some of the original data blocks The above can be used Any one of the implementation methods 1-4, for the other part of the original data block Can satisfy
  • N l is an integer greater than 0 and less than N b.
  • N l can be the same or different.
  • Embodiment 3-2 another possible coding matrix H satisfies:
  • the coding matrix H (can be denoted as H 8 ) is a B*D-dimensional matrix, which contains a B*(B+M-1)-dimensional sub-matrix And B*(DB-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero matrices containing elements in GF(q) on M diagonal diagonals, for example, sub-matrix It satisfies the form of the example in Table 8 below:
  • Table 8 Schematic Contains B*(B+M-1) sub-matrices, where 0 means all 0-element sub-matrices, 1 ⁇ m ⁇ M, 1 ⁇ b ⁇ B represents a matrix with the number of rows N b , the number of columns is at least N b or the number of columns is K d , N b represents the number of original data units contained in the original data block b, K d represents the number of coded data units included in the coded data block d, where 1 ⁇ d ⁇ D, and N b ⁇ K d .
  • m and/or b It can be the same matrix or a different matrix.
  • Table 9 Schematic Contains B*(B+M-1) sub-matrices, where 0 means all 0-element sub-matrices, 1 ⁇ m ⁇ M, 1 ⁇ b ⁇ B+M-1 represents a matrix with rows of N b , columns of at least N b, or columns of K d , N b represents the original data unit contained in the original data block b K d represents the number of coded data units contained in the coded data block d, where 1 ⁇ d ⁇ D, N b ⁇ K d.
  • m and/or b It can be the same matrix or a different matrix.
  • Embodiment 3-2 another possible coding matrix H satisfies:
  • the B*B-dimensional matrix I B contains B*B N b ⁇ N b -dimensional unit matrices, N b represents the number of original data units contained in the original data block b, 1 ⁇ b ⁇ B, different The number of original data units contained in the original data block may be the same or different.
  • Matrix H 'as described above or H 7 H 8, or matrix H' to H 7 comprises one or more column vector, or matrix H 'contains one or more of H 8 column vectors.
  • header information may also be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, corresponding to the encoded data unit The number information of the original data unit contained in the original data block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), The coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit) ), or interleaved information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • T data units to be encoded include B original data blocks and Q interleaved data blocks, and in the group of L data units to be encoded
  • Each data unit group to be encoded includes at most B original data blocks and M original data blocks and/or interleaved data blocks among the Q interleaved data blocks, B is an integer greater than 1, and Q is an integer greater than 1, M is an integer greater than 0 and less than B+Q.
  • T is equal to B+Q
  • the data unit to be encoded is an original data block and/or an interleaved data block.
  • the original data block contains the original data unit
  • the interleaved data block contains the interleaved data unit.
  • B, Q, L, and M can be collectively referred to as coding parameters.
  • part 410 of the method 400 can be implemented as: obtaining B original data blocks and Q interleaved data blocks.
  • the protocol layer may be the RLC layer, PDCP layer, RRC layer, BAP layer, MAC layer, or application layer in the communication protocol.
  • B original data blocks can be received from other devices (such as other network equipment or terminals).
  • an interleaved data block can be obtained by interleaving or rearranging all or part of the original data units contained in the original data block.
  • interleaving data can be obtained by interleaving all or part of the original data units in the original data block through an interleaving matrix. piece.
  • the number L of data unit groups to be encoded satisfies B+Q ⁇ L ⁇ B+Q+M-1.
  • obtaining one or more coded data units corresponding to each of the L to-be-coded data unit groups in a one-to-one manner is specifically implemented as follows: Each to-be-coded data unit group in the to-be-coded data unit group has a one-to-one correspondence with multiple coded data units.
  • each of the L data unit groups to be encoded does not simultaneously contain B+Q original data blocks and the first data block in the interleaved data block and The last data block can be understood as the sliding window is not cyclically shifted when sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains B+Q original data blocks and the first data block and the last data block of the interleaved data blocks, which can be understood as sliding The window is cyclically shifted.
  • the first data block and the last data block are original data blocks or interleaved data blocks, respectively, it depends on the arrangement of the original data blocks and the interleaved data blocks, which is not limited in this application.
  • header information may also be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, corresponding to the encoded data unit The number information of the original data unit contained in the original data block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), The coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit) ), or interleaved information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the foregoing embodiment 4-1 can be understood as interleaving the original data units in the B original data blocks and then dividing the data unit groups to be coded, combined with inter-block coding, and on the basis of supporting inter-block transmission error correction, With the help of interleaving, the ability of coded data to resist channel fading and channel changes is further improved, thereby further improving the reliability of coded data reception and increasing spectral efficiency.
  • the L to-be-coded data unit groups can be obtained in a sliding window manner, and each of the L to-be-coded data unit groups is Encoding is performed separately to obtain an encoded data unit corresponding to each data unit group to be encoded in the L data unit groups to be encoded one-to-one.
  • the L data unit groups to be coded obtained by means of a sliding window include all the original data blocks and the interleaved data blocks in the B original data blocks and the Q interleaved data blocks.
  • M can be understood as the maximum number of original data blocks and/or interleaved data blocks that can be included in the sliding window.
  • each of the L data unit groups to be encoded contains B+Q original data blocks and the first data block and the last data block of the interleaved data blocks when different
  • the sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains B+Q original data blocks and the first data block and the last data block in the interleaved data block, it can be understood as sliding
  • the window is cyclically shifted.
  • the method of encoding the original data unit in Embodiment 1-1 can be used to encode the original data unit in the original data block and/or to encode the interleaved data unit in the interleaved data block.
  • the description in Embodiment 1-1 please refer to the description in Embodiment 1-1, which will not be repeated here.
  • RLNC or systematic code may be used to encode the original data unit in the original data block and/or to encode the interleaved data unit in the interleaved data block.
  • overlapping (overlapping) coding refers to the coding of all data units in a part of the multiple data blocks, and the coding of some data units in the other part of the multiple data blocks.
  • the specific coding method It can be RLNC, system code, or the method described in Embodiment 1-1.
  • the dashed frame represents the sliding window
  • the five data unit groups to be encoded in FIG. 8A include original data blocks and/or interleaved data blocks, which can also be understood as original data blocks and/or interleaved data blocks included in the sliding window.
  • the sliding window starts from the position containing only BL 1 , and slides to the right with the granularity of the original data block or interleaved data block, thereby Obtain five data unit groups G 1 , G 2 , G 3 , G 4 , and G 5 to be coded.
  • five data unit groups G 1 , G 2 , G 3 , G 4 , and G 5 to be coded are respectively coded to obtain multiple coded data units corresponding to each data unit group to be coded one-to-one.
  • the raw data of the block BL 1, G 1 obtained by encoding a plurality of coded data units corresponding to the G 1 the original data in the blocks BL 1 and BL 2 G obtained by encoding more than two corresponding to G 2 data encoding means, the original data block G 3 BL and BL 2.
  • 3 G 3 obtained by encoding the plurality of coded data units corresponding to the original data in block BL and BL. 4 G 4.
  • FIG. 8A illustrates this implementation manner by taking as an example that the number of multiple coded data units corresponding to each data unit group to be coded obtained by coding is eight. It can be understood that this application does not limit the number of multiple coded data units corresponding to each data unit group to be coded obtained in this implementation manner, nor does it limit the multiple codes obtained corresponding to each data unit group to be coded. Is the number of data units the same? For example, the number of obtained multiple coded data units corresponding to each to-be-coded data unit group may be the same, or may be partially the same, or may be completely different.
  • FIG. 8B The difference between FIG. 8B and FIG. 8A is that the sliding window slides once more, and a sixth data unit group G 6 to be encoded is added, and G 6 includes interleaved data blocks BL′ 1 .
  • the six data unit groups G 1 , G 2 , G 3 , G 4 , G 5 , G 6 to be coded are respectively coded to obtain multiple coded data corresponding to each data unit group to be coded one-to-one unit.
  • the original data in the blocks BL 1 and BL 2 G obtained by encoding more than two corresponding to G 2 data encoding means
  • 3 G 3 obtained by encoding the plurality of coded data units corresponding to the original data in block BL and BL. 4 G 4.
  • the sixth data unit group G 6 to be encoded includes interleaved data block BL′ 1 and original data block BL 1 , which can be regarded as the sliding window moving to the sixth data to be encoded
  • the position of the unit group G 6 is cyclically shifted, that is, the first original data block BL 1 is cyclically moved into the sixth data unit group G 6 to be coded.
  • the six data unit groups G 1 , G 2 , G 3 , G 4 , G 5 , and G 6 to be coded are respectively coded to obtain multiple coded data corresponding to each data unit group to be coded. unit.
  • the original data in the blocks BL 1 and BL 2 G obtained by encoding more than two corresponding to G 2 data encoding means
  • 3 G 3 obtained by encoding the plurality of coded data units corresponding to the original data in block BL and BL. 4 G 4.
  • the original data block BL 1 and the interleaved data block BL′ 1 can be respectively understood as the first data block and the last data block involved in the above-mentioned embodiment 4-1.
  • this application only uses the arrangement of the original data blocks and interleaved data blocks in Figs. 8A-8C as an example to illustrate the foregoing embodiment 4-1.
  • the present application does not limit the arrangement of the original data blocks and the interleaved data blocks.
  • the above-mentioned first data block and last data block may also be other data blocks.
  • the above-mentioned first data block and the last data block may be the original data block and the original data block respectively, or the above-mentioned first data block and the last data block may be the interleaved data block and the interleaved data block respectively, Alternatively, the above-mentioned first data block and the last data block may be an interleaved data block and an original data block respectively, or the above-mentioned first data block and the last data block may be an original data block and an interleaved data block respectively.
  • T data units to be encoded include B original data blocks BL 1 ,... , BL B and Q interleaved data blocks BL′ 1 ,..., BL′ Q.
  • B original data blocks in the original data block contains N b b raw data units
  • the data block interleave Q interlaces data block q 'comprises N q' interleaving data units.
  • Encode the B original data blocks and Q interleaved data blocks to obtain D coded data blocks C 1 , C 2 ,..., C D containing coded data units, D is greater than or equal to B+Q, and D coded data blocks satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix
  • the diagonal of the sub-matrix contains elements in GF(q) The non-zero matrix.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than B+Q.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • this application does not limit the arrangement order of the above-mentioned B original data blocks and Q interleaved data blocks in [BL 1 ,...,BL B ,BL′ 1 ,...,BL′ Q ], [BL 1 ,... ,BL B ,BL′ 1 ,...,BL′ Q ] means that it contains the above B original data blocks and Q interleaved data blocks, but the arrangement order of the B+Q data blocks can be arbitrary, and this application does not Make a limit.
  • the above-mentioned B, Q, N b , N q′ , D and M can be collectively referred to as coding parameters.
  • Embodiment 4-2 the possible implementation of part 410 of the method 400 can refer to the description in Embodiment 4-1, which will not be repeated here.
  • the coding matrix H (can be denoted as H 10 ) is a (B+Q)*D-dimensional matrix, which contains (B+Q)*(B+Q)-dimensional sub-matrices And (B+Q)*(DBQ) dimensional submatrices Among them, the sub-matrix There are non-zero matrices containing elements in GF(q) on the main diagonal of and on the M-1 diagonal diagonals parallel to the main diagonal. For example, It has a similar form to the matrix shown in Table 4, except that the dimension is changed from the B*B dimension shown in Table 4 to the (B+Q)*(B+Q) dimension.
  • the sub-matrix contained in the above H No special requirements, for example, it can be randomly obtained in GF(q) Elements in.
  • the coding matrix H (can be denoted as H 11 ) is a (B+Q)*D-dimensional matrix, which contains (B+Q)*(B+Q+M-1)-dimensional sub-matrices And (B+Q)*(DBQ-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero matrices containing elements in GF(q) on the M diagonal diagonals. For example, It has a similar form to the matrix shown in Table 8, except that the dimension is changed from the B*(B+M-1) dimension shown in Table 8 to the (B+Q)*(B+Q+M-1) dimension.
  • the (B+Q)*(B+Q)-dimensional matrix I B+Q contains (B+Q)*(B+Q) (N b +N q′ ) ⁇ (N b +N q′ )
  • the dimensional identity matrix Matrix H 'as described above or H 10 H 11, or matrix H' H 10 contained in the one or more column vector, or matrix H 'H 11 comprising one or more column vector.
  • header information may also be added to the generated encoded data unit, and the header information includes one or more of the following: information indicating one or more encoding parameters, corresponding to the encoded data unit The number information of the original data unit contained in the original data block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), The coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit) ), or interleaved information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the T data units to be encoded include error data units.
  • the number of the error data unit is one or more.
  • Each to-be-coded data unit group in the L to-be-coded data unit groups does not include the erroneous data unit, or one or more to-be-coded data unit groups in the L to-be-coded data unit groups include the erroneous data unit.
  • the method 400 further includes generating and outputting first indication information indicating the erroneous data unit, and the first indication information Can be carried in the header information.
  • This method can be understood as the execution subject of the method 400 is a relay device or a forwarding device.
  • the relay device can be a relay network device, a relay terminal, a forwarding network device, or a forwarding terminal, or it can be a relay network device, a relay terminal, or a forwarding terminal.
  • the relay device first receives the data unit to be forwarded, but due to the fading characteristics of the wireless channel, the relay device may not be able to correctly receive some data units to be forwarded. These data units to be forwarded that cannot be correctly received by the relay device can be understood as The above-mentioned error data unit.
  • the relay device can reasonably re-encode the data to be forwarded when the data is forwarded, so that the receiving reliability of the encoded data and the spectrum efficiency can be improved in the scenario of relaying and forwarding.
  • each of the L to-be-coded data unit groups does not contain the erroneous data unit, in a possible implementation manner of section 420, in each of the L to-be-coded data unit groups
  • the groups of data units to be coded are coded separately, and one or more coded data units corresponding to each group of data units to be coded in the L data unit groups to be coded are generated one-to-one, the code corresponding to the erroneous data unit is not generated Data unit.
  • the second indication information may also optionally include: generating and outputting second indication information, the second indication information indicating that the coded data unit corresponding to the error data unit is incomplete, and the second indication information may be carried in the header information , It can also be carried in a control PDU, or it can be carried in a MAC control element (CE).
  • CE MAC control element
  • the relay device receives and encodes data units X 1 , X 2 , X 3 , X 4 , X 5 , X 6 , X 7 , X 8 , and X 9 to be encoded to obtain encoded data units A 1 , A 2 , A 3 , A 4 , A 5 , A 6 , A 7 , A 8 , A 9 , A 10 , and forward these coded data units.
  • the relay device did not successfully receive X 6 .
  • the relay apparatus when coding and forwarding, do not generate encoded data unit corresponding to X 6.
  • Table 10 Table 10 below:
  • the relay device may generate and output second indication information, which indicates that the encoded data unit corresponding to X 6 is incomplete, and the receiving device may complete the decoding of the received data according to the second indication information.
  • the second indication information may be carried in the control PDU or MAC CE.
  • the second indication information can be carried in the header information of A 6 and/or A 7 , or can be carried in the control PDU or MAC CE.
  • each of the L to-be-coded data unit groups does not contain the erroneous data unit
  • the error data unit is set to 0, which is also understandable
  • the erroneous data unit does not participate in coding.
  • it may also optionally include: generating and outputting third indication information, the third indication information indicating the error data unit, the third indication information may be carried in the header information, or may be carried in the control PDU , Can also be carried in MAC CE.
  • the third indication information enables the receiving device to complete the decoding of the received data in the case of missing erroneous data units.
  • the relay device receives and encodes data units X 1 , X 2 , X 3 , X 4 , X 5 , X 6 , X 7 , X 8 , and X 9 to be encoded to obtain encoded data units A 1 , A 2 , A 3 , A 4 , A 5 , A 6 , A 7 , A 8 , A 9 , A 10 , and forward these coded data units.
  • the relay device did not successfully receive X 6 .
  • X 6 does not participate in encoding, or it can be understood as setting X 6 to zero during encoding.
  • the coded data units A 1 , A 2 , A 3 , A 4 , A 5 , A 6 , A 7 , A 8 , A 9 , and A 10 satisfy :
  • a 1 X 1 ⁇ h 1
  • a 2 X 2 ⁇ h 1 +X 1 ⁇ h 2
  • a 3 X 3 ⁇ h 1 +X 2 ⁇ h 2
  • a 4 X 4 ⁇ h 1 +X 3 ⁇ h 2
  • a 5 X 5 ⁇ h 1 +X 4 ⁇ h 2 +X 1 ⁇ h 3
  • a 6 X 6 ⁇ h 1 +X 5 ⁇ h 2 +X 2 ⁇ h 3
  • a 7 X 7 ⁇ h 1 +X 6 ⁇ h 2 +X 3 ⁇ h 3
  • a 8 X 8 ⁇ h 1 +X 7 ⁇ h 2 +X 4 ⁇ h 3
  • a 9 X 9 ⁇ h 1 +X 8 ⁇ h 2 +X 5 ⁇ h 3
  • the relay device may generate and output the third indication information, for example , add the third indication information to the header information of A 6 and/or A 7 , or the third indication information may be carried in the control PDU or MAC CE.
  • the third indication information is used to indicate X 6 , for example, the third indication information may be identification information of X 6.
  • the receiving device can complete the decoding of the received data according to the third instruction information.
  • the erroneous data unit participates in the coding.
  • the first indication information indicating the error data unit is also generated and output.
  • the first indication information may be carried in the header information, may also be carried in the control PDU, and may also be carried in the MAC CE. The first indication information enables the receiving device to complete the decoding of the received data when the encoded data unit corresponding to the erroneous data unit is included.
  • the relay device receives and encodes data units X 1 , X 2 , X 3 , X 4 , X 5 , X 6 , X 7 , X 8 , and X 9 to be encoded to obtain encoded data units A 1 , A 2 , A 3 , A 4 , A 5 , A 6 , A 7 , A 8 , A 9 , A 10 , and forward these coded data units.
  • the relay device did not successfully receive X 6 .
  • X 6 still participates in encoding, or it can be understood that X 6 is not set to zero during encoding.
  • the coded data units A 1 , A 2 , A 3 , A 4 , A 5 , A 6 , A 7 , A 8 , A 9 , and A 10 satisfy :
  • a 1 X 1 ⁇ h 1
  • a 2 X 2 ⁇ h 1 +X 1 ⁇ h 2
  • a 3 X 3 ⁇ h 1 +X 2 ⁇ h 2
  • a 4 X 4 ⁇ h 1 +X 3 ⁇ h 2
  • a 5 X 5 ⁇ h 1 +X 4 ⁇ h 2 +X 1 ⁇ h 3
  • a 6 X 6 ⁇ h 1 +X 5 ⁇ h 2 +X 2 ⁇ h 3
  • a 7 X 7 ⁇ h 1 +X 6 ⁇ h 2 +X 3 ⁇ h 3
  • a 8 X 8 ⁇ h 1 +X 7 ⁇ h 2 +X 4 ⁇ h 3
  • a 9 X 9 ⁇ h 1 +X 8 ⁇ h 2 +X 5 ⁇ h 3
  • the relay device may generate and output the first indication information, for example , add the first indication information to the header information of A 6 and/or A 7 , or the first indication information may be carried in the control PDU or MAC CE.
  • the first indication information is used to indicate X 6 , for example, the first indication information may be identification information of X 6.
  • the receiving device can complete the decoding of the received data according to the first indication information.
  • the embodiments of the present application also provide corresponding devices, including corresponding modules for executing the foregoing embodiments.
  • the module can be software, hardware, or a combination of software and hardware.
  • Figure 9 shows a schematic diagram of the structure of a device.
  • the apparatus 900 may be a network device, a terminal, a chip, a chip system, or a processor that supports the network device to implement the foregoing method, or a chip, a chip system, or a processor that supports the terminal to implement the foregoing method.
  • the device can be used to implement the method described in the foregoing method embodiment, and for details, please refer to the description in the foregoing method embodiment.
  • the device 900 may include one or more processors 901, and the processor 901 may also be referred to as a processing unit, which may implement certain control functions.
  • the processor 901 may be a general-purpose processor or a special-purpose processor. For example, it can be a baseband processor or a central processing unit.
  • the baseband processor can be used to process communication protocols and communication data
  • the central processor can be used to control communication devices (such as base stations, baseband chips, terminals, terminal chips, DU or CU, etc.), execute software programs, and process The data of the software program.
  • the processor 901 may also store instructions and/or data 903, and the instructions and/or data 903 may be executed by the processor, so that the apparatus 900 executes the above method embodiments. Described method.
  • the processor 901 may include a transceiver unit for implementing receiving and sending functions.
  • the transceiver unit may be a transceiver circuit, or an interface, or an interface circuit.
  • the transceiver circuits, interfaces, or interface circuits used to implement the receiving and transmitting functions can be separated or integrated.
  • the foregoing transceiver circuit, interface, or interface circuit can be used for code/data reading and writing, or the foregoing transceiver circuit, interface, or interface circuit can be used for signal transmission or transmission.
  • the device 900 may include a circuit, which may implement the sending or receiving or communication function in the foregoing method embodiment.
  • the device 900 may include one or more memories 902, on which instructions 904 may be stored, and the instructions may be executed on the processor, so that the device 900 executes the foregoing method embodiments. Described method.
  • data may also be stored in the memory.
  • instructions and/or data may also be stored in the processor.
  • the processor and the memory can be provided separately or integrated together. For example, the corresponding relationship described in the foregoing method embodiment may be stored in a memory or in a processor.
  • the device 900 may further include a transceiver 905 and/or an antenna 906.
  • the processor 901 may be referred to as a processing unit, and controls the device 900.
  • the transceiver 905 may be called a transceiver unit, a transceiver, a transceiver circuit, a transceiver device, or a transceiver module, etc., for implementing the transceiver function.
  • the apparatus 900 in the embodiment of the present application may be used to execute the method described in FIG. 4 in the embodiment of the present application.
  • the processor and transceiver described in this application can be implemented in integrated circuit (IC), analog IC, radio frequency integrated circuit RFIC, mixed signal IC, application specific integrated circuit (ASIC), printed circuit board ( printed circuit board, PCB), electronic equipment, etc.
  • the processor and transceiver can also be manufactured using various IC process technologies, such as complementary metal oxide semiconductor (CMOS), nMetal-oxide-semiconductor (NMOS), and P-type Metal oxide semiconductor (positive channel metal oxide semiconductor, PMOS), bipolar junction transistor (BJT), bipolar CMOS (BiCMOS), silicon germanium (SiGe), gallium arsenide (GaAs), etc.
  • CMOS complementary metal oxide semiconductor
  • NMOS nMetal-oxide-semiconductor
  • PMOS bipolar junction transistor
  • BiCMOS bipolar CMOS
  • SiGe silicon germanium
  • GaAs gallium arsenide
  • the device described in the above embodiment may be a network device or a terminal, but the scope of the device described in this application is not limited to this, and the structure of the device may not be limited by FIG. 9.
  • the device can be a stand-alone device or can be part of a larger device.
  • the device may be:
  • the IC collection may also include storage components for storing data and/or instructions;
  • ASIC such as modem (MSM)
  • FIG. 10 provides a schematic structural diagram of a terminal.
  • the terminal device can be applied to the scenario shown in FIG. 1.
  • FIG. 10 only shows the main components of the terminal device.
  • the terminal 1000 includes a processor, a memory, a control circuit, an antenna, and an input and output device.
  • the processor is mainly used to process the communication protocol and communication data, and to control the entire terminal, execute the software program, and process the data of the software program.
  • the memory is mainly used to store software programs and data.
  • the radio frequency circuit is mainly used for the conversion of baseband signal and radio frequency signal and the processing of radio frequency signal.
  • the antenna is mainly used to send and receive radio frequency signals in the form of electromagnetic waves.
  • Input and output devices such as touch screens, display screens, keyboards, etc., are mainly used to receive data input by users and output data to users.
  • the processor can read the software program in the storage unit, parse and execute the instructions of the software program, and process the data of the software program.
  • the processor performs baseband processing on the data to be sent, and outputs the baseband signal to the radio frequency circuit.
  • the radio frequency circuit processes the baseband signal to obtain a radio frequency signal and sends the radio frequency signal out in the form of electromagnetic waves through the antenna. .
  • the radio frequency circuit receives the radio frequency signal through the antenna, the radio frequency signal is further converted into a baseband signal, and the baseband signal is output to the processor, and the processor converts the baseband signal into data and processes the data .
  • FIG. 10 only shows a memory and a processor. In an actual terminal, there may be multiple processors and memories.
  • the memory may also be referred to as a storage medium or a storage device, etc., which is not limited in the embodiment of the present invention.
  • the processor may include a baseband processor and a central processing unit.
  • the baseband processor is mainly used to process communication protocols and communication data.
  • the central processing unit is mainly used to control the entire terminal device and execute Software program, processing the data of the software program.
  • the processor in FIG. 10 integrates the functions of the baseband processor and the central processing unit.
  • the baseband processor and the central processing unit may also be independent processors and are interconnected by technologies such as a bus.
  • the terminal may include multiple baseband processors to adapt to different network standards, the terminal may include multiple central processors to enhance its processing capabilities, and various components of the terminal may be connected through various buses.
  • the baseband processor can also be expressed as a baseband processing circuit or a baseband processing chip.
  • the central processing unit can also be expressed as a central processing circuit or a central processing chip.
  • the function of processing the communication protocol and the communication data can be built in the processor, or can be stored in the storage unit in the form of a software program, and the processor executes the software program to realize the baseband processing function.
  • an antenna and a control circuit with a transceiving function can be regarded as the transceiving unit 1011 of the terminal 1000, and a processor with a processing function can be regarded as the processing unit 1012 of the terminal 1000.
  • the terminal 1000 includes a transceiver unit 1011 and a processing unit 1012.
  • the transceiving unit may also be referred to as a transceiver, a transceiver, a transceiving device, and so on.
  • the device for implementing the receiving function in the transceiver unit 1011 can be regarded as the receiving unit, and the device for implementing the sending function in the transceiver unit 1011 as the sending unit, that is, the transceiver unit 711 includes a receiving unit and a sending unit.
  • the receiving unit may also be called a receiver, a receiver, a receiving circuit, etc.
  • the sending unit may be called a transmitter, a transmitter, or a transmitting circuit, etc.
  • the foregoing receiving unit and sending unit may be an integrated unit or multiple independent units.
  • the above-mentioned receiving unit and sending unit may be located in one geographic location, or may be scattered in multiple geographic locations.
  • the device can be a terminal or a component of the terminal (for example, an integrated circuit, a chip, etc.).
  • the device may be a network device, or a component of a network device (for example, an integrated circuit, a chip, etc.).
  • the device may also be another communication module, which is used to implement the method in the method embodiment of the present application.
  • the apparatus 1100 may include: a processing module 1102 (or referred to as a processing unit).
  • a transceiver module 1101 or referred to as a transceiving unit
  • storage module 1103 or referred to as a storage unit.
  • one or more modules in Figure 11 may be implemented by one or more processors, or by one or more processors and memories; or by one or more processors It may be implemented with a transceiver; or implemented by one or more processors, memories, and transceivers, which is not limited in the embodiment of the present application.
  • the processor, memory, and transceiver can be set separately or integrated.
  • the device has the function of implementing the terminal described in the embodiment of the application.
  • the device includes a module or unit or means corresponding to the terminal to execute the steps described in the embodiment of the application.
  • the function or unit is Means can be implemented through software, or through hardware, or through hardware execution of corresponding software, or through a combination of software and hardware.
  • the device has the function of implementing the network device described in the embodiment of this application.
  • the device includes the module or unit or means corresponding to the network device executing the steps involved in the network device described in the embodiment of this application.
  • the functions or units or means (means) can be implemented by software, or by hardware, or by hardware executing corresponding software, or by a combination of software and hardware.
  • each module in the apparatus 1100 in the embodiment of the present application may be used to execute the method described in FIG. 4 in the embodiment of the present application.
  • an apparatus 1100 may include: a processing module 1102 and a transceiver module 1101.
  • the processing module 1102 is configured to obtain T data units to be coded, to respectively encode each data unit group to be coded in the L data unit groups to be coded, and to obtain data to be coded in the L data unit groups to be coded.
  • the L data unit groups to be coded include all the above T data units to be coded, and each data unit group to be coded in the L data unit groups to be coded contains at most M data units to be coded.
  • the transceiver module 1101 is used to output coded data units. It can be understood that this application does not limit a specific encoding type.
  • the coding type can be block coding, convolutional coding, or random linear coding, and the coding type can also be network coding (such as block network coding, convolutional network coding, or random linear network coding).
  • the device 1100 may be a terminal, or a component of the terminal (for example, a processor, a chip, or a chip system, etc.).
  • the apparatus 1100 may be a network device, or a component of a network device (for example, a processor, a chip, or a chip system, etc.).
  • the data unit to be coded can be divided into multiple data unit groups to be coded by the above-mentioned device, and the number of data units to be coded contained in each data unit group to be coded is less than the number of all data units to be coded.
  • the method can reduce the relevance of the encoded data and improve the ability of the encoded data to resist channel fading and channel changes, thereby improving the receiving reliability of the encoded data and increasing the spectral efficiency.
  • each of the L data unit groups to be coded does not simultaneously contain the first data unit to be coded and the last data unit to be coded among the T data units to be coded, or L
  • One or more to-be-coded data unit groups in the to-be-coded data unit group include the first to-be-coded data unit and the last to-be-coded data unit of the T data units to be coded.
  • the T data units to be encoded include N original data units, and each of the L data unit groups to be encoded includes at most N original data units.
  • M original data units, N is an integer greater than 1
  • M is an integer greater than 0 and less than N.
  • the above N, L, and M can be collectively referred to as coding parameters.
  • the number L of data unit groups to be encoded satisfies N ⁇ L ⁇ N+M-1.
  • obtaining one or more coded data units corresponding to each of the L to-be-coded data unit groups in a one-to-one manner is specifically implemented as follows: One coded data unit corresponding to one data unit group to be coded.
  • each of the L data unit groups to be coded does not contain the first original data unit and the last original data unit of the N original data units at the same time.
  • one or more of the L data unit groups to be encoded includes the first original data unit and the last original data unit of the N original data units.
  • the foregoing N original data units are included in B original data blocks, and B is an integer greater than 1.
  • the processing module 1102 may also be used to add header information to the generated encoded data unit, the header information includes one or more of the following: information indicating one or more encoding parameters, and original data corresponding to the encoded data unit The number information of the original data unit contained in the block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data unit The corresponding coding core indication information, the coefficient column vector indication information corresponding to the coded data unit (the coefficient column vector is included in the coding matrix), or the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit). If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the processing module 1102 may obtain the L data unit groups to be coded in a sliding window manner, and compare each of the L data unit groups to be coded. Encoding is performed separately to obtain an encoded data unit corresponding to each data unit group to be encoded in the L data unit groups to be encoded one-to-one.
  • each of the L to-be-coded data unit groups is different and contains the first original data unit and the last original data unit of the N original data units, it can be understood as a sliding window No cyclic shift (ie end-to-end cyclic shift) is performed during sliding.
  • one or more of the L data unit groups to be coded contains the first original data unit and the last original data unit of the N original data units, it can be understood as a sliding window for circular shifting Bit.
  • the T data units to be encoded include N original data units and P interleaved data units, and each of the L data unit groups to be encoded includes at most N data unit groups.
  • N is an integer greater than 1
  • P is an integer greater than 1
  • M is an integer greater than 0 and less than N+P.
  • the aforementioned N, P, L, and M can be collectively referred to as coding parameters.
  • the number L of data unit groups to be encoded satisfies N+P ⁇ L ⁇ N+P+M-1.
  • the processing module 1102 is specifically configured to obtain an encoded data unit corresponding to each of the L data unit groups to be encoded in a one-to-one correspondence.
  • each of the L data unit groups to be coded does not simultaneously contain N+P original data units and the first data unit and the last data unit in the interleaved data unit, which can be understood as The sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains N+P original data units and the first data unit and the last data unit in the interleaved data unit, which can be understood as sliding The window is cyclically shifted.
  • the processing module 1102 may also be used to add header information to the generated encoded data unit, the header information includes one or more of the following: information indicating one or more encoding parameters, and original data corresponding to the encoded data unit The number information of the original data unit contained in the block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data unit The corresponding coding core indication information, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit), or Interweave information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the processing module 1102 may obtain the L data unit groups to be coded in a sliding window manner, and compare each of the L data unit groups to be coded. Encoding is performed separately to obtain an encoded data unit corresponding to each data unit group to be encoded in the L data unit groups to be encoded one-to-one. It can be understood that the L data unit groups to be coded obtained by means of a sliding window include all the original data units and interleaved data units in the N original data units and the P interleaved data units.
  • each of the L data unit groups to be coded contains N+P original data units and the first data unit and the last data unit of the interleaved data unit when different
  • the sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains N+P original data units and the first data unit and the last data unit in the interleaved data unit, it can be understood as sliding
  • the window is cyclically shifted.
  • the T data units to be encoded include B original data blocks, and each of the foregoing L data unit groups to be encoded includes at most B original data blocks.
  • M original data blocks of, B is an integer greater than 1
  • M is an integer greater than 0 and less than B.
  • the original data block can generally be understood as a data unit to be encoded larger than the original data unit.
  • B original data blocks may contain original data units, where the b-th original data block includes N b original data units, and b is An integer greater than 0 and less than or equal to B.
  • the original data block may include original data units and interleaved data units, where the b-th original data block includes N b original data units and interleaved data units, and b is an integer greater than 0 and less than or equal to B.
  • B, L, N b, and M can be collectively referred to as coding parameters.
  • the number L of data unit groups to be encoded satisfies B ⁇ L ⁇ B+M-1.
  • the processing module 1102 is specifically configured to: obtain a plurality of encoded data units corresponding to each of the L data unit groups to be encoded in a one-to-one correspondence.
  • each of the L data unit groups to be coded does not contain the first original data block and the last original data block of the B original data blocks at the same time.
  • one or more of the L data unit groups to be encoded includes the first original data block and the last original data block of the B original data blocks.
  • the processing module 1102 may also be used to add header information to the generated encoded data unit, the header information includes one or more of the following: information indicating one or more encoding parameters, and original data corresponding to the encoded data unit The number information of the original data unit contained in the block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data unit The corresponding coding core indication information, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit), or Interweave information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the processing module 1102 may obtain the L data unit groups to be coded in a sliding window manner, and compare each of the L data unit groups to be coded. Encoding is performed separately to obtain a plurality of encoded data units corresponding to each of the L data unit groups to be encoded one-to-one.
  • the L data unit groups to be encoded include all the original data blocks in the B original data blocks obtained by using a sliding window method.
  • each of the L data unit groups to be coded is different and contains the first original data block and the last original data block of the B original data blocks, it can be understood as a sliding window No cyclic shift (ie end-to-end cyclic shift) is performed during sliding.
  • one or more of the L data unit groups to be coded contains the first original data block and the last original data block of the B original data blocks, it can be understood as a sliding window for cyclic shift Bit.
  • the T data units to be encoded include B original data blocks and Q interleaved data blocks
  • each of the L data unit groups to be encoded includes at most B Original data blocks and M original data blocks and/or interleaved data blocks of the Q interleaved data blocks
  • B is an integer greater than 1
  • Q is an integer greater than 1
  • M is greater than 0 and less than B+Q Integer.
  • the original data block contains the original data unit
  • the interleaved data block contains the interleaved data unit.
  • B, Q, L, and M can be collectively referred to as coding parameters.
  • the number L of data unit groups to be encoded satisfies B+Q ⁇ L ⁇ B+Q+M-1.
  • the processing module 1102 is specifically configured to: obtain a plurality of encoded data units corresponding to each of the L data unit groups to be encoded in a one-to-one correspondence.
  • each of the L data unit groups to be coded does not simultaneously contain B+Q original data blocks and the first data block and the last data block of the interleaved data blocks, which can be understood as The sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains B+Q original data blocks and the first data block and the last data block of the interleaved data blocks, which can be understood as sliding The window is cyclically shifted.
  • the processing module 1102 may also be used to add header information to the generated encoded data unit, the header information includes one or more of the following: information indicating one or more encoding parameters, and original data corresponding to the encoded data unit The number information of the original data unit contained in the block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data unit The corresponding coding core indication information, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit), or Interweave information. If it is a multi-hop
  • the processing module 1102 may obtain the L data unit groups to be coded in a sliding window manner, and compare each of the L data unit groups to be coded. Encoding is performed separately to obtain an encoded data unit corresponding to each data unit group to be encoded in the L data unit groups to be encoded one-to-one. It can be understood that the L data unit groups to be coded obtained by means of a sliding window include all the original data blocks and the interleaved data blocks in the B original data blocks and the Q interleaved data blocks.
  • each of the L data unit groups to be encoded contains B+Q original data blocks and the first data block and the last data block of the interleaved data blocks when different
  • the sliding window is not cyclically shifted when it is sliding (that is, the end-to-end cyclic shift).
  • one or more of the L data unit groups to be coded contains B+Q original data blocks and the first data block and the last data block in the interleaved data block, it can be understood as sliding
  • the window is cyclically shifted.
  • the T data units to be encoded include error data units, and the number of the error data units is one or more.
  • Each to-be-coded data unit group in the L to-be-coded data unit groups does not include the erroneous data unit, or one or more to-be-coded data unit groups in the L to-be-coded data unit groups include the erroneous data unit.
  • the processing module 1102 is further configured to generate and output first indication information indicating the erroneous data unit, and the first indication The information can be carried in the header information.
  • the transceiver module 1101 is further configured to send or output the first indication information.
  • the processing module 1102 is configured to perform a separate operation on each data unit group to be encoded in the L data unit groups to be encoded.
  • the encoded data unit corresponding to the erroneous data unit is not generated.
  • the processing module 1102 is further configured to generate second indication information, the second indication information indicating that the encoded data unit corresponding to the error data unit is incomplete, and the second indication information may be carried in the header information or It is carried in a control protocol data unit (protocol data unit, PDU), and can also be carried in a media access control (media access control, MAC) control element (CE).
  • the transceiver module 1101 is further configured to send or output second indication information.
  • the processing module 1102 is configured to perform a separate operation on each data unit group to be encoded in the L data unit groups to be encoded.
  • the error data unit can also be set to 0, which can also be understood as the error data unit is not Participate in coding.
  • the processing module 1102 is further configured to generate third indication information.
  • the third indication information indicates the error data unit.
  • the third indication information may be carried in the header information, or may be carried in the control PDU, and may also be carried.
  • the transceiver module 1101 is further configured to send or output third indication information.
  • the processing module 1102 is configured to perform a separate operation for each data unit group to be coded in the L data unit groups to be coded.
  • the processing module 1102 is further configured to generate the foregoing first indication information indicating the error data unit, and the first indication information may be carried in header information, may also be carried in the control PDU, or may also be carried in the MAC CE.
  • the transceiver module 1101 is further configured to send or output the first indication information.
  • an apparatus 1100 may include a processing module 1102.
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix.
  • the diagonal line of the sub-matrix contains the elements in GF(q) Non-zero elements.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than T.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • the T data units to be encoded include N original data units X 1 , X 2 ,..., X N , and the processing module 1102 is used to encode the N original data units to obtain K coded data units A 1 , A 2 ,..., A K , K is greater than or equal to N, and K coded data units satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix.
  • the diagonal line of the sub-matrix contains the elements in GF(q) Non-zero elements.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than N.
  • the above N, K, R, and M can be collectively referred to as coding parameters.
  • a possible coding matrix H satisfies:
  • the coding matrix H (can be denoted as H 1 ) is an N*K-dimensional matrix, which contains N*N-dimensional sub-matrices And N*(KN) dimensional submatrices Among them, the sub-matrix There are non-zero elements in GF(q) on the main diagonal of and the M-1 diagonal diagonals parallel to the main diagonal.
  • the coding matrix H (can be denoted as H 2 ) is an N*K-dimensional matrix, which contains N*(N+M-1)-dimensional sub-matrices And N*(KN-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero elements in GF(q) on M diagonal diagonals.
  • I N is an N*N-dimensional identity matrix.
  • 1 H in the matrix H contains one or more column vector, or matrix H 'H 2 comprising one or more column vector' as described above or H 1 H 2, or matrix H '.
  • the processing module 1102 may also be used to add header information to the generated encoded data unit, the header information includes one or more of the following: information indicating one or more encoding parameters, and original data corresponding to the encoded data unit The number information of the original data unit contained in the block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data unit The corresponding coding core indication information, the coefficient column vector indication information corresponding to the coded data unit (the coefficient column vector is included in the coding matrix), or the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit). If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the T data units to be encoded include N original data units X 1 , X 2 ,..., X N and P interleaved data units X′ 1 , X′ 2 ,..., X′ P
  • the processing module 1102 is used to encode the N original data units and P interleaved data units to obtain K coded data units A 1 , A 2 ,..., A K , K is greater than or equal to N+P
  • K A coded data unit satisfies:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix.
  • the diagonal line of the sub-matrix contains the elements in GF(q) Non-zero elements.
  • the number of diagonal diagonal lines is M
  • M is an integer greater than 0 and less than N+P.
  • the above N, K, R, and M can be collectively referred to as coding parameters.
  • a possible coding matrix H satisfies:
  • the coding matrix H (can be denoted as H 4 ) is a (N+P)*K-dimensional matrix, which contains (N+P)*(N+P)-dimensional sub-matrices And (N+P)*(KNP) dimensional submatrices Among them, the sub-matrix There are non-zero elements in GF(q) on the main diagonal of and the M-1 diagonal diagonals parallel to the main diagonal.
  • the coding matrix H (can be denoted as H 5 ) is a (N+P)*K-dimensional matrix, which contains (N+P)*(N+P+M-1)-dimensional sub-matrices And (N+P)*(KNP-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero elements in GF(q) on M diagonal diagonals.
  • I N+P is a (N+P)*(N+P)-dimensional identity matrix.
  • Comprising a matrix H H 4 or more column vector, or matrix H 'H 5 comprises a one or more column vector' as described above or H 5 H 4, or matrix H '.
  • the processing module 1102 may also be used to add header information to the generated encoded data unit, the header information includes one or more of the following: information indicating one or more encoding parameters, and original data corresponding to the encoded data unit The number information of the original data unit contained in the block, the identification information of the original data block corresponding to the encoded data unit (such as block ID), the identification information of the encoded data unit in the corresponding original data block (such as packet ID), and the encoded data unit The corresponding coding core indication information, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as the index of the original data unit), or Interweave information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • an apparatus 1100 may include a processing module 1102.
  • the processing module 1102 for obtaining data to be encoded the T unit and the T unit to be encoded data O 1, O 2, ..., O T is encoded, the encoded data to obtain the D units comprising coded data blocks C 1, C 2 ,...,C D.
  • T is an integer greater than 1
  • D is greater than or equal to T
  • D coded data blocks satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix
  • the diagonal of the sub-matrix contains elements in GF(q)
  • the non-zero matrix is M
  • M is an integer greater than 0 and less than T.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • the T data units to be encoded include B>1 original data blocks BL 1 ,..., BL B containing the original data units, or the T data units to be encoded include B> One original data block BL 1 ,..., BL B containing original data units and interleaved data units.
  • the processing module 1102 is configured to encode the B original data blocks to obtain D coded data blocks C 1 , C 2 ,..., C D that contain coded data units. D is greater than or equal to B, and D coded data blocks satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix
  • the diagonal of the sub-matrix contains elements in GF(q)
  • the non-zero matrix is M
  • M is an integer greater than 0 and less than B.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • B, D, and M can be collectively referred to as coding parameters.
  • a possible coding matrix H satisfies:
  • the coding matrix H (can be denoted as H 7 ) is a B*D-dimensional matrix, which contains B*B-dimensional sub-matrices And B*(DB) dimensional submatrices
  • the sub-matrix contained in the above H No special requirements, for example, it can be randomly obtained in GF(q) Elements in.
  • Submatrix There are non-zero matrices containing elements in GF(q) on the main diagonal of and on the M-1 diagonal diagonals parallel to the main diagonal.
  • the coding matrix H (can be denoted as H 8 ) is a B*D-dimensional matrix, which contains a B*(B+M-1)-dimensional sub-matrix And B*(DB-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero matrices containing elements in GF(q) on the M diagonal diagonals.
  • the B*B-dimensional matrix I B contains B*B N b ⁇ N b -dimensional unit matrices, N b represents the number of original data units contained in the original data block b, 1 ⁇ b ⁇ B, different The number of original data units contained in the original data block may be the same or different.
  • Matrix H 'as described above or H 7 H 8, or matrix H' to H 7 comprises one or more column vector, or matrix H 'contains one or more of H 8 column vectors.
  • the processing module 1102 may also be used to add header information to the generated encoded data unit.
  • the header information includes one or more of the following: information indicating one or more encoding parameters, encoding
  • the original data block corresponding to the data unit contains the number information of the original data unit, the identification information of the original data block corresponding to the encoded data unit (such as block ID), and the identification information of the encoded data unit in the corresponding original data block (such as packet ID), the coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as original data) Unit index), or interleaving information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the T data units to be encoded include B original data blocks BL 1 ,..., BL B and Q interleaved data blocks BL' 1 ,..., BL' Q.
  • B original data blocks in the original data block contains N b b raw data units
  • the data block interleave Q interlaces data block q 'comprises N q' interleaving data units.
  • the processing module 1102 is configured to encode the B original data blocks and Q interleaved data blocks to obtain D coded data blocks C 1 , C 2 ,..., C D that contain coded data units, where D is greater than or equal to B+Q, D coded data blocks satisfy:
  • H represents the coding matrix
  • H contains elements in GF(q)
  • q is an integer greater than 0
  • H contains at least one sub-matrix
  • the diagonal of the sub-matrix contains elements in GF(q)
  • the non-zero matrix is M
  • M is an integer greater than 0 and less than B+Q.
  • the sub-matrix is a square matrix
  • the aforementioned diagonal diagonal includes the main diagonal of the square matrix and the diagonal diagonal parallel to the main diagonal.
  • B, Q, N b , N q′ , D and M can be collectively referred to as coding parameters.
  • a possible coding matrix H satisfies:
  • the coding matrix H (can be denoted as H 10 ) is a (B+Q)*D-dimensional matrix, which contains (B+Q)*(B+Q)-dimensional sub-matrices And (B+Q)*(DBQ) dimensional submatrices Among them, the sub-matrix There are non-zero matrices containing elements in GF(q) on the main diagonal of and on the M-1 diagonal diagonals parallel to the main diagonal.
  • the coding matrix H (can be denoted as H 11 ) is a (B+Q)*D-dimensional matrix, which contains (B+Q)*(B+Q+M-1)-dimensional sub-matrices And (B+Q)*(DBQ-M+1) dimensional submatrix Among them, the sub-matrix There are non-zero matrices containing elements in GF(q) on the M diagonal diagonals.
  • the (B+Q)*(B+Q)-dimensional matrix I B+Q contains (B+Q)*(B+Q) (N b +N q′ ) ⁇ (N b +N q′ )
  • the dimensional identity matrix Matrix H 'as described above or H 10 H 11, or matrix H' H 10 contained in the one or more column vector, or matrix H 'H 11 comprising one or more column vector.
  • the processing module 1102 may also be used to add header information to the generated encoded data unit.
  • the header information includes one or more of the following: information indicating one or more encoding parameters, encoding
  • the original data block corresponding to the data unit contains the number information of the original data unit, the identification information of the original data block corresponding to the encoded data unit (such as block ID), and the identification information of the encoded data unit in the corresponding original data block (such as packet ID), the coding core indication information corresponding to the coding data unit, the coefficient column vector indication information corresponding to the coding data unit (the coefficient column vector is included in the coding matrix), the identification information of the original data unit corresponding to the coding start position (such as original data) Unit index), or interleaving information. If it is a multi-hop system, the header information may also contain the identification information of the sender.
  • the processor in the embodiment of the present application may be an integrated circuit chip with signal processing capability.
  • the steps of the foregoing method embodiments can be completed by hardware integrated logic circuits in the processor or instructions in the form of software.
  • the above-mentioned processor may be a general-purpose processor, a digital signal processor (digital signal processor, DSP), an application specific integrated circuit (ASIC), a field programmable gate array (field programmable gate array, FPGA) or other Programming logic devices, discrete gates or transistor logic devices, discrete hardware components.
  • the processing unit used to execute these technologies at a communication device can be implemented in one or more general-purpose processors, DSPs, digital signal processing devices, ASICs, Programmable logic device, FPGA, or other programmable logic device, discrete gate or transistor logic, discrete hardware component, or any combination of the above.
  • the general-purpose processor may be a microprocessor.
  • the general-purpose processor may also be any traditional processor, controller, microcontroller, or state machine.
  • the processor can also be implemented by a combination of computing devices, such as a digital signal processor and a microprocessor, multiple microprocessors, one or more microprocessors combined with a digital signal processor core, or any other similar configuration. accomplish.
  • 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 memory.
  • the non-volatile memory can be read-only memory (ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), and electrically available Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be random access memory (RAM), which is used as an external cache.
  • RAM random access memory
  • static random access memory static random access memory
  • dynamic RAM dynamic RAM
  • DRAM dynamic random access memory
  • synchronous dynamic random access memory synchronous DRAM, SDRAM
  • double data rate synchronous dynamic random access memory double data rate SDRAM, DDR SDRAM
  • enhanced synchronous dynamic random access memory enhanced SDRAM, ESDRAM
  • synchronous connection dynamic random access memory serial DRAM, SLDRAM
  • direct rambus RAM direct rambus RAM
  • the present application also provides a computer-readable medium on which a computer program is stored, and when the computer program is executed by a computer, the function of any of the foregoing method embodiments is realized.
  • This application also provides a computer program product, which, when executed by a computer, realizes the functions of any of the foregoing method embodiments.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • 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.
  • the computer instructions may be transmitted from a website, computer, server, or data center.
  • 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 a data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a high-density digital video disc (digital video disc, DVD)), or a semiconductor medium (for example, a solid state disk, SSD)) etc.
  • system and "network” in this article are often used interchangeably in this article.
  • the term “and/or” in this article is only an association relationship that describes the associated objects, which means that there can be three relationships, for example, A and/or B, which can mean: A alone exists, A and B exist at the same time, exist alone In the three cases of B, A can be singular or plural, and B can be singular or plural.
  • the character “/” generally indicates that the associated objects before and after are in an "or” relationship.
  • At least one of or “at least one of” herein means all or any combination of the listed items, for example, "at least one of A, B and C", It can mean: A alone exists, B alone exists, C exists alone, A and B exist at the same time, B and C exist at the same time, and there are six cases of A, B and C at the same time, where A can be singular or plural, and B can be Singular or plural, C can be singular or plural.
  • B corresponding to A means that B is associated with A, and B can be determined according to A.
  • determining B based on A does not mean that B is determined only based on A, and B can also be determined based on A and/or other information.
  • the corresponding relationships shown in the tables in this application can be configured or pre-defined.
  • the value of the information in each table is only an example, and can be configured to other values, which is not limited in this application.
  • the corresponding relationship shown in some rows may not be configured.
  • appropriate deformation adjustments can be made based on the above table, such as splitting, merging, and so on.
  • the names of the parameters shown in the titles in the above tables may also adopt other names that can be understood by the communication device, and the values or expressions of the parameters may also be other values or expressions that can be understood by the communication device.
  • other data structures can also be used, such as arrays, queues, containers, stacks, linear tables, pointers, linked lists, trees, graphs, structures, classes, heaps, hash tables, or hash tables. Wait.
  • the pre-definition in this application can be understood as definition, pre-definition, storage, pre-storage, pre-negotiation, pre-configuration, curing, or pre-fired.
  • the systems, devices, and methods described in this application can also be implemented in other ways.
  • the device embodiments described above are merely illustrative, for example, the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this application essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disk or optical disk and other media that can store program code .

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本申请中的实施例为网络编码提供了一种编码方法和装置,在提供的方法中将多个待编码数据单元分成多个待编码数据单元组分别进行编码,并且每个待编码数据单元组中包含的待编码数据单元的数量小于所有待编码数据单元的数量。通过该方法能够降低编码数据的相关性,提高编码数据对抗信道衰落以及信道变化的能力,从而提高编码数据的接收可靠性。

Description

编码方法及装置
本申请要求于2020年6月8日提交中国国家知识产权局、申请号为202010514547.9、发明名称为“编码方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种编码方法及装置。
背景技术
在随机线性网络编码(random linear network coding,RLNC)技术中,发送端对多个原始数据单元进行编码得到编码数据后,对编码数据进行处理并发送。然而,在RLNC的编码技术中,可能会产生线性相关的编码数据,从而影响编码数据的接收可靠性。因此,如何能够降低编码数据的线性相关性并提高编码数据的接收可靠性,成为编码技术中亟需解决的问题。
发明内容
本申请实施例提供一种编码方法及装置。
第一方面,本申请实施例提供一种编码方法,该方法可以由终端或网络设备执行,也可以由终端或网络设备的部件(例如处理器、芯片、或芯片系统等)执行,包括:获得T个待编码数据单元,T为大于1的整数。对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,其中,L个待编码数据单元组包括上述全部的T个待编码数据单元,并且L个待编码数据单元组中的每个待编码数据单元组最多包含T个待编码数据单元中的M个待编码数据单元,L为大于等于T的整数,M为大于0且小于T的整数。以及输出编码数据单元。可选地,L满足T≤L≤T+M-1。可以理解,本申请并不限定具体的编码类型。例如编码类型可以是分组编码、卷积编码或随机线性编码,编码类型还可以是网络编码(比如分组网络编码、卷积网络编码或随机线性网络编码)。
上述方法将待编码数据单元分成多个待编码数据单元组分别进行编码,并且每个待编码数据单元组中包含的待编码数据单元的数量小于所有待编码数据单元的数量。该方法通过对待编码数据单元进行有选择性地编码,能够降低编码数据的相关性,提高编码数据对抗信道衰落以及信道变化的能力,从而提高编码数据的接收可靠性并提高频谱效率。
可以理解,对待编码数据单元组进行编码可以有多种不同的实现方式。例如,可以使用编码矩阵对待编码数据单元组中的待编码数据数据单元进行编码,也可以使用编码核对待编码数据单元组中的待编码数据数据单元进行编码。其中编码核可被理解为一种编码向量,编码核也可被称为卷积核、编码核向量、系数矢量或系数向量等。可选地,编码核包含在编码矩阵中,例如编码核可以包含编码矩阵一行或一列中的所有非0元素。上述M可理解为编码对应的卷积深度、编码约束度、约束长度、卷积约束长度、记忆深度、编码深度、编码核大小、编码核长度或者编码核深度。上述T、L和M可统称为编码参数。可选地,上述编码参 数中的一个或多个可以是预定义的,也可以是由网络设备配置的。
可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元,或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元。
当L个待编码数据单元组中的每个待编码数据单元组不同时包含T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元时,可以降低编码复杂度,同时降低编码过程中的存储开销。
当L个待编码数据单元组中的一个或多个待编码数据单元组中包含T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元时,由于更多的待编码数据单元可以参与编码,能够获取更高的编码增益,进一步提高编码数据对抗信道衰落以及信道变化的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
结合第一方面,在第一方面的某些实施方式中,T个待编码数据单元包括N个原始数据单元,L个待编码数据单元组中的每个待编码数据单元组最多包含N个原始数据单元中的M个原始数据单元,N为大于1的整数,M为大于0且小于N的整数。上述N、L和M可统称为编码参数。
在上述实施方式中,可选地,待编码数据单元组的数量L满足N≤L≤N+M-1。可选地,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,具体实现为:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。
通过上述实施方式,能够对原始数据单元进行有选择性地编码,从而降低原始数据单元的编码数据的相关性,提高原始数据单元的编码数据对抗信道衰落以及信道变化的能力,从而提高原始数据单元的编码数据的接收可靠性并提高频谱效率。
在上述实施方式中,可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元。
在上述实施方式中,可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。这一可选的实施方式能够对两个或两个以上的原始数据块中包含的原始数据单元进行块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
在上述实施方式中,可选地,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、或编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)。如果是多跳系统,头信息中还可能包含发送端的标识信息。通过添加头信息可以使得接收端能够根据该头信息,识别出译码使用的编码数据单元,从而使能对编码数据单元的正确译码,进而提高频谱效率。
结合第一方面,在第一方面的某些实施方式中,可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码, 获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有N个原始数据单元中所有的原始数据单元。此时,M可理解为滑动窗口内能够包含的原始数据单元的最大个数。通过采用滑动窗口的实施方式能够获得不同的待编码数据单元组,增加待编码数据单元的多样性,获得更高的编码增益,提高编码效率,从而提高频谱效率。
在上述实施方式中,可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元时,可理解为滑动窗口进行循环移位。滑动窗口在滑动时不进行循环移位,可以降低编码时的编码复杂度,同时也可以降低编码过程中的存储开销。滑动窗口在滑动时进行循环移位,由于更多的待编码数据单元可以参与编码,能够获取更高的编码增益,进一步提高编码数据对抗信道衰落以及信道变化的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
结合第一方面,在第一方面的某些实施方式中,T个待编码数据单元包括N个原始数据单元和P个交织数据单元,L个待编码数据单元组中的每个待编码数据单元组最多包含N个原始数据单元和P个交织数据单元中的M个原始数据单元和/或交织数据单元,N为大于1的整数,P为大于1的整数,M为大于0且小于N+P的整数。上述N、P、L和M可统称为编码参数。
在上述实施方式中,可选地,待编码数据单元组的数量L满足N+P≤L≤N+P+M-1。可选地,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,具体实现为:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。
上述实施方式可以理解为对N个原始数据单元进行交织后再进行待编码数据单元组的划分,在降低编码数据的相关性的基础上,能够借助交织进一步提高编码数据对抗信道衰落以及信道变化的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
在上述实施方式中,可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元,可理解为滑动窗口进行循环移位。至于上述的第一个数据单元和最后一个数据单元分别是原始数据单元还是交织数据单元,取决于原始数据单元和交织数据单元的排列,本申请对此不做限定。
在上述实施方式中,可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。这一可选的实施方式能够对两个或两个以上的原始数据块中包含的原始数据单元进行块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
在上述实施方式中,可选地,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核 指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
结合第一方面,在第一方面的某些实施方式中,可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有N个原始数据单元和P个交织数据单元中所有的原始数据单元和交织数据单元。此时,M可理解为滑动窗口内能够包含的原始数据单元和/或交织数据单元的最大个数。
可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元时,可理解为滑动窗口进行循环移位。
结合第一方面,在第一方面的某些实施方式中,T个待编码数据单元包括B个原始数据块,上述L个待编码数据单元组中的每个待编码数据单元组最多包含B个原始数据块中的M个原始数据块,B为大于1的整数,M为大于0且小于B的整数。原始数据块一般可理解为比原始数据单元更大的待编码数据单元,例如,B个原始数据块中可包含原始数据单元,其中第b个原始数据块包含N b个原始数据单元,b为大于0且小于等于B的整数。或者,原始数据块中可包含原始数据单元和交织数据单元,其中第b个原始数据块包含N b个原始数据单元和交织数据单元,b为大于0且小于等于B的整数。上述B、L、N b和M可统称为编码参数。当原始数据块中包含交织数据单元时可以借助交织进一步提高编码数据对抗信道衰落以及信道变化的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
在上述实施方式中,可选地,待编码数据单元组的数量L满足B≤L≤B+M-1。可选地,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,具体实现为:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。
上述实施方式可以理解为将B个原始数据块划分为L个待编码数据单元组,并对这L个待编码数据单元组分别进行编码,其中L满足B≤L≤B+M-1。其中M在这种实施方式下也可理解为块间卷积深度。通过该实施方式,能够对两个或两个以上的原始数据块中包含的原始数据单元进行有选择性的块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
在上述实施方式中,可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含B个原始数据块中的第一个原始数据块和最后一个原始数据块。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含B个原始数据块中的第一个原始数据块和最后一个原始数据块。
在上述实施方式中,可选地,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码 起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
结合第一方面,在第一方面的某些实施方式中,可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有B个原始数据块中所有的原始数据块。此时,M可理解为滑动窗口内能够包含的原始数据块的最大个数。
在上述实施方式中,可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含B个原始数据块中的第一个原始数据块和最后一个原始数据块时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含B个原始数据块中的第一个原始数据块和最后一个原始数据块时,可理解为滑动窗口进行循环移位。
结合第一方面,在第一方面的某些实施方式中,T个待编码数据单元包括B个原始数据块和Q个交织数据块,L个待编码数据单元组中的每个待编码数据单元组最多包含B个原始数据块和所述Q个交织数据块中的M个原始数据块和/或交织数据块,B为大于1的整数,Q为大于1的整数,M为大于0且小于B+Q的整数。其中,原始数据块中包含原始数据单元,交织数据块中包含交织数据单元。B、Q、L和M可统称为编码参数。
在上述实施方式中,可选地,待编码数据单元组的数量L满足B+Q≤L≤B+Q+M-1。可选地,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,具体实现为:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。
上述实施方式可以理解为对B个原始数据块中的原始数据单元进行交织后再进行待编码数据单元组的划分,结合块间编码,在支持块间传输错误纠正的基础上,能够借助交织进一步提高编码数据对抗信道衰落以及信道变化的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
在上述实施方式中,可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块,可理解为滑动窗口进行循环移位。至于上述的第一个数据块和最后一个数据块分别是原始数据块还是交织数据块,取决于原始数据块和交织数据块的排列,本申请对此不做限定。
在上述实施方式中,可选地,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
结合第一方面,在第一方面的某些实施方式中,可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码, 获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有B个原始数据块和Q个交织数据块中所有的原始数据块和交织数据块。此时,M可理解为滑动窗口内能够包含的原始数据块和/或交织数据块的最大个数。
可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块时,可理解为滑动窗口进行循环移位。
在第一方面或第一方面任一种可能的实施方式中,可选地,T个待编码数据单元包括错误数据单元,该错误数据单元的数量为一个或多个。L个待编码数据单元组中的每个待编码数据单元组不包含该错误数据单元,或者,L个待编码数据单元组中的一个或多个待编码数据单元组包含该错误数据单元。当L个待编码数据单元组中的一个或多个待编码数据单元组包含该错误数据单元时,上述方法还包括生成并输出指示该错误数据单元的第一指示信息,该第一指示信息可以携带在头信息中。该可选的实施方法的执行主体可以为中继装置或转发装置,例如可以为中继网络设备、中继终端、转发网络设备或转发终端,也可以为中继网络设备、中继终端、转发网络设备或转发终端中的处理器、芯片或芯片系统。中继装置先接收待转发的数据单元,但由于无线信道的衰落特性,中继装置可能无法正确接收某些待转发的数据单元,这些无法被中继装置正确接收的待转发数据单元可以理解为上述的错误数据单元。通过上述方法,能够使中继装置在进行数据转发时对待转发的数据进行合理地重编码,从而能够在中继转发的场景下提高编码数据的接收可靠性并提高频谱效率。
当L个待编码数据单元组中的每个待编码数据单元组不包含该错误数据单元时,在对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,生成与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元时,不生成与该错误数据单元对应的编码数据单元。在该实施方法中,还可选地包括:生成并输出第二指示信息,该第二指示信息指示与该错误数据单元对应的编码数据单元是非完整的,该第二指示信息可以携带在头信息中,也可以携带在控制协议数据单元(protocol data unit,PDU)中,还可以携带在媒体接入控制(media access control,MAC)控制元素(control element,CE)中。该第二指示信息使得接收装置可以在缺失与错误数据单元对应的编码数据单元的情况下能够完成对接收数据的译码。不生成与该错误数据单元对应的编码数据单元,可以避免错误数据单元的传递或扩散,提高接收端解码的可靠性,还可降低传输错误数据单元的频谱资源的浪费。
当L个待编码数据单元组中的每个待编码数据单元组不包含该错误数据单元时,在对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,生成与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元时,还可以将错误数据单元置0,也可理解为错误数据单元不参与编码。在该实施方法中,还可选地包括:生成并输出第三指示信息,该第三指示信息指示该错误数据单元,该第三指示信息可以携带在头信息中,也可以携带在控制PDU中,还可以携带在MAC CE中。该第三指示信息使得接收装置可以在缺失错误数据单元的情况下能够完成对接收数据的译码。通过该实施方法,可以避免错误数据单元的传递或扩散,提高待编码数据单元的编码数据对抗信道衰落以及信道变化的能力,从而提高数据接收的可靠性并提高频谱效率。
当L个待编码数据单元组中的一个或多个待编码数据单元组包含该错误数据单元时,在 对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,生成与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元时,该错误数据单元参与编码。在该实施方法中,还生成并输出指示该错误数据单元的上述第一指示信息,该第一指示信息可以携带在头信息中,也可以携带在控制PDU中,还可以携带在MAC CE中。该第一指示信息使得接收装置可以在包含错误数据单元对应的编码数据单元的情况下能够完成对接收数据的译码。通过该实施方式,可以降低中继装置的实现复杂度,提高待编码数据单元的编码数据对抗信道衰落以及信道变化的能力,从而提高数据接收的可靠性并提高频谱效率。
第二方面,本申请实施例提供一种编码方法,该方法可以由终端或网络设备执行,也可以由终端或网络设备的部件(例如处理器、芯片、或芯片系统等)执行,包括:获得T个待编码数据单元,T为大于1的整数。对T个待编码数据单元O 1,O 2,…,O T进行编码获得K个编码数据单元A 1,A 2,…,A K,K大于或等于T,K个编码数据单元满足:
[A 1,A 2,…,A K]=[O 1,O 2,…,O T]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵中的斜对角线上存在GF(q)中的非零元素。可选地,上述斜对角线的数量为M,M为大于0且小于T的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。
上述方法利用包含子矩阵的编码矩阵对待编码数据单元进行编码,借助编码矩阵中子矩阵的斜对角线上存在GF(q)中非零元素的特性,能够降低编码数据的相关性,提高编码数据对抗信道衰落以及信道变化的能力,从而提高编码数据的接收可靠性并提高频谱效率。
结合第二方面,在第二方面的某些实施方式中,T个待编码数据单元包括N个原始数据单元X 1,X 2,…,X N,对该N个原始数据单元进行编码获得K个编码数据单元A 1,A 2,…,A K,K大于或等于N,K个编码数据单元满足:
[A 1,A 2,…,A K]=[X 1,X 2,…,X N]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵中的斜对角线上存在GF(q)中的非零元素。可选地,上述斜对角线的数量为M,M为大于0且小于N的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。R=N/K可理解为编码码率。上述N、K、R和M可统称为编码参数。
在上述实施方式中,一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000001
编码矩阵H(可记为H 1)是一个N*K维的矩阵,其中包含N*N维的子矩阵
Figure PCTCN2021092560-appb-000002
和N*(K-N)维的子矩阵
Figure PCTCN2021092560-appb-000003
其中,子矩阵
Figure PCTCN2021092560-appb-000004
的主对角线上以及平行于主对角线的M-1条斜对角线上存在GF(q)中的非零元素。通过该编码矩阵,能够降低至少N个原始数据单元的编码数据的相关性,提高原始数据单元的编码数据对抗信道衰落以及信道变化的能力,从而提高原始数据单元的编码数据的接收可靠性并提高频谱效率。
在上述实施方式中,另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000005
编码矩阵H(可记为H 2)是一个N*K维的矩阵,其中包含N*(N+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000006
和N*(K-N-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000007
其中,子矩阵
Figure PCTCN2021092560-appb-000008
的M条斜对角线上存在GF(q)中的非零元素。通过该编码矩阵,可以降低编解码复杂度,能够降低至少 N个原始数据单元的编码数据的相关性,提高原始数据单元的编码数据对抗信道衰落以及信道变化的能力,从而提高原始数据单元的编码数据的接收可靠性并提高频谱效率。
在上述实施方式中,另一种可能的编码矩阵H满足:
H=[I N H′]=H 3
其中,I N为N*N维的单位矩阵。矩阵H′为上述的H 1或H 2,或者,矩阵H′包含H 1中的一个或多个列向量,或者,矩阵H′包含H 2中的一个或多个列向量。通过该编码矩阵,可以降低编码数据单元的解码时延,并能够降低至少N个原始数据单元的编码数据的相关性,提高原始数据单元的编码数据对抗信道衰落以及信道变化的能力,从而提高原始数据单元的编码数据的接收可靠性并提高频谱效率。
在上述实施方式中,可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。这一可选的实施方式能够对两个或两个以上的原始数据块中包含的原始数据单元进行块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
在上述实施方式中,可选地,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、或编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)。如果是多跳系统,头信息中还可能包含发送端的标识信息。
结合第二方面,在第二方面的某些实施方式中,T个待编码数据单元包括N个原始数据单元X 1,X 2,…,X N和P个交织数据单元X′ 1,X′ 2,…,X′ P,对该N个原始数据单元和P个交织数据单元进行编码获得K个编码数据单元A 1,A 2,…,A K,K大于或等于N+P,K个编码数据单元满足:
[A 1,A 2,…,A K]=[X 1,X 2,…,X N,X′ 1,X′ 2,…,X′ P]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵中的斜对角线上存在GF(q)中的非零元素。可选地,上述斜对角线的数量为M,M为大于0且小于N+P的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。此时可以认为方法400中的T个待编码数据单元O 1,O 2,…,O T为上述N个原始数据单元X 1,X 2,…,X N和P个交织数据单元X′ 1,X′ 2,…,X′ P。可以理解,本申请并不限定上述N个原始数据单元和P个交织数据单元在[X 1,X 2,…,X N,X′ 1,X′ 2,…,X′ P]中的排列顺序,[X 1,X 2,…,X N,X′ 1,X′ 2,…,X′ P]表示包含上述N个原始数据单元和P个交织数据单元,但这N+P个数据单元的排列顺序可以是任意的,本申请对此不做限定。R=N/K可理解为编码码率。上述N、K、R和M可统称为编码参数。
在上述实施方式中,一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000009
编码矩阵H(可记为H 4)是一个(N+P)*K维的矩阵,其中包含(N+P)*(N+P)维的子矩阵
Figure PCTCN2021092560-appb-000010
和(N+P)*(K-N-P)维的子矩阵
Figure PCTCN2021092560-appb-000011
其中,子矩阵
Figure PCTCN2021092560-appb-000012
的主对角线上以及平行于主对角线的M-1条斜对角线上存在GF(q)中的非零元素。
在上述实施方式中,另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000013
编码矩阵H(可记为H 5)是一个(N+P)*K维的矩阵,其中包含(N+P)*(N+P+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000014
和(N+P)*(K-N-P-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000015
其中,子矩阵
Figure PCTCN2021092560-appb-000016
的M条斜对角线上存在GF(q)中的非零元素。
在上述实施方式中,另一种可能的编码矩阵H满足:
H=[I N+P H′]=H 6
其中,I N+P为(N+P)*(N+P)维的单位矩阵。矩阵H′为上述的H 4或H 5,或者,矩阵H′包含H 4中的一个或多个列向量,或者,矩阵H′包含H 5中的一个或多个列向量。
在上述实施方式中,可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。这一可选的实施方式能够对两个或两个以上的原始数据块中包含的原始数据单元进行块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
在上述实施方式中,可选地,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
第三方面,本申请实施例提供一种编码方法,该方法可以由终端或网络设备执行,也可以由终端或网络设备的部件(例如处理器、芯片、或芯片系统等)执行,包括:获得T个待编码数据单元,T为大于1的整数。对T个待编码数据单元O 1,O 2,…,O T进行编码,获得D个包含编码数据单元的编码数据块C 1,C 2,…,C D,D大于或等于T,D个编码数据块满足:
[C 1,C 2,…,C D]=[O 1,O 2,…,O T]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵。可选地,上述斜对角线的数量为M,M为大于0且小于T的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。
上述方法利用包含子矩阵的编码矩阵对待编码数据单元进行编码,借助编码矩阵中子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵的特性,能够降低编码数据的相关性,提高编码数据对抗信道衰落以及信道变化的能力,从而提高编码数据的接收可靠性并提高频谱效率。
结合第三方面,在第三方面的某些实施方式中,T个待编码数据单元包括B>1个包含原始数据单元的原始数据块BL 1,…,BL B,或者,T个待编码数据单元包括B>1个包含原始数据单元和交织数据单元的原始数据块BL 1,…,BL B。对该B个原始数据块进行编码获得D个包含编码数据单元的编码数据块C 1,C 2,…,C D,D大于或等于B,D个编码数据块满足:
[C 1,C 2,…,C D]=[BL 1,…,BL B]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵。可选地,上述斜对角线的数量为M,M为大于0且小于B的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。上述B、D和M可统称为编码参数。当原始数据块中包含交织数据单元时可以借助交织进一步提高编码数据对抗信道衰落以及信道变化 的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
在上述实施方式中,一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000017
编码矩阵H(可记为H 7)是一个B*D维的矩阵,其中包含B*B维的子矩阵
Figure PCTCN2021092560-appb-000018
和B*(D-B)维的子矩阵
Figure PCTCN2021092560-appb-000019
本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000020
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000021
中的元素。子矩阵
Figure PCTCN2021092560-appb-000022
的主对角线上以及平行于主对角线的M-1条斜对角线上存在包含GF(q)中元素的非零矩阵。
在上述实施方式中,另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000023
编码矩阵H(可记为H 8)是一个B*D维的矩阵,其中包含B*(B+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000024
和B*(D-B-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000025
其中,子矩阵
Figure PCTCN2021092560-appb-000026
的M条斜对角线上存在包含GF(q)中元素的非零矩阵。
在上述实施方式中,另一种可能的编码矩阵H满足:
H=[I B H′]=H 9
其中,B*B维的矩阵I B包含B*B个N b×N b维的单位矩阵,N b表示原始数据块b中包含的原始数据单元的个数,1≤b≤B,不同的原始数据块中包含的原始数据单元的个数可以相同也可以不同。矩阵H′为上述的H 7或H 8,或者,矩阵H′包含H 7中的一个或多个列向量,或者,矩阵H′包含H 8中的一个或多个列向量。
在上述实施方式中,可选地,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
结合第三方面,在第三方面的某些实施方式中,T个待编码数据单元包括B个原始数据块BL 1,…,BL B和Q个交织数据块BL′ 1,…,BL′ Q。其中,B个原始数据块中的原始数据块b包含N b个原始数据单元,Q个交织数据块中的交织数据块q′包含N q′个交织数据单元。对该B个原始数据块和Q个交织数据块进行编码获得D个包含编码数据单元的编码数据块C 1,C 2,…,C D,D大于或等于B+Q,D个编码数据块满足:
[C 1,C 2,…,C D]=[BL 1,…,BL B,BL′ 1,…,BL′ Q]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵。可选地,上述斜对角线的数量为M,M为大于0且小于B+Q的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。可以理解,本申请并不限定上述B个原始数据块和Q个交织数据块在[BL 1,…,BL B,BL′ 1,…,BL′ Q]中的排列顺序,[BL 1,…,BL B,BL′ 1,…,BL′ Q]表示包含上述B个原始数据块和Q个交织数据块,但这B+Q个数据块的排列顺序可以是任意的,本申请对此不做限定。上述B、Q、N b、N q′、D和M可统称为编码参数。
在上述实施方式中,一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000027
编码矩阵H(可记为H 10)是一个(B+Q)*D维的矩阵,其中包含(B+Q)*(B+Q)维的子矩阵
Figure PCTCN2021092560-appb-000028
和(B+Q)*(D-B-Q)维的子矩阵
Figure PCTCN2021092560-appb-000029
其中,子矩阵
Figure PCTCN2021092560-appb-000030
的主对角线上以及平行于主对角线的M-1条斜对角线上存在包含GF(q)中元素的非零矩阵。
在上述实施方式中,另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000031
编码矩阵H(可记为H 11)是一个(B+Q)*D维的矩阵,其中包含(B+Q)*(B+Q+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000032
和(B+Q)*(D-B-Q-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000033
其中,子矩阵
Figure PCTCN2021092560-appb-000034
的M条斜对角线上存在包含GF(q)中元素的非零矩阵。
在上述实施方式中,另一种可能的编码矩阵H满足:
H=[I B+Q H′]=H 12
其中,(B+Q)*(B+Q)维的矩阵I B+Q包含(B+Q)*(B+Q)个(N b+N q′)×(N b+N q′)维的单位矩阵。矩阵H′为上述的H 10或H 11,或者,矩阵H′包含H 10中的一个或多个列向量,或者,矩阵H′包含H 11中的一个或多个列向量。
在上述实施方式中,可选地,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
第四方面,本申请实施例提供一种装置,可以实现上述第一方面、第二方面、第三方面、第一方面任一种可能的实施方式、第二方面任一种可能的实施方式、或第三方面任一种可能的实施方式中的方法。该装置包括用于执行上述方法的相应的单元或部件。该装置包括的单元可以通过软件和/或硬件方式实现。该装置例如可以为终端、网络设备、服务器或集中控制器,或者为可支持终端、网络设备、服务器或集中控制器实现上述方法的芯片、芯片系统、或处理器等。
第五方面,本申请实施例提供一种装置,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该装置实现上述第一方面、第二方面、第三方面、第一方面任一种可能的实施方式、第二方面任一种可能的实施方式、或第三方面任一种可能的实施方式中的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行上述第一方面、第二方面、第三方面、第一方面任一种可能的实施方式、第二方面任一种可能的实施方式、或第三方面任一种可能的实施方式中的方法。
第七方面,本申请实施例提供一种计算机程序产品,其包括计算机程序代码,所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面、第二方面、第三方面、第一方面任一种可能的实施方式、第二方面任一种可能的实施方式、或第三方面任一种可能的实施方式中的方法。
第八方面,本申请实施例提供一种芯片,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片实现上 述第一方面、第二方面、第三方面、第一方面任一种可能的实施方式、第二方面任一种可能的实施方式、或第三方面任一种可能的实施方式中的方法。
附图说明
图1为本申请提供的实施例应用的通信系统的示意图;
图2示出了通信系统的一种架构举例示意图;
图3示出了本申请提供的一种编码示意图;
图4示出了本申请提供的编码方法的流程示意图;
图5A-图5C,图6A-图6C,图7A-图7C,图8A-图8C示出了本申请提供的另几种编码示意图;
图9为本申请实施例提供的一种通信装置的结构示意图;
图10为本申请实施例提供的一种终端的结构示意图;
图11为本申请实施例提供的另一种通信装置的示意图。
具体实施方式
本申请实施例提供的方法及装置可以应用于通信系统中。如图1示出了一种通信系统结构示意图。该通信系统100中包括一个或多个网络设备(图中示出网络设备110和网络设备120),以及与该一个或多个网络设备通信的一个或多个终端。图1中所示终端114和终端118与网络设备110通信,所示终端124和终端128与网络设备120通信。可以理解的是,网络设备和终端也可以被称为通信设备。
本申请实施例提供的方法及装置可用于各种通信系统,例如第四代(4th generation,4G)通信系统,4.5G通信系统,5G通信系统,多种通信系统融合的系统,或者未来演进的通信系统(比如5.5G通信系统或6G通信系统)。例如长期演进(long term evolution,LTE)系统,新空口(new radio,NR)系统,无线保真(wireless-fidelity,WiFi)系统,以及第三代合作伙伴计划(3rd generation partnership project,3GPP)相关的通信系统等,以及其他此类通信系统。
本申请实施例提供的方法及装置可应用于多种通信场景,例如网络设备和终端之间的传输场景,终端之间的传输场景,网络设备和终端之间通过中继传输的场景、多个网络设备和终端之间的双连接(dual connectivity,DC)或多连接、以及多跳传输场景等。
图2示出了通信系统的一种可能的架构举例示意图,如图2所示无线接入网(radio access network,RAN)中的网络设备是集中单元(centralized unit,CU)和分布单元(distributed unit,DU)分离架构的基站(如gNodeB或gNB)。RAN可以与核心网相连(例如可以是LTE的核心网,也可以是5G的核心网等)。CU和DU可以理解为是对基站从逻辑功能角度的划分。CU和DU在物理上可以是分离的也可以部署在一起。多个DU可以共用一个CU。一个DU也可以连接多个CU(图中未示出)。CU和DU之间可以通过接口相连,例如可以是F1接口。CU和DU可以根据无线网络的协议层划分。例如分组数据汇聚层协议(packet data convergence protocol,PDCP)层及无线资源控制(radio resource control,RRC)层的功能设置在CU,而无线链路控制(radio link control,RLC),媒体接入控制(media access control,MAC)层,物理(physical)层等的功能设置在DU。可以理解对CU和DU处理功能按照这种协议层的划分仅仅是一种举例,也可以按照其他的方式进行划分。例如可以将CU或者DU划分为具有更多协议层的功能。例如,CU 或DU还可以划分为具有协议层的部分处理功能。在一设计中,将RLC层的部分功能和RLC层以上的协议层的功能设置在CU,将RLC层的剩余功能和RLC层以下的协议层的功能设置在DU。在另一种设计中,还可以按照业务类型或者其他系统需求对CU或者DU的功能进行划分。例如按时延划分,将处理时间需要满足时延要求的功能设置在DU,不需要满足该时延要求的功能设置在CU。图2所示的网络架构可以应用于5G通信系统,其也可以与LTE系统共享一个或多个部件或资源。在另一种设计中,CU也可以具有核心网的一个或多个功能。一个或者多个CU可以集中设置,也分离设置。例如CU可以设置在网络侧方便集中管理。DU可以具有多个射频功能,也可以将射频功能拉远设置。
CU的功能可以由一个实体来实现,也可以进一步将控制面(CP)和用户面(UP)分离,即CU的控制面(CU-CP)和用户面(CU-UP)可以由不同的功能实体来实现,所述CU-CP和CU-UP可以与DU相耦合,共同完成基站的功能。
可以理解的是,本申请中提供的实施例也适用于CU和DU不分离的架构。
本申请中,网络设备可以是任意一种具有无线收发功能的设备。包括但不限于:LTE中的演进型基站(NodeB或eNB或e-NodeB,evolutional Node B),NR中的基站(gNodeB或gNB)或收发点(transmission receiving point/transmission reception point,TRP),3GPP后续演进的基站,WiFi系统中的接入节点,无线中继节点,无线回传节点等。基站可以是:宏基站,微基站,微微基站,小站,中继站,或,气球站等。多个基站可以支持上述提及的同一种技术的网络,也可以支持上述提及的不同技术的网络。基站可以包含一个或多个共站或非共站的TRP。网络设备还可以是云无线接入网络(cloud radio access network,CRAN)场景下的无线控制器、CU,和/或,DU。网络设备还可以是服务器,可穿戴设备,机器通信设备、或车载设备等。以下以网络设备为基站为例进行说明。所述多个网络设备可以为同一类型的基站,也可以为不同类型的基站。基站可以与终端设备进行通信,也可以通过中继站与终端设备进行通信。终端设备可以与不同技术的多个基站进行通信,例如,终端设备可以与支持LTE网络的基站通信,也可以与支持5G网络的基站通信,还可以支持与LTE网络的基站以及5G网络的基站的双连接。
终端是一种具有无线收发功能的设备,可以部署在陆地上,包括室内或室外、手持、穿戴或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。所述终端可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的终端、车载终端设备、无人驾驶(self driving)中的终端、辅助驾驶中的终端、远程医疗(remote medical)中的终端、智能电网(smart grid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smart city)中的终端、智慧家庭(smart home)中的终端等等。本申请的实施例对应用场景不做限定。终端有时也可以称为终端设备、用户设备(user equipment,UE)、接入终端设备、车载终端、工业控制终端、UE单元、UE站、移动站、移动台、远方站、远程终端设备、移动设备、UE终端设备、无线通信设备、机器终端、UE代理或UE装置等。终端可以是固定的,也可以是移动的。
作为示例而非限定,在本申请中,终端可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软 件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
在本申请中,终端可以是物联网(internet of things,IoT)系统中的终端,IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。本申请中的终端可以是机器类型通信(machine type communication,MTC)中的终端。本申请的终端可以是作为一个或多个部件或者单元而内置于车辆的车载模块、车载模组、车载部件、车载芯片或者车载单元,车辆通过内置的所述车载模块、车载模组、车载部件、车载芯片或者车载单元可以实施本申请的方法。因此,本申请实施例可以应用于车联网,例如车辆外联(vehicle to everything,V2X)、车间通信长期演进技术(long term evolution vehicle,LTE-V)、车到车(vehicle to vehicle,V2V)等。
为了有效降低在通信过程中频繁的反馈开销及性能损失,网络编码成为一种重要的技术方向,即通过对原始数据单元进行编码并增加冗余信息来对抗无线通信中的丢包或差错等问题,以提高数据传输的可靠性。
网络编码包括诸多类型,例如分组网络编码、卷积网络编码和随机线性网络编码(random linear network coding,RLNC)等。这些编码技术通过对原始数据单元进行编码操作,得到相应的编码数据单元。例如以图3为例,通过对N个原始数据单元进行编码,得到K个编码数据单元,编码的码率可近似表征为R=N/K,由于K一般大于或等于N,因此R一般大于0且小于或等于1。本申请中的数据单元也可以被称为数据包、数据分段或数据块。
以RLNC为例,结合图3,N个原始数据单元分别表示为X 1,X 2,…,X N,该N个原始数据单元可以包含在一个原始数据块中。本申请中数据块(block)也可被称为数据组(group)、数据代(generation)或数据分批(batch)。本申请中原始数据块也可被称为待编码数据块。采用RLNC对该N个原始数据单元进行编码时,可以将该N个原始数据单元与K个编码向量相乘,得到K个编码数据单元(分别表示为Y 1,Y 2,…,Y K)。例如,K个编码向量可分别表示为[g 1,1,g 1,2,…,g 1,N],[g 2,1,g 2,2,…,g 2,N],…,[g K,1,g K,2,…,g K,N],其中每个编码向量包含N个编码系数,第k个编码向量中的第n个编码系数表示为g k,n。编码向量中的编码系数可以是从有限域或伽罗华域(galois field,GF)中随机选取的,其中GF是一个包含有限个元素的域,用GF(q)可以表示一个包含q个元素的GF。将N个原始数据单元X 1,X 2,…,X N与K个编码向量相乘得到K个编码数据单元Y 1,Y 2,…,Y K可满足:
Y 1=g 1,1*X 1+g 1,2*X 2+…+g 1,N*X N
Y 2=g 2,1*X 1+g 2,2*X 2+…+g 2,N*X N
Y K=g K,1*X 1+g K,2*X 2+…+g K,N*X N
第k个编码数据单元Y k=g k,1*X 1+g k,2*X 2+…+g k,N*X N可以在头部携带用于指示编码向量[g k,1,g k,2,…,g k,N]的信息,以便于接收端能够根据该编码向量对接收到的数据进行解码。可以理解的是,上述K个编码向量可以包含在一个编码矩阵中,该编码矩阵满足:
Figure PCTCN2021092560-appb-000035
上述将N个原始数据单元与K个编码向量相乘得到K个编码数据单元,也可以理解为将N个原始数据单元与编码矩阵相乘得到K个编码数据单元。可以理解,编码矩阵也可被称为生成矩阵、卷积生成矩阵或系数矩阵。本申请中的向量为方便表述,均写为行向量的形式,但其也可以表示为列向量的形式,本申请对此不做限定。
在网络编码技术中,发送端对多个原始数据单元进行编码得到编码数据后,对编码数据进行处理并发送。然而,在网络编码技术中,可能会产生线性相关的编码数据,从而影响编码数据的接收可靠性。因此,如何能够降低编码数据的线性相关性并提高编码数据的接收可靠性,成为编码技术中亟需解决的问题。
本申请中的实施例为网络编码提供了一种编码方法和装置,在提供的方法中通过将多个待编码数据单元分成多个待编码数据单元组分别进行编码,并且每个待编码数据单元组中包含的待编码数据单元的数量小于所有待编码数据单元的数量。通过该方法能够降低编码数据的相关性,提高编码数据对抗信道衰落以及信道变化的能力,从而提高编码数据的接收可靠性。
下面以具体实施例结合附图对本申请的技术方案进行详细说明。下述实施例和实施方式可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。可以理解,本申请中所解释的功能可以通过独立硬件电路、使用结合处理器/微处理器或通用计算机而运行的软件、使用专用集成电路,和/或使用一个或多个数字信号处理器来实现。当本申请描述为方法时,其还可以在计算机处理器和/或被耦合到处理器的存储器中实现。
为易于理解本申请中的实施例,首先对本申请所涉及的一些概念或者术语作简要说明。
1、伽罗华域(galois field,GF)。GF是一个包含有限个元素的域,用GF(q)可以表示一个包含q个元素的GF,其中q为正整数。例如GF(2)包含0和1两个元素(也可理解为GF(2)中的元素能够用二进制表示),GF(4)包含0、1、2和3四个元素,GF(q)包含0、1、…、q-1这q个元素。
2、GF中的运算。本申请中若编码矩阵、编码向量或编码核中包含的元素为GF中的元素,则编码涉及的运算可以理解为GF中的运算。
●GF中的乘法。GF中的元素可以通过GF上的本原多项式P(x)生成,GF上的多项式乘法可通过将GF中的元素对应为多项式的形式,将GF域上的乘法运算对应为多项式乘法再对本原多项式P(x)取模。例如当q=4时,GF(4)的本原多项式为P(x)=x 2+x+1,2比特数据(如‘10’,对应的多项式形式为x),与2比特数据(如‘11’,对应的多项式形式为x+1)在GF(4)上相乘,满足(x*(x+1))mod P(x)=(x 2+x)mod(x 2+x+1)=1(mod表示取模),对应的二进制表示为“01”。再例如当q=4时,4比特数据(如‘1011’)与2比特数据(如‘11’,对应的多项式形式为x+1)在GF(4)上相乘,可将4比特数据‘1011’中前两比特‘10’(对应的多项式形式为x)和后两比特‘11’(对应的多项式形式为x+1)分别与2比特数据‘11’(对应的多项式形式为x+1)在GF(4)上相乘,再将分别获得的结果串接得到‘1011’与‘11’在GF(4)上相乘的结果,即:
■(x*(x+1))mod P(x)=(x 2+x)mod(x 2+x+1)=1,对应的二进制表示为‘01’;
■((x+1)*(x+1))mod P(x)=(x 2+2x+1)mod(x 2+x+1)=x,对应的二进制表示为‘10’;
■将‘01’和‘10’串接得到‘1011’与‘11’在GF(4)上相乘的结果对应的二进制表示为‘0110’。
●GF中的加法。GF上的多项式加法可通过将GF中的元素对应为多项式的形式将GF域上的加法运算对应为多项式相加(例如同类项系数的异或)。比如2比特数据(如‘10’,对应的多项式形式为x),与2比特数据(如‘11’,对应的多项式形式为x+1)在GF上异或相加,满足
Figure PCTCN2021092560-appb-000036
(
Figure PCTCN2021092560-appb-000037
表示异或相加),对应的二进制表示为“01”。
图4为本申请实施例提供的一种通信方法400的流程示意图。该方法的执行主体可以是终端,也可以是支持终端实现该方法的芯片、芯片系统、或处理器等。该方法的执行主体还可以是网络设备,也可以是支持网络设备实现该方法的芯片、芯片系统、或处理器等。如图4所示,该实施例的方法400可包括410部分、420部分和430部分:
410部分:获得T个待编码数据单元,T为大于1的整数。
420部分:对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,其中,L个待编码数据单元组包括上述全部的T个待编码数据单元,并且L个待编码数据单元组中的每个待编码数据单元组最多包含上述T个待编码数据单元中的M个待编码数据单元,L为大于或等于T的整数,M为大于0且小于T的整数。可选地,L满足T≤L≤T+M-1。可以理解,本申请并不限定具体的编码类型。例如编码类型可以是分组编码、卷积编码或随机线性编码,编码类型还可以是网络编码(比如分组网络编码、卷积网络编码或随机线性网络编码)。
可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元,或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元。
可以理解,对待编码数据单元组进行编码可以有多种不同的实现方式。例如,可以使用编码矩阵对待编码数据单元组中的待编码数据数据单元进行编码,也可以使用编码核对待编码数据单元组中的待编码数据数据单元进行编码。其中编码核可被理解为一种编码向量,编码核也可被称为卷积核、编码核向量、系数矢量或系数向量等。可选地,编码核包含在编码矩阵中,例如编码核可以包含编码矩阵一行或一列中的所有非0元素。上述M可理解为编码对应的卷积深度、编码约束度、约束长度、卷积约束长度、记忆深度、编码深度、编码核大小、编码核长度或者编码核深度。上述T、L和M可统称为编码参数。
可选地,410部分和420部分中涉及的编码参数T、L或M中的一个或多个可以是预定义的,也可以是由网络设备配置的。
430部分:输出编码数据单元。当方法400的执行主体为终端时,输出编码数据单元可理解为终端向网络设备或其他终端发送编码数据单元。当方法400的执行主体为网络设备时,输出编码数据单元可理解为网络设备向终端或其他网络设备发送编码数据单元。发送编码数据单元也可理解为发送被处理后的编码数据单元,该处理例如包括调制、层映射、天线端口映射、预编码或资源映射中的一种或多种。当方法400的执行主体为终端内或网络设备内的芯片、芯片系统、或处理器时,输出编码数据单元可理解为通过通信接口在终端内或网络设备内将编码数据单元输出给后续处理该编码数据单元的模块。
可以理解,本申请中的输出可以是指空中接口上信号或数据的发送,也可以指在装置内通过通信接口将信号或数据输出给该装置内的其他模块。
方法400中将待编码数据单元分成多个待编码数据单元组分别进行编码,并且每个 待编码数据单元组中包含的待编码数据单元的数量小于所有待编码数据单元的数量。该方法通过对待编码数据单元进行有选择性地编码,能够降低编码数据的相关性,提高编码数据对抗信道衰落以及信道变化的能力,从而提高编码数据的接收可靠性并提高频谱效率。
方法400中的420部分也可以由另一种实施方式替代。在这种实施方式中,对T个待编码数据单元O 1,O 2,…,O T进行编码获得K个编码数据单元A 1,A 2,…,A K,K大于或等于T,K个编码数据单元满足:
[A 1,A 2,…,A K]=[O 1,O 2,…,O T]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵中的斜对角线上存在GF(q)中的非零元素。可选地,上述斜对角线的数量为M,M为大于0且小于T的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。后文为表述方便,将该实施方式简称为替代实施方式420-A。
方法400中的420部分还可以由另一种实施方式替代。在这种实施方式中,对T个待编码数据单元O 1,O 2,…,O T进行编码,获得D个包含编码数据单元的编码数据块C 1,C 2,…,C D,D大于或等于T,D个编码数据块满足:
[C 1,C 2,…,C D]=[O 1,O 2,…,O T]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵。可选地,上述斜对角线的数量为M,M为大于0且小于T的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。后文为表述方便,将该实施方式简称为替代实施方式420-B。
在方法400的一种可能的实施方式(简称为实施方式1-1)中,T个待编码数据单元包括N个原始数据单元,L个待编码数据单元组中的每个待编码数据单元组最多包含N个原始数据单元中的M个原始数据单元,N为大于1的整数,M为大于0且小于N的整数。该实施方式可以理解为在方法400中T与N相等,并且待编码数据单元为原始数据单元。上述N、L和M可统称为编码参数。
实施方式1-1下,方法400的410部分可实现为:获得N个原始数据单元。例如,通过对来自协议层的协议数据单元(protocol data unit,PDU)进行划分获得N个原始数据单元,该协议层可以是通信协议中的RLC层、PDCP层、RRC层、回传适配协议(backhaul adaptation protocol,BAP)层、MAC层或应用层等。又例如,可以接收来自其他装置(比如其他网络设备或终端)的N个原始数据单元。
在实施方式1-1中,可选地,待编码数据单元组的数量L满足N≤L≤N+M-1。可选地,在方法400的420部分中,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,具体实现为:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。
在实施方式1-1中,可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元。
上述实施方式1-1可以理解为将N个原始数据单元划分为L个待编码数据单元组,并对 这L个待编码数据单元组分别进行编码,其中L满足N≤L≤N+M-1。通过该实施方式1-1,能够对原始数据单元进行有选择性地编码,从而降低原始数据单元的编码数据的相关性,提高原始数据单元的编码数据对抗信道衰落以及信道变化的能力,从而提高原始数据单元的编码数据的接收可靠性并提高频谱效率。
可选地,在实施方式1-1中,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。这一可选的实施方式能够对两个或两个以上的原始数据块中包含的原始数据单元进行块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
可选地,在实施方式1-1中,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、或编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在实施方式1-1的一种可能的实施方法中,可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有N个原始数据单元中所有的原始数据单元。此时,M可理解为滑动窗口内能够包含的原始数据单元的最大个数。
可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元时,可理解为滑动窗口进行循环移位。
图5A以N=4个原始数据单元,每个待编码数据单元组最多包含N=4个原始数据单元中的M=2个原始数据单元,存在L=N=4个待编码数据单元组,以及滑动窗口不进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式1-1的一种具体实现。
图5A中,N=4个原始数据单元分别表示为X 1,X 2,X 3,X 4,虚线框表示滑动窗口,G 1,G 2,G 3,G 4分别表示L=N=4个待编码数据单元组,其中第一个待编码数据单元组G 1包括原始数据单元X 1,第二个待编码数据单元组G 2包括原始数据单元X 1和X 2,第三个待编码数据单元组G 3包括原始数据单元X 2和X 3,第四个待编码数据单元组G 4包括原始数据单元X 3和X 4。图5A中的4个待编码数据单元组包含原始数据单元也可以理解为滑动窗口中包含的原始数据单元。图5A中示意的滑动窗口最多能包含M=2个原始数据单元,滑动窗口从只包含X 1的位置开始,以原始数据单元为粒度向右滑动,从而获得G 1,G 2,G 3,G 4四个待编码数据单元组。
图5A中,对四个待编码数据单元组G 1,G 2,G 3,G 4分别进行编码,获得与每个待编码数据单元组一一对应的一个编码数据单元。具体地,对G 1中的原始数据单元X 1进行编码获得与G 1对应的一个编码数据单元A 1,对G 2中的原始数据单元X 1和X 2进行编码获得与G 2对应的一个编码数据单元A 2,对G 3中的原始数据单元X 2和X 3进行编码获得与G 3对应的一个编码数据单元A 3,对G 4中的原始数据单元X 3和X 4进行编码获得与G 4对应的一个编码数据单元A 4
图5A示例下更一般的实现方式可描述为,N个原始数据单元表示为X 1,…X n,…,X N,(1≤ n≤N),L=N个待编码数据单元组表示为G 1,…,G n,…,G N,(1≤n≤N),每个待编码数据单元组最多包含N个原始数据单元中的M个原始数据单元。第一个待编码数据单元组G 1包含原始数据单元X 1,…,第n个待编码数据单元组G n包含原始数据单元X n-M+1,…,X n-1,X n,(n-M+1>0),…,第N个待编码数据单元组G N包含原始数据单元X N-M+1,…,X N-1,X N。对L=N个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与L=N个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。
例如,可采用编码核[h 1,h 2,…,h M]对待编码数据单元组进行编码,编码核[h 1,h 2,…,h M]中的元素可以为GF(q)中的元素。根据编码核对第一个待编码数据单元组G 1进行编码获得编码数据单元A 1=X 1×h 1,…,根据编码核对第n个待编码数据单元组G n进行编码获得编码数据单元A n=X n×h 1+X n-1×h 2+…+X n-M+1×h M,…,根据编码核对第N个待编码数据单元组G N进行编码获得编码数据单元A N=X N×h 1+X N-1×h 2+…+X N-M+1×h M
图5B以N=4个原始数据单元,每个待编码数据单元组最多包含N=4个原始数据单元中的M=2个原始数据单元,存在L=N+M-1=5个待编码数据单元组,以及滑动窗口不进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式1-1的另一种具体实现。
图5B与图5A相比不同的是,滑动窗口多滑动一次,增加了第五个待编码数据单元组G 5,G 5包括原始数据单元X 4
图5B中,对五个待编码数据单元组G 1,G 2,G 3,G 4,G 5分别进行编码,获得与每个待编码数据单元组一一对应的一个编码数据单元。具体地,对G 1中的原始数据单元X 1进行编码获得与G 1对应的一个编码数据单元A 1,对G 2中的原始数据单元X 1和X 2进行编码获得与G 2对应的一个编码数据单元A 2,对G 3中的原始数据单元X 2和X 3进行编码获得与G 3对应的一个编码数据单元A 3,对G 4中的原始数据单元X 3和X 4进行编码获得与G 4对应的一个编码数据单元A 4,对G 5中的原始数据单元X 4进行编码获得与G 5对应的一个编码数据单元A 5
图5B示例下更一般的实现方式可描述为,N个原始数据单元表示为X 1,…X n,…,X N,(1≤n≤N),L=N+M-1个待编码数据单元组表示为G 1,…,G n,…,G N,G N+1,…,G N+M-1,(1≤n≤N+M-1),每个待编码数据单元组最多包含N个原始数据单元中的M个原始数据单元。第一个待编码数据单元组G 1包含原始数据单元X 1,…,第n个待编码数据单元组G n包含原始数据单元X n-M+1,…,X n-1,X n,(n-M+1>0),…,第N个待编码数据单元组G N包含原始数据单元X N-M+1,…,X N-1,X N,第N+1个待编码数据单元组G N+1包含原始数据单元X N-M+2,…,X N-1,X N,…,第N+M-1个待编码数据单元组G N+M-1包含原始数据单元X N。对L=N+M-1个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与L=N+M-1个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。
例如,可采用编码核[h 1,h 2,…,h M]对待编码数据单元组进行编码,编码核[h 1,h 2,…,h M]中的元素可以为GF(q)中的元素。根据编码核对第一个待编码数据单元组G 1进行编码获得编码数据单元A 1=X 1×h 1,…,根据编码核对第n个待编码数据单元组G n进行编码获得编码数据单元A n=X n×h 1+X n-1×h 2+…+X n-M+1×h M,…,根据编码核对第N个待编码数据单元组G N进行编码获得编码数据单元A N=X N×h 1+X N-1×h 2+…+X N-M+1×h M,…,根据编码核对第N+1个待编码数据单元组G N+1进行编码获得编码数据单元A N+1=X N×h 2+X N-1×h 3+…+X N-M+2×h M,…,根据编码核对第N+M-1个待编码数据单元组G N+M-1进行编码获得编码数据单元A N+M-1=X N×h M
图5C以N=4个原始数据单元,每个待编码数据单元组最多包含N=4个原始数据单元中的M=2个原始数据单元,存在L=N+M-1=5个待编码数据单元组,以及滑动窗口进行循环移 位为例,示例性说明以滑动窗口的方式实现上述实施方式1-1的另一种具体实现。
图5C与图5B相比不同的是,第五个待编码数据单元组G 5包括原始数据单元X 4和X 1,这可以看成滑动窗口在移到第五个待编码数据单元组G 5的位置时进行了循环移位,即第一个原始数据单元X 1循环移入第五个待编码数据单元组G 5
图5C中,对五个待编码数据单元组G 1,G 2,G 3,G 4,G 5分别进行编码,获得与每个待编码数据单元组一一对应的一个编码数据单元。具体地,对G 1中的原始数据单元X 1进行编码获得与G 1对应的一个编码数据单元A 1,对G 2中的原始数据单元X 1和X 2进行编码获得与G 2对应的一个编码数据单元A 2,对G 3中的原始数据单元X 2和X 3进行编码获得与G 3对应的一个编码数据单元A 3,对G 4中的原始数据单元X 3和X 4进行编码获得与G 4对应的一个编码数据单元A 4,对G 5中的原始数据单元X 4和X 1进行编码获得与G 5对应的一个编码数据单元A 5
图5C示例下更一般的实现方式可描述为,N个原始数据单元表示为X 1,…X n,…,X N,(1≤n≤N),L=N+M-1个待编码数据单元组表示为G 1,…,G n,…,G N,G N+1,…,G N+M-1,(1≤n≤N+M-1),每个待编码数据单元组最多包含N个原始数据单元中的M个原始数据单元。第一个待编码数据单元组G 1包含原始数据单元X 1,…,第n个待编码数据单元组G n包含原始数据单元X n-M+1,…,X n-1,X n,(n-M+1>0),…,第N个待编码数据单元组G N包含原始数据单元X N-M+1,…,X N-1,X N,第N+1个待编码数据单元组G N+1包含原始数据单元X N-M+2,…,X N-1,X N,X 1,…,第N+M-1个待编码数据单元组G N+M-1包含原始数据单元X N,X 1,…,X M-2,X M-1。对L=N+M-1个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与L=N+M-1个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。
例如,可采用编码核[h 1,h 2,…,h M]对待编码数据单元组进行编码,编码核[h 1,h 2,…,h M]中的元素可以为GF(q)中的元素。根据编码核对第一个待编码数据单元组G 1进行编码获得编码数据单元A 1=X 1×h 1,…,根据编码核对第n个待编码数据单元组G n进行编码获得编码数据单元A n=X n×h 1+X n-1×h 2+…+X n-M+1×h M,…,根据编码核对第N个待编码数据单元组G N进行编码获得编码数据单元A N=X N×h 1+X N-1×h 2+…+X N-M+1×h M,…,根据编码核对第N+1个待编码数据单元组G N+1进行编码获得编码数据单元A N+1=X 1×h 1+X N×h 2+…+X N-M+2×h M,…,根据编码核对第N+M-1个待编码数据单元组G N+M-1进行编码获得编码数据单元A N+M-1=X N×h M+…+X M-2×h 2+X M-1×h 1
当420部分采用替代实施方式420-A时,在方法400的另一种可能的实施方式(简称为实施方式1-2)中,T个待编码数据单元包括N个原始数据单元X 1,X 2,…,X N,对该N个原始数据单元进行编码获得K个编码数据单元A 1,A 2,…,A K,K大于或等于N,K个编码数据单元满足:
[A 1,A 2,…,A K]=[X 1,X 2,…,X N]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵中的斜对角线上存在GF(q)中的非零元素。可选地,上述斜对角线的数量为M,M为大于0且小于N的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。此时可以认为方法400中的T个待编码数据单元O 1,O 2,…,O T为上述N个原始数据单元X 1,X 2,…,X N。R=N/K可理解为编码码率。上述N、K、R和M可统称为编码参数。
实施方式1-2下,方法400的410部分可能的实现方式可参考实施方式1-1中的描述,此处不再赘述。
实施方式1-2中,一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000038
编码矩阵H(可记为H 1)是一个N*K维的矩阵,其中包含N*N维的子矩阵
Figure PCTCN2021092560-appb-000039
和N*(K-N)维的子矩阵
Figure PCTCN2021092560-appb-000040
其中,子矩阵
Figure PCTCN2021092560-appb-000041
的主对角线上以及平行于主对角线的M-1条斜对角线上存在GF(q)中的非零元素,例如,子矩阵
Figure PCTCN2021092560-appb-000042
满足如下表1示例的形式:
表1
Figure PCTCN2021092560-appb-000043
上述示例的
Figure PCTCN2021092560-appb-000044
中主对角线以及平行于主对角线的M-1条斜对角线上的元素可简写为
Figure PCTCN2021092560-appb-000045
其中i=1时
Figure PCTCN2021092560-appb-000046
表示主对角线上的元素,i=2,…M时
Figure PCTCN2021092560-appb-000047
表示平行于主对角线的M-1条斜对角线上的元素。对于任意的1≤i≤M,
Figure PCTCN2021092560-appb-000048
中存在至少一个GF(q)中的非零元素。此外,对于任意的1≤i≤M,
Figure PCTCN2021092560-appb-000049
中的N-i+1个元素的取值可以相同,可以部分不同,也可以全部不同。当对于任意的1≤i≤M,
Figure PCTCN2021092560-appb-000050
中的N-i+1个元素的取值相同时,
Figure PCTCN2021092560-appb-000051
为上三角拓普利兹(Toeplitz)矩阵。本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000052
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000053
中的元素。可以理解,当N=4且M=2时,满足表1形式的
Figure PCTCN2021092560-appb-000054
可以用于实现如图5A示意的编码。
实施方式1-2中,另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000055
编码矩阵H(可记为H 2)是一个N*K维的矩阵,其中包含N*(N+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000056
和N*(K-N-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000057
其中,子矩阵
Figure PCTCN2021092560-appb-000058
的M条斜对角线上存在GF(q)中的非零元素,例如,子矩阵
Figure PCTCN2021092560-appb-000059
满足如下表2示例的形式:
表2
Figure PCTCN2021092560-appb-000060
Figure PCTCN2021092560-appb-000061
上述示例的
Figure PCTCN2021092560-appb-000062
中第i条斜对角线的元素可简写为
Figure PCTCN2021092560-appb-000063
1≤i≤M。对于任意的1≤i≤M,
Figure PCTCN2021092560-appb-000064
中存在至少一个GF(q)中的非零元素。此外,对于任意的1≤i≤M,
Figure PCTCN2021092560-appb-000065
中的N个元素的取值可以相同,可以部分不同,也可以全部不同。本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000066
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000067
中的元素。可以理解,当N=4且M=2时,满足表2形式的
Figure PCTCN2021092560-appb-000068
可以用于实现如图5B示意的编码。
又例如,子矩阵
Figure PCTCN2021092560-appb-000069
满足如下表3示例的形式:
表3
Figure PCTCN2021092560-appb-000070
上述示例的
Figure PCTCN2021092560-appb-000071
中示出的斜对角线上存在至少一个GF(q)中的非零元素。此外,对于示出的任意一条斜对角线上元素的取值可以相同,可以部分不同,也可以全部不同。本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000072
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000073
中的元素。可以理解,当N=4且M=2时,满足表3形式的
Figure PCTCN2021092560-appb-000074
可以用于实现如图5C示意的编码。
实施方式1-2中,另一种可能的编码矩阵H满足:
H=[I N H′]=H 3
其中,I N为N*N维的单位矩阵。矩阵H′为上述的H 1或H 2,或者,矩阵H′包含H 1中的一个或多个列向量,或者,矩阵H′包含H 2中的一个或多个列向量。
在实施方式1-2中,可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。这一可选的实施方式能够对两个或两个以上的原始数据块中包含的原始数据单元进行块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
可选地,在实施方式1-2中,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包 含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、或编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在方法400的另一种可能的实施方式(简称为实施方式2-1)中,T个待编码数据单元包括N个原始数据单元和P个交织数据单元,L个待编码数据单元组中的每个待编码数据单元组最多包含N个原始数据单元和P个交织数据单元中的M个原始数据单元和/或交织数据单元,N为大于1的整数,P为大于1的整数,M为大于0且小于N+P的整数。该实施方式可以理解为在方法400中T与N+P相等,并且待编码数据单元为原始数据单元和/或交织数据单元。上述N、P、L和M可统称为编码参数。
实施方式2-1下,方法400的410部分可实现为:获得N个原始数据单元和P个交织数据单元。例如,通过对来自协议层的PDU进行划分获得N个原始数据单元,该协议层可以是通信协议中的RLC层、PDCP层、RRC层、BAP层、MAC层或应用层等。又例如,可以接收来自其他装置(比如其他网络设备或终端)的N个原始数据单元。P个交织数据单元可以通过对N个原始数据单元中的全部或部分原始数据单元进行交织或重排列获得,例如,可以通过交织矩阵对N个原始数据单元中的全部或部分原始数据单元进行交织获得P个交织数据单元。
在实施方式2-1中,可选地,待编码数据单元组的数量L满足N+P≤L≤N+P+M-1。可选地,在方法400的420部分中,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,具体实现为:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。
在实施方式2-1中,可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元,可理解为滑动窗口进行循环移位。至于上述的第一个数据单元和最后一个数据单元分别是原始数据单元还是交织数据单元,取决于原始数据单元和交织数据单元的排列,本申请对此不做限定。
上述实施方式2-1可以理解为对N个原始数据单元进行交织后再进行待编码数据单元组的划分,在降低编码数据的相关性的基础上,能够借助交织进一步提高编码数据对抗信道衰落以及信道变化的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
可选地,在实施方式2-1中,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。这一可选的实施方式能够对两个或两个以上的原始数据块中包含的原始数据单元进行块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
可选地,在实施方式2-1中,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码 起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在实施方式2-1的一种可能的实施方法中,可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有N个原始数据单元和P个交织数据单元中所有的原始数据单元和交织数据单元。此时,M可理解为滑动窗口内能够包含的原始数据单元和/或交织数据单元的最大个数。
可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元时,可理解为滑动窗口进行循环移位。
图6A以N=4个原始数据单元,P=1个交织数据单元,每个待编码数据单元组最多包含N=4个原始数据单元和P=1个交织数据单元中的M=2个原始数据单元和/或交织数据单元,存在L=N+P=5个待编码数据单元组,以及滑动窗口不进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式2-1的一种具体实现。
图6A中,N=4个原始数据单元分别表示为X 1,X 2,X 3,X 4,P=1个交织数据单元表示为X′ 1,虚线框表示滑动窗口,G 1,G 2,G 3,G 4,G 5分别表示L=N+P=5个待编码数据单元组,其中第一个待编码数据单元组G 1包括原始数据单元X 1,第二个待编码数据单元组G 2包括原始数据单元X 1和X 2,第三个待编码数据单元组G 3包括原始数据单元X 2和X 3,第四个待编码数据单元组G 4包括原始数据单元X 3和X 4,第五个待编码数据单元组G 5包括原始数据单元X 4和交织数据单元X′ 1。图6A中的5个待编码数据单元组包含原始数据单元和/或交织数据单元也可以理解为滑动窗口中包含的原始数据单元和/或交织数据单元。图6A中示意的滑动窗口最多能包含M=2个原始数据单元和/或交织数据单元,滑动窗口从只包含X 1的位置开始,以原始数据单元或交织数据单元为粒度向右滑动,从而获得G 1,G 2,G 3,G 4,G 5五个待编码数据单元组。
图6A中,对五个待编码数据单元组G 1,G 2,G 3,G 4,G 5分别进行编码,获得与每个待编码数据单元组一一对应的一个编码数据单元。具体地,对G 1中的原始数据单元X 1进行编码获得与G 1对应的一个编码数据单元A 1,对G 2中的原始数据单元X 1和X 2进行编码获得与G 2对应的一个编码数据单元A 2,对G 3中的原始数据单元X 2和X 3进行编码获得与G 3对应的一个编码数据单元A 3,对G 4中的原始数据单元X 3和X 4进行编码获得与G 4对应的一个编码数据单元A 4,对G 5中的原始数据单元X 4和交织数据单元X′ 1进行编码获得与G 5对应的一个编码数据单元A 5
例如,可采用编码核[h 1,h 2,…,h M]对待编码数据单元组进行编码,编码核[h 1,h 2,…,h M]中的元素可以为GF(q)中的元素。M=2时,根据编码核[h 1,h 2],对G 1进行编码获得编码数据单元A 1=X 1×h 1,对G 2进行编码获得编码数据单元A 2=X 2×h 1+X 1×h 2,对G 3进行编码获得编码数据单元A 3=X 3×h 1+X 2×h 2,对G 4进行编码获得编码数据单元A 4=X 4×h 1+X 3×h 2,对G 5进行编码获得编码数据单元A 5=X′ 1×h 1+X 4×h 2
图6B以N=4个原始数据单元,P=1个交织数据单元,每个待编码数据单元组最多包含N=4个原始数据单元和P=1个交织数据单元中的M=2个原始数据单元和/或交织数据单元,存在L=N+P+M-1=6个待编码数据单元组,以及滑动窗口不进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式2-1的另一种具体实现。
图6B与图6A相比不同的是,滑动窗口多滑动一次,增加了第六个待编码数据单元组G 6,G 6包括交织数据单元X′ 1
图6B中,对六个待编码数据单元组G 1,G 2,G 3,G 4,G 5,G 6分别进行编码,获得与每个待编码数据单元组一一对应的一个编码数据单元。具体地,对G 1中的原始数据单元X 1进行编码获得与G 1对应的一个编码数据单元A 1,对G 2中的原始数据单元X 1和X 2进行编码获得与G 2对应的一个编码数据单元A 2,对G 3中的原始数据单元X 2和X 3进行编码获得与G 3对应的一个编码数据单元A 3,对G 4中的原始数据单元X 3和X 4进行编码获得与G 4对应的一个编码数据单元A 4,对G 5中的原始数据单元X 4和交织数据单元X′ 1进行编码获得与G 5对应的一个编码数据单元A 5,对G 6中的交织数据单元X′ 1进行编码获得与G 6对应的一个编码数据单元A 6
例如,可采用编码核[h 1,h 2,…,h M]对待编码数据单元组进行编码,编码核[h 1,h 2,…,h M]中的元素可以为GF(q)中的元素。M=2时,根据编码核[h 1,h 2],对G 1进行编码获得编码数据单元A 1=X 1×h 1,对G 2进行编码获得编码数据单元A 2=X 2×h 1+X 1×h 2,对G 3进行编码获得编码数据单元A 3=X 3×h 1+X 2×h 2,对G 4进行编码获得编码数据单元A 4=X 4×h 1+X 3×h 2,对G 5进行编码获得编码数据单元A 5=X′ 1×h 1+X 4×h 2,对G 6进行编码获得编码数据单元A 6=X′ 1×h 2
图6C以N=4个原始数据单元,P=1个交织数据单元,每个待编码数据单元组最多包含N=4个原始数据单元和P=1个交织数据单元中的M=2个原始数据单元和/或交织数据单元,存在L=N+P+M-1=6个待编码数据单元组,以及滑动窗口进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式2-1的另一种具体实现。
图6C与图6B相比不同的是,第六个待编码数据单元组G 6包括交织数据单元X′ 1和原始数据单元X 1,这可以看成滑动窗口在移到第六个待编码数据单元组G 6的位置时进行了循环移位,即第一个原始数据单元X 1循环移入第六个待编码数据单元组G 6
图6C中,对六个待编码数据单元组G 1,G 2,G 3,G 4,G 5,G 6分别进行编码,获得与每个待编码数据单元组一一对应的一个编码数据单元。具体地,对G 1中的原始数据单元X 1进行编码获得与G 1对应的一个编码数据单元A 1,对G 2中的原始数据单元X 1和X 2进行编码获得与G 2对应的一个编码数据单元A 2,对G 3中的原始数据单元X 2和X 3进行编码获得与G 3对应的一个编码数据单元A 3,对G 4中的原始数据单元X 3和X 4进行编码获得与G 4对应的一个编码数据单元A 4,对G 5中的原始数据单元X 4和交织数据单元X′ 1进行编码获得与G 5对应的一个编码数据单元A 5,对G 6中的交织数据单元X′ 1和原始数据单元X 1进行编码获得与G 6对应的一个编码数据单元A 6
例如,可采用编码核[h 1,h 2,…,h M]对待编码数据单元组进行编码,编码核[h 1,h 2,…,h M]中的元素可以为GF(q)中的元素。M=2时,根据编码核[h 1,h 2],对G 1进行编码获得编码数据单元A 1=X 1×h 1,对G 2进行编码获得编码数据单元A 2=X 2×h 1+X 1×h 2,对G 3进行编码获得编码数据单元A 3=X 3×h 1+X 2×h 2,对G 4进行编码获得编码数据单元A 4=X 4×h 1+X 3×h 2,对G 5进行编码获得编码数据单元A 5=X′ 1×h 1+X 4×h 2,对G 6进行编码获得编码数据单元A 6=X 1×h 1+X′ 1×h 2
图6A-图6C中,原始数据单元X 1和交织数据单元X′ 1可分别理解为上述实施方式2-1中涉及的第一个数据单元和最后一个数据单元。但本申请仅是以图6A-图6C中原始数据单元和交织数据单元的排列作为示例来举例示意上述实施方式2-1,本申请对原始数据单元和交织数据单元的排列不做限定,当原始数据单元和交织数据单元具有其他排列时,上述的第一个数据单元和最后一个数据单元也可以是其他的数据单元。例如,上述的第一个数据单元和最后一个数据单元可分别为原始数据单元和原始数据单元,或者,上述的第一个数据单元和最后一 个数据单元可分别为交织数据单元和交织数据单元,或者,上述的第一个数据单元和最后一个数据单元可分别为交织数据单元和原始数据单元,或者,上述的第一个数据单元和最后一个数据单元可分别为原始数据单元和交织数据单元。
当420部分采用替代实施方式420-A时,在方法400的另一种可能的实施方式(简称为实施方式2-2)中,T个待编码数据单元包括N个原始数据单元X 1,X 2,…,X N和P个交织数据单元X′ 1,X′ 2,…,X′ P,对该N个原始数据单元和P个交织数据单元进行编码获得K个编码数据单元A 1,A 2,…,A K,K大于或等于N+P,K个编码数据单元满足:
[A 1,A 2,…,A K]=[X 1,X 2,…,X N,X′ 1,X′ 2,…,X′ P]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵中的斜对角线上存在GF(q)中的非零元素。可选地,上述斜对角线的数量为M,M为大于0且小于N+P的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。此时可以认为方法400中的T个待编码数据单元O 1,O 2,…,O T为上述N个原始数据单元X 1,X 2,…,X N和P个交织数据单元X′ 1,X′ 2,…,X′ P。可以理解,本申请并不限定上述N个原始数据单元和P个交织数据单元在[X 1,X 2,…,X N,X′ 1,X′ 2,…,X′ P]中的排列顺序,[X 1,X 2,…,X N,X′ 1,X′ 2,…,X′ P]表示包含上述N个原始数据单元和P个交织数据单元,但这N+P个数据单元的排列顺序可以是任意的,本申请对此不做限定。R=N/K可理解为编码码率。上述N、K、R和M可统称为编码参数。
实施方式2-2下,方法400的410部分可能的实现方式可参考实施方式2-1中的描述,此处不再赘述。
实施方式2-2中,一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000075
编码矩阵H(可记为H 4)是一个(N+P)*K维的矩阵,其中包含(N+P)*(N+P)维的子矩阵
Figure PCTCN2021092560-appb-000076
和(N+P)*(K-N-P)维的子矩阵
Figure PCTCN2021092560-appb-000077
其中,子矩阵
Figure PCTCN2021092560-appb-000078
的主对角线上以及平行于主对角线的M-1条斜对角线上存在GF(q)中的非零元素。例如,
Figure PCTCN2021092560-appb-000079
具有与表1示意的矩阵类似的形式,只是维度由表1示意的N*N维变为(N+P)*(N+P)维。本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000080
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000081
中的元素。可以理解,当N=4、P=1且M=2时,满足表1形式的
Figure PCTCN2021092560-appb-000082
可以用于实现如图6A示意的编码。
实施方式2-2中,另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000083
编码矩阵H(可记为H 5)是一个(N+P)*K维的矩阵,其中包含(N+P)*(N+P+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000084
和(N+P)*(K-N-P-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000085
其中,子矩阵
Figure PCTCN2021092560-appb-000086
的M条斜对角线上存在GF(q)中的非零元素。
例如,
Figure PCTCN2021092560-appb-000087
具有与表2示意的矩阵类似的形式,只是维度由表2示意的N*(N+M-1)维变为(N+P)*(N+P+M-1)维。本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000088
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000089
中的元素。可以理解,当N=4、P=1且M=2时,满足表2形式的
Figure PCTCN2021092560-appb-000090
可以用于实现如图6B示意的编码。
又例如,
Figure PCTCN2021092560-appb-000091
具有与表3示意的矩阵类似的形式,只是维度由表3示意的N*(N+M-1)维变为(N+P)*(N+P+M-1)维。本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000092
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000093
中的元素。可以理解,当N=4、P=1且M=2时,满足表3形式的
Figure PCTCN2021092560-appb-000094
可以用于实现如图6C示意的编码。
实施方式2-2中,另一种可能的编码矩阵H满足:
H=[I N+P H′]=H 6
其中,I N+P为(N+P)*(N+P)维的单位矩阵。矩阵H′为上述的H 4或H 5,或者,矩阵H′包含H 4中的一个或多个列向量,或者,矩阵H′包含H 5中的一个或多个列向量。
在实施方式2-2中,可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。这一可选的实施方式能够对两个或两个以上的原始数据块中包含的原始数据单元进行块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
可选地,在实施方式2-2中,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在方法400的另一种可能的实施方式(简称为实施方式3-1)中,T个待编码数据单元包括B个原始数据块,上述L个待编码数据单元组中的每个待编码数据单元组最多包含B个原始数据块中的M个原始数据块,B为大于1的整数,M为大于0且小于B的整数。该实施方式可以理解为在方法400中T与B相等,并且待编码数据单元为原始数据块。原始数据块一般可理解为比原始数据单元更大的待编码数据单元,例如,B个原始数据块中可包含原始数据单元,其中第b个原始数据块包含N b个原始数据单元,b为大于0且小于等于B的整数。或者,原始数据块中可包含原始数据单元和交织数据单元,其中第b个原始数据块包含N b个原始数据单元和交织数据单元,b为大于0且小于等于B的整数。上述B、L、N b和M可统称为编码参数。当原始数据块中包含交织数据单元时可以借助交织进一步提高编码数据对抗信道衰落以及信道变化的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
实施方式3-1下,方法400的410部分可实现为:获得B个原始数据块。例如,通过对来自协议层的PDU进行划分获得B个原始数据块。该协议层可以是通信协议中的RLC层、PDCP层、RRC层、BAP层、MAC层或应用层等。又例如,可以接收来自其他装置(比如其他网络设备或终端)的B个原始数据块。当B个原始数据块中包含有交织数据单元时,交织数据单元可以通过对包含在原始数据块中的全部或部分原始数据单元进行交织或重排列获得,例如,可以通过交织矩阵对原始数据块中的全部或部分原始数据单元进行交织获得原始数据块中的交织数据单元。
在实施方式3-1中,可选地,待编码数据单元组的数量L满足B≤L≤B+M-1。可选地,在方法400的420部分中,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,具体实现为:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。
在实施方式3-1中,可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含B个原始数据块中的第一个原始数据块和最后一个原始数据块。或者,L个待编码数据 单元组中的一个或多个待编码数据单元组中包含B个原始数据块中的第一个原始数据块和最后一个原始数据块。
上述实施方式3-1可以理解为将B个原始数据块划分为L个待编码数据单元组,并对这L个待编码数据单元组分别进行编码,其中L满足B≤L≤B+M-1。其中M在这种实施方式下也可理解为块间卷积深度。通过该实施方式3-1,能够对两个或两个以上的原始数据块中包含的原始数据单元进行有选择性的块间的联合编码,因此能够支持块间传输错误的纠正,从而进一步提高了编码可靠性和数据传输对抗信道随机错误的能力,进而提高了频谱效率。
可选地,在实施方式3-1中,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在实施方式3-1的一种可能的实施方法中,可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有B个原始数据块中所有的原始数据块。此时,M可理解为滑动窗口内能够包含的原始数据块的最大个数。
可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含B个原始数据块中的第一个原始数据块和最后一个原始数据块时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含B个原始数据块中的第一个原始数据块和最后一个原始数据块时,可理解为滑动窗口进行循环移位。
在对原始数据块中的原始数据单元进行编码时,可以采用多种不同的实现方式。
例如,可以采用实施方式1-1中对原始数据单元进行编码的方法,具体可参照实施方式1-1中的描述,此处不再赘述。
又例如,可以采用RLNC或系统码对原始数据块中的原始数据单元进行编码。
再例如,也可以采用一种重叠编码的方式对原始数据块中的原始数据单元进行编码。所谓重叠(overlapping)编码是指,对多个原始数据块中的一部分原始数据块内的所有原始数据单元进行编码,对这多个原始数据块中另一部分原始数据块内的部分原始数据单元进行编码,具体的编码方式可以是RLNC、系统码或实施方式1-1中描述的方法。
图7A以B=4个原始数据块,每个待编码数据单元组最多包含B=4个原始数据块中的M=2个原始数据块,存在L=B=4个待编码数据单元组,以及滑动窗口不进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式3-1的一种具体实现。
图7A中,B=4个原始数据块分别表示为BL 1,BL 2,BL 3,BL 4,第b个原始数据块BL b中包括N b个原始数据单元(1≤b≤4,N b>1),虚线框表示滑动窗口,G 1,G 2,G 3,G 4分别表示L=B=4个待编码数据单元组,其中第一个待编码数据单元组G 1包括原始数据块BL 1,第二个待编码数据单元组G 2包括原始数据块BL 1和BL 2,第三个待编码数据单元组G 3包括原始数据块BL 2和BL 3,第四个待编码数据单元组G 4包括原始数据块BL 3和BL 4。图7A中的4个待编码数据单元组包含原始数据块也可以理解为滑动窗口中包含的原始数据块。图7A中示意的滑动窗口最多能 包含M=2个原始数据块,滑动窗口从只包含BL 1的位置开始,以原始数据块为粒度向右滑动,从而获得G 1,G 2,G 3,G 4四个待编码数据单元组。
图7A中,对四个待编码数据单元组G 1,G 2,G 3,G 4分别进行编码,获得与每个待编码数据单元组一一对应的多个编码数据单元。具体地,对G 1中的原始数据块BL 1进行编码获得与G 1对应的多个编码数据单元,对G 2中的原始数据块BL 1和BL 2进行编码获得与G 2对应的多个编码数据单元,对G 3中的原始数据块BL 2和BL 3进行编码获得与G 3对应的多个编码数据单元,对G 4中的原始数据块BL 3和BL 4进行编码获得与G 4对应的多个编码数据单元。图7A中以编码获得的与每个待编码数据单元组对应的多个编码数据单元数量为8个为例对该实施方式进行示意。可以理解,本申请并不限定这种实施方式下获得的与每个待编码数据单元组对应的多个编码数据单元的数量,也不限定获得的与各待编码数据单元组对应的多个编码数据单元的数量是否一样。例如,获得的与各待编码数据单元组对应的多个编码数据单元的数量可以相同,也可以部分相同,还可以完全不同。
图7B以B=4个原始数据块,每个待编码数据单元组最多包含B=4个原始数据块中的M=2个原始数据块,存在L=B+M-1=5个待编码数据单元组,以及滑动窗口不进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式3-1的另一种具体实现。
图7B与图7A相比不同的是,滑动窗口多滑动一次,增加了第五个待编码数据单元组G 5,G 5包括原始数据块BL 4
图7B中,对五个待编码数据单元组G 1,G 2,G 3,G 4,G 5分别进行编码,获得与每个待编码数据单元组一一对应的多个编码数据单元。具体地,对G 1中的原始数据块BL 1进行编码获得与G 1对应的多个编码数据单元,对G 2中的原始数据块BL 1和BL 2进行编码获得与G 2对应的多个编码数据单元,对G 3中的原始数据块BL 2和BL 3进行编码获得与G 3对应的多个编码数据单元,对G 4中的原始数据块BL 3和BL 4进行编码获得与G 4对应的多个编码数据单元,对G 5中的原始数据块BL 4进行编码获得与G 5对应的多个编码数据单元。
图7C以B=4个原始数据块,每个待编码数据单元组最多包含B=4个原始数据块中的M=2个原始数据块,存在L=B+M-1=5个待编码数据单元组,以及滑动窗口进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式3-1的另一种具体实现。
图7C与图7B相比不同的是,第五个待编码数据单元组G 5包括原始数据块BL 4和BL 1,这可以看成滑动窗口在移到第五个待编码数据单元组G 5的位置时进行了循环移位,即第一个原始数据块BL 1循环移入第五个待编码数据单元组G 5
图7C中,对五个待编码数据单元组G 1,G 2,G 3,G 4,G 5分别进行编码,获得与每个待编码数据单元组一一对应的多个编码数据单元。具体地,对G 1中的原始数据块BL 1进行编码获得与G 1对应的多个编码数据单元,对G 2中的原始数据块BL 1和BL 2进行编码获得与G 2对应的多个编码数据单元,对G 3中的原始数据块BL 2和BL 3进行编码获得与G 3对应的多个编码数据单元,对G 4中的原始数据块BL 3和BL 4进行编码获得与G 4对应的多个编码数据单元,对G 5中的原始数据块BL 4和BL 1进行编码获得与G 5对应的多个编码数据单元。
当420部分采用替代实施方式420-B时,在方法400的另一种可能的实施方式(简称为实施方式3-2)中,T个待编码数据单元包括B>1个包含原始数据单元的原始数据块BL 1,…,BL B,或者,T个待编码数据单元包括B>1个包含原始数据单元和交织数据单元的原始数据块BL 1,…,BL B。对该B个原始数据块进行编码获得D个包含编码数据单元的编码数据块C 1,C 2,…,C D,D大于或等于B,D个编码数据块满足:
[C 1,C 2,…,C D]=[BL 1,…,BL B]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵。可选地,上述斜对角线的数量为M,M为大于0且小于B的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。此时可以认为方法400中的T个待编码数据单元O 1,O 2,…,O T为上述B个原始数据块BL 1,…,BL B。上述B、D和M可统称为编码参数。当原始数据块中包含交织数据单元时可以借助交织进一步提高编码数据对抗信道衰落以及信道变化的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
实施方式3-2下,方法400的410部分可能的实现方式可参考实施方式3-1中的描述,此处不再赘述。
实施方式3-2中,一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000095
编码矩阵H(可记为H 7)是一个B*D维的矩阵,其中包含B*B维的子矩阵
Figure PCTCN2021092560-appb-000096
和B*(D-B)维的子矩阵
Figure PCTCN2021092560-appb-000097
本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000098
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000099
中的元素。子矩阵
Figure PCTCN2021092560-appb-000100
的主对角线上以及平行于主对角线的M-1条斜对角线上存在包含GF(q)中元素的非零矩阵,例如,子矩阵
Figure PCTCN2021092560-appb-000101
满足如下表4示例的形式:
表4
Figure PCTCN2021092560-appb-000102
表4示意的
Figure PCTCN2021092560-appb-000103
中包含有B*B个子矩阵,其中0表示全0元素子矩阵,
Figure PCTCN2021092560-appb-000104
1≤m≤M,1≤b≤B表示行数为N b、列数至少为N b或者列数为K d的矩阵,N b表示原始数据块b中包含的原始数据单元的个数,K d表示编码数据块d中包含的编码数据单元的个数,其中1≤d≤D,N b≤K d。对于不同的m和/或b,
Figure PCTCN2021092560-appb-000105
可以是相同的矩阵,也可以是不同的矩阵。
Figure PCTCN2021092560-appb-000106
可以有多种不同的具体实现方式,例如,
Figure PCTCN2021092560-appb-000107
可以具有如下几种可能的形式。
Figure PCTCN2021092560-appb-000108
实现方式1:
Figure PCTCN2021092560-appb-000109
满足
Figure PCTCN2021092560-appb-000110
其中,
Figure PCTCN2021092560-appb-000111
为N b×(K d-N b)维的矩阵,
Figure PCTCN2021092560-appb-000112
为N b×N b维的斜对角矩阵,例如
Figure PCTCN2021092560-appb-000113
满足如下表5示例的形式:
表5
Figure PCTCN2021092560-appb-000114
其中,M b表示与原始数据块b对应的卷积深度,1≤M b<N b。上述示例的
Figure PCTCN2021092560-appb-000115
中主对角线以及平行于主对角线的M b-1条斜对角线上的元素可简写为
Figure PCTCN2021092560-appb-000116
1≤i≤M b,其中i=1时
Figure PCTCN2021092560-appb-000117
表示主对角线上的元素,i=2,…M b
Figure PCTCN2021092560-appb-000118
表示平行于主对角线的M b-1条斜对角线上的元素。对于任意的1≤i≤M b
Figure PCTCN2021092560-appb-000119
中存在至少一个GF(q)中的非零元素。此外,对于任意的1≤i≤M b
Figure PCTCN2021092560-appb-000120
中的N b-i+1个元素的取值可以相同,可以部分不同,也可以全部不同。当对于任意的1≤i≤M b
Figure PCTCN2021092560-appb-000121
中的N b-i+1个元素的取值相同时,
Figure PCTCN2021092560-appb-000122
为Toeplitz矩阵。本示例下对上述
Figure PCTCN2021092560-appb-000123
中包含的子矩阵
Figure PCTCN2021092560-appb-000124
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000125
中的元素。
Figure PCTCN2021092560-appb-000126
实现方式2:
Figure PCTCN2021092560-appb-000127
满足
Figure PCTCN2021092560-appb-000128
其中,
Figure PCTCN2021092560-appb-000129
为N b×(K d-N b-M b+1)维的矩阵,M b表示与原始数据块b对应的卷积深度,1≤M b<N b
Figure PCTCN2021092560-appb-000130
为N b×(N b+M b-1)维的矩阵,例如
Figure PCTCN2021092560-appb-000131
满足如下表6示例的形式:
表6
Figure PCTCN2021092560-appb-000132
Figure PCTCN2021092560-appb-000133
上述示例的
Figure PCTCN2021092560-appb-000134
中第i条斜对角线的元素可简写为
Figure PCTCN2021092560-appb-000135
1≤i≤M b。对于任意的1≤i≤M b
Figure PCTCN2021092560-appb-000136
中存在至少一个GF(q)中的非零元素。此外,对于任意的1≤i≤M b
Figure PCTCN2021092560-appb-000137
中的N b个元素的取值可以相同,可以部分不同,也可以全部不同。本示例下对上述
Figure PCTCN2021092560-appb-000138
中包含的子矩阵
Figure PCTCN2021092560-appb-000139
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000140
中的元素。
又例如,
Figure PCTCN2021092560-appb-000141
满足如下表7示例的形式:
表7
Figure PCTCN2021092560-appb-000142
上述示例的
Figure PCTCN2021092560-appb-000143
中示出的斜对角线上存在至少一个GF(q)中的非零元素。此外,对于示出的任意一条斜对角线上元素的取值可以相同,可以部分不同,也可以全部不同。本示例下对上述
Figure PCTCN2021092560-appb-000144
中包含的子矩阵
Figure PCTCN2021092560-appb-000145
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000146
中的元素。
Figure PCTCN2021092560-appb-000147
实现方式3:
Figure PCTCN2021092560-appb-000148
满足
Figure PCTCN2021092560-appb-000149
其中,
Figure PCTCN2021092560-appb-000150
包含的元素h nk(1≤n≤N b,1≤k≤K d)为GF(q)中的元素,例如可以从GF(q)的元素中随机获得。
Figure PCTCN2021092560-appb-000151
实现方式4:
Figure PCTCN2021092560-appb-000152
满足
Figure PCTCN2021092560-appb-000153
其中,
Figure PCTCN2021092560-appb-000154
包含的元素h nk(1≤n≤N b,1≤k≤K d-N b)为GF(q)中的元素,例如可以从GF(q)的元素中随机获得。
Figure PCTCN2021092560-appb-000155
实现方式5:当多个原始数据块一起参与编码时,对于其中一部分原始数据块的
Figure PCTCN2021092560-appb-000156
可采用上述
Figure PCTCN2021092560-appb-000157
实现方式1-4中的任意一种,对于其中另一部分原始数据块的
Figure PCTCN2021092560-appb-000158
可以满足
Figure PCTCN2021092560-appb-000159
其中,
Figure PCTCN2021092560-appb-000160
表示(N b-N l)×(N b-N l)维的全0矩阵,N l为大于0且小于N b的整数。针对不同的m,N l的取值可以相同也可以不同。
Figure PCTCN2021092560-appb-000161
中除去
Figure PCTCN2021092560-appb-000162
以外的部分
Figure PCTCN2021092560-appb-000163
在形式上可以满足上述
Figure PCTCN2021092560-appb-000164
实现方式1-4中的任意一种。
实施方式3-2中,另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000165
编码矩阵H(可记为H 8)是一个B*D维的矩阵,其中包含B*(B+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000166
和B*(D-B-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000167
其中,子矩阵
Figure PCTCN2021092560-appb-000168
的M条斜对角线上存在包含GF(q)中元素的非零矩阵,例如,子矩阵
Figure PCTCN2021092560-appb-000169
满足如下表8示例的形式:
表8
Figure PCTCN2021092560-appb-000170
表8示意的
Figure PCTCN2021092560-appb-000171
中包含有B*(B+M-1)个子矩阵,其中0表示全0元素子矩阵,
Figure PCTCN2021092560-appb-000172
1≤m≤M,1≤b≤B表示行数为N b、列数至少为N b或者列数为K d的矩阵,N b表示原始数据块b中包含的原始数据单元的个数,K d表示编码数据块d中包含的编码数据单元的个数,其中1≤d≤D,N b≤K d。对于不同的m和/或b,
Figure PCTCN2021092560-appb-000173
可以是相同的矩阵,也可以是不同的矩阵。
Figure PCTCN2021092560-appb-000174
可以有多种不同的具体实现方式,例如
Figure PCTCN2021092560-appb-000175
可以具有前述的
Figure PCTCN2021092560-appb-000176
实现方式1-5中任一种所描述的形式,此处不再赘述。
又例如,
Figure PCTCN2021092560-appb-000177
满足如下表9示例的形式:
表9
Figure PCTCN2021092560-appb-000178
表9示意的
Figure PCTCN2021092560-appb-000179
中包含有B*(B+M-1)个子矩阵,其中0表示全0元素子矩阵,
Figure PCTCN2021092560-appb-000180
1≤m≤M,1≤b≤B+M-1表示行数为N b、列数至少为N b或者列数为K d的矩阵,N b表示原始数据块b中包含的原始数据单元的个数,K d表示编码数据块d中包含的编码数据单元的个数,其中1≤d≤D,N b≤K d。对于不同的m和/或b,
Figure PCTCN2021092560-appb-000181
可以是相同的矩阵,也可以是不同的矩阵。
Figure PCTCN2021092560-appb-000182
可以有多种不同的具体实现方式,例如
Figure PCTCN2021092560-appb-000183
可以具有前述的
Figure PCTCN2021092560-appb-000184
实现方式1-5中任一种所描述的形式,此处不再赘述。
实施方式3-2中,另一种可能的编码矩阵H满足:
H=[I B H′]=H 9
其中,B*B维的矩阵I B包含B*B个N b×N b维的单位矩阵,N b表示原始数据块b中包含的原始数据单元的个数,1≤b≤B,不同的原始数据块中包含的原始数据单元的个数可以相同也可以不同。矩阵H′为上述的H 7或H 8,或者,矩阵H′包含H 7中的一个或多个列向量,或者,矩阵H′包含H 8中的一个或多个列向量。
可选地,在实施方式3-2中,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在方法400的另一种可能的实施方式(简称为实施方式4-1)中,T个待编码数据单元包括B个原始数据块和Q个交织数据块,L个待编码数据单元组中的每个待编码数据单元组最多包含B个原始数据块和所述Q个交织数据块中的M个原始数据块和/或交织数据块,B为大于1的整数,Q为大于1的整数,M为大于0且小于B+Q的整数。该实施方式可以理解为在方法400中T与B+Q相等,并且待编码数据单元为原始数据块和/或交织数据块。其中,原始数据块中包含原始数据单元,交织数据块中包含交织数据单元。B、Q、L和M可统称为编码参数。
实施方式4-1下,方法400的410部分可实现为:获得B个原始数据块和Q个交织数据块。例如,通过对来自协议层的PDU进行划分获得B个原始数据块,该协议层可以是通信协议中的RLC层、PDCP层、RRC层、BAP层、MAC层或应用层等。又例如,可以接收来自 其他装置(比如其他网络设备或终端)的B个原始数据块。例如,交织数据块可以通过对包含在原始数据块中的全部或部分原始数据单元进行交织或重排列获得,比如可以通过交织矩阵对原始数据块中的全部或部分原始数据单元进行交织获得交织数据块。
在实施方式4-1中,可选地,待编码数据单元组的数量L满足B+Q≤L≤B+Q+M-1。可选地,在方法400的420部分中,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,具体实现为:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。
在实施方式4-1中,可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块,可理解为滑动窗口进行循环移位。至于上述的第一个数据块和最后一个数据块分别是原始数据块还是交织数据块,取决于原始数据块和交织数据块的排列,本申请对此不做限定。
可选地,在实施方式4-1中,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
上述实施方式4-1可以理解为对B个原始数据块中的原始数据单元进行交织后再进行待编码数据单元组的划分,结合块间编码,在支持块间传输错误纠正的基础上,能够借助交织进一步提高编码数据对抗信道衰落以及信道变化的能力,从而进一步提高编码数据的接收可靠性并提高频谱效率。
在实施方式4-1的一种可能的实施方法中,可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有B个原始数据块和Q个交织数据块中所有的原始数据块和交织数据块。此时,M可理解为滑动窗口内能够包含的原始数据块和/或交织数据块的最大个数。
可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块时,可理解为滑动窗口进行循环移位。
在对原始数据块中的原始数据单元进行编码时,和/或,在对交织数据块中的交织数据单元进行编码时可以采用多种不同的实现方式。
例如,可以采用实施方式1-1中对原始数据单元进行编码的方法,对原始数据块中的原始数据单元进行编码和/或对交织数据块中的交织数据单元进行编码。具体可参照实施方式1-1中的描述,此处不再赘述。
又例如,可以采用RLNC或系统码对原始数据块中的原始数据单元进行编码和/或对交织数据块中的交织数据单元进行编码。
再例如,也可以采用一种重叠编码的方式对原始数据块中的原始数据单元进行编码和/或对交织数据块中的交织数据单元进行编码。所谓重叠(overlapping)编码是指,对多个数据块中的一部分数据块内的所有数据单元进行编码,对这多个数据块中另一部分数据块内的部分数据单元进行编码,具体的编码方式可以是RLNC、系统码或实施方式1-1中描述的方法。
图8A以B=4个原始数据块,Q=1个交织数据块,每个待编码数据单元组最多包含B=4个原始数据块和Q=1个交织数据块中的M=2个原始数据块和/或交织数据块,存在L=B+Q=5个待编码数据单元组,以及滑动窗口不进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式4-1的一种具体实现。
图8A中,B=4个原始数据块分别表示为BL 1,BL 2,BL 3,BL 4,Q=1个交织数据块以BL′ 1表示,虚线框表示滑动窗口,G 1,G 2,G 3,G 4,G 5分别表示L=B+Q=5个待编码数据单元组,其中第一个待编码数据单元组G 1包括原始数据块BL 1,第二个待编码数据单元组G 2包括原始数据块BL 1和BL 2,第三个待编码数据单元组G 3包括原始数据块BL 2和BL 3,第四个待编码数据单元组G 4包括原始数据块BL 3和BL 4,第五个待编码数据单元组G 5包括原始数据块BL 4和交织数据块BL′ 1。图8A中的5个待编码数据单元组包含原始数据块和/或交织数据块也可以理解为滑动窗口中包含的原始数据块和/或交织数据块。图8A中示意的滑动窗口最多能包含M=2个原始数据块和/或交织数据块,滑动窗口从只包含BL 1的位置开始,以原始数据块或交织数据块为粒度向右滑动,从而获得G 1,G 2,G 3,G 4,G 5五个待编码数据单元组。
图8A中,对五个待编码数据单元组G 1,G 2,G 3,G 4,G 5分别进行编码,获得与每个待编码数据单元组一一对应的多个编码数据单元。具体地,对G 1中的原始数据块BL 1进行编码获得与G 1对应的多个编码数据单元,对G 2中的原始数据块BL 1和BL 2进行编码获得与G 2对应的多个编码数据单元,对G 3中的原始数据块BL 2和BL 3进行编码获得与G 3对应的多个编码数据单元,对G 4中的原始数据块BL 3和BL 4进行编码获得与G 4对应的多个编码数据单元,对G 5中的原始数据块BL 4和交织数据块BL′ 1进行编码获得与G 5对应的多个编码数据单元。图8A中以编码获得的与每个待编码数据单元组对应的多个编码数据单元数量为8个为例对该实施方式进行示意。可以理解,本申请并不限定这种实施方式下获得的与每个待编码数据单元组对应的多个编码数据单元的数量,也不限定获得的与各待编码数据单元组对应的多个编码数据单元的数量是否一样。例如,获得的与各待编码数据单元组对应的多个编码数据单元的数量可以相同,也可以部分相同,还可以完全不同。
图8B以B=4个原始数据块,Q=1个交织数据块,每个待编码数据单元组最多包含B=4个原始数据块和Q=1个交织数据块中的M=2个原始数据块和/或交织数据块,存在L=B+Q+M-1=6个待编码数据单元组,以及滑动窗口不进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式4-1的另一种具体实现。
图8B与图8A相比不同的是,滑动窗口多滑动一次,增加了第六个待编码数据单元组G 6,G 6包括交织数据块BL′ 1
图8B中,对六个待编码数据单元组G 1,G 2,G 3,G 4,G 5,G 6分别进行编码,获得与每个待编码数据单元组一一对应的多个编码数据单元。具体地,对G 1中的原始数据块BL 1进行编码获得与G 1对应的多个编码数据单元,对G 2中的原始数据块BL 1和BL 2进行编码获得与G 2对应的多个编码数据单元,对G 3中的原始数据块BL 2和BL 3进行编码获得与G 3对应的多个编码数据单元,对G 4中的原始数据块BL 3和BL 4进行编码获得与G 4对应的多个编码数据单元,对G 5中的原始数 据块BL 4和交织数据块BL′ 1进行编码获得与G 5对应的多个编码数据单元,对G 6中的交织数据块BL′ 1进行编码获得与G 6对应的多个编码数据单元。
图8C以B=4个原始数据块,Q=1个交织数据块,每个待编码数据单元组最多包含B=4个原始数据块和Q=1个交织数据块中的M=2个原始数据块和/或交织数据块,存在L=B+Q+M-1=6个待编码数据单元组,以及滑动窗口进行循环移位为例,示例性说明以滑动窗口的方式实现上述实施方式4-1的另一种具体实现。
图8C与图8B相比不同的是,第六个待编码数据单元组G 6包括交织数据块BL′ 1和原始数据块BL 1,这可以看成滑动窗口在移到第六个待编码数据单元组G 6的位置时进行了循环移位,即第一个原始数据块BL 1循环移入第六个待编码数据单元组G 6
图8C中,对六个待编码数据单元组G 1,G 2,G 3,G 4,G 5,G 6分别进行编码,获得与每个待编码数据单元组一一对应的多个编码数据单元。具体地,对G 1中的原始数据块BL 1进行编码获得与G 1对应的多个编码数据单元,对G 2中的原始数据块BL 1和BL 2进行编码获得与G 2对应的多个编码数据单元,对G 3中的原始数据块BL 2和BL 3进行编码获得与G 3对应的多个编码数据单元,对G 4中的原始数据块BL 3和BL 4进行编码获得与G 4对应的多个编码数据单元,对G 5中的原始数据块BL 4和交织数据块BL′ 1进行编码获得与G 5对应的多个编码数据单元,对G 6中的交织数据块BL′ 1和原始数据块BL 1进行编码获得与G 6对应的多个编码数据单元。
图8A-图8C中,原始数据块BL 1和交织数据块BL′ 1可分别理解为上述实施方式4-1中涉及的第一个数据块和最后一个数据块。但本申请仅是以图8A-图8C中原始数据块和交织数据块的排列作为示例来举例示意上述实施方式4-1,本申请对原始数据块和交织数据块的排列不做限定,当原始数据块和交织数据块具有其他排列时,上述的第一个数据块和最后一个数据块也可以是其他的数据块。例如,上述的第一个数据块和最后一个数据块可分别为原始数据块和原始数据块,或者,上述的第一个数据块和最后一个数据块可分别为交织数据块和交织数据块,或者,上述的第一个数据块和最后一个数据块可分别为交织数据块和原始数据块,或者,上述的第一个数据块和最后一个数据块可分别为原始数据块和交织数据块。
当420部分采用替代实施方式420-B时,在方法400的另一种可能的实施方式(简称为实施方式4-2)中,T个待编码数据单元包括B个原始数据块BL 1,…,BL B和Q个交织数据块BL′ 1,…,BL′ Q。其中,B个原始数据块中的原始数据块b包含N b个原始数据单元,Q个交织数据块中的交织数据块q′包含N q′个交织数据单元。对该B个原始数据块和Q个交织数据块进行编码获得D个包含编码数据单元的编码数据块C 1,C 2,…,C D,D大于或等于B+Q,D个编码数据块满足:
[C 1,C 2,…,C D]=[BL 1,…,BL B,BL′ 1,…,BL′ Q]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵。可选地,上述斜对角线的数量为M,M为大于0且小于B+Q的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。此时可以认为方法400中的T个待编码数据单元O 1,O 2,…,O T为上述B个原始数据块BL 1,…,BL B和Q个交织数据块BL′ 1,…,BL′ Q。可以理解,本申请并不限定上述B个原始数据块和Q个交织数据块在[BL 1,…,BL B,BL′ 1,…,BL′ Q]中的排列顺序,[BL 1,…,BL B,BL′ 1,…,BL′ Q]表示包含上述B个原始数据块和Q个交织数据块,但这B+Q个数据块的排列顺序可以是任意的,本申请对此不做限定。上述B、Q、N b、N q′、D和M可统称为编码参数。
实施方式4-2下,方法400的410部分可能的实现方式可参考实施方式4-1中的描述,此处不再赘述。
实施方式4-2中,一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000185
编码矩阵H(可记为H 10)是一个(B+Q)*D维的矩阵,其中包含(B+Q)*(B+Q)维的子矩阵
Figure PCTCN2021092560-appb-000186
和(B+Q)*(D-B-Q)维的子矩阵
Figure PCTCN2021092560-appb-000187
其中,子矩阵
Figure PCTCN2021092560-appb-000188
的主对角线上以及平行于主对角线的M-1条斜对角线上存在包含GF(q)中元素的非零矩阵。例如,
Figure PCTCN2021092560-appb-000189
具有与表4示意的矩阵类似的形式,只是维度由表4示意的B*B维变为(B+Q)*(B+Q)维。本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000190
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000191
中的元素。
实施方式4-2中,另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000192
编码矩阵H(可记为H 11)是一个(B+Q)*D维的矩阵,其中包含(B+Q)*(B+Q+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000193
和(B+Q)*(D-B-Q-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000194
其中,子矩阵
Figure PCTCN2021092560-appb-000195
的M条斜对角线上存在包含GF(q)中元素的非零矩阵。例如,
Figure PCTCN2021092560-appb-000196
具有与表8示意的矩阵类似的形式,只是维度由表8示意的B*(B+M-1)维变为(B+Q)*(B+Q+M-1)维。又例如,
Figure PCTCN2021092560-appb-000197
具有与表9示意的矩阵类似的形式,只是维度由表9示意的B*(B+M-1)维变为(B+Q)*(B+Q+M-1)维。本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000198
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000199
中的元素。
实施方式4-2中,另一种可能的编码矩阵H满足:
H=[I B+Q H′]=H 12
其中,(B+Q)*(B+Q)维的矩阵I B+Q包含(B+Q)*(B+Q)个(N b+N q′)×(N b+N q′)维的单位矩阵。矩阵H′为上述的H 10或H 11,或者,矩阵H′包含H 10中的一个或多个列向量,或者,矩阵H′包含H 11中的一个或多个列向量。
可选地,在实施方式4-2中,还可以针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在方法400中,可选地,T个待编码数据单元包括错误数据单元。该错误数据单元的数量为一个或多个。L个待编码数据单元组中的每个待编码数据单元组不包含该错误数据单元,或者,L个待编码数据单元组中的一个或多个待编码数据单元组包含该错误数据单元。当L个待编码数据单元组中的一个或多个待编码数据单元组包含该错误数据单元时,方法400中还包括生成并输出指示该错误数据单元的第一指示信息,该第一指示信息可以携带在头信息中。该方法可理解为方法400的执行主体为中继装置或转发装置,例如可以为中继网络设备、中继终端、转发网络设备或转发终端,也可以为中继网络设备、中继终端、转发网络设备或转发终端中的处理器、芯片或芯片系统。中继装置先接收待转发的数据单元,但由于无线信道的衰落特性,中继装置可能无法正确接收某些待转发的数据单元,这些无法被中继装置正确接收的待转发数据单元可以理解为上述的错误数据单元。通过上述方法,能够使中继装置在进行数据转发时对待转发的数据进行合理地重编码,从而能够在中继转发的场景下提高编码数据的接收可靠性并提高频谱效率。
当L个待编码数据单元组中的每个待编码数据单元组不包含该错误数据单元时,在420部分的一种可能的实施方式中,在对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,生成与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元时,不生成与该错误数据单元对应的编码数据单元。在该实施方式中,还可选地包括:生成并输出第二指示信息,该第二指示信息指示与该错误数据单元对应的编码数据单元是非完整的,该第二指示信息可以携带在头信息中,也可以携带在控制PDU中,还可以携带在MAC控制元素(control element,CE)中。该第二指示信息使得接收装置可以在缺失与错误数据单元对应的编码数据单元的情况下能够完成对接收数据的译码。
例如,中继装置接收待编码数据单元X 1,X 2,X 3,X 4,X 5,X 6,X 7,X 8,X 9并进行编码,获得编码数据单元A 1,A 2,A 3,A 4,A 5,A 6,A 7,A 8,A 9,A 10,并对这些编码数据单元进行转发。但是,中继装置未成功接收X 6。则中继装置在进行编码和转发时,不生成与X 6对应的编码数据单元。例如,若中继装置使用如下表10示意的编码矩阵H:
表10
Figure PCTCN2021092560-appb-000200
编码数据单元A 1,A 2,A 3,A 4,A 5,A 6,A 7,A 8,A 9,A 10满足:A 1=X 1×h 1,A 2=X 2×h 1+X 1×h 2,A 3=X 3×h 1+X 2×h 2,A 4=X 4×h 1+X 3×h 2,A 5=X 5×h 1+X 4×h 2+X 1×h 3,A 6=X 6×h 1+X 5×h 2+X 2×h 3,A 7=X 7×h 1+X 6×h 2+X 3×h 3,A 8=X 8×h 1+X 7×h 2+X 4×h 3,A 9=X 9×h 1+X 8×h 2+X 5×h 3,A 10=X 9×h 1。由于未成功接收X 6,因此可以不生成与X 6对应的编码数据单元A 6和A 7,也可理解为不发送A 6和A 7,或者也可理解为生成并发送了A 6=0和A 7=0。中继装置可以生成并输出第二指示信息,该第二指示信息指示与X 6对应的编码数据单元是非完整的,接收装置可以根据该第二指示信息完成接收数据的译码。当不生成或不发送与X 6对应的编码数据单元A 6和A 7时,第二指示信息可携带在控制PDU或MAC CE中。当生成并发送A 6=0和A 7=0时,第二指示信息可携带在A 6和/或A 7的头信息中,或者可携带在控制PDU或MAC CE中。
当L个待编码数据单元组中的每个待编码数据单元组不包含该错误数据单元时,在420部分的一种可能的实施方式中,在对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,生成与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元时,将错误数据单元置0,也可理解为错误数据单元不参与编码。在该实施方式中,还可选地包括:生成并输出第三指示信息,该第三指示信息指示该错误数据单元,该第三指示信息可以携带在头信息中,也可以携带在控制PDU中,还可以携带在MAC CE中。该第三指示信息使得接收装置可以在缺失错误数据单元的情况下能够完成对接收数据的译码。
例如,中继装置接收待编码数据单元X 1,X 2,X 3,X 4,X 5,X 6,X 7,X 8,X 9并进行编码,获得编码数据单元A 1,A 2,A 3,A 4,A 5,A 6,A 7,A 8,A 9,A 10,并对这些编码数据单元进行转发。但是,中继装 置未成功接收X 6。则中继装置在进行编码和转发时,X 6不参与编码,或者可以理解为在编码时将X 6置零。例如,若中继装置使用如表10示意的编码矩阵H,则编码数据单元A 1,A 2,A 3,A 4,A 5,A 6,A 7,A 8,A 9,A 10满足:A 1=X 1×h 1,A 2=X 2×h 1+X 1×h 2,A 3=X 3×h 1+X 2×h 2,A 4=X 4×h 1+X 3×h 2,A 5=X 5×h 1+X 4×h 2+X 1×h 3,A 6=X 6×h 1+X 5×h 2+X 2×h 3,A 7=X 7×h 1+X 6×h 2+X 3×h 3,A 8=X 8×h 1+X 7×h 2+X 4×h 3,A 9=X 9×h 1+X 8×h 2+X 5×h 3,A 10=X 9×h 1。由于未成功接收X 6,因此X 6不参与编码,或者可以理解为在编码时将X 6置零,即与X 6相关的编码数据单元A 6和A 7分别满足:A 6=X 5×h 2+X 2×h 3,A 7=X 7×h 1+X 3×h 3。中继装置可以生成并输出第三指示信息,例如在A 6和/或A 7的头信息中添加该第三指示信息,或者,该第三指示信息可携带在控制PDU或MAC CE中。该第三指示信息用于指示X 6,比如该第三指示信息可以是X 6的标识信息。接收装置可以根据该第三指示信息完成接收数据的译码。
当L个待编码数据单元组中的一个或多个待编码数据单元组包含该错误数据单元时,在420部分的另一种可能的实施方式中,在对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,生成与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元时,该错误数据单元参与编码。在该实施方式中,还生成并输出指示该错误数据单元的第一指示信息,该第一指示信息可以携带在头信息中,也可以携带在控制PDU中,还可以携带在MAC CE中。该第一指示信息使得接收装置可以在包含错误数据单元对应的编码数据单元的情况下能够完成对接收数据的译码。
例如,中继装置接收待编码数据单元X 1,X 2,X 3,X 4,X 5,X 6,X 7,X 8,X 9并进行编码,获得编码数据单元A 1,A 2,A 3,A 4,A 5,A 6,A 7,A 8,A 9,A 10,并对这些编码数据单元进行转发。但是,中继装置未成功接收X 6。中继装置在进行编码和转发时,X 6依旧参与编码,或者可以理解在为编码时X 6不置零。例如,若中继装置使用如表10示意的编码矩阵H,则编码数据单元A 1,A 2,A 3,A 4,A 5,A 6,A 7,A 8,A 9,A 10满足:A 1=X 1×h 1,A 2=X 2×h 1+X 1×h 2,A 3=X 3×h 1+X 2×h 2,A 4=X 4×h 1+X 3×h 2,A 5=X 5×h 1+X 4×h 2+X 1×h 3,A 6=X 6×h 1+X 5×h 2+X 2×h 3,A 7=X 7×h 1+X 6×h 2+X 3×h 3,A 8=X 8×h 1+X 7×h 2+X 4×h 3,A 9=X 9×h 1+X 8×h 2+X 5×h 3,A 10=X 9×h 1。虽然未成功接收X 6,但X 6依旧参与编码,因此与X 6相关的编码数据单元A 6和A 7分别满足
Figure PCTCN2021092560-appb-000201
Figure PCTCN2021092560-appb-000202
其中
Figure PCTCN2021092560-appb-000203
表示接收错误的X 6。中继装置可以生成并输出第一指示信息,例如在A 6和/或A 7的头信息中添加该第一指示信息,或者,该第一指示信息可携带在控制PDU或MAC CE中。该第一指示信息用于指示X 6,比如该第一指示信息可以是X 6的标识信息。接收装置可以根据该第一指示信息完成接收数据的译码。
相应于上述方法实施例给出的方法,本申请实施例还提供了相应的装置,包括用于执行上述实施例相应的模块。所述模块可以是软件,也可以是硬件,或者是软件和硬件结合。
图9给出了一种装置的结构示意图。所述装置900可以是网络设备,也可以是终端,也可以是支持网络设备实现上述方法的芯片、芯片系统、或处理器等,还可以是支持终端实现上述方法的芯片、芯片系统、或处理器等。该装置可用于实现上述方法实施例中描述的方法,具体可以参见上述方法实施例中的说明。
所述装置900可以包括一个或多个处理器901,所述处理器901也可以称为处理单元,可以实现一定的控制功能。所述处理器901可以是通用处理器或者专用处理器等。例如可以是基带处理器或中央处理器。基带处理器可以用于对通信协议以及通信数据进行处理,中央处理器可以用于对通信装置(如,基站、基带芯片,终端、终端芯片,DU或CU等)进行控 制,执行软件程序,处理软件程序的数据。
在一种可选的设计中,处理器901也可以存有指令和/或数据903,所述指令和/或数据903可以被所述处理器运行,使得所述装置900执行上述方法实施例中描述的方法。
在另一种可选的设计中,处理器901中可以包括用于实现接收和发送功能的收发单元。例如该收发单元可以是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路可以是分开的,也可以集成在一起。上述收发电路、接口或接口电路可以用于代码/数据的读写,或者,上述收发电路、接口或接口电路可以用于信号的传输或传递。
在又一种可能的设计中,装置900可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。
可选的,所述装置900中可以包括一个或多个存储器902,其上可以存有指令904,所述指令可在所述处理器上被运行,使得所述装置900执行上述方法实施例中描述的方法。可选的,所述存储器中还可以存储有数据。可选的,处理器中也可以存储指令和/或数据。所述处理器和存储器可以单独设置,也可以集成在一起。例如,上述方法实施例中所描述的对应关系可以存储在存储器中,或者存储在处理器中。
可选的,所述装置900还可以包括收发器905和/或天线906。所述处理器901可以称为处理单元,对所述装置900进行控制。所述收发器905可以称为收发单元、收发机、收发电路、收发装置或收发模块等,用于实现收发功能。
可选的,本申请实施例中的装置900可以用于执行本申请实施例中图4中描述的方法。
本申请中描述的处理器和收发器可实现在集成电路(integrated circuit,IC)、模拟IC、射频集成电路RFIC、混合信号IC、专用集成电路(application specific integrated circuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。该处理器和收发器也可以用各种IC工艺技术来制造,例如互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channel metal oxide semiconductor,PMOS)、双极结型晶体管(Bipolar Junction Transistor,BJT)、双极CMOS(BiCMOS)、硅锗(SiGe)、砷化镓(GaAs)等。
以上实施例描述中的装置可以是网络设备或者终端,但本申请中描述的装置的范围并不限于此,而且装置的结构可以不受图9的限制。装置可以是独立的设备或者可以是较大设备的一部分。例如所述装置可以是:
(1)独立的集成电路IC,或芯片,或,芯片系统或子系统;
(2)具有一个或多个IC的集合,可选的,该IC集合也可以包括用于存储数据和/或指令的存储部件;
(3)ASIC,例如调制解调器(MSM);
(4)可嵌入在其他设备内的模块;
(5)接收机、终端、智能终端、蜂窝电话、无线设备、手持机、移动单元、车载设备、网络设备、云设备、人工智能设备、机器设备、家居设备、医疗设备、工业设备等等;
(6)其他等等。
图10提供了一种终端的结构示意图。该终端设备可适用于图1所示出的场景中。为了便于说明,图10仅示出了终端设备的主要部件。如图10所示,终端1000包括处理器、存储器、控制电路、天线以及输入输出装置。处理器主要用于对通信协议以及通信数据进行处理, 以及对整个终端进行控制,执行软件程序,处理软件程序的数据。存储器主要用于存储软件程序和数据。射频电路主要用于基带信号与射频信号的转换以及对射频信号的处理。天线主要用于收发电磁波形式的射频信号。输入输出装置,例如触摸屏、显示屏,键盘等主要用于接收用户输入的数据以及对用户输出数据。
当终端开机后,处理器可以读取存储单元中的软件程序,解析并执行软件程序的指令,处理软件程序的数据。当需要通过无线发送数据时,处理器对待发送的数据进行基带处理后,输出基带信号至射频电路,射频电路将基带信号进行处理后得到射频信号并将射频信号通过天线以电磁波的形式向外发送。当有数据发送到终端时,射频电路通过天线接收到射频信号,该射频信号被进一步转换为基带信号,并将基带信号输出至处理器,处理器将基带信号转换为数据并对该数据进行处理。
为了便于说明,图10仅示出了一个存储器和处理器。在实际的终端中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本发明实施例对此不做限制。
作为一种可选的实现方式,处理器可以包括基带处理器和中央处理器,基带处理器主要用于对通信协议以及通信数据进行处理,中央处理器主要用于对整个终端设备进行控制,执行软件程序,处理软件程序的数据。图10中的处理器集成了基带处理器和中央处理器的功能,本领域技术人员可以理解,基带处理器和中央处理器也可以是各自独立的处理器,通过总线等技术互联。本领域技术人员可以理解,终端可以包括多个基带处理器以适应不同的网络制式,终端可以包括多个中央处理器以增强其处理能力,终端的各个部件可以通过各种总线连接。所述基带处理器也可以表述为基带处理电路或者基带处理芯片。所述中央处理器也可以表述为中央处理电路或者中央处理芯片。对通信协议以及通信数据进行处理的功能可以内置在处理器中,也可以以软件程序的形式存储在存储单元中,由处理器执行软件程序以实现基带处理功能。
在一个例子中,可以将具有收发功能的天线和控制电路视为终端1000的收发单元1011,将具有处理功能的处理器视为终端1000的处理单元1012。如图10所示,终端1000包括收发单元1011和处理单元1012。收发单元也可以称为收发器、收发机、收发装置等。可选的,可以将收发单元1011中用于实现接收功能的器件视为接收单元,将收发单元1011中用于实现发送功能的器件视为发送单元,即收发单元711包括接收单元和发送单元。示例性的,接收单元也可以称为接收机、接收器、接收电路等,发送单元可以称为发射机、发射器或者发射电路等。可选的,上述接收单元和发送单元可以是集成在一起的一个单元,也可以是各自独立的多个单元。上述接收单元和发送单元可以在一个地理位置,也可以分散在多个地理位置。
如图11所示,本申请又一实施例提供了一种装置1100。该装置可以是终端,也可以是终端的部件(例如,集成电路,芯片等等)。或者,该装置可以是网络设备,也可以是网络设备的部件(例如,集成电路,芯片等等)。该装置也可以是其他通信模块,用于实现本申请方法实施例中的方法。该装置1100可以包括:处理模块1102(或称为处理单元)。可选的,还可以包括收发模块1101(或称为收发单元)和/或存储模块1103(或称为存储单元)。
在一种可能的设计中,如图11中的一个或者多个模块可能由一个或者多个处理器来实现,或者由一个或者多个处理器和存储器来实现;或者由一个或多个处理器和收发器实现;或者由一个或者多个处理器、存储器和收发器实现,本申请实施例对此不作限定。所述处理器、存储器、收发器可以单独设置,也可以集成。
所述装置具备实现本申请实施例描述的终端的功能,比如,所述装置包括终端执行本申 请实施例描述的终端涉及步骤所对应的模块或单元或手段(means),所述功能或单元或手段(means)可以通过软件实现,或者通过硬件实现,也可以通过硬件执行相应的软件实现,还可以通过软件和硬件结合的方式实现。详细可进一步参考前述对应方法实施例中的相应描述。或者,所述装置具备实现本申请实施例描述的网络设备的功能,比如,所述装置包括所述网络设备执行本申请实施例描述的网络设备涉及步骤所对应的模块或单元或手段(means),所述功能或单元或手段(means)可以通过软件实现,或者通过硬件实现,也可以通过硬件执行相应的软件实现,还可以通过软件和硬件结合的方式实现。详细可进一步参考前述对应方法实施例中的相应描述。
可选的,本申请实施例中的装置1100中各个模块可以用于执行本申请实施例中图4描述的方法。
在一种可能的设计中,一种装置1100可包括:处理模块1102和收发模块1101。处理模块1102用于获得T个待编码数据单元,对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元。其中,L个待编码数据单元组包括上述全部的T个待编码数据单元,并且L个待编码数据单元组中的每个待编码数据单元组最多包含T个待编码数据单元中的M个待编码数据单元,T为大于1的整数,L为大于等于T的整数,M为大于0且小于T的整数。可选地,L满足T≤L≤T+M-1。收发模块1101用于输出编码数据单元。可以理解,本申请并不限定具体的编码类型。例如编码类型可以是分组编码、卷积编码或随机线性编码,编码类型还可以是网络编码(比如分组网络编码、卷积网络编码或随机线性网络编码)。该装置1100可以是终端,也可以是终端的部件(例如处理器、芯片、或芯片系统等)。或者该装置1100可以是网络设备,也可以是网络设备的部件(例如处理器、芯片、或芯片系统等)。
通过上述装置能够待编码数据单元分成多个待编码数据单元组分别进行编码,并且每个待编码数据单元组中包含的待编码数据单元的数量小于所有待编码数据单元的数量。该方法通过对待编码数据单元进行有选择性地编码,能够降低编码数据的相关性,提高编码数据对抗信道衰落以及信道变化的能力,从而提高编码数据的接收可靠性并提高频谱效率。
可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元,或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元。
在上述装置1100某些可能的实施方式中,T个待编码数据单元包括N个原始数据单元,L个待编码数据单元组中的每个待编码数据单元组最多包含N个原始数据单元中的M个原始数据单元,N为大于1的整数,M为大于0且小于N的整数。上述N、L和M可统称为编码参数。可选地,待编码数据单元组的数量L满足N≤L≤N+M-1。可选地,获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,具体实现为:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元。可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。可选地,处理模块1102还可以用于针对生成的编码数据单元添加头信息,该头信息包含以下的 一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、或编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在上述装置1100某些可能的实施方式中,处理模块1102可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含N个原始数据单元中的第一个原始数据单元和最后一个原始数据单元时,可理解为滑动窗口进行循环移位。
在上述装置1100某些可能的实施方式中,T个待编码数据单元包括N个原始数据单元和P个交织数据单元,L个待编码数据单元组中的每个待编码数据单元组最多包含N个原始数据单元和P个交织数据单元中的M个原始数据单元和/或交织数据单元,N为大于1的整数,P为大于1的整数,M为大于0且小于N+P的整数。上述N、P、L和M可统称为编码参数。可选地,待编码数据单元组的数量L满足N+P≤L≤N+P+M-1。可选地,处理模块1102具体用于获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元,可理解为滑动窗口进行循环移位。可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。可选地,处理模块1102还可以用于针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在上述装置1100某些可能的实施方式中,处理模块1102可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有N个原始数据单元和P个交织数据单元中所有的原始数据单元和交织数据单元。可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含N+P个原始数据单元和交织数据单元中的第一个数据单元和最后一个数据单元时,可理解为滑动窗口 进行循环移位。
在上述装置1100某些可能的实施方式中,T个待编码数据单元包括B个原始数据块,上述L个待编码数据单元组中的每个待编码数据单元组最多包含B个原始数据块中的M个原始数据块,B为大于1的整数,M为大于0且小于B的整数。原始数据块一般可理解为比原始数据单元更大的待编码数据单元,例如,B个原始数据块中可包含原始数据单元,其中第b个原始数据块包含N b个原始数据单元,b为大于0且小于等于B的整数。或者,原始数据块中可包含原始数据单元和交织数据单元,其中第b个原始数据块包含N b个原始数据单元和交织数据单元,b为大于0且小于等于B的整数。上述B、L、N b和M可统称为编码参数。可选地,待编码数据单元组的数量L满足B≤L≤B+M-1。可选地,处理模块1102具体用于:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含B个原始数据块中的第一个原始数据块和最后一个原始数据块。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含B个原始数据块中的第一个原始数据块和最后一个原始数据块。可选地,处理模块1102还可以用于针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在上述装置1100某些可能的实施方式中,处理模块1102可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有B个原始数据块中所有的原始数据块。可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含B个原始数据块中的第一个原始数据块和最后一个原始数据块时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含B个原始数据块中的第一个原始数据块和最后一个原始数据块时,可理解为滑动窗口进行循环移位。
在上述装置1100某些可能的实施方式中,T个待编码数据单元包括B个原始数据块和Q个交织数据块,L个待编码数据单元组中的每个待编码数据单元组最多包含B个原始数据块和所述Q个交织数据块中的M个原始数据块和/或交织数据块,B为大于1的整数,Q为大于1的整数,M为大于0且小于B+Q的整数。其中,原始数据块中包含原始数据单元,交织数据块中包含交织数据单元。B、Q、L和M可统称为编码参数。可选地,待编码数据单元组的数量L满足B+Q≤L≤B+Q+M-1。可选地,处理模块1102具体用于:获得与L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。可选地,L个待编码数据单元组中的每个待编码数据单元组不同时包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。或者,L个待编码数据单元组中的一个或多个待编码数据单元组中包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块,可理解为滑动窗口进行循环移位。可选地,处理模块1102还可以用于针对生成的编码数据单元添加头信息,该头信息包含以下 的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在上述装置1100某些可能的实施方式中,处理模块1102可以采用滑动窗口的方式获得该L个待编码数据单元组,并对这L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与该L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。可以理解,采用滑动窗口的方式获得该L个待编码数据单元组包含有B个原始数据块和Q个交织数据块中所有的原始数据块和交织数据块。可选地,当L个待编码数据单元组中的每个待编码数据单元组不同时包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块时,可理解为滑动窗口在滑动时不进行循环移位(即首尾循环移位)。当L个待编码数据单元组中的一个或多个待编码数据单元组中包含B+Q个原始数据块和交织数据块中的第一个数据块和最后一个数据块时,可理解为滑动窗口进行循环移位。
在上述装置1100某些可能的实施方式中,可选地,T个待编码数据单元包括错误数据单元,该错误数据单元的数量为一个或多个。L个待编码数据单元组中的每个待编码数据单元组不包含该错误数据单元,或者,L个待编码数据单元组中的一个或多个待编码数据单元组包含该错误数据单元。当L个待编码数据单元组中的一个或多个待编码数据单元组包含该错误数据单元时,处理模块1102还用于生成并输出指示该错误数据单元的第一指示信息,该第一指示信息可以携带在头信息中。可选地,收发模块1101还用于发送或输出第一指示信息。
当L个待编码数据单元组中的每个待编码数据单元组不包含该错误数据单元时,处理模块1102在用于对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,生成与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元时,不生成与该错误数据单元对应的编码数据单元。可选地,处理模块1102还用于生成第二指示信息,该第二指示信息指示与该错误数据单元对应的编码数据单元是非完整的,该第二指示信息可以携带在头信息中,也可以携带在控制协议数据单元(protocol data unit,PDU)中,还可以携带在媒体接入控制(media access control,MAC)控制元素(control element,CE)中。可选地,收发模块1101还用于发送或输出第二指示信息。
当L个待编码数据单元组中的每个待编码数据单元组不包含该错误数据单元时,处理模块1102在用于对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,生成与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元时,还可以将错误数据单元置0,也可理解为错误数据单元不参与编码。可选地,处理模块1102还用于生成第三指示信息,该第三指示信息指示该错误数据单元,该第三指示信息可以携带在头信息中,也可以携带在控制PDU中,还可以携带在MAC CE中。可选地,收发模块1101还用于发送或输出第三指示信息。
当L个待编码数据单元组中的一个或多个待编码数据单元组包含该错误数据单元时,处理模块1102在用于对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,生成与L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元时,该错误数据单元参与编码。处理模块1102还用于生成指示该错误数据单元的上述第一指示信息,该第一指示信息可以携带在头信息中,也可以携带在控制PDU中,还可以携带在 MAC CE中。可选地,收发模块1101还用于发送或输出第一指示信息。
在另一种可能的设计中,一种装置1100可包括处理模块1102。处理模块1102用于获得T个待编码数据单元,并对T个待编码数据单元O 1,O 2,…,O T进行编码获得K个编码数据单元A 1,A 2,…,A K,其中T为大于1的整数,K大于或等于T,K个编码数据单元满足:
[A 1,A 2,…,A K]=[O 1,O 2,…,O T]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵中的斜对角线上存在GF(q)中的非零元素。可选地,上述斜对角线的数量为M,M为大于0且小于T的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。
在上述装置1100某些可能的实施方式中,T个待编码数据单元包括N个原始数据单元X 1,X 2,…,X N,处理模块1102用于对该N个原始数据单元进行编码获得K个编码数据单元A 1,A 2,…,A K,K大于或等于N,K个编码数据单元满足:
[A 1,A 2,…,A K]=[X 1,X 2,…,X N]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵中的斜对角线上存在GF(q)中的非零元素。可选地,上述斜对角线的数量为M,M为大于0且小于N的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。R=N/K可理解为编码码率。上述N、K、R和M可统称为编码参数。
例如一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000204
编码矩阵H(可记为H 1)是一个N*K维的矩阵,其中包含N*N维的子矩阵
Figure PCTCN2021092560-appb-000205
和N*(K-N)维的子矩阵
Figure PCTCN2021092560-appb-000206
其中,子矩阵
Figure PCTCN2021092560-appb-000207
的主对角线上以及平行于主对角线的M-1条斜对角线上存在GF(q)中的非零元素。
又例如另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000208
编码矩阵H(可记为H 2)是一个N*K维的矩阵,其中包含N*(N+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000209
和N*(K-N-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000210
其中,子矩阵
Figure PCTCN2021092560-appb-000211
的M条斜对角线上存在GF(q)中的非零元素。
又例如另一种可能的编码矩阵H满足:
H=[I N H′]=H 3
其中,I N为N*N维的单位矩阵。矩阵H′为上述的H 1或H 2,或者,矩阵H′包含H 1中的一个或多个列向量,或者,矩阵H′包含H 2中的一个或多个列向量。
在上述实施方式中,可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。可选地,处理模块1102还可以用于针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、或编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在上述装置1100某些可能的实施方式中,T个待编码数据单元包括N个原始数据单元 X 1,X 2,…,X N和P个交织数据单元X′ 1,X′ 2,…,X′ P,处理模块1102用于对该N个原始数据单元和P个交织数据单元进行编码获得K个编码数据单元A 1,A 2,…,A K,K大于或等于N+P,K个编码数据单元满足:
[A 1,A 2,…,A K]=[X 1,X 2,…,X N,X′ 1,X′ 2,…,X′ P]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵中的斜对角线上存在GF(q)中的非零元素。可选地,上述斜对角线的数量为M,M为大于0且小于N+P的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。R=N/K可理解为编码码率。上述N、K、R和M可统称为编码参数。
例如一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000212
编码矩阵H(可记为H 4)是一个(N+P)*K维的矩阵,其中包含(N+P)*(N+P)维的子矩阵
Figure PCTCN2021092560-appb-000213
和(N+P)*(K-N-P)维的子矩阵
Figure PCTCN2021092560-appb-000214
其中,子矩阵
Figure PCTCN2021092560-appb-000215
的主对角线上以及平行于主对角线的M-1条斜对角线上存在GF(q)中的非零元素。
又例如另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000216
编码矩阵H(可记为H 5)是一个(N+P)*K维的矩阵,其中包含(N+P)*(N+P+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000217
和(N+P)*(K-N-P-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000218
其中,子矩阵
Figure PCTCN2021092560-appb-000219
的M条斜对角线上存在GF(q)中的非零元素。
又例如另一种可能的编码矩阵H满足:
H=[I N+P H′]=H 6
其中,I N+P为(N+P)*(N+P)维的单位矩阵。矩阵H′为上述的H 4或H 5,或者,矩阵H′包含H 4中的一个或多个列向量,或者,矩阵H′包含H 5中的一个或多个列向量。
在上述实施方式中,可选地,上述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。可选地,处理模块1102还可以用于针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在另一种可能的设计中,一种装置1100可包括处理模块1102。处理模块1102用于获得T个待编码数据单元,并对T个待编码数据单元O 1,O 2,…,O T进行编码,获得D个包含编码数据单元的编码数据块C 1,C 2,…,C D。其中,T为大于1的整数,D大于或等于T,D个编码数据块满足:
[C 1,C 2,…,C D]=[O 1,O 2,…,O T]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵。可选地,上述斜对角线的数量为M,M为大于0且小于T的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。
在上述装置1100某些可能的实施方式中,T个待编码数据单元包括B>1个包含原始数据 单元的原始数据块BL 1,…,BL B,或者,T个待编码数据单元包括B>1个包含原始数据单元和交织数据单元的原始数据块BL 1,…,BL B。处理模块1102用于对该B个原始数据块进行编码获得D个包含编码数据单元的编码数据块C 1,C 2,…,C D,D大于或等于B,D个编码数据块满足:
[C 1,C 2,…,C D]=[BL 1,…,BL B]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵。可选地,上述斜对角线的数量为M,M为大于0且小于B的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。上述B、D和M可统称为编码参数。
例如一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000220
编码矩阵H(可记为H 7)是一个B*D维的矩阵,其中包含B*B维的子矩阵
Figure PCTCN2021092560-appb-000221
和B*(D-B)维的子矩阵
Figure PCTCN2021092560-appb-000222
本示例下对上述H中包含的子矩阵
Figure PCTCN2021092560-appb-000223
没有特别要求,例如可以在GF(q)中随机获得
Figure PCTCN2021092560-appb-000224
中的元素。子矩阵
Figure PCTCN2021092560-appb-000225
的主对角线上以及平行于主对角线的M-1条斜对角线上存在包含GF(q)中元素的非零矩阵。
又例如另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000226
编码矩阵H(可记为H 8)是一个B*D维的矩阵,其中包含B*(B+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000227
和B*(D-B-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000228
其中,子矩阵
Figure PCTCN2021092560-appb-000229
的M条斜对角线上存在包含GF(q)中元素的非零矩阵。
又例如另一种可能的编码矩阵H满足:
H=[I B H′]=H 9
其中,B*B维的矩阵I B包含B*B个N b×N b维的单位矩阵,N b表示原始数据块b中包含的原始数据单元的个数,1≤b≤B,不同的原始数据块中包含的原始数据单元的个数可以相同也可以不同。矩阵H′为上述的H 7或H 8,或者,矩阵H′包含H 7中的一个或多个列向量,或者,矩阵H′包含H 8中的一个或多个列向量。
在上述实施方式中,可选地,处理模块1102还可以用于针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
在上述装置1100某些可能的实施方式中,T个待编码数据单元包括B个原始数据块BL 1,…,BL B和Q个交织数据块BL′ 1,…,BL′ Q。其中,B个原始数据块中的原始数据块b包含N b个原始数据单元,Q个交织数据块中的交织数据块q′包含N q′个交织数据单元。处理模块1102用于对该B个原始数据块和Q个交织数据块进行编码获得D个包含编码数据单元的编码数据块C 1,C 2,…,C D,D大于或等于B+Q,D个编码数据块满足:
[C 1,C 2,…,C D]=[BL 1,…,BL B,BL′ 1,…,BL′ Q]×H
其中H表示编码矩阵,H中包含GF(q)中的元素,q为大于0的整数,并且H中包含至少一个子矩阵,该子矩阵的斜对角线上存在包含GF(q)中元素的非零矩阵。可选地,上述斜对角线的数量为M,M为大于0且小于B+Q的整数。当该子矩阵为方阵时,上述斜对角线包括方阵的主对角线,以及与主对角线平行的斜对角线。上述B、Q、N b、N q′、D和M可统称为编码参数。
例如一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000230
编码矩阵H(可记为H 10)是一个(B+Q)*D维的矩阵,其中包含(B+Q)*(B+Q)维的子矩阵
Figure PCTCN2021092560-appb-000231
和(B+Q)*(D-B-Q)维的子矩阵
Figure PCTCN2021092560-appb-000232
其中,子矩阵
Figure PCTCN2021092560-appb-000233
的主对角线上以及平行于主对角线的M-1条斜对角线上存在包含GF(q)中元素的非零矩阵。
又例如另一种可能的编码矩阵H满足:
Figure PCTCN2021092560-appb-000234
编码矩阵H(可记为H 11)是一个(B+Q)*D维的矩阵,其中包含(B+Q)*(B+Q+M-1)维的子矩阵
Figure PCTCN2021092560-appb-000235
和(B+Q)*(D-B-Q-M+1)维的子矩阵
Figure PCTCN2021092560-appb-000236
其中,子矩阵
Figure PCTCN2021092560-appb-000237
的M条斜对角线上存在包含GF(q)中元素的非零矩阵。
又例如另一种可能的编码矩阵H满足:
H=[I B+Q H′]=H 12
其中,(B+Q)*(B+Q)维的矩阵I B+Q包含(B+Q)*(B+Q)个(N b+N q′)×(N b+N q′)维的单位矩阵。矩阵H′为上述的H 10或H 11,或者,矩阵H′包含H 10中的一个或多个列向量,或者,矩阵H′包含H 11中的一个或多个列向量。
在上述实施方式中,可选地,处理模块1102还可以用于针对生成的编码数据单元添加头信息,该头信息包含以下的一项或多项:指示一个或多个编码参数的信息、编码数据单元对应的原始数据块包含的原始数据单元的个数信息、编码数据单元对应的原始数据块的标识信息(如block ID)、编码数据单元在对应的原始数据块中的标识信息(如packet ID)、编码数据单元对应的编码核指示信息、编码数据单元对应的系数列向量指示信息(系数列向量包含在编码矩阵中)、编码起始位置对应的原始数据单元的标识信息(如原始数据单元的索引)、或交织信息。如果是多跳系统,头信息中还可能包含发送端的标识信息。
可以理解的是,本申请实施例中的一些可选的特征,在某些场景下,可以不依赖于其他特征,比如其当前所基于的方案,而独立实施,解决相应的技术问题,达到相应的效果,也可以在某些场景下,依据需求与其他特征进行结合。相应的,本申请实施例中给出的装置也可以相应的实现这些特征或功能,在此不予赘述。
本领域技术人员还可以理解到本申请实施例列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员对于相应的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请实施例保护的范围。
可以理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分 立硬件组件。
本申请所描述的方案可通过各种方式来实现。例如,这些技术可以用硬件、软件或者硬件结合的方式来实现。对于硬件实现,用于在通信装置(例如,基站,终端、网络实体、或芯片)处执行这些技术的处理单元,可以实现在一个或多个通用处理器、DSP、数字信号处理器件、ASIC、可编程逻辑器件、FPGA、或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合中。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例的功能。
本申请还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述任一方法实施例的功能。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
可以理解,说明书通篇中提到的“实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各个实施例未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后, 各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
可以理解,在本申请中,“当…时”、“若”以及“如果”均指在某种客观情况下装置会做出相应的处理,并非是限定时间,且也不要求装置实现时一定要有判断的动作,也不意味着存在其它限定。
本申请中的“同时”可以理解为在相同的时间点,也可以理解为在一段时间段内,还可以理解为在同一个周期内。
本领域技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。本申请中的编号(也可被称为索引)的具体取值、数量的具体取值、以及位置仅作为示意的目的,并不是唯一的表示形式,也并不用来限制本申请实施例的范围。本申请中涉及的第一个、第二个等各种数字编号也仅为描述方便进行的区分,并不用来限制本申请实施例的范围。
本申请中对于使用单数表示的元素旨在用于表示“一个或多个”,而并非表示“一个且仅一个”,除非有特别说明。本申请中,在没有特别说明的情况下,“至少一个”旨在用于表示“一个或者多个”,“多个”旨在用于表示“两个或两个以上”。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A可以是单数或者复数,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
本文中术语“……中的至少一个”或“……中的至少一种”,表示所列出的各项的全部或任意组合,例如,“A、B和C中的至少一种”,可以表示:单独存在A,单独存在B,单独存在C,同时存在A和B,同时存在B和C,同时存在A、B和C这六种情况,其中A可以是单数或者复数,B可以是单数或者复数,C可以是单数或者复数。
可以理解,在本申请各实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本申请中各表所示的对应关系可以被配置,也可以是预定义的。各表中的信息的取值仅仅是举例,可以配置为其他值,本申请并不限定。在配置信息与各参数的对应关系时,并不一定要求必须配置各表中示意出的所有对应关系。例如,本申请中的表格中,某些行示出的对应关系也可以不配置。又例如,可以基于上述表格做适当的变形调整,例如,拆分,合并等等。上述各表中标题示出参数的名称也可以采用通信装置可理解的其他名称,其参数的取值或表示方式也可以通信装置可理解的其他取值或表示方式。上述各表在实现时,也可以采用其他的数据结构,例如可以采用数组、队列、容器、栈、线性表、指针、链表、树、图、结构体、类、堆、散列表或哈希表等。
本申请中的预定义可以理解为定义、预先定义、存储、预存储、预协商、预配置、固化、或预烧制。
本领域普通技术人员可以理解,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解,为描述的方便和简洁,上述描述的系统、装置和单元的 具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
可以理解,本申请中描述的系统、装置和方法也可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中各个实施例之间相同或相似的部分可以互相参考。在本申请中各个实施例、以及各实施例中的各个实施方式/实施方法/实现方法中,如果没有特殊说明以及逻辑冲突,不同的实施例之间、以及各实施例中的各个实施方式/实施方法/实现方法之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例、以及各实施例中的各个实施方式/实施方法/实现方法中的技术特征根据其内在的逻辑关系可以组合形成新的实施例、实施方式、实施方法、或实现方法。以上所述的本申请实施方式并不构成对本申请保护范围的限定。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (21)

  1. 一种编码方法,其特征在于,包括:
    获得T个待编码数据单元,T为大于1的整数;
    对L个待编码数据单元组中的每个待编码数据单元组分别进行编码,获得与所述L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,其中,所述L个待编码数据单元组包括全部的所述T个待编码数据单元,并且所述L个待编码数据单元组中的每个待编码数据单元组最多包含所述T个待编码数据单元中的M个待编码数据单元,L为大于等于T的整数,M为大于0且小于T的整数;以及输出所述编码数据单元。
  2. 根据权利要求1所述的方法,其特征在于,所述T个待编码数据单元包括N个原始数据单元,所述L个待编码数据单元组中的每个待编码数据单元组最多包含所述N个原始数据单元中的M个原始数据单元,N为大于1的整数,M为大于0且小于N的整数。
  3. 根据权利要求2所述的方法,其特征在于,所述L满足N≤L≤N+M-1;
    所述获得与所述L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,包括:
    获得与所述L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。
  4. 根据权利要求1所述的方法,其特征在于,所述T个待编码数据单元包括N个原始数据单元和P个交织数据单元,所述L个待编码数据单元组中的每个待编码数据单元组最多包含所述N个原始数据单元和所述P个交织数据单元中的M个原始数据单元和/或交织数据单元,N为大于1的整数,P为大于1的整数,M为大于0且小于N+P的整数。
  5. 根据权利要求4所述的方法,其特征在于,所述L满足N+P≤L≤N+P+M-1;
    所述获得与所述L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,包括:
    获得与所述L个待编码数据单元组中的每个待编码数据单元组一一对应的一个编码数据单元。
  6. 根据权利要求2至5中任一项所述的方法,其特征在于,所述N个原始数据单元包含在B个原始数据块中,B为大于1的整数。
  7. 根据权利要求1所述的方法,其特征在于,所述T个待编码数据单元包括B个原始数据块,所述L个待编码数据单元组中的每个待编码数据单元组最多包含所述B个原始数据块中的M个原始数据块,B为大于1的整数,M为大于0且小于B的整数。
  8. 根据权利要求7所述的方法,其特征在于,所述L满足B≤L≤B+M-1;
    所述获得与所述L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,包括:
    获得与所述L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。
  9. 根据权利要求7或8所述的方法,其特征在于,所述B个原始数据块包含原始数据单元,或者,所述B个原始数据块包含原始数据单元和交织数据单元。
  10. 根据权利要求1所述的方法,其特征在于,所述T个待编码数据单元包括B个原始数据块和Q个交织数据块,所述L个待编码数据单元组中的每个待编码数据单元组最多包含所述B个原始数据块和所述Q个交织数据块中的M个原始数据块和/或交织数据块,B为大于1的整数,Q为大于1的整数,M为大于0且小于B+Q的整数。
  11. 根据权利要求10所述的方法,其特征在于,所述L满足B+Q≤L≤B+Q+M-1;
    所述获得与所述L个待编码数据单元组中的每个待编码数据单元组一一对应的一个或多个编码数据单元,包括:
    获得与所述L个待编码数据单元组中的每个待编码数据单元组一一对应的多个编码数据单元。
  12. 根据权利要求1至11中任一项所述的方法,其特征在于,所述L个待编码数据单元组中的每个待编码数据单元组不同时包含所述T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元。
  13. 根据权利要求1至11中任一项所述的方法,其特征在于,所述L个待编码数据单元组中的一个或多个待编码数据单元组中包含所述T个待编码数据单元中的第一个待编码数据单元和最后一个待编码数据单元。
  14. 根据权利要求1至13中任一项所述的方法,其特征在于,所述T个待编码数据单元中包括错误数据单元。
  15. 根据权利要求14所述的方法,其特征在于,所述L个待编码数据单元组中的每个待编码数据单元组不包含所述错误数据单元。
  16. 根据权利要求14所述的方法,其特征在于,所述L个待编码数据单元组中的一个或多个待编码数据单元组包含所述错误数据单元;
    所述方法还包括:
    生成第一指示信息,所述第一指示信息指示所述错误数据单元;以及
    输出所述第一指示信息。
  17. 一种通信装置,其特征在于,所述装置用于执行权利要求1至16中任一项所述的方法。
  18. 一种通信装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得所述装置执行如权利要求1至16中任一项所述的方法。
  19. 一种计算机可读存储介质,其上存储有计算机程序或指令,其特征在于,所述计算机程序或指令被执行时使得计算机执行如权利要求1至16中任一项所述的方法。
  20. 一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,其特征在于,当所述计算机程序代码在计算机上运行时,使得计算机实现权利要求1至16中任一项所述的方法。
  21. 一种通信装置,其特征在于,所述装置包括用于执行权利要求1至16中任一项所述的方法的单元。
PCT/CN2021/092560 2020-06-08 2021-05-10 编码方法及装置 WO2021249080A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP21821363.5A EP4149031A4 (en) 2020-06-08 2021-05-10 CODING METHOD AND DEVICE
US18/077,061 US20230103108A1 (en) 2020-06-08 2022-12-07 Encoding method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010514547.9 2020-06-08
CN202010514547.9A CN113839736A (zh) 2020-06-08 2020-06-08 编码方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/077,061 Continuation US20230103108A1 (en) 2020-06-08 2022-12-07 Encoding method and apparatus

Publications (1)

Publication Number Publication Date
WO2021249080A1 true WO2021249080A1 (zh) 2021-12-16

Family

ID=78845144

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/092560 WO2021249080A1 (zh) 2020-06-08 2021-05-10 编码方法及装置

Country Status (4)

Country Link
US (1) US20230103108A1 (zh)
EP (1) EP4149031A4 (zh)
CN (1) CN113839736A (zh)
WO (1) WO2021249080A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023116625A1 (zh) * 2021-12-21 2023-06-29 华为技术有限公司 一种数据编码方法及通信装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515728A (zh) * 2015-11-24 2016-04-20 湖北经济学院 一种基于滑动窗口的网络编码方法
CN108347295A (zh) * 2017-01-25 2018-07-31 华为技术有限公司 一种数据传输方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3062899A (en) * 1997-12-12 1999-06-28 3Com Corporation A forward error correction system for packet based real-time media
US6851084B2 (en) * 2002-06-10 2005-02-01 Harris Corporation Forward error correction method and system for reliable transmission of real time data over a packet based network
US9843413B2 (en) * 2016-03-25 2017-12-12 Cisco Technology, Inc. Forward error correction for low-delay recovery from packet loss

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515728A (zh) * 2015-11-24 2016-04-20 湖北经济学院 一种基于滑动窗口的网络编码方法
CN108347295A (zh) * 2017-01-25 2018-07-31 华为技术有限公司 一种数据传输方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023116625A1 (zh) * 2021-12-21 2023-06-29 华为技术有限公司 一种数据编码方法及通信装置

Also Published As

Publication number Publication date
CN113839736A (zh) 2021-12-24
US20230103108A1 (en) 2023-03-30
EP4149031A4 (en) 2023-10-25
EP4149031A1 (en) 2023-03-15

Similar Documents

Publication Publication Date Title
WO2019158031A1 (zh) 编码的方法、译码的方法、编码设备和译码设备
CN108737021B (zh) Polar码传输方法及装置
CN110800216A (zh) 用于通信和广播系统的速率匹配的方法和装置
WO2022161201A1 (zh) 编码调制与解调解码方法及装置
KR20200093627A (ko) 내부 코드와 결부된 체계적 펑처링된 폴라 코드의 인코딩
WO2021249080A1 (zh) 编码方法及装置
WO2022268130A1 (zh) 一种网络编码方法及装置
WO2023273995A1 (zh) 数据处理方法及装置
WO2020233401A1 (zh) 通信方法和装置
WO2018218471A1 (zh) 信息处理的方法和通信装置
TW202236811A (zh) 極化編碼調製、解調解碼的方法和裝置
CN110034851B (zh) 编码方法、编码设备以及系统
WO2023273975A1 (zh) 一种数据传输方法和通信装置
WO2022051897A1 (zh) 编码方法及装置
WO2023071711A1 (zh) 一种编码方法、译码方法及通信装置
WO2022011715A1 (zh) 数据传输方法及装置
WO2023030236A1 (zh) 一种数据传输方法、数据接收方法和通信装置
WO2023226690A1 (zh) 一种编码、译码方法及装置
WO2022171019A1 (zh) 一种编码和译码方法及相关装置
WO2024103386A1 (zh) 一种基于ldpc码的通信方法和通信装置
WO2022033566A1 (zh) 一种有限域的编码或译码方法以及相关装置
WO2023109733A1 (zh) 一种速率匹配的方法及装置
WO2022268064A1 (zh) 数据传输方法及相关装置
WO2022111575A1 (zh) 传输数据的方法以及装置
WO2022117061A1 (zh) 一种极化码辅助比特的确定方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21821363

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021821363

Country of ref document: EP

Effective date: 20221206

NENP Non-entry into the national phase

Ref country code: DE