WO2020224386A1 - Data decoding method and apparatus - Google Patents

Data decoding method and apparatus Download PDF

Info

Publication number
WO2020224386A1
WO2020224386A1 PCT/CN2020/084420 CN2020084420W WO2020224386A1 WO 2020224386 A1 WO2020224386 A1 WO 2020224386A1 CN 2020084420 W CN2020084420 W CN 2020084420W WO 2020224386 A1 WO2020224386 A1 WO 2020224386A1
Authority
WO
WIPO (PCT)
Prior art keywords
llr
decoding
decoded data
sequences
sequence
Prior art date
Application number
PCT/CN2020/084420
Other languages
French (fr)
Chinese (zh)
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 华为技术有限公司
Publication of WO2020224386A1 publication Critical patent/WO2020224386A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received

Definitions

  • This application relates to the field of communications, and in particular to a method and device for data decoding.
  • Low density parity check code is a linear block code, which can be uniquely determined by the check matrix or the Tanner graph corresponding to the check matrix.
  • LDPC codes can be used for coding in communication systems.
  • 5G fifth-generation mobile communication technology
  • 5G fifth-generation mobile communication technology
  • the receiving device needs to perform LDPC decoding on the data.
  • VN variable nodes
  • the VN set Select a part of the VN, saturate the value of the log-likelihood ratio (LLR) of the original channel corresponding to the part of the VN, and saturate to the maximum positive and negative maximum, and then saturate the LLR to generate
  • LLR log-likelihood ratio
  • the decoding process is a serial process, that is, after the previous decoding is completed, the next level of decoding process is performed, and each level of decoding needs to perform the next level of VN
  • the choice is more complicated and the delay is longer.
  • This application provides a method and device for data decoding, which are used to reduce decoding complexity, reduce decoding delay, and improve decoding accuracy by perturbing LLR sequences.
  • the first aspect of the present application provides a data decoding method, including:
  • one or more first LLRs in the first LLR sequence are disturbed to obtain one or more sets of second LLR sequences, and then the one or more sets of second LLR sequences are translated Code to obtain the first decoded data.
  • a new LLR sequence that is, the second LLR sequence
  • the new LLR sequence is used for decoding, which improves the decoding success.
  • the accuracy of the code data can be obtained for the obtained multiple sets of new second LLR sequences, parallel decoding can be realized, and the complexity and time delay of LDPC decoding can be reduced, and the decoding efficiency can be improved.
  • decoding one or more sets of second LLR sequences to obtain first decoded data may include:
  • the second LLR sequence can be decoded iteratively by LDPC. If the decoded data obtained by the LDPC iterative decoding of a group of second LLR sequences is successfully checked, the second LLR sequence can be The decoded data serves as the first decoded data. Therefore, the second LLR sequence obtained after perturbing the first LLR sequence can be used to perform LDPC iterative decoding to obtain decoded data with successful verification.
  • decoding one or more sets of second LLR sequences to obtain first decoded data may include:
  • LDPC iterative decoding can be performed on each group of second LLR sequences in one or more groups of second LLR sequences to obtain one or more groups of successfully verified decoded data, and then according to preset
  • the rule determines a set of decoded data as the first decoded data from one or more sets of decoded data successfully verified.
  • this group of decoded data is regarded as the first decoded data.
  • the decoded data can be decoded from the multiple groups according to preset rules.
  • One group of code data is selected as the first decoded data, and therefore, successfully decoded decoded data can be obtained.
  • determining a set of decoded data from one or more sets of successfully verified decoded data as the first decoded data according to a preset rule may include:
  • a group of decoded data whose Euclidean metric between the first LLR sequence and the first LLR sequence is less than or equal to a threshold is determined from one or more sets of decoded data successfully verified as the first decoded data.
  • a group of decoded data equal to or equal to the threshold is used as the first decoded data.
  • performing LDPC iterative decoding on a group of second LLR sequences may include:
  • the second LLR sequence updates the information Q ji [k] transmitted by the j-th variable node to the i-th check node, 1 ⁇ k ⁇ N, and N is less than or equal to the preset number of iterations; among them, a group of the second LLR sequence
  • the decoded data of the k-th iterative decoding includes R ij [k] and Q ji [k].
  • variable nodes and check nodes in each iteration of decoding, can be alternately updated to complete the decoding of the second LLR sequence to obtain accurate decoded data.
  • updating the information R ij [k] transmitted by the i-th check node to the j-th variable node may include:
  • the information transmitted from the i-th check node to the j-th variable node can be updated by the correction value, and the correction value can be used to improve the decoding performance, compensate for calculation errors, and improve the accuracy of decoding.
  • updating the information Q ji [k] transmitted from the j-th variable node to the i-th check node through the second LLR sequence may include:
  • the information Q ji [k] transmitted from the j-th variable node to the i-th check node is updated by the preset weight value and the second LLR sequence.
  • the information transmitted from the j-th variable node to the i-th check node can be updated by the weighted value and the second LLR sequence, so as to improve the accuracy of the obtained Q ji [k], and increase the Q ji [k ] Effectiveness.
  • updating the information Q ji [k] transmitted by the j-th variable node to the i-th check node by the preset weight value and the second LLR sequence may include:
  • the Q ji [k] of this iterative decoding is updated through the result of the previous iterative decoding during iterative decoding, which can be the decoding between multiple iterative decodings.
  • the results are combined to improve the accuracy of decoding.
  • the method may further include:
  • the first LLR sequence is disturbed, and then the decoding is performed based on the second LLR sequence obtained after the disturbing processing. Therefore, even after the first LLR sequence fails to be decoded for the first time, one or more sets of second LLR sequences can be used for decoding to obtain the first decoded data that is successfully verified, which can improve the successful verification. The accuracy of the decoded data.
  • a second aspect of the present application provides a decoding device, which has the function of implementing the method for data decoding in the first aspect.
  • This function can be realized by hardware, or by hardware executing corresponding software.
  • the hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • a third aspect of the embodiments of the present application provides a decoding device, which may include:
  • a processor, a memory, and an input-output interface, the processor, the memory are connected to the input-output interface; the memory is used to store program code; the processor executes the first aspect or the first aspect of the application when calling the program code in the memory On the one hand, the steps of the method provided by any embodiment.
  • a fourth aspect of the embodiments of the present application provides a terminal, which may include:
  • a processor, a memory, and an input-output interface, the processor, the memory are connected to the input-output interface; the memory is used to store program code; the processor executes the first aspect or the first aspect of the application when calling the program code in the memory On the one hand, the steps of the method provided by any embodiment.
  • a fifth aspect of the embodiments of the present application provides a base station, which may include:
  • a processor, a memory, and an input-output interface, the processor, the memory are connected to the input-output interface; the memory is used to store program code; the processor executes the first aspect or the first aspect of the application when calling the program code in the memory On the one hand, the steps of the method provided by any embodiment.
  • the sixth aspect of the embodiments of the present application provides a decoding device, which can be applied to equipment such as a terminal or a base station.
  • the decoding device is coupled with a memory, and is used to read and execute instructions stored in the memory, so that The decoding device implements the steps of the method provided in the first aspect or any one of the first aspect of the application.
  • the decoding device is a chip or a system on a chip.
  • a seventh aspect of the present application provides a chip system including a processor, which is used to support a base station or a terminal to implement the functions involved in the above aspects, for example, for processing data and/or information involved in the above methods.
  • the chip system further includes a memory, and the memory is used to store necessary program instructions and data for the base station or terminal.
  • the chip system may be composed of chips, or may include chips and other discrete devices.
  • the processor mentioned in any of the above can be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more for controlling the above
  • the first aspect of the data search method is an integrated circuit for program execution.
  • the eighth aspect of the embodiments of the present application provides a storage medium.
  • the technical solution of the present invention is essentially or a part that contributes to the existing technology, or all or part of the technical solution can be produced by software.
  • the computer software product is stored in a storage medium for storing computer software instructions used by the above-mentioned equipment, which includes a decoding device for executing any optional implementation of the above-mentioned first aspect, such as a base station Or the program designed by the terminal.
  • the storage medium includes: U disk, mobile hard disk, read-only memory (English abbreviation ROM, English full name: Read-Only Memory), random access memory (English abbreviation: RAM, English full name: Random Access Memory), magnetic disk or CD Various media that can store program codes.
  • the ninth aspect of the embodiments of the present application provides a computer program product containing instructions, which when run on a computer, causes the computer to execute the method described in any optional implementation manner of the first aspect of the present application.
  • a tenth aspect of the embodiments of the present application provides a communication system, which may include a terminal and a base station;
  • the terminal may be the terminal provided in the fourth aspect of the embodiments of the present application.
  • the base station may be the base station provided in the fifth aspect of the embodiments of the present application.
  • one or more first LLRs in the first LLR sequence are disturbed to obtain one or more sets of second LLR sequences, and then the one or more sets of second LLR sequences are translated Code to obtain the first decoded data. Therefore, by perturbing one or more LLRs in the first LLR sequence, a new LLR sequence, that is, the second LLR sequence, can be obtained, and then the new LLR sequence is used for decoding, which improves the decoding success. The accuracy of the code data. And for the obtained one or more sets of new LLR sequences, parallel decoding can be realized, and the complexity and time delay of LDPC decoding can be reduced, and the decoding efficiency can be improved.
  • FIG. 1a is an application scenario of the data decoding method provided by an embodiment of this application.
  • FIG. 1b is another application scenario of the data decoding method provided by the embodiment of this application.
  • FIG. 2 is a schematic diagram of an embodiment of a data decoding method provided by an embodiment of this application.
  • FIG. 3 is a schematic diagram of another embodiment of a data decoding method provided by an embodiment of this application.
  • FIG. 4 is a schematic diagram of a check matrix and a check equation of an LDPC code provided by an embodiment of the application;
  • FIG. 5 is a Tanner graph corresponding to a check matrix H provided by an embodiment of the application.
  • FIG. 6a is a schematic diagram of a base map matrix provided by an embodiment of this application.
  • FIG. 6b is a schematic diagram of another base map matrix provided by an embodiment of the application.
  • FIG. 7 is a schematic diagram of an offset matrix provided by an embodiment of the application.
  • FIG. 8 is a schematic diagram of a permutation matrix provided by an embodiment of this application.
  • FIG. 9 is a schematic diagram of the application range of two base image matrices provided by an embodiment of this application.
  • FIG. 10a is a schematic diagram of updating variable nodes according to an embodiment of the application.
  • FIG. 10b is a schematic diagram of updating a check node according to an embodiment of the application.
  • FIG. 11 is a schematic diagram of alternately updating variable nodes and check nodes according to an embodiment of the application.
  • FIG. 12 is a schematic diagram of a simulation result provided by an embodiment of this application.
  • FIG. 13 is a schematic diagram of another simulation result provided by an embodiment of the application.
  • FIG. 14 is a schematic structural diagram of a decoding device provided by an embodiment of this application.
  • 15 is a schematic diagram of another structure of a decoding device provided by an embodiment of this application.
  • FIG. 16 is a schematic structural diagram of a base station provided by an embodiment of this application.
  • FIG. 17 is a schematic diagram of another structure of a terminal provided by an embodiment of the application.
  • This application provides a method and device for data decoding, which are used to reduce decoding complexity, reduce decoding delay, and improve decoding accuracy by perturbing LLR sequences.
  • the data decoding method provided in this application can be applied to various communication systems or communication networks, for example, 5G systems, Long Term Evolution (LTE) systems, Global System for Mobile Communication (GSM) or Code Division Multiple Access (CDMA) network, Wideband Code Division Multiple Access (WCDMA) network, etc., can also be Worldwide Interoperability for Microwave Access (WiMAX) or wireless Other communication networks or communication systems that require data decoding, such as Wireless Fidelity (WiFI).
  • 5G systems Long Term Evolution (LTE) systems
  • GSM Global System for Mobile Communication
  • CDMA Code Division Multiple Access
  • WCDMA Wideband Code Division Multiple Access
  • WiMAX Worldwide Interoperability for Microwave Access
  • WiFI Wireless Fidelity
  • the specific application scenario of the embodiment of the present application may be as shown in Fig. 1a or Fig. 1b.
  • the LDPC code can be applied to the communication coding between the base station and the terminal.
  • the application scenario may include one or more base stations and one or more terminals.
  • a base station can access multiple terminals (for example, terminal 1 and terminal 2 in Figure 1a), that is, a base station can communicate with multiple terminals, and the base station can send encoded Data, the base station can also receive encoded data sent by the terminal.
  • a terminal can also communicate with multiple base stations (base station 1, base station 2, and base station 3 in Figure 1b). It can be that the terminal receives encoded data sent by multiple base stations, and the terminal can communicate to multiple base stations. Each base station sends the encoded data.
  • the decoding device can include a base station, a terminal, etc., or the decoding device can be included in a base station, a terminal, etc. Wait for the device.
  • the base station may be various forms of macro base stations, micro base stations (also called small stations), relay stations, access points, and so on. In different communication systems, the name of the base station may also be different.
  • the base station may be a base transceiver station (BTS) in a GSM or CDMA network, an NB (NodeB) in WCDMA, or an LTE system.
  • BTS base transceiver station
  • NB NodeB
  • the long-term evolution node (Evolutional NodeB, eNB, or eNodeB) in the network may also be the base station equipment in the 5G network or the communication device in the future evolved Public Land Mobile Network (PLMN) network, for example, the 5G base station ( Next generation NodeB, gNB).
  • the terminal may be a variety of handheld devices including communication functions, wearable devices, computing devices, or other processing devices connected to a wireless modem, and so on.
  • it can be a mobile station (Mobile Station, MS), subscriber unit (subscriber unit), cellular phone (cellular phone), smart phone (smart phone), wireless data card, personal digital assistant (Personal Digital Assistant, PDA for short) Computer, tablet computer, wireless modem (modem), handheld device (handset), laptop computer (laptop computer), machine type communication (Machine Type Communication, MTC) terminal, etc.
  • MS Mobile Station
  • subscriber unit subscriber unit
  • cellular phone cellular phone
  • smart phone smart phone
  • wireless data card personal digital assistant
  • PDA Personal Digital Assistant
  • Computer tablet computer
  • wireless modem modem
  • handheld device handset
  • laptop computer laptop computer
  • machine type communication Machine Type Communication
  • the data decoding method provided in the embodiments of this application can be executed by the above-mentioned various independent decoding devices, or the decoding devices in the base station or terminal equipment, etc. The following is based on the decoding devices provided in the embodiments of this application The specific process of the data decoding method will be described in detail.
  • the specific process of the data decoding method provided in this application may be as shown in Fig. 2 and may include:
  • the decoding device can receive a signal sent by another network device.
  • another network device that sends a signal can be a terminal.
  • the other signal-sending device can be a terminal or a base station, etc. .
  • the network device that sends the signal performs LDPC encoding on the data to be transmitted to obtain the transmission data, and sends its corresponding signal after modulation and mapping.
  • the transmission data can consist of information bits and check data.
  • the transmission data is an n-bit sequence Data
  • the transmission data may include k bits of information bits and (nk) bits of check data, k ⁇ n.
  • the decoding device receiving the signal After receiving the signal, the decoding device receiving the signal obtains the first LLR sequence corresponding to the transmission data after demodulation.
  • the received signal may be demodulated, synchronized, etc., to obtain the first LLR sequence.
  • Each LLR in the first LLR sequence corresponds to each bit in the transmission data one-to-one.
  • Each LLR can be expressed as p(1) represents the probability that the corresponding bit is judged as 1, and p(0) represents the probability that the corresponding bit is judged as 0.
  • perturbation processing is performed on one or more first LLRs in the first LLR sequence.
  • performing perturbation processing on one or more first LLRs in the first LLR sequence may be adding one or more perturbation values to the one or more first LLRs. , That is, add at least one perturbation value to at least one first LLR to obtain one or more sets of second LLR sequences.
  • multiple groups are two or more than two, and multiple groups are two or more than two groups.
  • perturbation processing is performed on one or more first LLRs in the first LLR sequence, or the one or more first LLRs are respectively multiplied by one or more perturbations Value to get one or more sets of second LLR sequences.
  • the perturbation value is the algebraic operation performed by the parameter, which can be specifically adjusted according to actual application scenarios, for example, it can be one or more of addition, subtraction, multiplication, or division, etc.
  • the present application deals with the perturbation processing of the first LLR sequence The method is not limited.
  • the disturbance value can be a preset value, or a value obtained by learning based on historical data, and so on.
  • the disturbance processing may be to add the same disturbance value to each of the one or more first LLRs, including adding the same one or more disturbance values to each first LLR to obtain a set of Or multiple sets of second LLR sequences.
  • the first different disturbance values obtain two sets of second LLR sequences, and so on; it is also possible to add different disturbance values to each first LLR to obtain one or more sets of second LLR sequences.
  • first LLR decoding of the first LLR sequence fails, add one or more first LLRs in the first LLR sequence
  • One or more disturbance values are used to obtain one or more sets of second LLR sequences, and then the transmission data is subjected to a second LDPC decoding based on the one or more sets of second LLR sequences.
  • the one or more sets of second LLR sequences are decoded to obtain corresponding first decoded data.
  • the decoding method for decoding the second LLR sequence may include multiple, for example, it may be based on the minimum sum (Min-Sum, MS) decoding of one or more sets of the second LLR sequence, and layered translation. Codes, Maximum Likelihood (ML) decoding, etc., can be specifically adjusted according to actual application scenarios and are not limited here.
  • all second LLR sequences in the one or more sets of second LLR sequences may be decoded in parallel, or the set of second LLR sequences may be decoded in parallel.
  • all the second LLR sequences in the multiple sets of second LLR sequences are serially decoded, which can be specifically adjusted according to actual application scenarios, which is not limited here.
  • the verification may be performed through LDPC self-checking, or may be performed through cyclic redundancy check (cyclic redundancy check, CRC), etc.
  • CRC cyclic redundancy check
  • one or more LLRs in the first LLR sequence are disturbed to obtain one or more sets of second LLR sequences, and then according to the one or more sets of second LLR sequences,
  • the LLR sequence is decoded to obtain the first decoded data. Therefore, by adding disturbance values to one or more LLRs in the first LLR sequence, a new LLR sequence can be obtained, and then the new LLR sequence is used for decoding, and the next step is to select the variable node that does not satisfy the check equation
  • the embodiment of the application can directly decode the second LLR sequence obtained after the disturbance processing. Compared with selecting variable nodes, the embodiment of the application can reduce the complexity.
  • the decoding can be performed directly based on the one or more sets of second LLR sequences, which can realize parallel decoding, and can improve the efficiency of decoding compared with serial decoding. Reduce decoding delay.
  • multiple sets of second LLR sequences can be decoded, and multiple sets of decoded data can be subsequently obtained, which can improve the accuracy of successfully decoded decoded data.
  • FIG. 3 is a schematic diagram of another flow of a data decoding method provided by an embodiment of the present application, which may include:
  • the decoding device can receive a signal sent by another network device.
  • the network device that sends the signal may be the aforementioned base station, terminal, etc.
  • the base station may send a signal to the terminal or the terminal may send a signal to the base station.
  • the signal sending device can obtain the transmission data after encoding the data to be transmitted, and send the corresponding signal after modulation and mapping.
  • the decoding device After receiving the signal, the decoding device obtains the first LLR sequence corresponding to the transmission data after demodulation.
  • the transmission data can be composed of information bits and check data.
  • the information bits are information to be transmitted, and the check data is data obtained by calculating the information bits to be transmitted through a preset encoding method.
  • the transmission data is data of an n-bit sequence
  • the transmission data may include k bits of information bits and (n-k) bits of check data, k ⁇ n.
  • the specific encoding method used by the network device that sends the signal to encode the information bits may be LDPC encoding, CRC encoding, turbo encoding, and so on.
  • the decoding method of the transmission data by the decoding device corresponds to the encoding method.
  • the decoding method may be a decoding method for LDPC encoding, a decoding method for CRC encoding, or a decoding method for turbo encoding, etc.
  • the embodiments of the present application only illustrate LDPC decoding.
  • the decoding method used can be adjusted according to actual application scenarios, which is not limited in this application.
  • the transmission data can be represented by a matrix, and therefore, the corresponding first LLR sequence can also be represented by a matrix.
  • an LDPC code can be understood as a (n, k) linear block code, and its check matrix is a sparse matrix, the code length is n, the information sequence length is k, and can be uniquely determined by its check matrix H, It can also be uniquely determined by the Tanner graph corresponding to the check matrix H.
  • the check matrix H of the LDPC code and the corresponding check equation are shown in FIG. 4.
  • the representation of the Tanner graph corresponding to the check matrix H is shown in FIG. 5.
  • each circular node is represented as a variable node, representing a column in the H matrix of the check matrix
  • each square node is a check node, representing a row in the H matrix, each of which connects the check node and the variable node in Figure 5
  • the line represents that there is a non-zero element at the intersection of the row and column corresponding to the two nodes.
  • LDPC codes can be used for encoding in communication systems.
  • the LDPC code can usually be represented by a parity check matrix H, and the parity check matrix H can usually be obtained from a base graph and an offset value.
  • a base image can usually include m*n matrix elements, which can be represented in the form of a matrix with m rows and n columns.
  • the matrix elements have a value of 0 or 1, and an element with a value of 0 can also be called a zero element.
  • a zero element can mean that the element can be replaced by a z*z all-zero matrix, and an element with a value of 1 can also be called a non-zero element.
  • a non-zero element can also mean that the element can be replaced by a z*z circulant permutation matrix. Therefore, each matrix element can be replaced with an all-zero matrix or a cyclic permutation matrix.
  • FIG. 6a and FIG. 6b they are respectively different base image matrices.
  • the base image matrix has 46 rows and 68 columns
  • the base image matrix has 42 rows and 52 columns.
  • the row number is marked in the leftmost column
  • the column number is marked in the top row.
  • Each row and column only shows non-zero elements, which are represented by "1", and the blank parts are zero elements.
  • the 0th column and the 1st column are two built-in punctured columns, which do not participate in bit selection during the rate matching process, that is, they do not enter the circular buffer.
  • FIG. 7 is an example of an offset value matrix based on the aforementioned FIG. 6a. If the value of the element in the i-th row and the j-th column of the base image matrix is 1, its offset value is P i,j , P i, j is an integer greater than or equal to 0, which means that the element in the i-th row and j-th column of the base image matrix with a value of 1 can be replaced by the z*z circulant matrix corresponding to Pi,j . The circulant matrix can be replaced by z The identity matrix of *z is obtained by cyclically shifting P i,j to the right.
  • each element with a value of 0 in the base image matrix of Figure 6a is replaced with a z*z all-zero matrix, and each element with a value of 1 is passed through the corresponding P i,j with a z*z identity matrix
  • the check matrix H of the LDPC code can be obtained by cyclic shifting to the right one time.
  • z is a positive integer
  • z may also be called an expansion factor
  • the value of z may be specifically determined according to the size of the code block supported by the communication system and the size of the information data.
  • the size of the parity check matrix H is (m*z)*(n*z).
  • the permutation matrix corresponding to each element value of the base image matrix can be shown in Fig. 8, where, from left to right in Fig. 8 are z*z matrices with an offset value of 1;
  • the z*z matrix with the offset value of 2, that is offset to the right A matrix of 2;
  • the LDPC code in 5G can be implemented in a quasi-cyclic structure.
  • two LDPC encoding methods can be supported.
  • the specific application can be shown in Fig. 9, wherein the base picture matrix shown in Fig. 6a is called BG1, and the base picture matrix shown in Fig. 6b is called BG2.
  • the base picture matrix used can be determined according to the encoded data. Specifically, different base picture matrices can be selected for encoding according to the length and code rate of different transmission blocks.
  • the size of the transport block to be transmitted is less than or equal to 308, or the size of the transport block to be transmitted is less than or equal to 3840 and the encoding rate is less than or equal to 2/3, or the encoding rate is less than 1/4, That is, BG2 is used for encoding; if the size of the transmission block to be transmitted is greater than 308 and the coding rate is greater than 2/3, or the size of the transmission block to be transmitted is greater than 3840 and the encoding rate is greater than 1/4, then BG1 is used for encoding.
  • check data can be obtained.
  • the transmission data is data of an n-bit sequence
  • the transmission data may include k bits of information bits, that is, k bits of data to be transmitted, and (n-k) bits of check data, k ⁇ n.
  • step 305 performs LDPC decoding on the first LLR sequence. If the decoding is successful, perform step 305, and if the decoding fails, perform step 303.
  • the first LDPC decoding can be performed on the first LLR sequence.
  • Specific decoding methods can include minimum sum MS decoding, hierarchical decoding, etc. to obtain a set of decoded data.
  • the decoded data can be verified. If the verification result is that the decoding is successful, step 305 can be executed, that is, other steps can be executed. If the verification result is that the decoding fails, step 303 may be executed, that is, the LDPC decoding is continued.
  • the specific check method for the group of decoded data may be LDPC self-check, CRC check, etc., which can be adjusted according to actual application scenarios.
  • the LDPC self-check may be to determine whether the decoded data meets the check relationship of the LDPC code.
  • the preset check matrix of the LDPC code is H
  • c is a sequence of LDPC code words containing information bits and check bits, that is, decoded data.
  • the check relation H*c T 0, that is, the result of multiplying the decoded data and the check matrix is 0, then the check result can be determined to be a successful decoding, if the result of multiplying the decoded data and the check matrix is not If it is 0, it can be determined that the verification result is a decoding failure.
  • c may also include CRC check bits.
  • one or more perturbations can be added to one or more first LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences; or, for the first LLR sequence One or more first LLRs in is multiplied by one or more disturbance values to obtain one or more sets of second LLR sequences.
  • the disturbance value may be a preset set of values, or a set of values generated randomly, and the added disturbance value may be a preset position in the first LLR sequence, or It is a randomly determined location.
  • each group of second LLR sequences can be one-to-one corresponding to a group of LDPC iterative decoding. It can be understood that when there are multiple sets of second LLR sequences, LDPC iterative decoding needs to be performed on each set of second LLR sequences.
  • different perturbation values can be added to the same position in the first LLR sequence, or the same perturbation can be added to different positions in the first LLR sequence. value.
  • LLR i LLR i + n i , where n i is the disturbance value, and i is the position corresponding to the disturbance value.
  • You can add a n i to the position of the same i Obtain a set of second LLR sequences, or add multiple n i to the same i position to obtain multiple sets of second LLR sequences, or add multiple n i to different i positions to obtain multiple sets of Two LLR sequence.
  • each group of disturbance values may include the same or different disturbance values, and each group of disturbance values in the m groups of disturbance values may correspond to LLRs at the same or different positions. Then, the first LLR sequence is disturbed by the m groups of disturbance value groups to obtain m groups of second LLR sequences. And each group of second LLR sequences in the m groups of second LLR sequences is different.
  • the first set of second LLR sequences may be obtained by adding the first set of disturbance value sets to the first LLR sequence
  • the second set of second LLR sequences may be obtained after adding the second set of disturbance value sets to the first LLR sequence Obtained
  • the position of the LLR corresponding to each perturbation value in the first perturbation value group and each perturbation value in the second perturbation value group may be the same or different
  • the group may include equal or unequal disturbance values.
  • the first group of disturbance values and the second group of disturbance values are not completely equal, and can be adjusted according to actual application scenarios, which is not limited in this application.
  • LDPC iterative decoding may be performed on the one or more sets of second LLR sequences to obtain successfully decoded first decoded data.
  • the maximum number of iterations may be a preset number of iterations.
  • the decoding method for the multiple sets of second LLR sequences can be parallel decoding or serial decoding, which can be adjusted according to actual application scenarios.
  • the application is not limited.
  • parallel decoding may be used for the multiple sets of second LLR sequences.
  • LDPC iterative decoding may be performed respectively based on each group of second LLR sequences in the one or more groups of second LLR sequences, and each group of second LLR sequences corresponds to a group of LDPC Iterative decoding.
  • the LDPC iterative decoding corresponding to any set of second LLR sequences obtains a successfully decoded set of decoded data, stop decoding the one or more sets of second LLR sequences, and decode the set The data serves as the first decoded data.
  • LDPC iterative decoding when LDPC iterative decoding is performed based on the m-th group of second LLR sequences, when the m-th group of second LLR sequences corresponding to the LDPC iterative decoding first obtains a correct decoded data , That is, stop all LDPC iterative decoding based on the second LLR sequence, and use the correct decoded data as the first decoded data.
  • LDPC iterative decoding may be performed on the transmission data based on each group of the second LLR sequence in the one or more groups of second LLR sequences to obtain one or more groups Successfully decoded decoded data. If only a group of successfully decoded decoded data is obtained, it can be directly determined that the group of decoded data is the first decoded data. If multiple sets of successfully decoded decoded data are obtained, one set of decoded data can be selected from the multiple sets of decoded data as the first decoded data according to a preset rule.
  • the preset rule may be a set of decoded data whose Euclidean metric between the multiple sets of decoded data and the first LLR sequence is not greater than a threshold.
  • a threshold may be preset or calculated according to actual application scenarios. For example, the decoded data with the smallest Euclidean metric value may be selected from multiple sets of decoded data as the first decoded data.
  • the Euclidean metric may also be referred to as Euclidean distance below.
  • First, make a hard decision on the LLR sequence, and get d [d 0 ,d 1 ,...,d N-1 ], where the specific hard decision method can be: or, The specific hard decision method can be consistent with the mapping relationship during LDPC encoding. Then compare the values of sequence d and sequence c. If they are not equal, add the absolute value of the LLR at the corresponding position, and the final Euclidean distance is
  • the k-th LDPC iterative decoding when performing iterative decoding from the first time to the Nth time on any group of the second LLR sequence in one or more groups of second LLR sequences, In the k-th LDPC iterative decoding: update the information R ij [k] transmitted from the i-th check node to the j-th variable node, and update the j-th variable node to the i-th check through the second LLR sequence
  • the node information Q ji [k], 1 ⁇ k ⁇ N, N is less than or equal to the preset number of iterations, and the decoded data of any set of second LLR sequence includes the R ij [k] and Q ji [k] .
  • the kth iteration when performing LDPC iterative decoding on the second LLR sequence based on each of the second LLR sequences in one or more sets of second LLR sequences, in the kth iteration:
  • the information R ij [k] transmitted by the i-th check node to the j-th variable node can be updated by at least one preset correction value, and the j-th variable node can be updated and passed to the i-th checksum by the second LLR sequence.
  • the node information Q ji [k] is a set of decoded data, k is less than the preset number of iterations, and k is a positive integer.
  • the group of decoded data may be used as the first decoded data, or after multiple sets of decoded data are obtained, one of the sets of decoded data may be selected as the first decoded data, which may be specifically based on actual application scenarios. Make adjustments.
  • the specific LDPC iterative decoding method may be: before the iteration, each parameter is initialized, the second LLR sequence to be decoded is determined, and the jth sequence of the input sequence is defined.
  • the LLR information of each element ⁇ j LLR_in j , and, It is a positive logic mapping (0 ⁇ -1,1 ⁇ +1).
  • k can be any iteration, and k is not greater than a preset number of iterations.
  • Q ji [k-1] min j' ⁇ V(i) (
  • ) it can be understood as if Q ji [k-1] is the k- 1th iteration
  • the minimum value of Q ji obtained in, then R ij [k] ⁇ 1 * ⁇ j' ⁇ V(i) ⁇ j sgn(Q j'i [k-1])*min j' ⁇ V(i) (
  • ); if Q ji [k-1] is not the minimum value of Q ji obtained in the k- 1th iteration, then R ij [k] ⁇ 2 ⁇ j ' ⁇ V(i) ⁇ j sgn(Q j'i [k-1])*min j' ⁇ V(i) (
  • sgn is a symbol operation
  • min is a minimum value operation
  • V(i) ⁇ j represents the set of variable nodes connected to the i-th check node except the j-th variable node.
  • ⁇ 1 and ⁇ 2 are preset correction values, which can also be called correction factors
  • ⁇ 1 and ⁇ 2 are normalized correction factors. It can be understood that, in the embodiment of the present application, when Q ji is the minimum value, the update of the check node is corrected, that is, the minimum value uses the correction factor ⁇ 1 , and the remaining values use the correction factor ⁇ 2 , usually ⁇ 1 and ⁇ 2 are positive numbers less than 1. Therefore, in the embodiments of the present application, a correction factor can be used to improve the decoding performance, compensate for calculation errors, and improve the accuracy of decoding.
  • the process of updating the variable node may be as shown in FIG. 10a, and the process of updating the check node may be as shown in FIG. 10b.
  • the variable node can be updated according to the LLR after adding the disturbance value, that is, ⁇ j in Figure 10a.
  • variable node or check node may be updated at the same time, or multiple variable nodes or check nodes may be updated at the same time, which can be adjusted according to actual application scenarios, which is not limited here.
  • the hard decision decoding is completed according to the posterior probability information.
  • the hard decision can be:
  • the decoded data can also be checked, which can be LDPC self-check or CRC check, etc. It can also check all the decoded data obtained after multiple iterations to determine the successfully decoded data. For example, taking LDPC self-checking as an example, when the decoded data is obtained After that, calculate If The verification result is a successful decoding, if The verification result is that the decoding failed.
  • the i-th check node is updated and passed to the j-th variable Node information R ij [k], and update the information Q ji [k] transmitted from the j-th variable node to the i-th check node through the preset weight value and the second LLR sequence to obtain a set of decoded data
  • k can be any iteration, and k is not greater than the preset number of iterations.
  • R ij [k] and Q ji [k] can also be updated alternately, and the information R ij [k] transmitted by the i-th check node to the j-th variable node can be updated with the aforementioned implementation.
  • the method of updating R ij [k] with at least one correction value is similar.
  • R ij [k] can also be directly updated without using the correction value.
  • is a preset weight value, which can usually be a positive number greater than 0 and less than 1, and can be determined based on learning a large amount of decoded data, or can be determined as an empirical value. For example, ⁇ can usually be 0.75.
  • the information transmitted by the variable node to the check node can be updated by the weighted value.
  • the weighted value can be calculated or a preset value, so that the symbol of Q ji [k] is different from the previous one. iteration Q ji [k-1] is not the same symbol, the weighting value may be used to update the value Q ji [k], improve Q ji [k] obtained accuracy, and increase the Q ji [k] of validity .
  • the decoding method for the second LLR sequence may be LDPC decoding for one or more groups of second LLR sequences.
  • MS decoding, hierarchical decoding algorithms, etc. can be adjusted according to actual needs and are not limited here.
  • the check node and the variable node can be updated alternately.
  • the check node and the variable node can be updated in a layered decoding manner.
  • the way to update variable nodes and check nodes can be from top to bottom, divide the data matrix into multiple layers by rows, and then update the layers sequentially. After the row update of each layer is completed, the column corresponding to that layer is updated, and after the row and column of each layer are updated, the next layer is updated.
  • the update when updating variable nodes and check nodes, the update can be done hierarchically, according to the rows of the matrix, one row can be divided into one layer, and then the rows of each layer can be updated separately, and Update the column corresponding to each row.
  • the rows and columns of the first to fifth layers are updated respectively.
  • each layer can be updated by layered decoding, the data to be decoded is divided into multiple layers, and then updated layer by layer. Therefore, after the rows and columns of the previous layer are updated, the next layer is updated. Since the rows of the next layer are updated based on the information of other rows that have been updated, the iteration convergence speed is relatively fast.
  • the rows and columns are alternately updated to make each layer The updates can be correlated to improve the convergence speed.
  • the decoded data obtained from the first decoding can be directly used as the decoding result of the transmitted data.
  • subsequent steps such as information interpretation or instruction execution may also be performed on the first decoded data, which may be specifically adjusted according to actual application scenarios.
  • the LDPC decoding may be continued based on one or more sets of second LLR sequences obtained after perturbing the first LLR sequence.
  • the embodiment of the present application directly performs decoding based on the second LLR sequence obtained after the perturbation process. In addition to reducing the decoding complexity, it can also improve the accuracy of the obtained decoded data and improve the decoding performance.
  • the received channel LLRs are sorted, the j positions with the smallest amplitude are selected, and then the The LLRs at the j positions are respectively saturated to the integer maximum and negative maximum to obtain 2 j sequences, and then re-input the 2 j sequences to the decoder for decoding respectively, output the legal codewords, and then select the LLR sequence with the original channel
  • the codeword with the smallest Euclidean distance, but only selects the VN based on the channel LLR, and the obtained decoding result has poor accuracy and poor decoding performance.
  • the embodiment of this application selects a part of the VN from the VN that does not satisfy the check equation for decoding.
  • the embodiment of this application can directly decode based on the second LLR sequence obtained after the perturbation process without performing the VN. Selection can reduce decoding complexity and improve decoding efficiency.
  • the performance of LDPC decoding can be measured by the Block Error Rate (BLER).
  • BLER Block Error Rate
  • the following is a more vivid description with the simulation result of BLER.
  • AWGN Additive White Gaussian Noise
  • the length of the information block is 120 bits
  • the coding rate is 1/5
  • the same LLR sequence (list) 16 each BLER of a decoding method.
  • the decoding method with the highest bit error rate is layered normalized min-sum, LNMS) 15 iterative decoding, followed by LNMS 850 iterative decoding, then SMS decoding, followed by enhanced BP (augmented belief propagation, ABP), the disturbance processing provided in the embodiment of the application (can
  • the decoding method (referred to as perturbation) has the lowest block error rate, which is significantly lower than other methods of BLER.
  • the BLER of the scene where the length of the information block is 360 bits is shown in Fig. 13. Similar to the result in Fig.
  • the decoding method of disturbance processing provided in the embodiment of this application has the lowest block error rate, which is significantly lower than BLER in other ways. Therefore, the BLER of the data decoding method provided by the embodiment of the present application is significantly higher than the BLER of other decoding methods, which improves the reliability and decoding efficiency of LDPC decoding.
  • FIG. 14 For a schematic structural diagram of the decoding device provided in this application, refer to FIG. 14, and may include: a processing unit 1401 and an acquiring unit 1402.
  • the obtaining unit 1402 may be used to obtain the first log-likelihood ratio LLR sequence corresponding to the transmission data
  • the processing unit 1401 may also be used to perform perturbation processing on one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences;
  • the processing unit 1401 may also be used to decode one or more sets of second LLR sequences to obtain first decoded data.
  • the processing unit may be used to perform steps 201-203 in FIG. 2 or any one of steps 301-305 in FIG. 3, and the obtaining unit 1402 may be used to perform steps 201-203 in FIG. 2 or FIG. 3. Steps to obtain transmission data.
  • processing unit 1401 may be specifically configured to:
  • the decoded data of the second LLR sequence is used as the first decoded data.
  • processing unit 1401 may be specifically configured to:
  • a group of decoded data is determined as the first decoded data from one or more sets of successfully verified decoded data.
  • processing unit 1401 may be specifically configured to:
  • a group of decoded data whose Euclidean metric between the first LLR sequence and the first LLR sequence is less than or equal to a threshold is determined from one or more sets of decoded data successfully verified as the first decoded data.
  • processing unit 1401 may be specifically configured to:
  • the decoded data of the k-th iterative decoding of a group of second LLR sequences includes R ij [k] and Q ji [k].
  • processing unit 1401 may be specifically configured to:
  • processing unit 1401 may be specifically configured to:
  • the information Q ji [k] transmitted from the j-th variable node to the i-th check node is updated by the preset weight value and the second LLR sequence.
  • processing unit 1401 may be specifically configured to:
  • the processing unit 1401 is further configured to perform LDPC decoding on the first LLR sequence before perturbing one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences.
  • the decoding device 1500 may have relatively large differences due to differences in configuration or performance, and may include one or more central processing units (CPU). ) 1522 (or other types of processors) and a storage medium 1530.
  • the storage medium 1530 is used to store one or more application programs 1542 or data 1544.
  • the storage medium 1530 may be short-term storage or persistent storage.
  • the program stored in the storage medium 1530 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the decoding device.
  • the central processing unit 1522 may be configured to communicate with the storage medium 1530, and execute a series of instruction operations in the storage medium 1530 on the decoding device 1500.
  • the central processing unit 1522 can execute any of the aforementioned embodiments corresponding to FIGS. 2 to 11 according to instruction operations.
  • the decoding device 1500 may also include one or more power supplies 1526, one or more wired or wireless network interfaces 1550, one or more input and output interfaces 1558, and/or one or more operating systems 1541, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
  • operating systems 1541 such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
  • the steps that can be executed by the decoding device in FIGS. 2 to 11 in the foregoing embodiment may be based on the structure of the decoding device shown in FIG. 15.
  • the decoding device provided in this application may include a base station, a terminal, and so on.
  • the structure of the base station may be as shown in FIG. 16.
  • the base station 1600 may have relatively large differences due to different configurations or performance, and may include one or more central processing units (CPU) 1622 (or Other types of processors) and a storage medium 1630.
  • the storage medium 1630 is used to store one or more application programs 1642 or data 1644.
  • the storage medium 1630 may be short-term storage or persistent storage.
  • the program stored in the storage medium 1630 may include one or more modules (not shown in the figure), and each module may include a series of command operations on the base station.
  • the central processing unit 1622 may be configured to communicate with the storage medium 1630, and execute a series of instruction operations in the storage medium 1630 on the base station 1600.
  • the central processing unit 1622 can execute any of the aforementioned embodiments corresponding to FIGS. 2 to 11 according to instruction operations.
  • the base station 1600 may also include one or more power supplies 1626, one or more wired or wireless network interfaces 1650, one or more input and output interfaces 1658, and/or one or more operating systems 1641, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
  • operating systems 1641 such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
  • the steps that can be executed by the decoding device in FIGS. 2 to 11 in the foregoing embodiment may be based on the base station structure shown in FIG. 16.
  • the decoding device provided in this application can be various terminals, or, it can also be understood that the decoding device can be included in the terminal, for example, it can be a mobile phone, a tablet computer, a notebook computer, a TV, a smart wearable device, or other devices with display Screen electronic equipment and so on.
  • the system that the terminal can carry can include Or other operating systems, etc., this embodiment of the present application does not impose any limitation on this.
  • the terminal can be applied to various communication systems.
  • the communication system is, for example, CDMA, TDMA, FDMA, OFDMA, SC-FDMA, and other systems.
  • the term "system" can be replaced with "network”.
  • the CDMA system can implement wireless technologies such as UTRA and CDMA2000.
  • UTRA can include WCDMA technology and other CDMA variants.
  • CDMA2000 can cover the interim standard (IS) 2000 (IS-2000), IS-95 and IS-856 standards.
  • the TDMA system can implement wireless technologies such as the global system for mobile communication (GSM).
  • GSM global system for mobile communication
  • OFDMA system can realize such as evolved universal wireless terrestrial access (evolved UTRA, E-UTRA), ultra mobile broadband (UMB), IEEE 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash OFDMA And other wireless technologies.
  • UTRA and E-UTRA are UMTS and UMTS evolved versions.
  • 3GPP is a new version of UMTS using E-UTRA in long term evolution (LTE) and various versions based on LTE evolution.
  • LTE long term evolution
  • 5G fifth generation
  • 5G fifth generation
  • NR New Radio
  • the communication system may also be suitable for future-oriented communication technologies, and all of them may be applied to the technical solutions provided in the embodiments of the present application.
  • the terminal 100 can be logically divided into a hardware layer 21, an operating system 161, and an application layer 31.
  • the hardware layer 21 includes hardware resources such as an application processor 101, a microcontroller unit 103, a modem 107, a Wi-Fi module 111, a sensor 114, a positioning module 150, and a memory.
  • the application layer 31 includes one or more applications, such as an application 163.
  • the application 163 may be any type of application such as a social application, an e-commerce application, or a browser.
  • the operating system 161, as a software middleware between the hardware layer 21 and the application layer 31, is a computer program that manages and controls hardware and software resources.
  • the operating system 161 includes a kernel 23, a hardware abstraction layer (HAL) 25, a library and runtime (libraries and runtime) 27, and a framework 29.
  • the kernel 23 is used to provide underlying system components and services, such as: power management, memory management, thread management, hardware drivers, etc.; hardware drivers include Wi-Fi drivers, sensor drivers, positioning module drivers, etc.
  • the hardware abstraction layer 25 encapsulates the kernel driver, provides an interface to the framework 29, and shields low-level implementation details.
  • the hardware abstraction layer 25 runs in the user space, and the kernel driver runs in the kernel space.
  • the library and runtime 27 is also called the runtime library, which provides the required library files and execution environment for the executable program at runtime.
  • the library and runtime 27 include the Android Runtime (ART) 271 and the library 273.
  • ART 271 is a virtual machine or virtual machine instance that can convert the bytecode of an application program into machine code.
  • the library 273 is a program library that provides support for the executable program at runtime, and includes a browser engine (such as webkit), a script execution engine (such as a JavaScript engine), a graphics processing engine, and the like.
  • the framework 29 is used to provide various basic common components and services for the applications in the application layer 31, such as window management, location management, and so on.
  • the frame 29 may include a phone manager 291, a resource manager 293, a location manager 295, and so on.
  • the functions of the various components of the operating system 161 described above can all be implemented by the application processor 101 executing programs stored in the memory.
  • the terminal 100 may include fewer or more components than those shown in FIG. 17, and the terminal shown in FIG. 17 only includes components that are more relevant to the multiple implementations disclosed in the embodiments of the present application. .
  • the terminal usually supports the installation of multiple applications (Application, APP), such as word processing applications, phone applications, email applications, instant messaging applications, photo management applications, web browsing applications, and digital music player applications , And/or digital video player applications.
  • applications Application, APP
  • word processing applications such as word processing applications, phone applications, email applications, instant messaging applications, photo management applications, web browsing applications, and digital music player applications , And/or digital video player applications.
  • the present application provides a chip system including a processor for supporting the decoding device to implement the functions involved in the above aspects, for example, sending or processing the data and/or information involved in the above methods.
  • the chip system further includes a memory, and the memory is used to store necessary program instructions and data.
  • the chip system may be composed of chips, or may include chips and other discrete devices.
  • the decoding device when the decoding device is a chip in a terminal or a base station, the chip includes a processing unit and a communication unit.
  • the processing unit may be, for example, a processor, and the communication unit may be, for example, Input/output interface, pin or circuit, etc.
  • the processing unit can execute the computer-executable instructions stored in the storage unit, so that the chip in the terminal or the base station, etc. executes the steps of the method executed by the network in any one of the above-mentioned embodiments of FIGS.
  • the storage unit is a storage unit in the chip, such as a register, a cache, etc.
  • the storage unit may also be a storage unit located outside the chip in the terminal or base station, such as read-only Memory (read-only memory, ROM) or other types of static storage devices that can store static information and instructions, random access memory (RAM), etc.
  • read-only Memory read-only memory
  • RAM random access memory
  • An embodiment of the present application also provides a chip, including: a processing module and a communication interface, and the processing module can execute the method flow related to the decoding device in any of the foregoing method embodiments.
  • the chip may also include a storage module (for example, a memory), the storage module is used to store instructions, and the processing module is used to execute the instructions stored in the storage module, and perform processing on the instructions stored in the storage module. The execution of the instruction causes the processing module to execute the method flow related to the decoding device in any of the foregoing method embodiments.
  • the embodiment of the present application also provides a communication system.
  • the communication system may include a terminal and a base station.
  • the terminal may be a terminal as shown in FIG. 17, and the terminal may be used to perform any of the foregoing embodiments of FIGS. 2-11.
  • the base station may be the base station shown in FIG. 16, and the base station may be used in any step in the foregoing embodiments of FIGS. 2-11.
  • the embodiment of the present application also provides a computer-readable storage medium on which a computer program is stored.
  • the computer program is executed by a computer, the method flow related to the decoding device in any of the foregoing method embodiments is implemented.
  • the computer may be the aforementioned decoding device.
  • the embodiments of the present application also provide a computer program or a computer program product including a computer program.
  • the computer program When the computer program is executed on a computer, the computer will enable the computer to implement the decoding method in any of the above-mentioned method embodiments.
  • Device-related method flow Correspondingly, the computer may be the aforementioned decoding device.
  • FIGS. 2-11 it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof.
  • software it can be implemented in the form of a computer program product in whole or in part.
  • 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. Transmission to another website site, computer, server or data center via wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.).
  • wired such as coaxial cable, optical fiber, digital subscriber line (DSL)
  • wireless such as infrared, wireless, microwave, etc.
  • the computer-readable storage medium may be any available medium that can be stored by a computer or a data storage device such as a server or 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, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)).
  • processors mentioned in this application may be a central processing unit (Central Processing Unit, CPU), or other general-purpose processors, digital signal processors (Digital Signal Processors, DSPs), and application specific integrated circuits (Application Specific Integrated Circuits). Integrated Circuit, ASIC), Field Programmable Gate Array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • processors in the present application may be one or multiple, and may be specifically adjusted according to actual application scenarios. This is only an exemplary description and is not limited.
  • the number of memories in the embodiments of the present application may be one or multiple, and may be specifically adjusted according to actual application scenarios. This is only an exemplary description and is not limited.
  • the decoding device includes a processor (or processing module) and a memory
  • the processor in the present application may be integrated with the memory, or the processor and the memory may be connected through an interface. It is adjusted according to actual application scenarios and is not limited.
  • the disclosed system, device, and method may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • 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.
  • each unit in each embodiment 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 above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit 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 all or 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 to make a computer device (which can be a personal computer, a server, or other network devices, etc.) execute all or part of the steps of the methods described in the various embodiments in Figures 2-11 of this application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program code .
  • the storage medium or memory mentioned in this application may include volatile memory or non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (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 a random access memory (Random Access Memory, RAM), which is used as an external cache.
  • RAM static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • DDR SDRAM Double Data Rate Synchronous Dynamic Random Access Memory
  • Enhanced SDRAM, ESDRAM Enhanced Synchronous Dynamic Random Access Memory
  • Synchronous Link Dynamic Random Access Memory Synchronous Link Dynamic Random Access Memory
  • DR RAM Direct Rambus RAM

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

Provided are a data decoding method and apparatus, wherein same are used for lowering the decoding complexity, shortening a decoding delay and improving the decoding accuracy by means of performing disturbance processing on an LLR sequence. The method comprises: acquiring a first log-likelihood ratio (LLR) sequence corresponding to transmitted data; performing disturbance processing on one or more LLRs in the first LLR sequence to obtain one or more groups of second LLR sequences; and decoding the one or more groups of second LLR sequences to obtain first decoded data that has been successfully checked.

Description

一种数据译码的方法以及装置Method and device for data decoding
本申请要求于2019年05月08日提交中国专利局、申请号为201910381356.7、申请名称为“一种数据译码的方法以及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of a Chinese patent application filed with the Chinese Patent Office on May 08, 2019, with the application number 201910381356.7 and the application name "A method and device for data decoding", the entire content of which is incorporated herein by reference Applying.
技术领域Technical field
本申请涉及通信领域,尤其涉及一种数据译码的方法以及装置。This application relates to the field of communications, and in particular to a method and device for data decoding.
背景技术Background technique
在各种通信系统中,发送设备与接收设备之间传输数据时,通常需要对发送数据进行编码。低密度奇偶校验码(low density parity check code,LDPC)是一种线性分组码,可以由校验矩阵唯一确定,也可以由校验矩阵对应的Tanner图唯一确定。LDPC码可以用于通信系统进行编码。例如在第五代移动通信技术(5th-Generation,5G)系统中,可以利用LDPC码对数据进行编码。In various communication systems, when transmitting data between a sending device and a receiving device, it is usually necessary to encode the sending data. Low density parity check code (LDPC) is a linear block code, which can be uniquely determined by the check matrix or the Tanner graph corresponding to the check matrix. LDPC codes can be used for coding in communication systems. For example, in the fifth-generation mobile communication technology (5th-Generation, 5G) system, LDPC codes can be used to encode data.
因此,接收设备在接收到传输的数据之后,需要对该数据进行LDPC译码。在现有方案中,在前一次置信度传播(belief propagation,BP)算法译码失败之后,将不满足校验方程的变量节点(variable node,VN)确定出来,组成VN集合,然后从VN集合中选出部分VN,将该部分VN对应的原始信道的对数似然比(log-likelihood ratio,LLR)的值进行饱和处理,饱和至正最大以及负最大,然后将LLR饱和处理后生成的序列输入译码器进行译码,并重复以上步骤,直到满足预设条件,即输出合法码字。并且从输出的合法码字中确定一组作为最终的译码数据。Therefore, after receiving the transmitted data, the receiving device needs to perform LDPC decoding on the data. In the existing scheme, after the previous confidence propagation (BP) algorithm fails to decode, the variable nodes (VN) that do not satisfy the check equation are determined to form a VN set, and then the VN set Select a part of the VN, saturate the value of the log-likelihood ratio (LLR) of the original channel corresponding to the part of the VN, and saturate to the maximum positive and negative maximum, and then saturate the LLR to generate The sequence is input to the decoder for decoding, and the above steps are repeated until the preset condition is met, that is, a legal codeword is output. And determine a group from the output legal code words as the final decoded data.
然而,现有方案中,译码过程为串行过程,即在上一次译码完成之后,再进行下一级的译码过程,并且,每一级译码都需要对下一级的VN进行选择,复杂度较高,且时延较大。However, in the existing solution, the decoding process is a serial process, that is, after the previous decoding is completed, the next level of decoding process is performed, and each level of decoding needs to perform the next level of VN The choice is more complicated and the delay is longer.
发明内容Summary of the invention
本申请提供了一种数据译码的方法以及装置,用于通过对LLR序列进行扰动处理的方式,降低译码复杂度、降低译码时延,并且提高译码的准确性。This application provides a method and device for data decoding, which are used to reduce decoding complexity, reduce decoding delay, and improve decoding accuracy by perturbing LLR sequences.
有鉴于此,本申请第一方面提供一种数据译码的方法,包括:In view of this, the first aspect of the present application provides a data decoding method, including:
获取传输数据;根据传输数据确定第一对数似然比LLR序列;对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列;对一组或多组第二LLR序列进行译码,得到第一译码数据。在本申请实施例中,对第一LLR序列中的一个或多个第一LLR进行扰动处理,得到一组或多组第二LLR序列,然后对该一组或多组第二LLR序列进行译码,得到第一译码数据。因此,对第一LLR序列中的一个或多个LLR进行扰动处理,即可得到新的LLR序列,即第二LLR序列,然后使用新的LLR序列进行译码,提高了得到译码成功的译码数据的准确率。并且对于得到的多组新的第二LLR序列,可以实现并行译码,且可以降低LDPC译码的复杂度以及时延,提高译码效率。Obtain the transmission data; determine the first log-likelihood ratio LLR sequence according to the transmission data; perform perturbation processing on one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences; Group the second LLR sequence to decode to obtain the first decoded data. In the embodiment of the present application, one or more first LLRs in the first LLR sequence are disturbed to obtain one or more sets of second LLR sequences, and then the one or more sets of second LLR sequences are translated Code to obtain the first decoded data. Therefore, by perturbing one or more LLRs in the first LLR sequence, a new LLR sequence, that is, the second LLR sequence, can be obtained, and then the new LLR sequence is used for decoding, which improves the decoding success. The accuracy of the code data. And for the obtained multiple sets of new second LLR sequences, parallel decoding can be realized, and the complexity and time delay of LDPC decoding can be reduced, and the decoding efficiency can be improved.
可选地,在一些可能的实施方式中,对一组或多组第二LLR序列进行译码,得到第一译码数据,可以包括:Optionally, in some possible implementation manners, decoding one or more sets of second LLR sequences to obtain first decoded data may include:
对其中一组第二LLR序列进行LDPC迭代译码;若一组第二LLR序列的译码数据校验成功,则将第二LLR序列的译码数据作为第一译码数据。在本申请实施例中,可以对第二LLR 序列进行LDPC迭代译码,若其中一组第二LLR序列的LDPC迭代译码得到的译码数据校验成功,则可以将组第二LLR序列的译码数据作为第一译码数据。因此,可以使用对第一LLR序列进行扰动处理之后得到的第二LLR序列进行LDPC迭代译码,以得到校验成功的译码数据。Perform LDPC iterative decoding on a group of second LLR sequences; if the decoded data of a group of second LLR sequences is successfully checked, then the decoded data of the second LLR sequence is used as the first decoded data. In the embodiment of the present application, the second LLR sequence can be decoded iteratively by LDPC. If the decoded data obtained by the LDPC iterative decoding of a group of second LLR sequences is successfully checked, the second LLR sequence can be The decoded data serves as the first decoded data. Therefore, the second LLR sequence obtained after perturbing the first LLR sequence can be used to perform LDPC iterative decoding to obtain decoded data with successful verification.
可选地,在一些可能的实施方式中,对一组或多组第二LLR序列进行译码,得到第一译码数据,可以包括:Optionally, in some possible implementation manners, decoding one or more sets of second LLR sequences to obtain first decoded data may include:
对一组或多组第二LLR序列中的各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据;根据预置规则从一组或多组校验成功的译码数据中确定一组译码数据作为第一译码数据。Perform LDPC iterative decoding on each group of second LLR sequences in one or more groups of second LLR sequences to obtain one or more groups of successfully verified decoded data; according to preset rules, check from one or more groups A group of decoded data is determined as the first decoded data from the decoded data that is successfully verified.
在本申请实施例中,可以对一组或多组第二LLR序列中各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据,然后根据预置规则从一组或多组校验成功的译码数据中确定一组译码数据作为第一译码数据。当仅有一组译码成功的译码数据时,将该一组译码数据作为第一译码数据,当有多组译码成功的译码数据时,可以根据预置规则从该多组译码数据中选择一组作为第一译码数据,因此,可以得到译码成功的译码数据。In the embodiment of the present application, LDPC iterative decoding can be performed on each group of second LLR sequences in one or more groups of second LLR sequences to obtain one or more groups of successfully verified decoded data, and then according to preset The rule determines a set of decoded data as the first decoded data from one or more sets of decoded data successfully verified. When there is only one group of successfully decoded decoded data, this group of decoded data is regarded as the first decoded data. When there are multiple groups of successfully decoded decoded data, the decoded data can be decoded from the multiple groups according to preset rules. One group of code data is selected as the first decoded data, and therefore, successfully decoded decoded data can be obtained.
可选地,在一些可能的实施方式中,根据预置规则从一组或多组校验成功的译码数据中确定一组译码数据作为第一译码数据,可以包括:Optionally, in some possible implementation manners, determining a set of decoded data from one or more sets of successfully verified decoded data as the first decoded data according to a preset rule may include:
从一组或多组校验成功的译码数据中确定出与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为第一译码数据。在本申请实施例中,在确定了一组或多组校验成功的译码数据之后,可以从该一组或多组译码数据中确定与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为第一译码数据。通过欧几里得度量对该一组或多组译码数据进行筛选,可以得到更准确的译码数据。A group of decoded data whose Euclidean metric between the first LLR sequence and the first LLR sequence is less than or equal to a threshold is determined from one or more sets of decoded data successfully verified as the first decoded data. In the embodiment of the present application, after one or more sets of decoded data with successful verification are determined, it can be determined from the one or more sets of decoded data that the Euclidean metric with the first LLR sequence is less than A group of decoded data equal to or equal to the threshold is used as the first decoded data. By filtering the one or more sets of decoded data through the Euclidean metric, more accurate decoded data can be obtained.
可选地,在一些可能的实施方式中,对其中一组第二LLR序列进行LDPC迭代译码,可以包括:Optionally, in some possible implementation manners, performing LDPC iterative decoding on a group of second LLR sequences may include:
对一组第二LLR序列执行N次迭代译码,针对其中的第k次LDPC迭代译码中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,N小于或等于预设迭代次数;其中,一组第二LLR序列的第k次迭代译码的译码数据包括R ij[k]和Q ji[k]。 Perform N iterative decoding on a set of second LLR sequences, and update the information R ij [k] transmitted by the i-th check node to the j-th variable node in the k-th LDPC iterative decoding among them, and pass The second LLR sequence updates the information Q ji [k] transmitted by the j-th variable node to the i-th check node, 1≤k≤N, and N is less than or equal to the preset number of iterations; among them, a group of the second LLR sequence The decoded data of the k-th iterative decoding includes R ij [k] and Q ji [k].
本申请实施例中,在每一次的迭代译码中,可以交替更新变量节点与校验节点,完成对第二LLR序列的译码,得到准确的译码数据。In the embodiment of the present application, in each iteration of decoding, variable nodes and check nodes can be alternately updated to complete the decoding of the second LLR sequence to obtain accurate decoded data.
可选地,在一些可能的实施方式中,更新第i个校验节点传给第j个变量节点的信息R ij[k],可以包括: Optionally, in some possible implementation manners, updating the information R ij [k] transmitted by the i-th check node to the j-th variable node may include:
通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k]。在本申请实施例中,可以通过修正值更新第i个校验节点传给第j个变量节点的信息,通过修 正值改善译码性能,补偿计算误差,提高译码的准确度。 Update the information R ij [k] transmitted from the i-th check node to the j-th variable node through at least one preset correction value. In the embodiment of the present application, the information transmitted from the i-th check node to the j-th variable node can be updated by the correction value, and the correction value can be used to improve the decoding performance, compensate for calculation errors, and improve the accuracy of decoding.
可选地,在一些可能的实施方式中,通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],可以包括: Optionally, in some possible implementation manners, updating the information Q ji [k] transmitted from the j-th variable node to the i-th check node through the second LLR sequence may include:
通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]。 The information Q ji [k] transmitted from the j-th variable node to the i-th check node is updated by the preset weight value and the second LLR sequence.
本申请实施例中,可以通过加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息,提高得到的Q ji[k]的准确度,并提高Q ji[k]的有效性。 In the embodiment of this application, the information transmitted from the j-th variable node to the i-th check node can be updated by the weighted value and the second LLR sequence, so as to improve the accuracy of the obtained Q ji [k], and increase the Q ji [k ] Effectiveness.
可选地,在一些可能的实施方式中,通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],可以包括: Optionally, in some possible implementation manners, updating the information Q ji [k] transmitted by the j-th variable node to the i-th check node by the preset weight value and the second LLR sequence may include:
若第k次迭代译码得到的Q ji[k]的符号与第k-1次迭代译码得到的Q ji[k-1]的符号不同,则Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],ω为加权值。 If the sign of Q ji [k] obtained by the k-th iterative decoding is different from the sign of Q ji [k-1] obtained by the k- 1th iterative decoding, then Q ji [k]=ω*Q ji [ k]+(1-ω)*Q ji [k-1], ω is a weighted value.
本申请实施例中,提供了在迭代译码时,通过上一次迭代译码的结果,对本次迭代译码的Q ji[k]进行更新,可以是多次迭代译码之间的译码结果进行结合,提高译码的准确性。 In the embodiment of the present application, it is provided that the Q ji [k] of this iterative decoding is updated through the result of the previous iterative decoding during iterative decoding, which can be the decoding between multiple iterative decodings. The results are combined to improve the accuracy of decoding.
可选地,在一些可能的实施方式中,在对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列之前,该方法还可以包括:Optionally, in some possible implementation manners, before perturbing one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences, the method may further include:
对第一LLR序列进行LDPC译码失败。LDPC decoding of the first LLR sequence fails.
在本申请实施例中,可以是在对第一LLR序列进行LDPC译码失败之后,再对第一LLR序列进行扰动处理,然后基于扰动处理之后得到的第二LLR序列进行译码。因此,即使在第一次对第一LLR序列译码失败之后,也可以使用一组或多组第二LLR序列进行译码,得到校验成功的第一译码数据,可以提高得到校验成功的译码数据的准确率。In the embodiment of the present application, after the LDPC decoding of the first LLR sequence fails, the first LLR sequence is disturbed, and then the decoding is performed based on the second LLR sequence obtained after the disturbing processing. Therefore, even after the first LLR sequence fails to be decoded for the first time, one or more sets of second LLR sequences can be used for decoding to obtain the first decoded data that is successfully verified, which can improve the successful verification. The accuracy of the decoded data.
本申请第二方面提供一种译码装置,该译码装置具有实现上述第一方面数据译码的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。A second aspect of the present application provides a decoding device, which has the function of implementing the method for data decoding in the first aspect. This function can be realized by hardware, or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above-mentioned functions.
本申请实施例第三方面提供一种译码装置,可以包括:A third aspect of the embodiments of the present application provides a decoding device, which may include:
处理器、存储器以及输入输出接口,该处理器、该存储器与该输入输出接口连接;该存储器,用于存储程序代码;该处理器调用该存储器中的程序代码时执行本申请第一方面或第一方面任一实施方式提供的方法的步骤。A processor, a memory, and an input-output interface, the processor, the memory are connected to the input-output interface; the memory is used to store program code; the processor executes the first aspect or the first aspect of the application when calling the program code in the memory On the one hand, the steps of the method provided by any embodiment.
本申请实施例第四方面提供一种终端,可以包括:A fourth aspect of the embodiments of the present application provides a terminal, which may include:
处理器、存储器以及输入输出接口,该处理器、该存储器与该输入输出接口连接;该存储器,用于存储程序代码;该处理器调用该存储器中的程序代码时执行本申请第一方面或第一方面任一实施方式提供的方法的步骤。A processor, a memory, and an input-output interface, the processor, the memory are connected to the input-output interface; the memory is used to store program code; the processor executes the first aspect or the first aspect of the application when calling the program code in the memory On the one hand, the steps of the method provided by any embodiment.
本申请实施例第五方面提供一种基站,可以包括:A fifth aspect of the embodiments of the present application provides a base station, which may include:
处理器、存储器以及输入输出接口,该处理器、该存储器与该输入输出接口连接;该存储器,用于存储程序代码;该处理器调用该存储器中的程序代码时执行本申请第一方面或第一方面任一实施方式提供的方法的步骤。A processor, a memory, and an input-output interface, the processor, the memory are connected to the input-output interface; the memory is used to store program code; the processor executes the first aspect or the first aspect of the application when calling the program code in the memory On the one hand, the steps of the method provided by any embodiment.
本申请实施例第六方面提供一种译码装置,该译码装置可以应用于终端或者基站等设备中,译码装置与存储器耦合,用于读取并执行所述存储器中存储的指令,使得所述译码装置实现本申请第一方面或第一方面任一实施方式提供的方法的步骤。在一种可能的设计中,该译码装置为芯片或片上系统。The sixth aspect of the embodiments of the present application provides a decoding device, which can be applied to equipment such as a terminal or a base station. The decoding device is coupled with a memory, and is used to read and execute instructions stored in the memory, so that The decoding device implements the steps of the method provided in the first aspect or any one of the first aspect of the application. In one possible design, the decoding device is a chip or a system on a chip.
本申请第七方面提供一种芯片系统,该芯片系统包括处理器,用于支持基站或终端实现上述方面中所涉及的功能,例如,例如处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存基站或终端必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。A seventh aspect of the present application provides a chip system including a processor, which is used to support a base station or a terminal to implement the functions involved in the above aspects, for example, for processing data and/or information involved in the above methods. In a possible design, the chip system further includes a memory, and the memory is used to store necessary program instructions and data for the base station or terminal. The chip system may be composed of chips, or may include chips and other discrete devices.
其中,上述任一处提到的处理器,可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制上述第一方面数据搜索方法的程序执行的集成电路。Among them, the processor mentioned in any of the above can be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more for controlling the above The first aspect of the data search method is an integrated circuit for program execution.
本申请实施例第八方面提供一种存储介质,需要说明的是,本发的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产口的形式体现出来,该计算机软件产品存储在一个存储介质中,用于储存为上述设备所用的计算机软件指令,其包含用于执行上述第一方面中任一可选实施方式为译码装置,例如基站或者终端所设计的程序。The eighth aspect of the embodiments of the present application provides a storage medium. It should be noted that the technical solution of the present invention is essentially or a part that contributes to the existing technology, or all or part of the technical solution can be produced by software. In the form of manifestation, the computer software product is stored in a storage medium for storing computer software instructions used by the above-mentioned equipment, which includes a decoding device for executing any optional implementation of the above-mentioned first aspect, such as a base station Or the program designed by the terminal.
该存储介质包括:U盘、移动硬盘、只读存储器(英文缩写ROM,英文全称:Read-Only Memory)、随机存取存储器(英文缩写:RAM,英文全称:Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。The storage medium includes: U disk, mobile hard disk, read-only memory (English abbreviation ROM, English full name: Read-Only Memory), random access memory (English abbreviation: RAM, English full name: Random Access Memory), magnetic disk or CD Various media that can store program codes.
本申请实施例第九方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本申请第一方面任一可选实施方式中所述的方法。The ninth aspect of the embodiments of the present application provides a computer program product containing instructions, which when run on a computer, causes the computer to execute the method described in any optional implementation manner of the first aspect of the present application.
本申请实施例第十方面提供一种通信系统,该通信系统可以包括接终端以及基站;A tenth aspect of the embodiments of the present application provides a communication system, which may include a terminal and a base station;
该终端可以是本申请实施例第四方面提供的终端;The terminal may be the terminal provided in the fourth aspect of the embodiments of the present application;
该基站可以是本申请实施例第五方面提供的基站。The base station may be the base station provided in the fifth aspect of the embodiments of the present application.
在本申请实施例中,对第一LLR序列中的一个或多个第一LLR进行扰动处理,得到一组或多组第二LLR序列,然后对该一组或多组第二LLR序列进行译码,得到第一译码数据。因此,对第一LLR序列中的一个或多个LLR进行扰动处理,即可得到新的LLR序列,即第二LLR序列,然后使用新的LLR序列进行译码,提高了得到译码成功的译码数据的准确率。并且对于得到的一组或多组新的LLR序列,可以实现并行译码,且可以降低LDPC译码的复杂度以及时延,提高译码效率。In the embodiment of the present application, one or more first LLRs in the first LLR sequence are disturbed to obtain one or more sets of second LLR sequences, and then the one or more sets of second LLR sequences are translated Code to obtain the first decoded data. Therefore, by perturbing one or more LLRs in the first LLR sequence, a new LLR sequence, that is, the second LLR sequence, can be obtained, and then the new LLR sequence is used for decoding, which improves the decoding success. The accuracy of the code data. And for the obtained one or more sets of new LLR sequences, parallel decoding can be realized, and the complexity and time delay of LDPC decoding can be reduced, and the decoding efficiency can be improved.
附图说明Description of the drawings
图1a为本申请实施例提供的数据译码的方法的一种应用场景;FIG. 1a is an application scenario of the data decoding method provided by an embodiment of this application;
图1b为本申请实施例提供的数据译码的方法的另一种应用场景;FIG. 1b is another application scenario of the data decoding method provided by the embodiment of this application;
图2为本申请实施例提供的数据译码的方法的一种实施例示意图;2 is a schematic diagram of an embodiment of a data decoding method provided by an embodiment of this application;
图3为本申请实施例提供的数据译码的方法的另一种实施例示意图;3 is a schematic diagram of another embodiment of a data decoding method provided by an embodiment of this application;
图4为本申请实施例提供的LDPC码的校验矩阵和校验方程的一种示意图;4 is a schematic diagram of a check matrix and a check equation of an LDPC code provided by an embodiment of the application;
图5为本申请实施例提供的一种校验矩阵H对应的Tanner图;FIG. 5 is a Tanner graph corresponding to a check matrix H provided by an embodiment of the application;
图6a为本申请实施例提供的一种基图矩阵示意图;FIG. 6a is a schematic diagram of a base map matrix provided by an embodiment of this application;
图6b为本申请实施例提供的另一种基图矩阵示意图;FIG. 6b is a schematic diagram of another base map matrix provided by an embodiment of the application;
图7为本申请实施例提供的一种偏移矩阵示意图;FIG. 7 is a schematic diagram of an offset matrix provided by an embodiment of the application;
图8为本申请实施例提供的一种置换矩阵示意图;FIG. 8 is a schematic diagram of a permutation matrix provided by an embodiment of this application;
图9为本申请实施例提供的两种基图矩阵的应用范围示意图;FIG. 9 is a schematic diagram of the application range of two base image matrices provided by an embodiment of this application;
图10a为本申请实施例提供的一种更新变量节点的示意图;FIG. 10a is a schematic diagram of updating variable nodes according to an embodiment of the application;
图10b为本申请实施例提供的一种更新校验节点的示意图;FIG. 10b is a schematic diagram of updating a check node according to an embodiment of the application;
图11为本申请实施例提供的一种交替更新变量节点与校验节点的示意图;FIG. 11 is a schematic diagram of alternately updating variable nodes and check nodes according to an embodiment of the application;
图12为本申请实施例提供的一种仿真结果示意图;FIG. 12 is a schematic diagram of a simulation result provided by an embodiment of this application;
图13为本申请实施例提供的另一种仿真结果示意图;FIG. 13 is a schematic diagram of another simulation result provided by an embodiment of the application;
图14为本申请实施例提供的译码装置的一种结构示意图;FIG. 14 is a schematic structural diagram of a decoding device provided by an embodiment of this application;
图15为本申请实施例提供的译码装置的另一种结构示意图;15 is a schematic diagram of another structure of a decoding device provided by an embodiment of this application;
图16为本申请实施例提供的基站的一种结构示意图;FIG. 16 is a schematic structural diagram of a base station provided by an embodiment of this application;
图17为本申请实施例提供的终端的另一种结构示意图。FIG. 17 is a schematic diagram of another structure of a terminal provided by an embodiment of the application.
具体实施方式Detailed ways
本申请提供了一种数据译码的方法以及装置,用于通过对LLR序列进行扰动处理的方式,降低译码复杂度、降低译码时延,并且提高译码的准确性。This application provides a method and device for data decoding, which are used to reduce decoding complexity, reduce decoding delay, and improve decoding accuracy by perturbing LLR sequences.
本申请提供的数据译码的方法可以应用于各种通信系统或通信网络,例如,5G系统,长期演进(Long Term Evolution,LTE)系统、全球移动通信系统(Global System for Mobile Communication,GSM)或码分多址(Code Division Multiple Access,CDMA)网络、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)网络等,还可以是全球微波互联接入(Worldwide Interoperability for Microwave Access,WiMAX)或无线保真(Wireless Fidelity,WiFI)等其他需要进行数据译码的通信网络或通信系统。The data decoding method provided in this application can be applied to various communication systems or communication networks, for example, 5G systems, Long Term Evolution (LTE) systems, Global System for Mobile Communication (GSM) or Code Division Multiple Access (CDMA) network, Wideband Code Division Multiple Access (WCDMA) network, etc., can also be Worldwide Interoperability for Microwave Access (WiMAX) or wireless Other communication networks or communication systems that require data decoding, such as Wireless Fidelity (WiFI).
示例性地,本申请实施例的具体应用场景可以如图1a或图1b所示。其中,LDPC码可以应用于基站与终端之间的通信编码。具体的,该应用场景可以包括一个或多个基站,以及一个或多个终端。如图1a所示,一个基站可以接入多个终端(例如图1a中的终端1以及终端2),即一个基站可以与多个终端进行通信,可以由该基站向多个终端发送编码后的数据,基站也可以接收由终端发送的编码后的数据。如图1b所示,一个终端也可以与多个基站(如图1b中的基站1、基站2以及基站3)进行通信,可以是终端接收多个基站发送的编码后的数据,终端可以向多个基站发送编码后的数据。Exemplarily, the specific application scenario of the embodiment of the present application may be as shown in Fig. 1a or Fig. 1b. Among them, the LDPC code can be applied to the communication coding between the base station and the terminal. Specifically, the application scenario may include one or more base stations and one or more terminals. As shown in Figure 1a, a base station can access multiple terminals (for example, terminal 1 and terminal 2 in Figure 1a), that is, a base station can communicate with multiple terminals, and the base station can send encoded Data, the base station can also receive encoded data sent by the terminal. As shown in Figure 1b, a terminal can also communicate with multiple base stations (base station 1, base station 2, and base station 3 in Figure 1b). It can be that the terminal receives encoded data sent by multiple base stations, and the terminal can communicate to multiple base stations. Each base station sends the encoded data.
因此,本申请实施例提供的数据译码的方法也可以由各种译码装置执行,该译码装置 可以包括基站、终端等等,或者,也可以是该译码装置可以包括于基站、终端等等设备中。该基站可以是各种形式的宏基站,微基站(也称为小站),中继站,接入点等。而在不同的通信系统中,基站的名称也可能会不同,例如,该基站可以是GSM或CDMA网络中的基站收发信台(Base Transceiver Station,BTS),WCDMA中的NB(NodeB),LTE系统中的长期演进节点(Evolutional NodeB,eNB或eNodeB),还可以是5G网络中的基站设备或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)网络中的通信装置,例如,5G基站(Next generation NodeB,gNB)。终端可以是各种包括通信功能的手持设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等等。例如,可以是移动站(Mobile Station,MS)、用户单元(subscriber unit)、蜂窝电话(cellular phone)、智能电话(smart phone)、无线数据卡、个人数字助理(Personal Digital Assistant,简称:PDA)电脑、平板型电脑、无线调制解调器(modem)、手持设备(handset)、膝上型电脑(laptop computer)、机器类型通信(Machine Type Communication,MTC)终端等等。Therefore, the data decoding method provided by the embodiments of the present application can also be executed by various decoding devices. The decoding device can include a base station, a terminal, etc., or the decoding device can be included in a base station, a terminal, etc. Wait for the device. The base station may be various forms of macro base stations, micro base stations (also called small stations), relay stations, access points, and so on. In different communication systems, the name of the base station may also be different. For example, the base station may be a base transceiver station (BTS) in a GSM or CDMA network, an NB (NodeB) in WCDMA, or an LTE system. The long-term evolution node (Evolutional NodeB, eNB, or eNodeB) in the network may also be the base station equipment in the 5G network or the communication device in the future evolved Public Land Mobile Network (PLMN) network, for example, the 5G base station ( Next generation NodeB, gNB). The terminal may be a variety of handheld devices including communication functions, wearable devices, computing devices, or other processing devices connected to a wireless modem, and so on. For example, it can be a mobile station (Mobile Station, MS), subscriber unit (subscriber unit), cellular phone (cellular phone), smart phone (smart phone), wireless data card, personal digital assistant (Personal Digital Assistant, PDA for short) Computer, tablet computer, wireless modem (modem), handheld device (handset), laptop computer (laptop computer), machine type communication (Machine Type Communication, MTC) terminal, etc.
应理解,本申请实施例提供的数据译码的方法可以由以上各种独立的译码装置,或者基站或终端设备等设备中的译码装置执行,下面基于译码装置对本申请实施例提供的数据译码的方法的具体流程进行详细说明。It should be understood that the data decoding method provided in the embodiments of this application can be executed by the above-mentioned various independent decoding devices, or the decoding devices in the base station or terminal equipment, etc. The following is based on the decoding devices provided in the embodiments of this application The specific process of the data decoding method will be described in detail.
本申请提供的数据译码的方法的具体流程可以如图2所示,可以包括:The specific process of the data decoding method provided in this application may be as shown in Fig. 2 and may include:
201、获取传输数据对应的第一对数似然比LLR序列。201. Acquire a first log-likelihood ratio LLR sequence corresponding to the transmission data.
通常,译码装置可以接收另一网络设备发送的信号。例如,当接收信号的译码装置为基站时,另一发送信号的网络设备可以是终端,当接收信号的译码装置为终端时,另一发送信号的设备可以是终端也可以是基站等等。Generally, the decoding device can receive a signal sent by another network device. For example, when the decoding device that receives the signal is a base station, another network device that sends a signal can be a terminal. When the decoding device that receives a signal is a terminal, the other signal-sending device can be a terminal or a base station, etc. .
发送信号的网络设备对待传输数据进行LDPC编码后得到传输数据,经过调制映射后发送其对应的信号,该传输数据可以由信息比特以及校验数据组成,例如,若该传输数据为n比特序列的数据,则该传输数据可以包括k比特的信息比特以及(n-k)比特的校验数据,k<n。The network device that sends the signal performs LDPC encoding on the data to be transmitted to obtain the transmission data, and sends its corresponding signal after modulation and mapping. The transmission data can consist of information bits and check data. For example, if the transmission data is an n-bit sequence Data, the transmission data may include k bits of information bits and (nk) bits of check data, k<n.
接收信号的译码装置接收到信号后,经过解调后得到与传输数据对应的第一LLR序列。After receiving the signal, the decoding device receiving the signal obtains the first LLR sequence corresponding to the transmission data after demodulation.
例如,可以是对接收到的信号进行解调、同步等等,得到第一LLR序列。第一LLR序列中的每个LLR与传输数据中的每个比特一一对应。每个LLR可以表示为
Figure PCTCN2020084420-appb-000001
p(1)表示对应的比特判定为1的概率,p(0)表示对应的比特判定为0个概率。
For example, the received signal may be demodulated, synchronized, etc., to obtain the first LLR sequence. Each LLR in the first LLR sequence corresponds to each bit in the transmission data one-to-one. Each LLR can be expressed as
Figure PCTCN2020084420-appb-000001
p(1) represents the probability that the corresponding bit is judged as 1, and p(0) represents the probability that the corresponding bit is judged as 0.
202、对第一LLR序列中的一个或多个第一LLR进行扰动处理,得到一组或多组第二LLR序列。202. Perform perturbation processing on one or more first LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences.
在确定与传输数据对应的第一LLR序列之后,对第一LLR序列中的一个或多个第一LLR进行扰动处理。After the first LLR sequence corresponding to the transmission data is determined, perturbation processing is performed on one or more first LLRs in the first LLR sequence.
可选地,在一些可能的实施方式中,对第一LLR序列中的一个或多个第一LLR进行扰动处理,可以是对该一个或多个第一LLR分别加上一个或多个扰动值,即对至少一个第一LLR分别加上至少一个扰动值,得到一组或多组第二LLR序列。应理解,本申请实施例中 的多个为两个或两个以上,多组为两组或两组以上。Optionally, in some possible implementation manners, performing perturbation processing on one or more first LLRs in the first LLR sequence may be adding one or more perturbation values to the one or more first LLRs. , That is, add at least one perturbation value to at least one first LLR to obtain one or more sets of second LLR sequences. It should be understood that in the embodiments of the present application, multiple groups are two or more than two, and multiple groups are two or more than two groups.
可选地,在一些可能的实施方式中,对第一LLR序列中的一个或多个第一LLR进行扰动处理,也可以是对该一个或多个第一LLR分别乘上一个或多个扰动值,得到一组或多组第二LLR序列。Optionally, in some possible implementation manners, perturbation processing is performed on one or more first LLRs in the first LLR sequence, or the one or more first LLRs are respectively multiplied by one or more perturbations Value to get one or more sets of second LLR sequences.
当然,除了以上的加上或者乘上一个或多个扰动值之外,也可以是通过其他的方式,例如,减去一个或多个扰动值、除以一个或多个扰动值等等以LLR和扰动值为参数进行的代数运算,具体可以根据实际应用场景进行调整,例如,可以是加法,减法,乘法或除法等中的一种或多种,本申请对于第一LLR序列的扰动处理的方式不作限定。Of course, in addition to the above adding or multiplying one or more disturbance values, other methods can also be used, for example, subtracting one or more disturbance values, dividing by one or more disturbance values, etc. to LLR And the perturbation value is the algebraic operation performed by the parameter, which can be specifically adjusted according to actual application scenarios, for example, it can be one or more of addition, subtraction, multiplication, or division, etc. The present application deals with the perturbation processing of the first LLR sequence The method is not limited.
其中,扰动值可以是预设的值,也可以是根据历史数据进行学习得到的值等等。Among them, the disturbance value can be a preset value, or a value obtained by learning based on historical data, and so on.
例如,扰动处理可以是对该一个或多个第一LLR中的每个第一LLR加上相同的扰动值,包括对每个第一LLR加上相同的一个或多个扰动值,得到一组或者多组第二LLR序列,例如,可以在第一次对每个第一LLR加上一个扰动值,得到一组第二LLR序列,然后继续第二次对每个第一LLR加上一个与第一次不同的扰动值,得到两组第二LLR序列,以此类推;也可以是对每个第一LLR加上不同的扰动值,得到一组或多组第二LLR序列。For example, the disturbance processing may be to add the same disturbance value to each of the one or more first LLRs, including adding the same one or more disturbance values to each first LLR to obtain a set of Or multiple sets of second LLR sequences. For example, you can add a perturbation value to each first LLR for the first time to obtain a set of second LLR sequences, and then continue to add an AND to each first LLR for the second time. The first different disturbance values obtain two sets of second LLR sequences, and so on; it is also possible to add different disturbance values to each first LLR to obtain one or more sets of second LLR sequences.
并且,可选地,在一种可能的实施方式中,可以是在对第一LLR序列进行第一次LDPC译码失败之后,再对第一LLR序列中的一个或多个第一LLR加上一个或多个扰动值,得到一组或多组第二LLR序列,之后基于该一组或多组第二LLR序列对该传输数据进行第二次LDPC译码。And, optionally, in a possible implementation manner, after the first LDPC decoding of the first LLR sequence fails, add one or more first LLRs in the first LLR sequence One or more disturbance values are used to obtain one or more sets of second LLR sequences, and then the transmission data is subjected to a second LDPC decoding based on the one or more sets of second LLR sequences.
203、对一组或多组第二LLR序列进行译码,得到第一译码数据。203. Decode one or more sets of second LLR sequences to obtain first decoded data.
在得到一组或多组第二LLR序列之后,对该一组或多组第二LLR序列进行译码,得到对应的第一译码数据。After one or more sets of second LLR sequences are obtained, the one or more sets of second LLR sequences are decoded to obtain corresponding first decoded data.
具体地,对第二LLR序列进行译码的译码方式可以包括多种,例如,可以是基于一组或多组第二LLR序列的最小和(Min-Sum,MS)译码、分层译码、最大似然法(Maximum Likelihood,ML)译码等等,具体可以根据实际应用场景进行调整,此处不作限定。Specifically, the decoding method for decoding the second LLR sequence may include multiple, for example, it may be based on the minimum sum (Min-Sum, MS) decoding of one or more sets of the second LLR sequence, and layered translation. Codes, Maximum Likelihood (ML) decoding, etc., can be specifically adjusted according to actual application scenarios and are not limited here.
并且,在对一组或多组第二LLR序列进行译码时,可以是对该一组或多组第二LLR序列中的所有第二LLR序列进行并行译码,也可以是对该一组或多组第二LLR序列中的所有第二LLR序列进行串行译码,具体可以根据实际应用场景调整,此处不作限定。Moreover, when decoding one or more sets of second LLR sequences, all second LLR sequences in the one or more sets of second LLR sequences may be decoded in parallel, or the set of second LLR sequences may be decoded in parallel. Or all the second LLR sequences in the multiple sets of second LLR sequences are serially decoded, which can be specifically adjusted according to actual application scenarios, which is not limited here.
此外,在进行LDPC译码候,还需要对译码结果进行判定,以确定译码成功的译码数据。具体可以是通过LDPC自校验进行校验,也可以通过循环冗余校验(cyclic redundancy check,CRC)进行校验等等,具体可以根据实际应用场景进行调整,此处不作限定。In addition, when performing LDPC decoding, it is also necessary to determine the decoding result to determine the decoded data successfully decoded. Specifically, the verification may be performed through LDPC self-checking, or may be performed through cyclic redundancy check (cyclic redundancy check, CRC), etc. The specific may be adjusted according to actual application scenarios, which is not limited here.
在本申请实施例中,对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列,然后根据该一组或多组第二LLR序列,对第二LLR序列进行译码,得到第一译码数据。因此,对第一LLR序列中的一个或多个LLR添加扰动值,即可得到新的LLR序列,然后使用新的LLR序列进行译码,相对于选择不满足校验方程的变量节点进行下一步的校验,本申请实施例可以直接通过扰动处理之后得到的第二LLR序列进行译码,相对于选择变量节点,本申请实施例可以降低复杂度。且得到一组或多组第二LLR序列之后,可以直接基于该一组或多组第二LLR序列进行译码,可以实现并行译码,相对于串行 译码,可以提高译码的效率,降低译码时延。并且,可以对多组第二LLR序列进行译码,后续可以得到多组译码数据,可以提高得到成功译码的译码数据的准确率。In the embodiment of the present application, one or more LLRs in the first LLR sequence are disturbed to obtain one or more sets of second LLR sequences, and then according to the one or more sets of second LLR sequences, The LLR sequence is decoded to obtain the first decoded data. Therefore, by adding disturbance values to one or more LLRs in the first LLR sequence, a new LLR sequence can be obtained, and then the new LLR sequence is used for decoding, and the next step is to select the variable node that does not satisfy the check equation The embodiment of the application can directly decode the second LLR sequence obtained after the disturbance processing. Compared with selecting variable nodes, the embodiment of the application can reduce the complexity. And after one or more sets of second LLR sequences are obtained, the decoding can be performed directly based on the one or more sets of second LLR sequences, which can realize parallel decoding, and can improve the efficiency of decoding compared with serial decoding. Reduce decoding delay. In addition, multiple sets of second LLR sequences can be decoded, and multiple sets of decoded data can be subsequently obtained, which can improve the accuracy of successfully decoded decoded data.
前述对本申请提供的数据译码的方法的流程进行描述,其中,本申请实施例中针对第二LLR序列进行译码的方式有多种,可以是ML译码或者LDPC迭代译码等等,示例性的,下面以LDPC迭代译码为例对本申请提供的数据译码的方法进行更详细的描述。请参阅图3,本申请实施例提供的数据译码的方法的另一种流程示意图,可以包括:The foregoing describes the flow of the data decoding method provided by this application. Among them, there are many ways to decode the second LLR sequence in the embodiment of this application, which can be ML decoding or LDPC iterative decoding, etc., examples In terms of nature, the following uses LDPC iterative decoding as an example to describe the data decoding method provided in this application in more detail. Please refer to FIG. 3, which is a schematic diagram of another flow of a data decoding method provided by an embodiment of the present application, which may include:
301、获取传输数据对应的第一LLR序列。301. Acquire a first LLR sequence corresponding to transmission data.
通常,译码装置可以接收另一网络设备发送的信号。发送该信号的网络设备可以是前述的基站、终端等等。例如,可以是基站向终端发送信号或者终端向基站发送信号等等。Generally, the decoding device can receive a signal sent by another network device. The network device that sends the signal may be the aforementioned base station, terminal, etc. For example, the base station may send a signal to the terminal or the terminal may send a signal to the base station.
发送信号的设备可以对待传输的数据进行编码之后,得到传输数据,并经过调制映射后发送其对应的信号。The signal sending device can obtain the transmission data after encoding the data to be transmitted, and send the corresponding signal after modulation and mapping.
译码装置在接收到信号后,经过解调后得到与传输数据对应的第一LLR序列。After receiving the signal, the decoding device obtains the first LLR sequence corresponding to the transmission data after demodulation.
传输数据可以由信息比特以及校验数据组成,信息比特即需要传输的信息,校验数据即对需要传输的信息比特通过预置的编码方式进行计算后得到的数据。例如,若该传输数据为n比特序列的数据,则该传输数据可以包括k比特的信息比特以及(n-k)比特的校验数据,k<n。发送信号的网络设备对信息比特进行编码的具体编码方式可以是LDPC编码,CRC编码、turbo编码等等。相应的,译码装置对传输数据的译码方式与编码方式对应。例如,该译码方式可以是针对LDPC编码的译码方式,针对CRC编码的译码方式、或者针对turbo编码的译码方式等等,本申请实施例仅对LDPC译码进行示例性说明,具体使用的译码方式可以根据实际应用场景进行调整,本申请对此并不作限定。通常,传输数据可以由矩阵表示,因此,对应的第一LLR序列也可以通过矩阵表示。The transmission data can be composed of information bits and check data. The information bits are information to be transmitted, and the check data is data obtained by calculating the information bits to be transmitted through a preset encoding method. For example, if the transmission data is data of an n-bit sequence, the transmission data may include k bits of information bits and (n-k) bits of check data, k<n. The specific encoding method used by the network device that sends the signal to encode the information bits may be LDPC encoding, CRC encoding, turbo encoding, and so on. Correspondingly, the decoding method of the transmission data by the decoding device corresponds to the encoding method. For example, the decoding method may be a decoding method for LDPC encoding, a decoding method for CRC encoding, or a decoding method for turbo encoding, etc. The embodiments of the present application only illustrate LDPC decoding. The decoding method used can be adjusted according to actual application scenarios, which is not limited in this application. Generally, the transmission data can be represented by a matrix, and therefore, the corresponding first LLR sequence can also be represented by a matrix.
示例性地,LDPC码可以理解为(n,k)线性分组码,其校验矩阵是一种稀疏矩阵,码长为n,信息序列长度为k,并且可以由其校验矩阵H唯一确定,也可以由校验矩阵H对应的Tanner图唯一确定。示例性地,LDPC码的校验矩阵H和对应的校验方程如图4所示。该校验矩阵H对应的Tanner图的表示如图5所示。其中,每个圆形节点表示为变量节点,代表校验矩阵H矩阵中的一列,每个方形节点为校验节点,代表H矩阵中的一行,图5中每条连接校验节点与变量节点的线代表着两个节点所对应的行与列交汇的位置存在一个非零元素。Exemplarily, an LDPC code can be understood as a (n, k) linear block code, and its check matrix is a sparse matrix, the code length is n, the information sequence length is k, and can be uniquely determined by its check matrix H, It can also be uniquely determined by the Tanner graph corresponding to the check matrix H. Exemplarily, the check matrix H of the LDPC code and the corresponding check equation are shown in FIG. 4. The representation of the Tanner graph corresponding to the check matrix H is shown in FIG. 5. Among them, each circular node is represented as a variable node, representing a column in the H matrix of the check matrix, and each square node is a check node, representing a row in the H matrix, each of which connects the check node and the variable node in Figure 5 The line represents that there is a non-zero element at the intersection of the row and column corresponding to the two nodes.
通常,LDPC码可以用于通信系统中进行编码,例如,在5G通信系统中,可以利用LDPC码对数据进行编码,得到传输数据。LDPC码通常可以奇偶校验矩阵H来表示,而奇偶校验矩阵H通常可以由基图(base graph)和偏移值得到。基图通常可以包括m*n个矩阵元素,可以用m行n列的矩阵形式表示,矩阵元素的值为0或1,其中值为0的元素,也可以称为零元素。零元素可以表示该元素可以被z*z的全零矩阵替换,值为1的元素,也可以称为非零元素。非零元素也可以表示该元素可以被z*z的循环置换矩阵(circulant permutation matrix)替换。因此,每个矩阵元素可以替换为一个全零矩阵或者一个循环置换矩阵。Generally, LDPC codes can be used for encoding in communication systems. For example, in 5G communication systems, LDPC codes can be used to encode data to obtain transmission data. The LDPC code can usually be represented by a parity check matrix H, and the parity check matrix H can usually be obtained from a base graph and an offset value. A base image can usually include m*n matrix elements, which can be represented in the form of a matrix with m rows and n columns. The matrix elements have a value of 0 or 1, and an element with a value of 0 can also be called a zero element. A zero element can mean that the element can be replaced by a z*z all-zero matrix, and an element with a value of 1 can also be called a non-zero element. A non-zero element can also mean that the element can be replaced by a z*z circulant permutation matrix. Therefore, each matrix element can be replaced with an all-zero matrix or a cyclic permutation matrix.
示例性地,如图6a与图6b所示,分别为不同的基图矩阵。如图6a所示,该基图矩阵 为46行68列,如图6b所示,该基图矩阵为42行52列。如图6a与图6b所示的基图矩阵中,行号标注在最左一列,列号标注在最上一行,各行列中仅示出非零元素,以“1”表示,空白部分为零元素。其中第0列和第1列为2列内置打孔列,在进行速率匹配环节不参与比特选择,即不进入循环缓存。Exemplarily, as shown in FIG. 6a and FIG. 6b, they are respectively different base image matrices. As shown in Fig. 6a, the base image matrix has 46 rows and 68 columns, and as shown in Fig. 6b, the base image matrix has 42 rows and 52 columns. In the base image matrix shown in Figure 6a and Figure 6b, the row number is marked in the leftmost column, and the column number is marked in the top row. Each row and column only shows non-zero elements, which are represented by "1", and the blank parts are zero elements. . Among them, the 0th column and the 1st column are two built-in punctured columns, which do not participate in bit selection during the rate matching process, that is, they do not enter the circular buffer.
示例性地,图7为基于前述图6a的一个偏移值矩阵的示例,若基图矩阵中第i行第j列的元素值为1,其偏移值为P i,j,P i,j为大于或等于0的整数,则表示基图矩阵中第i行第j列的值为1的元素可以被P i,j对应的z*z的循环矩阵替换,该循环矩阵可以通过将z*z的单位矩阵进行P i,j此向右循环位移得到。可见,将图6a的基图矩阵中每个值为0的元素用z*z的全零矩阵替换,以及将每个值为1的元素用z*z的单位矩阵经过对应的P i,j次向右循环位移得到,则可以得到LDPC码的就校验矩阵H。其中,z为正整数,z也可以称为扩展因子,z的值具体可以根据通信系统支持的码块大小和信息数据的大小确定。奇偶校验矩阵H的大小为(m*z)*(n*z)。 Exemplarily, FIG. 7 is an example of an offset value matrix based on the aforementioned FIG. 6a. If the value of the element in the i-th row and the j-th column of the base image matrix is 1, its offset value is P i,j , P i, j is an integer greater than or equal to 0, which means that the element in the i-th row and j-th column of the base image matrix with a value of 1 can be replaced by the z*z circulant matrix corresponding to Pi,j . The circulant matrix can be replaced by z The identity matrix of *z is obtained by cyclically shifting P i,j to the right. It can be seen that each element with a value of 0 in the base image matrix of Figure 6a is replaced with a z*z all-zero matrix, and each element with a value of 1 is passed through the corresponding P i,j with a z*z identity matrix The check matrix H of the LDPC code can be obtained by cyclic shifting to the right one time. Among them, z is a positive integer, z may also be called an expansion factor, and the value of z may be specifically determined according to the size of the code block supported by the communication system and the size of the information data. The size of the parity check matrix H is (m*z)*(n*z).
例如,若z=4,则基图矩阵的每个元素值相应的置换矩阵可以如图8所示,其中,图8中从左到右依次为偏移值为1的z*z矩阵;偏移值为0的z*z矩阵,即单位矩阵;偏移值为1的z*z矩阵,即向右偏移1的矩阵;偏移值为2的z*z矩阵,即向右偏移2的矩阵;偏移值为3的z*z矩阵,即向右偏移3的矩阵。示例性地,当基图矩阵中的元素值大于预设的扩展因子时,需要对该元素值做取模运算,具体为:P i,j=mod(V i,j,Z C),其中,V i,j为基图矩阵中对应的元素值,Z C为实际扩展因子,P i,j为实际偏移值,mod(x,y)为取模运算,返回x除以y的余值,然后根据该公式计算得到实际循环位移值P i,j,然后进行展开做循环位移,得到偏移后的z*z矩阵。 For example, if z=4, the permutation matrix corresponding to each element value of the base image matrix can be shown in Fig. 8, where, from left to right in Fig. 8 are z*z matrices with an offset value of 1; The z*z matrix with the offset value of 0, that is, the identity matrix; the z*z matrix with the offset value of 1, that is, the matrix offset by 1 to the right; the z*z matrix with the offset value of 2, that is offset to the right A matrix of 2; a z*z matrix with an offset of 3, that is, a matrix with an offset of 3 to the right. Exemplarily, when the element value in the base image matrix is greater than the preset expansion factor, it is necessary to perform a modulo operation on the element value, specifically: Pi ,j =mod(V i,j ,Z C ), where , Vi ,j is the corresponding element value in the base image matrix, Z C is the actual expansion factor, P i,j is the actual offset value, mod(x,y) is the modulo operation, and returns the remainder of x divided by y Then, calculate the actual cyclic displacement value P i,j according to the formula, and then expand the cyclic displacement to obtain the offset z*z matrix.
通常,5G中的LDPC码可以采用准循环的结构实现。例如,基于前述图6a以及图6b中提供的两种基图矩阵,可以支持两种LDPC编码方式。具体应用可以如图9所示,其中,图6a所示的基图矩阵称为BG1,图6b所示的基图矩阵称为BG2,可以根据编码的数据确定采用的基图矩阵。具体可以根据不同的传输块的长度和码率,选择不同的基图矩阵进行编码。例如,如图9所示,当待传输的传输块大小小于或等于308,或待传输的传输块大小小于等于3840且编码码率小于等于2/3,或者编码码率小于1/4时,即采用BG2进行编码;若待传输的传输块大小大于308,且编码码率大于2/3,或待传输的传输块大小大于3840,编码码率大于1/4,则采用BG1进行编码。编码后可以得到校验数据。例如,若传输数据为n比特序列的数据,则该传输数据可以包括k比特的信息比特,即k比特待传输的数据,以及(n-k)比特的校验数据,k<n。Generally, the LDPC code in 5G can be implemented in a quasi-cyclic structure. For example, based on the two base picture matrices provided in the aforementioned Figure 6a and Figure 6b, two LDPC encoding methods can be supported. The specific application can be shown in Fig. 9, wherein the base picture matrix shown in Fig. 6a is called BG1, and the base picture matrix shown in Fig. 6b is called BG2. The base picture matrix used can be determined according to the encoded data. Specifically, different base picture matrices can be selected for encoding according to the length and code rate of different transmission blocks. For example, as shown in Figure 9, when the size of the transport block to be transmitted is less than or equal to 308, or the size of the transport block to be transmitted is less than or equal to 3840 and the encoding rate is less than or equal to 2/3, or the encoding rate is less than 1/4, That is, BG2 is used for encoding; if the size of the transmission block to be transmitted is greater than 308 and the coding rate is greater than 2/3, or the size of the transmission block to be transmitted is greater than 3840 and the encoding rate is greater than 1/4, then BG1 is used for encoding. After encoding, check data can be obtained. For example, if the transmission data is data of an n-bit sequence, the transmission data may include k bits of information bits, that is, k bits of data to be transmitted, and (n-k) bits of check data, k<n.
302、对第一LLR序列进行LDPC译码,若译码成功,则执行步骤305,若译码失败,则执行步骤303。302. Perform LDPC decoding on the first LLR sequence. If the decoding is successful, perform step 305, and if the decoding fails, perform step 303.
在得到传输数据之后,即可对第一LLR序列进行第一次LDPC译码。具体的译码方式可以包括最小和MS译码、分层译码等等,得到一组译码数据。可以对该译码数据进行校验,若校验结果为译码成功,则可以执行步骤305,即执行其他步骤。若校验结果为译码失败,则可以执行步骤303,即继续进行LDPC译码。After the transmission data is obtained, the first LDPC decoding can be performed on the first LLR sequence. Specific decoding methods can include minimum sum MS decoding, hierarchical decoding, etc. to obtain a set of decoded data. The decoded data can be verified. If the verification result is that the decoding is successful, step 305 can be executed, that is, other steps can be executed. If the verification result is that the decoding fails, step 303 may be executed, that is, the LDPC decoding is continued.
对该一组译码数据的具体校验方式可以是LDPC自校验、CRC校验等等,具体可以根据实际应用场景调整。The specific check method for the group of decoded data may be LDPC self-check, CRC check, etc., which can be adjusted according to actual application scenarios.
示例性地,LDPC自校验可以是判断译码数据是否满足LDPC码的校验关系。例如,LDPC码预设的校验矩阵为H,c为包含信息比特和校验比特的LDPC码字的序列,即译码数据。该校验关系H*c T=0,即译码数据与校验矩阵相乘的结果为0,则可以确定校验结果为译码成功,若译码数据与校验矩阵相乘的结果不为0,则可以确定校验结果为译码失败。此外,若传输数据还经过CRC处理,则c还可以包括CRC校验比特。 Exemplarily, the LDPC self-check may be to determine whether the decoded data meets the check relationship of the LDPC code. For example, the preset check matrix of the LDPC code is H, and c is a sequence of LDPC code words containing information bits and check bits, that is, decoded data. The check relation H*c T =0, that is, the result of multiplying the decoded data and the check matrix is 0, then the check result can be determined to be a successful decoding, if the result of multiplying the decoded data and the check matrix is not If it is 0, it can be determined that the verification result is a decoding failure. In addition, if the transmission data has also undergone CRC processing, c may also include CRC check bits.
示例性地,CRC校验可以是判断译码数据是否满足CRC的校验关系,该校验关系可以是H CRC*c CRC T=0,该H CRC为预设的CRC校验矩阵,c CRC即包含信息比特与CRC校验比特的序列。若译码数据满足该校验关系,则可以确定译码结果为译码成功,若译码数据不满足该校验关系,则可以确定译码结果为译码失败。 Exemplarily, the CRC check may be to determine whether the decoded data meets the CRC check relationship, and the check relationship may be H CRC *c CRC T =0, where H CRC is the preset CRC check matrix, c CRC That is, it contains a sequence of information bits and CRC check bits. If the decoded data satisfies the check relationship, it can be determined that the decoded result is successful, and if the decoded data does not satisfy the check relationship, it can be determined that the decoded result has failed.
303、对第一LLR序列中的一个或多个第一LLR进行扰动处理,得到一组或多组第二LLR序列。303. Perform perturbation processing on one or more first LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences.
在得到第一LLR序列之后,可以对第一LLR序列中的一个或多个第一LLR加上一个或多个扰动值,得到一组或多组第二LLR序列;或者,对第一LLR序列中的一个或多个第一LLR乘以一个或多个扰动值,得到一组或多组第二LLR序列。After the first LLR sequence is obtained, one or more perturbations can be added to one or more first LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences; or, for the first LLR sequence One or more first LLRs in is multiplied by one or more disturbance values to obtain one or more sets of second LLR sequences.
可选地,在一些可能的实施方式中,扰动值可以是预设的一组值,也可以是随机产生的一组值,添加扰动值可以是第一LLR序列中预设的位置,也可以是随机确定的位置。并且,每一组第二LLR序列都可以一一对应一组LDPC迭代译码。可以理解为,当存在多组第二LLR序列时,需要对每组第二LLR序列都进行LDPC迭代译码。示例性地,在对第一LLR序列进行扰动处理时,可以是在第一LLR序列的相同的位置加上不同的扰动值,也可以是在第一LLR序列的不同的位置加上相同的扰动值。当然,还可以是在第一LLR序列的不同的位置加上不同的扰动值。例如,在得到第一LLR序列之后,令LLR i=LLR i+n i,n i即扰动值,i即需要加上扰动值对应的位置,可以对同一个i的位置加上一个n i,得到一组第二LLR序列,也可是在同一个i的位置加上多个n i,得到多组第二LLR序列,还可以是在不同i的位置加上多个n i,得到多组第二LLR序列。 Optionally, in some possible implementations, the disturbance value may be a preset set of values, or a set of values generated randomly, and the added disturbance value may be a preset position in the first LLR sequence, or It is a randomly determined location. In addition, each group of second LLR sequences can be one-to-one corresponding to a group of LDPC iterative decoding. It can be understood that when there are multiple sets of second LLR sequences, LDPC iterative decoding needs to be performed on each set of second LLR sequences. Exemplarily, when performing perturbation processing on the first LLR sequence, different perturbation values can be added to the same position in the first LLR sequence, or the same perturbation can be added to different positions in the first LLR sequence. value. Of course, it is also possible to add different disturbance values to different positions of the first LLR sequence. For example, after obtaining the first LLR sequence, let LLR i = LLR i + n i , where n i is the disturbance value, and i is the position corresponding to the disturbance value. You can add a n i to the position of the same i , Obtain a set of second LLR sequences, or add multiple n i to the same i position to obtain multiple sets of second LLR sequences, or add multiple n i to different i positions to obtain multiple sets of Two LLR sequence.
例如,在得到第一LLR序列之后,通过一个或多个扰动值,组成m组扰动值组。每组扰动值组可以包括相同或不同的扰动值,且m组扰动值中的每组扰动值可以对应相同或者不同位置的LLR。然后通过该m组扰动值组分别对第一LLR序列进行扰动处理,得到m组第二LLR序列。且该m组第二LLR序列中的每组第二LLR序列各不相同。例如,第一组第二LLR序列可以是对第一LLR序列加上第一组扰动值组后得到,第二组第二LLR序列可以是对第一LLR序列加上第二组扰动值组后得到,第一组扰动值组中的每个扰动值与第二组扰动值组中的每个扰动值对应的LLR的位置可以相同也可以不同,第一组扰动值组与第二 组扰动值组可以包括相等或者不等的扰动值,第一组扰动值与第二组扰动值不完全相等,具体可以根据实际应用场景进行调整,本申请对此并不作限定。For example, after the first LLR sequence is obtained, one or more disturbance values are used to form m groups of disturbance value groups. Each group of disturbance values may include the same or different disturbance values, and each group of disturbance values in the m groups of disturbance values may correspond to LLRs at the same or different positions. Then, the first LLR sequence is disturbed by the m groups of disturbance value groups to obtain m groups of second LLR sequences. And each group of second LLR sequences in the m groups of second LLR sequences is different. For example, the first set of second LLR sequences may be obtained by adding the first set of disturbance value sets to the first LLR sequence, and the second set of second LLR sequences may be obtained after adding the second set of disturbance value sets to the first LLR sequence Obtained, the position of the LLR corresponding to each perturbation value in the first perturbation value group and each perturbation value in the second perturbation value group may be the same or different, the first perturbation value group and the second perturbation value group The group may include equal or unequal disturbance values. The first group of disturbance values and the second group of disturbance values are not completely equal, and can be adjusted according to actual application scenarios, which is not limited in this application.
304、对一组或多组第二LLR序列进行LDPC译码,得到第一译码数据。304. Perform LDPC decoding on one or more sets of second LLR sequences to obtain first decoded data.
在得到一组或多组第二LLR序列之后,可以对该一组或多组第二LLR序列进行LDPC迭代译码,得到译码成功的第一译码数据。在进行LDPC迭代译码时,迭代的最大次数可以为预设迭代次数。After one or more sets of second LLR sequences are obtained, LDPC iterative decoding may be performed on the one or more sets of second LLR sequences to obtain successfully decoded first decoded data. When performing LDPC iterative decoding, the maximum number of iterations may be a preset number of iterations.
可选地,当有多组第二LLR序列时,对于该多组第二LLR序列的译码方式可以是并行译码,也可以是串行译码,具体可以根据实际应用场景进行调整,本申请对此不作限定。例如,为提高译码效率,可以对该多组第二LLR序列采用并行译码。Optionally, when there are multiple sets of second LLR sequences, the decoding method for the multiple sets of second LLR sequences can be parallel decoding or serial decoding, which can be adjusted according to actual application scenarios. The application is not limited. For example, in order to improve decoding efficiency, parallel decoding may be used for the multiple sets of second LLR sequences.
可选地,在一种可能的实施方式中,可以基于该一组或多组第二LLR序列中的每组第二LLR序列分别进行LDPC迭代译码,每组第二LLR序列对应一组LDPC迭代译码。当任意一组第二LLR序列对应的LDPC迭代译码得到译码成功的一组译码数据之后,即停止对该一组或多组第二LLR序列进行译码,并将该一组译码数据作为第一译码数据。例如,若存在m组第二LLR序列,在基于第m组第二LLR序列进行LDPC迭代译码时,当第m组第二LLR序列对应的LDPC迭代译码首先得到一个正确的译码数据之后,即停止所有基于第二LLR序列的LDPC迭代译码,将该正确的译码数据作为第一译码数据。Optionally, in a possible implementation manner, LDPC iterative decoding may be performed respectively based on each group of second LLR sequences in the one or more groups of second LLR sequences, and each group of second LLR sequences corresponds to a group of LDPC Iterative decoding. When the LDPC iterative decoding corresponding to any set of second LLR sequences obtains a successfully decoded set of decoded data, stop decoding the one or more sets of second LLR sequences, and decode the set The data serves as the first decoded data. For example, if there are m groups of second LLR sequences, when LDPC iterative decoding is performed based on the m-th group of second LLR sequences, when the m-th group of second LLR sequences corresponding to the LDPC iterative decoding first obtains a correct decoded data , That is, stop all LDPC iterative decoding based on the second LLR sequence, and use the correct decoded data as the first decoded data.
可选地,在一种可能的实施方式中,可以基于该一组或多组第二LLR序列中的每组第二LLR序列分别对该传输数据进行LDPC迭代译码,得到一组或多组译码成功的译码数据。若仅得到一组译码成功的译码数据,则可以直接确定该一组译码数据为第一译码数据。若得到多组译码成功的译码数据,则可以根据预置规则从该多组译码数据中选择一组译码数据作为第一译码数据。Optionally, in a possible implementation manner, LDPC iterative decoding may be performed on the transmission data based on each group of the second LLR sequence in the one or more groups of second LLR sequences to obtain one or more groups Successfully decoded decoded data. If only a group of successfully decoded decoded data is obtained, it can be directly determined that the group of decoded data is the first decoded data. If multiple sets of successfully decoded decoded data are obtained, one set of decoded data can be selected from the multiple sets of decoded data as the first decoded data according to a preset rule.
可选的,在一种可能的实施方式中,该预置规则可以是从该多组译码数据中确定与第一LLR序列之间的欧几里得度量不大于阈值的一组译码数据作为第一译码数据。当然,也可以是从该多组译码数据中随机确定一组译码数据作为第一译码数据,具体可以根据实际应用场景进行调整,本申请对此并不做限定。此外,该阈值可以是预设的,也可以是根据实际应用场景进行计算得到,例如,可以从多组译码数据中选择欧几里得度量值最小的译码数据作为第一译码数据。Optionally, in a possible implementation manner, the preset rule may be a set of decoded data whose Euclidean metric between the multiple sets of decoded data and the first LLR sequence is not greater than a threshold. As the first decoded data. Of course, a group of decoded data may be randomly determined as the first decoded data from the plurality of sets of decoded data, which can be specifically adjusted according to actual application scenarios, which is not limited in this application. In addition, the threshold may be preset or calculated according to actual application scenarios. For example, the decoded data with the smallest Euclidean metric value may be selected from multiple sets of decoded data as the first decoded data.
示例性地,欧几里得度量以下也可以称为欧式距离。欧式距离的具体计算方式可以包括:扰动处理之后得到的第二LLR序列LLR=[LLR 0,LLR 1,LLR 2,...,LLR n-1],对第二LLR序列的LDPC译码结果为u=[u 0,u 1,...,u N-1]。首先对LLR序列进行硬判决,得到d=[d 0,d 1,...,d N-1],其中,具体的硬判决方式可以是:
Figure PCTCN2020084420-appb-000002
或者,
Figure PCTCN2020084420-appb-000003
具体的硬判决方式可以与LDPC编码时的映射关系保持一致。然后比较序列d与序列c的值,若不相等,则对相应位置的LLR的绝对值相加,最终得到的欧式 距离为
Figure PCTCN2020084420-appb-000004
Exemplarily, the Euclidean metric may also be referred to as Euclidean distance below. The specific calculation method of the Euclidean distance may include: the second LLR sequence LLR=[LLR 0 ,LLR 1 ,LLR 2 ,...,LLR n-1 ] obtained after the disturbance processing, the LDPC decoding result of the second LLR sequence It is u=[u 0 ,u 1 ,...,u N-1 ]. First, make a hard decision on the LLR sequence, and get d=[d 0 ,d 1 ,...,d N-1 ], where the specific hard decision method can be:
Figure PCTCN2020084420-appb-000002
or,
Figure PCTCN2020084420-appb-000003
The specific hard decision method can be consistent with the mapping relationship during LDPC encoding. Then compare the values of sequence d and sequence c. If they are not equal, add the absolute value of the LLR at the corresponding position, and the final Euclidean distance is
Figure PCTCN2020084420-appb-000004
可选地,在一种可能的实施方式中,在对一组或多组第二LLR序列中任意一组第二LLR序列执行从第一次到第N次的迭代译码时,针对其中的第k次LDPC迭代译码中:更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,N小于或等于预设迭代次数,并且,任意一组第二LLR序列的译码数据包括该R ij[k]和Q ji[k]。 Optionally, in a possible implementation manner, when performing iterative decoding from the first time to the Nth time on any group of the second LLR sequence in one or more groups of second LLR sequences, In the k-th LDPC iterative decoding: update the information R ij [k] transmitted from the i-th check node to the j-th variable node, and update the j-th variable node to the i-th check through the second LLR sequence The node information Q ji [k], 1≤k≤N, N is less than or equal to the preset number of iterations, and the decoded data of any set of second LLR sequence includes the R ij [k] and Q ji [k] .
可选地,在一种可能的实施方式中,基于一组或多组第二LLR序列中的每组第二LLR序列对第二LLR序列进行LDPC迭代译码时,在第k次迭代中:可以通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],得到一组译码数据,k小于预设迭代次数,且k为正整数。其中,可选的,可以将该一组译码数据作为第一译码数据,也可以是在得到多组译码数据之后,选择其中一组作为第一译码数据,具体可以根据实际应用场景进行调整。 Optionally, in a possible implementation manner, when performing LDPC iterative decoding on the second LLR sequence based on each of the second LLR sequences in one or more sets of second LLR sequences, in the kth iteration: The information R ij [k] transmitted by the i-th check node to the j-th variable node can be updated by at least one preset correction value, and the j-th variable node can be updated and passed to the i-th checksum by the second LLR sequence. The node information Q ji [k] is a set of decoded data, k is less than the preset number of iterations, and k is a positive integer. Optionally, the group of decoded data may be used as the first decoded data, or after multiple sets of decoded data are obtained, one of the sets of decoded data may be selected as the first decoded data, which may be specifically based on actual application scenarios. Make adjustments.
示例性地,以任意一组第二LLR序列为例,具体的LDPC迭代译码方式可以是:在迭代之前,对各个参数进行初始化,确定进行译码的第二LLR序列,定义输入序列第j个元素的LLR信息λ j=LLR_in j,并且,
Figure PCTCN2020084420-appb-000005
为正逻辑映射(0→-1,1→+1)。第i个校验节点传给第j个变量节点的信息R ij[0]初始化为0,其中j∈V(i)。i=0,1,...,m-1,V(i)表示与第i个校验节点相邻的变量节点的集合。第j个变量节点传给第i个校验节点的信息Q ji[0]初始化为λ j,其中i∈C(j),j=0,1,...,n-1,C(j)表示与第j个变量节点相邻的校验节点的集合。然后进行LDPC迭代译码,交替更新校验节点与变量节点。
Exemplarily, taking any set of second LLR sequences as an example, the specific LDPC iterative decoding method may be: before the iteration, each parameter is initialized, the second LLR sequence to be decoded is determined, and the jth sequence of the input sequence is defined. The LLR information of each element λ j =LLR_in j , and,
Figure PCTCN2020084420-appb-000005
It is a positive logic mapping (0→-1,1→+1). The information R ij [0] transmitted by the i-th check node to the j-th variable node is initialized to 0, where j∈V(i). i=0,1,...,m-1, V(i) represents the set of variable nodes adjacent to the i-th check node. The information Q ji [0] transmitted by the j-th variable node to the i-th check node is initialized to λ j , where i∈C(j), j=0,1,...,n-1, C(j ) Represents the set of check nodes adjacent to the j-th variable node. Then perform LDPC iterative decoding, alternately update check nodes and variable nodes.
可选地,在第k次迭代译码中,k可以是任意一次迭代,且k不大于预设的迭代次数。若Q ji[k-1]=min j'∈V(i)(|Q j'i[k-1]|),即可以理解为若Q ji[k-1]为第k-1次迭代中得到的Q ji的最小值,则R ij[k]=α 1*∏ j'∈V(i)\jsgn(Q j'i[k-1])*min j'∈V(i)(|Q j'i[k-1]|);若Q ji[k-1]不为第k-1次迭代中得到的Q ji的最小值,则R ij[k]=α 2j'∈V(i)\jsgn(Q j'i[k-1])*min j'∈V(i)(|Q j'i[k-1]|)。其中,sgn为取符号操作,min为 求最小值操作,V(i)\j表示与第i个校验节点相连的除第j个变量节点以外的其余变量节点的集合。α 1与α 2为预设的修正值,也可以称为修正因子,α 1与α 2为归一化修正因子。可以理解为,本申请实施例在当Q ji为最小值的场景下,对校验节点的更新进行了修正,即对最小值采用修正因子α 1,其余值采用修正因子α 2,通常,α 1与α 2为小于1的正数。因此,本申请实施例中,可以采用修正因子改善译码性能,补偿计算误差,提高译码的准确度。 Optionally, in the k-th iterative decoding, k can be any iteration, and k is not greater than a preset number of iterations. If Q ji [k-1]=min j'∈V(i) (|Q j'i [k-1]|), it can be understood as if Q ji [k-1] is the k- 1th iteration The minimum value of Q ji obtained in, then R ij [k]=α 1 *∏ j'∈V(i)\j sgn(Q j'i [k-1])*min j'∈V(i) (|Q j'i [k-1]|); if Q ji [k-1] is not the minimum value of Q ji obtained in the k- 1th iteration, then R ij [k]=α 2j '∈V(i)\j sgn(Q j'i [k-1])*min j'∈V(i) (|Q j'i [k-1]|). Among them, sgn is a symbol operation, min is a minimum value operation, and V(i)\j represents the set of variable nodes connected to the i-th check node except the j-th variable node. α 1 and α 2 are preset correction values, which can also be called correction factors, and α 1 and α 2 are normalized correction factors. It can be understood that, in the embodiment of the present application, when Q ji is the minimum value, the update of the check node is corrected, that is, the minimum value uses the correction factor α 1 , and the remaining values use the correction factor α 2 , usually α 1 and α 2 are positive numbers less than 1. Therefore, in the embodiments of the present application, a correction factor can be used to improve the decoding performance, compensate for calculation errors, and improve the accuracy of decoding.
在第k次迭代中,第j个变量节点传给第i个校验节点的信息:Q ji[k]=λ ji'∈C(j)\iR i'j[k],C(j)为与第j个变量节点相连的校验节点的集合,C(j)\i表示与第j个变量节点相连的除第i个校验节点之外的校验节点的集合。 In the k-th iteration, the information passed from the j-th variable node to the i-th check node: Q ji [k]=λ ji'∈C(j)\i R i'j [k], C(j) is the set of check nodes connected to the j-th variable node, and C(j)\i represents the set of check nodes connected to the j-th variable node except the i-th check node.
可选地,如果第k次迭代中Q ji[k]的符号与上一次迭代中Q ji[k-1]的符号不同,则令Q ji[k]=0。 Optionally, if the sign of Q ji [k] in the kth iteration is different from the sign of Q ji [k-1] in the previous iteration, then let Q ji [k]=0.
示例性的,在第k次迭代中,变量节点更新的过程可以如图10a所示,以及校验节点更新的过程可以如图10b所示。其中,可以根据添加扰动值后的LLR对变量节点进行更新,即图10a中的λ jExemplarily, in the kth iteration, the process of updating the variable node may be as shown in FIG. 10a, and the process of updating the check node may be as shown in FIG. 10b. Among them, the variable node can be updated according to the LLR after adding the disturbance value, that is, λ j in Figure 10a.
可选的,可以同时更新一个变量节点或校验节点,也可以同时更新多个变量节点或校验节点,具体可以根据实际应用场景进行调整,此处并不作限定。Optionally, one variable node or check node may be updated at the same time, or multiple variable nodes or check nodes may be updated at the same time, which can be adjusted according to actual application scenarios, which is not limited here.
在交替更新了校验节点与变量节点之后,还需要计算变量节点的后验概率信息:
Figure PCTCN2020084420-appb-000006
然后根据该后验概率信息完成硬判决译码,例如,该硬判决的方式可以为:
After alternately updating the check node and the variable node, it is also necessary to calculate the posterior probability information of the variable node:
Figure PCTCN2020084420-appb-000006
Then, the hard decision decoding is completed according to the posterior probability information. For example, the hard decision can be:
Figure PCTCN2020084420-appb-000007
或者,
Figure PCTCN2020084420-appb-000008
Figure PCTCN2020084420-appb-000007
or,
Figure PCTCN2020084420-appb-000008
在根据硬判决译码得到对第二LLR序列的第k次迭代译码的译码数据之后,还可以对该译码数据进行校验,可以是LDPC自校验,也可以是CRC校验等,还可以是对进行了多次迭代后得到的所有译码数据进行校验,确定译码成功的数据。例如,以LDPC自校验为例,在得到译码数据
Figure PCTCN2020084420-appb-000009
之后,计算
Figure PCTCN2020084420-appb-000010
Figure PCTCN2020084420-appb-000011
则校验结果为译码成功,若
Figure PCTCN2020084420-appb-000012
则校验结果为译码失败。
After obtaining the decoded data of the k-th iterative decoding of the second LLR sequence according to the hard decision decoding, the decoded data can also be checked, which can be LDPC self-check or CRC check, etc. It can also check all the decoded data obtained after multiple iterations to determine the successfully decoded data. For example, taking LDPC self-checking as an example, when the decoded data is obtained
Figure PCTCN2020084420-appb-000009
After that, calculate
Figure PCTCN2020084420-appb-000010
If
Figure PCTCN2020084420-appb-000011
The verification result is a successful decoding, if
Figure PCTCN2020084420-appb-000012
The verification result is that the decoding failed.
可选地,在一种可能的实施方式中,对一组或多组第二LLR序列进行LDPC迭代译码时,在第k次迭代中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],得到一组译码数据,k可以是任意一次迭代,且k不大于预设的迭代次数。 Optionally, in a possible implementation manner, when performing LDPC iterative decoding on one or more sets of second LLR sequences, in the kth iteration, the i-th check node is updated and passed to the j-th variable Node information R ij [k], and update the information Q ji [k] transmitted from the j-th variable node to the i-th check node through the preset weight value and the second LLR sequence to obtain a set of decoded data, k can be any iteration, and k is not greater than the preset number of iterations.
例如,在本申请实施例中,也可以交替更新R ij[k]以及Q ji[k],更新第i个校验节点传给第j个变量节点的信息R ij[k]可以与前述实施例中利用至少一个修正值更新R ij[k]的方式类似。当然,也可以不使用修正值直接更新R ij[k]。在通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]时,具体的译码过程可以例如,在第k次迭代中,通过第二LLR序列更新Q ji[k],Q ji[k]=λ ji'∈C(j)\iR i'j[k]。若Q ji[k]的符号与上一次迭代的Q ji[k-1]的符号不同,则令:Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],若Q ji[k]的符号与上一次迭代的Q ji[k-1]的符号相同,则Q ji[k]保持当前的计算结果不变。其中,ω即预设的加权值,通常可以是大于0小于1的正数,可以根据对大量的译码数据进行学习确定的值,也可以确定为经验值,例如,ω通常可以是0.75。在本申请实施例中,可以通过加权值更新变量节点传给校验节点的信息,该加权值可以是计算得到,也可以是预设的值,使得在Q ji[k]的符号与上一次迭代的Q ji[k-1]的符号不同时,可以使用该加权值更新Q ji[k]的值,提高得到的Q ji[k]的准确度,并提高Q ji[k]的有效性。 For example, in the embodiment of this application, R ij [k] and Q ji [k] can also be updated alternately, and the information R ij [k] transmitted by the i-th check node to the j-th variable node can be updated with the aforementioned implementation. In the example, the method of updating R ij [k] with at least one correction value is similar. Of course, R ij [k] can also be directly updated without using the correction value. When the information Q ji [k] transmitted by the j-th variable node to the i-th check node is updated through the preset weight value and the second LLR sequence, the specific decoding process can be, for example, in the k-th iteration, Update Q ji [k] through the second LLR sequence, Q ji [k]=λ ji'∈C(j)\i R i'j [k]. If Q ji [k] the symbols of the previous iteration different Q ji [k-1] of the symbol, so that: Q ji [k] = ω * Q ji [k] + (1-ω) * Q ji [ k-1], when Q ji [k] the symbols of the previous iteration same Q ji [k-1] of the symbol, the Q ji [k] remains constant current calculation result. Among them, ω is a preset weight value, which can usually be a positive number greater than 0 and less than 1, and can be determined based on learning a large amount of decoded data, or can be determined as an empirical value. For example, ω can usually be 0.75. In the embodiment of the present application, the information transmitted by the variable node to the check node can be updated by the weighted value. The weighted value can be calculated or a preset value, so that the symbol of Q ji [k] is different from the previous one. iteration Q ji [k-1] is not the same symbol, the weighting value may be used to update the value Q ji [k], improve Q ji [k] obtained accuracy, and increase the Q ji [k] of validity .
可选地,本申请实施例中,对第二LLR序列的译码的方式除了前述的LDPC迭代译码之外,对一组或多组第二LLR序列进行LDPC译码的译码方式可以是MS译码、分层译码算法等等,可以根据实际需求进行调整,此处并不作限定。Optionally, in the embodiment of the present application, in addition to the foregoing LDPC iterative decoding, the decoding method for the second LLR sequence may be LDPC decoding for one or more groups of second LLR sequences. MS decoding, hierarchical decoding algorithms, etc., can be adjusted according to actual needs and are not limited here.
例如,基于前述对第二LLR序列的LDPC译码的方式,可以交替更新校验节点与变量节点。而在交替更新校验节点与变量节点时,可选的,可以采用分层译码的方式更新校验节点与变量节点。例如,更新变量节点与校验节点的方式可以从上往下,将数据矩阵按行分为多层,然后依次更新层。每一层的行更新完成后,对该层对应的列进行更新,对每一层的行与列都更新完成之后,再对下一层进行更新。例如,如图11所示,在更新变量节点与校验节点时,可以分层进行更新,按照矩阵的行进行分层,可以将一行分为一层,然后分别更新每一层的行,以及更新每一行对应的列。如图11中,分别对第一层至第五层的行与列进行更新。在本申请实施例中,可以通过分层译码的方式更新每一层,将待译码数据分为多层,然后逐层进行更新。因此,在前一层对行与列都更新完成之后,再进行下一层的更新。而由于下一层的行在更新时是基于更新过的其他行的信息,迭代收敛速度相对较快。相对于在所有行更新完成之后才更新列,而行与行之间相互无法提前获取更新得到的相关信息,迭代收敛速度慢,本申请实施例通过行与列交替更新的方式,使每一层的更新都可以关联起来,提高收敛速度。For example, based on the aforementioned LDPC decoding method for the second LLR sequence, the check node and the variable node can be updated alternately. When the check node and the variable node are alternately updated, optionally, the check node and the variable node can be updated in a layered decoding manner. For example, the way to update variable nodes and check nodes can be from top to bottom, divide the data matrix into multiple layers by rows, and then update the layers sequentially. After the row update of each layer is completed, the column corresponding to that layer is updated, and after the row and column of each layer are updated, the next layer is updated. For example, as shown in Figure 11, when updating variable nodes and check nodes, the update can be done hierarchically, according to the rows of the matrix, one row can be divided into one layer, and then the rows of each layer can be updated separately, and Update the column corresponding to each row. As shown in Figure 11, the rows and columns of the first to fifth layers are updated respectively. In the embodiment of the present application, each layer can be updated by layered decoding, the data to be decoded is divided into multiple layers, and then updated layer by layer. Therefore, after the rows and columns of the previous layer are updated, the next layer is updated. Since the rows of the next layer are updated based on the information of other rows that have been updated, the iteration convergence speed is relatively fast. Compared with updating the columns after all the rows are updated, and the rows cannot obtain the relevant information obtained by the update in advance, the iteration convergence speed is slow. In the embodiment of the present application, the rows and columns are alternately updated to make each layer The updates can be correlated to improve the convergence speed.
305、其他步骤。305. Other steps.
当第一次LDPC译码成功之后,则可以直接使用第一次译码得到的译码数据作为传输数据的译码结果。After the first LDPC decoding is successful, the decoded data obtained from the first decoding can be directly used as the decoding result of the transmitted data.
可选地,当得到译码成功的第一译码数据之后,也可以对第一译码数据进行后续的信息解读或指令执行等等步骤,具体可以根据实际应用场景进行调整。Optionally, after the successfully decoded first decoded data is obtained, subsequent steps such as information interpretation or instruction execution may also be performed on the first decoded data, which may be specifically adjusted according to actual application scenarios.
因此,在本申请实施例中,在第一次LDPC译码失败之后,可以基于对第一LLR序列进行扰动处理之后得到的一组或者多组第二LLR序列继续进行LDPC译码。当存在多组第二LLR序列时,可以实现并行译码,提高译码的效率。并且本申请实施例直接基于扰动处理之后得到的第二LLR序列进行译码,除了可以降低译码复杂度,还可以提高得到的译码数据的准确度,提高译码性能。Therefore, in the embodiment of the present application, after the first LDPC decoding fails, the LDPC decoding may be continued based on one or more sets of second LLR sequences obtained after perturbing the first LLR sequence. When there are multiple sets of second LLR sequences, parallel decoding can be realized and the efficiency of decoding can be improved. In addition, the embodiment of the present application directly performs decoding based on the second LLR sequence obtained after the perturbation process. In addition to reducing the decoding complexity, it can also improve the accuracy of the obtained decoded data and improve the decoding performance.
示例性地,在饱和的最小和(Saturated Min-Sum,SMS)译码方式中,在第一次译码失败之后,对接收到的信道LLR进行排序,选取幅度最小的j个位置,然后对该j个位置的LLR分别饱和至整最大和负最大,得到2 j个序列,然后将2 j个序列重新输入至译码器分别进行译码,输出合法码字,然后选取与原始信道LLR序列具有最小欧式距离的码字,但仅根据信道LLR来选择VN,得到的译码结果准确性较差,译码性能差。本申请实施例相对于SMS译码中的从不满足校验方程的VN中选择部分VN进行译码,本申请实施例可以直接基于扰动处理之后得到的第二LLR序列进行译码,无需进行VN选择,可以降低译码复杂度,提高译码效率。 Exemplarily, in the saturated minimum sum (Saturated Min-Sum, SMS) decoding mode, after the first decoding fails, the received channel LLRs are sorted, the j positions with the smallest amplitude are selected, and then the The LLRs at the j positions are respectively saturated to the integer maximum and negative maximum to obtain 2 j sequences, and then re-input the 2 j sequences to the decoder for decoding respectively, output the legal codewords, and then select the LLR sequence with the original channel The codeword with the smallest Euclidean distance, but only selects the VN based on the channel LLR, and the obtained decoding result has poor accuracy and poor decoding performance. Compared with the SMS decoding, the embodiment of this application selects a part of the VN from the VN that does not satisfy the check equation for decoding. The embodiment of this application can directly decode based on the second LLR sequence obtained after the perturbation process without performing the VN. Selection can reduce decoding complexity and improve decoding efficiency.
示例性地,LDPC译码的性能可以通过误块率(Block Error Rate,BLER)衡量,示例性地,下面以BLER的仿真结果进行更形象的描述。请参阅图12,在高斯白噪声(Additive White Gaussian Noise,AWGN)环境中,信息块的长度为120比特,编码码率为1/5,且同为LLR序列(list)16的场景下,各种译码方式的BLER。由图12可知,在同一条件以及相同信噪比(signal to noise ratio,SNR或S/N)下,误码率最高的译码方式为分层归一化最小和(layered normalized min-sum,LNMS)的15次迭代译码,其次为LNMS的850次迭代译码,然后为SMS译码方式,之后是增强BP(augmented belief propagation,ABP)方式,本申请实施例中提供的扰动处理(可以简称为perturbation)的译码方式的误块率最低,明显低于其他方式的BLER。此外,信息块的长度为360比特的场景的BLER如图13所示,与前述图12中的结果类似,本申请实施例中提供的扰动处理的译码方式的误块率最低,明显低于其他方式的BLER。因此,本申请实施例提供的数据译码的方法的BLER明显高于其他译码方式的BLER,提高了LDPC译码的可靠性以及译码效率。Exemplarily, the performance of LDPC decoding can be measured by the Block Error Rate (BLER). Exemplarily, the following is a more vivid description with the simulation result of BLER. Please refer to Figure 12, in the Additive White Gaussian Noise (AWGN) environment, the length of the information block is 120 bits, the coding rate is 1/5, and the same LLR sequence (list) 16, each BLER of a decoding method. It can be seen from Figure 12 that under the same conditions and the same signal-to-noise ratio (SNR or S/N), the decoding method with the highest bit error rate is layered normalized min-sum, LNMS) 15 iterative decoding, followed by LNMS 850 iterative decoding, then SMS decoding, followed by enhanced BP (augmented belief propagation, ABP), the disturbance processing provided in the embodiment of the application (can The decoding method (referred to as perturbation) has the lowest block error rate, which is significantly lower than other methods of BLER. In addition, the BLER of the scene where the length of the information block is 360 bits is shown in Fig. 13. Similar to the result in Fig. 12, the decoding method of disturbance processing provided in the embodiment of this application has the lowest block error rate, which is significantly lower than BLER in other ways. Therefore, the BLER of the data decoding method provided by the embodiment of the present application is significantly higher than the BLER of other decoding methods, which improves the reliability and decoding efficiency of LDPC decoding.
前述对本申请实施例提供的数据译码的方法进行了详细说明,下面对本申请提供的装置进行阐述。The foregoing provides a detailed description of the data decoding method provided in the embodiments of the present application, and the following describes the device provided in the present application.
本申请提供的译码装置的结构示意图可以参阅图14,可以包括:处理单元1401,获取单元1402。For a schematic structural diagram of the decoding device provided in this application, refer to FIG. 14, and may include: a processing unit 1401 and an acquiring unit 1402.
获取单元1402,可以用于获取传输数据对应的第一对数似然比LLR序列;The obtaining unit 1402 may be used to obtain the first log-likelihood ratio LLR sequence corresponding to the transmission data;
处理单元1401,还可以用于对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列;The processing unit 1401 may also be used to perform perturbation processing on one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences;
处理单元1401,还可以用于对一组或多组第二LLR序列进行译码,得到第一译码数据。The processing unit 1401 may also be used to decode one or more sets of second LLR sequences to obtain first decoded data.
示例性地,该处理单元可以用于执行前述图2中的步骤201-203,或图3中的步骤301-305中的任一步骤,该获取单元1402可以用于执行前述图2或图3中获取传输数据的 步骤。Exemplarily, the processing unit may be used to perform steps 201-203 in FIG. 2 or any one of steps 301-305 in FIG. 3, and the obtaining unit 1402 may be used to perform steps 201-203 in FIG. 2 or FIG. 3. Steps to obtain transmission data.
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:Optionally, in some possible implementation manners, the processing unit 1401 may be specifically configured to:
对其中一组第二LLR序列进行LDPC迭代译码;Perform LDPC iterative decoding on one group of second LLR sequences;
若一组第二LLR序列的译码数据校验成功,则将第二LLR序列的译码数据作为第一译码数据。If a group of decoded data of the second LLR sequence is successfully checked, then the decoded data of the second LLR sequence is used as the first decoded data.
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:Optionally, in some possible implementation manners, the processing unit 1401 may be specifically configured to:
对一组或多组第二LLR序列中的各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据;Perform LDPC iterative decoding on each group of second LLR sequences in one or more groups of second LLR sequences to obtain one or more groups of decoded data with successful verification;
根据预置规则从一组或多组校验成功的译码数据中确定一组译码数据作为第一译码数据。According to a preset rule, a group of decoded data is determined as the first decoded data from one or more sets of successfully verified decoded data.
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:Optionally, in some possible implementation manners, the processing unit 1401 may be specifically configured to:
从一组或多组校验成功的译码数据中确定出与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为第一译码数据。A group of decoded data whose Euclidean metric between the first LLR sequence and the first LLR sequence is less than or equal to a threshold is determined from one or more sets of decoded data successfully verified as the first decoded data.
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:Optionally, in some possible implementation manners, the processing unit 1401 may be specifically configured to:
对一组第二LLR序列执行N次迭代译码,针对其中的第k次LDPC迭代译码中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,N小于或等于预设迭代次数; Perform N iterative decoding on a set of second LLR sequences, and update the information R ij [k] transmitted by the i-th check node to the j-th variable node in the k-th LDPC iterative decoding among them, and pass The second LLR sequence updates the information Q ji [k] transmitted from the j-th variable node to the i-th check node, 1≤k≤N, and N is less than or equal to the preset number of iterations;
其中,一组第二LLR序列的第k次迭代译码的译码数据包括R ij[k]和Q ji[k]。 Among them, the decoded data of the k-th iterative decoding of a group of second LLR sequences includes R ij [k] and Q ji [k].
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:Optionally, in some possible implementation manners, the processing unit 1401 may be specifically configured to:
通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k]。 Update the information R ij [k] transmitted from the i-th check node to the j-th variable node through at least one preset correction value.
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:Optionally, in some possible implementation manners, the processing unit 1401 may be specifically configured to:
通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]。 The information Q ji [k] transmitted from the j-th variable node to the i-th check node is updated by the preset weight value and the second LLR sequence.
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:Optionally, in some possible implementation manners, the processing unit 1401 may be specifically configured to:
若第k次迭代译码得到的Q ji[k]的符号与第k-1次迭代译码得到的Q ji[k-1]的符号不同,则Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],ω为加权值。 If the sign of Q ji [k] obtained by the k-th iterative decoding is different from the sign of Q ji [k-1] obtained by the k- 1th iterative decoding, then Q ji [k]=ω*Q ji [ k]+(1-ω)*Q ji [k-1], ω is a weighted value.
可选地,在一些可能的实施方式中,Optionally, in some possible implementations,
处理单元1401,还用于在对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列之前,对第一LLR序列进行LDPC译码失败。The processing unit 1401 is further configured to perform LDPC decoding on the first LLR sequence before perturbing one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences.
图15是本申请实施例提供的一种译码装置结构示意图,该译码装置1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1522(或其它类型的处理器)和存储介质1530,存储介质1530用于存储一 个或一个以上应用程序1542或数据1544。其中,存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对译码装置中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在译码装置1500上执行存储介质1530中的一系列指令操作。15 is a schematic structural diagram of a decoding device provided by an embodiment of the present application. The decoding device 1500 may have relatively large differences due to differences in configuration or performance, and may include one or more central processing units (CPU). ) 1522 (or other types of processors) and a storage medium 1530. The storage medium 1530 is used to store one or more application programs 1542 or data 1544. The storage medium 1530 may be short-term storage or persistent storage. The program stored in the storage medium 1530 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the decoding device. Further, the central processing unit 1522 may be configured to communicate with the storage medium 1530, and execute a series of instruction operations in the storage medium 1530 on the decoding device 1500.
该中央处理器1522可以根据指令操作执行如前述图2-图11对应的任一实施例。The central processing unit 1522 can execute any of the aforementioned embodiments corresponding to FIGS. 2 to 11 according to instruction operations.
译码装置1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。The decoding device 1500 may also include one or more power supplies 1526, one or more wired or wireless network interfaces 1550, one or more input and output interfaces 1558, and/or one or more operating systems 1541, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
上述实施例中图2-图11中可以由译码装置所执行的步骤可以基于该图15所示的译码装置结构。The steps that can be executed by the decoding device in FIGS. 2 to 11 in the foregoing embodiment may be based on the structure of the decoding device shown in FIG. 15.
本申请提供的译码装置可以包括基站,终端等。The decoding device provided in this application may include a base station, a terminal, and so on.
示例性地,当该译码装置为基站,或者该译码装置包括于基站时,该基站的结构可以如图16所示。Exemplarily, when the decoding device is a base station, or the decoding device is included in a base station, the structure of the base station may be as shown in FIG. 16.
图16是本申请实施例提供的一种基站结构示意图,该基站1600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1622(或其它类型的处理器)和存储介质1630,存储介质1630用于存储一个或一个以上应用程序1642或数据1644。其中,存储介质1630可以是短暂存储或持久存储。存储在存储介质1630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基站中的一系列指令操作。更进一步地,中央处理器1622可以设置为与存储介质1630通信,在基站1600上执行存储介质1630中的一系列指令操作。16 is a schematic diagram of the structure of a base station provided by an embodiment of the present application. The base station 1600 may have relatively large differences due to different configurations or performance, and may include one or more central processing units (CPU) 1622 (or Other types of processors) and a storage medium 1630. The storage medium 1630 is used to store one or more application programs 1642 or data 1644. The storage medium 1630 may be short-term storage or persistent storage. The program stored in the storage medium 1630 may include one or more modules (not shown in the figure), and each module may include a series of command operations on the base station. Further, the central processing unit 1622 may be configured to communicate with the storage medium 1630, and execute a series of instruction operations in the storage medium 1630 on the base station 1600.
该中央处理器1622可以根据指令操作执行如前述图2-图11对应的任一实施例。The central processing unit 1622 can execute any of the aforementioned embodiments corresponding to FIGS. 2 to 11 according to instruction operations.
基站1600还可以包括一个或一个以上电源1626,一个或一个以上有线或无线网络接口1650,一个或一个以上输入输出接口1658,和/或,一个或一个以上操作系统1641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。The base station 1600 may also include one or more power supplies 1626, one or more wired or wireless network interfaces 1650, one or more input and output interfaces 1658, and/or one or more operating systems 1641, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
上述实施例中图2-图11中可以由译码装置所执行的步骤可以基于该图16所示的基站结构。The steps that can be executed by the decoding device in FIGS. 2 to 11 in the foregoing embodiment may be based on the base station structure shown in FIG. 16.
本申请提供的译码装置可以是各种终端,或者,也可以理解为该译码装置可以包括于终端,例如,可以是手机、平板电脑、笔记本电脑、电视机、智能穿戴设备或其他具有显示屏的电子设备等等。在以上实施例中,对该终端的具体形式不作任何限制。其中,终端可以搭载的系统可以包括
Figure PCTCN2020084420-appb-000013
或者其它操作系统等,本申请实施例对此不作任何限制。
The decoding device provided in this application can be various terminals, or, it can also be understood that the decoding device can be included in the terminal, for example, it can be a mobile phone, a tablet computer, a notebook computer, a TV, a smart wearable device, or other devices with display Screen electronic equipment and so on. In the above embodiments, there is no restriction on the specific form of the terminal. Among them, the system that the terminal can carry can include
Figure PCTCN2020084420-appb-000013
Or other operating systems, etc., this embodiment of the present application does not impose any limitation on this.
该终端可以适用于各种通信系统。具体的,该通信系统例如:例如,CDMA、TDMA、FDMA、OFDMA、SC-FDMA和其它系统等。术语“系统”可以和“网络”相互替换。CDMA系统可以实现例如UTRA,CDMA2000等无线技术。UTRA可以包括WCDMA技术和其它CDMA变形的技术。CDMA2000可以覆盖过渡标准(interim standard,IS)2000(IS-2000),IS-95和IS-856标准。TDMA系统可以实现例如全球移动通信系统(global system for mobile communication,GSM)等无线技术。OFDMA系统可以实现诸如演进通用无线陆地接入(evolved  UTRA,E-UTRA)、超级移动宽带(ultra mobile broadband,UMB)、IEEE 802.11(Wi-Fi),IEEE 802.16(WiMAX),IEEE 802.20,Flash OFDMA等无线技术。UTRA和E-UTRA是UMTS以及UMTS演进版本。3GPP在长期演进(long term evolution,LTE)和基于LTE演进的各种版本是使用E-UTRA的UMTS的新版本。以及第五代(5Generation,简称:“5G”)通信系统、新空口(New Radio,简称“NR”)是正在研究当中的下一代通信系统。此外,所述通信系统还可以适用于面向未来的通信技术,都可以应用于本申请实施例提供的技术方案中。The terminal can be applied to various communication systems. Specifically, the communication system is, for example, CDMA, TDMA, FDMA, OFDMA, SC-FDMA, and other systems. The term "system" can be replaced with "network". The CDMA system can implement wireless technologies such as UTRA and CDMA2000. UTRA can include WCDMA technology and other CDMA variants. CDMA2000 can cover the interim standard (IS) 2000 (IS-2000), IS-95 and IS-856 standards. The TDMA system can implement wireless technologies such as the global system for mobile communication (GSM). OFDMA system can realize such as evolved universal wireless terrestrial access (evolved UTRA, E-UTRA), ultra mobile broadband (UMB), IEEE 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash OFDMA And other wireless technologies. UTRA and E-UTRA are UMTS and UMTS evolved versions. 3GPP is a new version of UMTS using E-UTRA in long term evolution (LTE) and various versions based on LTE evolution. And the fifth generation (5Generation, "5G") communication system, and the New Radio ("NR") are next-generation communication systems under study. In addition, the communication system may also be suitable for future-oriented communication technologies, and all of them may be applied to the technical solutions provided in the embodiments of the present application.
示例性的,以搭载
Figure PCTCN2020084420-appb-000014
操作系统的终端100为例,如图17所示,终端100从逻辑上可划分为硬件层21、操作系统161,以及应用层31。硬件层21包括应用处理器101、微控制器单元103、调制调解器107、Wi-Fi模块111、传感器114、定位模块150、存储器等硬件资源。应用层31包括一个或多个应用程序,比如应用程序163,应用程序163可以为社交类应用、电子商务类应用、浏览器等任意类型的应用程序。操作系统161作为硬件层21和应用层31之间的软件中间件,是管理和控制硬件与软件资源的计算机程序。
Exemplary to carry
Figure PCTCN2020084420-appb-000014
Take the terminal 100 of the operating system as an example. As shown in FIG. 17, the terminal 100 can be logically divided into a hardware layer 21, an operating system 161, and an application layer 31. The hardware layer 21 includes hardware resources such as an application processor 101, a microcontroller unit 103, a modem 107, a Wi-Fi module 111, a sensor 114, a positioning module 150, and a memory. The application layer 31 includes one or more applications, such as an application 163. The application 163 may be any type of application such as a social application, an e-commerce application, or a browser. The operating system 161, as a software middleware between the hardware layer 21 and the application layer 31, is a computer program that manages and controls hardware and software resources.
在一个实施例中,操作系统161包括内核23,硬件抽象层(hardware abstraction layer,HAL)25、库和运行时(libraries and runtime)27以及框架(framework)29。其中,内核23用于提供底层系统组件和服务,例如:电源管理、内存管理、线程管理、硬件驱动程序等;硬件驱动程序包括Wi-Fi驱动、传感器驱动、定位模块驱动等。硬件抽象层25是对内核驱动程序的封装,向框架29提供接口,屏蔽低层的实现细节。硬件抽象层25运行在用户空间,而内核驱动程序运行在内核空间。In one embodiment, the operating system 161 includes a kernel 23, a hardware abstraction layer (HAL) 25, a library and runtime (libraries and runtime) 27, and a framework 29. Among them, the kernel 23 is used to provide underlying system components and services, such as: power management, memory management, thread management, hardware drivers, etc.; hardware drivers include Wi-Fi drivers, sensor drivers, positioning module drivers, etc. The hardware abstraction layer 25 encapsulates the kernel driver, provides an interface to the framework 29, and shields low-level implementation details. The hardware abstraction layer 25 runs in the user space, and the kernel driver runs in the kernel space.
库和运行时27也叫做运行时库,它为可执行程序在运行时提供所需要的库文件和执行环境。库与运行时27包括安卓运行时(Android Runtime,ART)271以及库273等。ART 271是能够把应用程序的字节码转换为机器码的虚拟机或虚拟机实例。库273是为可执行程序在运行时提供支持的程序库,包括浏览器引擎(比如webkit)、脚本执行引擎(比如JavaScript引擎)、图形处理引擎等。The library and runtime 27 is also called the runtime library, which provides the required library files and execution environment for the executable program at runtime. The library and runtime 27 include the Android Runtime (ART) 271 and the library 273. ART 271 is a virtual machine or virtual machine instance that can convert the bytecode of an application program into machine code. The library 273 is a program library that provides support for the executable program at runtime, and includes a browser engine (such as webkit), a script execution engine (such as a JavaScript engine), a graphics processing engine, and the like.
框架29用于为应用层31中的应用程序提供各种基础的公共组件和服务,比如窗口管理、位置管理等等。框架29可以包括电话管理器291,资源管理器293,位置管理器295等。The framework 29 is used to provide various basic common components and services for the applications in the application layer 31, such as window management, location management, and so on. The frame 29 may include a phone manager 291, a resource manager 293, a location manager 295, and so on.
以上描述的操作系统161的各个组件的功能均可以由应用处理器101执行存储器中存储的程序来实现。The functions of the various components of the operating system 161 described above can all be implemented by the application processor 101 executing programs stored in the memory.
所属领域的技术人员可以理解终端100可包括比图17所示的更少或更多的部件,图17所示的该终端仅包括与本申请实施例所公开的多个实现方式更加相关的部件。Those skilled in the art can understand that the terminal 100 may include fewer or more components than those shown in FIG. 17, and the terminal shown in FIG. 17 only includes components that are more relevant to the multiple implementations disclosed in the embodiments of the present application. .
终端通常支持安装多种应用程序(Application,APP),如文字处理应用程序、电话应用程序、电子邮件应用程序、即时消息应用程序、照片管理应用程序、网络浏览应用程序、数字音乐播放器应用程序、和/或数字视频播放器应用程序。The terminal usually supports the installation of multiple applications (Application, APP), such as word processing applications, phone applications, email applications, instant messaging applications, photo management applications, web browsing applications, and digital music player applications , And/or digital video player applications.
本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持译码装置实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存必要的程序指令和数据。 该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。The present application provides a chip system including a processor for supporting the decoding device to implement the functions involved in the above aspects, for example, sending or processing the data and/or information involved in the above methods. In a possible design, the chip system further includes a memory, and the memory is used to store necessary program instructions and data. The chip system may be composed of chips, or may include chips and other discrete devices.
在另一种可能的设计中,当该译码装置为终端或者基站等内的芯片时,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该终端或者基站等内的芯片执行上述图2-11中任一项实施例中网络执行的方法的步骤。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端或者基站等内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。In another possible design, when the decoding device is a chip in a terminal or a base station, the chip includes a processing unit and a communication unit. The processing unit may be, for example, a processor, and the communication unit may be, for example, Input/output interface, pin or circuit, etc. The processing unit can execute the computer-executable instructions stored in the storage unit, so that the chip in the terminal or the base station, etc. executes the steps of the method executed by the network in any one of the above-mentioned embodiments of FIGS. Optionally, the storage unit is a storage unit in the chip, such as a register, a cache, etc., and the storage unit may also be a storage unit located outside the chip in the terminal or base station, such as read-only Memory (read-only memory, ROM) or other types of static storage devices that can store static information and instructions, random access memory (RAM), etc.
本申请实施例还提供了一种芯片,包括:处理模块与通信接口,所述处理模块能执行上述任一方法实施例中与译码装置相关的方法流程。进一步地,所述芯片还可以包括存储模块(如,存储器),所述存储模块用于存储指令,所述处理模块用于执行所述存储模块存储的指令,并且对所述存储模块中存储的指令的执行使得所述处理模块执行上述任一方法实施例中与译码装置相关的方法流程。An embodiment of the present application also provides a chip, including: a processing module and a communication interface, and the processing module can execute the method flow related to the decoding device in any of the foregoing method embodiments. Further, the chip may also include a storage module (for example, a memory), the storage module is used to store instructions, and the processing module is used to execute the instructions stored in the storage module, and perform processing on the instructions stored in the storage module. The execution of the instruction causes the processing module to execute the method flow related to the decoding device in any of the foregoing method embodiments.
本申请实施例还提供了一种通信系统,该通信系统可以包括终端以及基站,该终端可以是如图17所示的终端,该终端可以用于执行前述图2-11的实施例中的任一项步骤。该基站可以是如图16所示的基站,该基站可以用于前述图2-11的实施例中的任一项步骤。The embodiment of the present application also provides a communication system. The communication system may include a terminal and a base station. The terminal may be a terminal as shown in FIG. 17, and the terminal may be used to perform any of the foregoing embodiments of FIGS. 2-11. One step. The base station may be the base station shown in FIG. 16, and the base station may be used in any step in the foregoing embodiments of FIGS. 2-11.
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例中与译码装置相关的方法流程。对应的,该计算机可以为上述译码装置。The embodiment of the present application also provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a computer, the method flow related to the decoding device in any of the foregoing method embodiments is implemented. Correspondingly, the computer may be the aforementioned decoding device.
本申请实施例还提供了一种计算机程序或包括计算机程序的一种计算机程序产品,该计算机程序在某一计算机上执行时,将会使所述计算机实现上述任一方法实施例中与译码装置相关的方法流程。对应的,该计算机可以为上述的译码装置。The embodiments of the present application also provide a computer program or a computer program product including a computer program. When the computer program is executed on a computer, the computer will enable the computer to implement the decoding method in any of the above-mentioned method embodiments. Device-related method flow. Correspondingly, the computer may be the aforementioned decoding device.
在上述图2-11中各个实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。In each of the above-mentioned embodiments in FIGS. 2-11, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented by software, it can be implemented in the form of a computer program product in whole or in part.
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable 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. For example, the computer instructions may be transmitted from a website, computer, server, or data center. Transmission to another website site, computer, server or data center via wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.). The computer-readable storage medium may be any available medium that can be stored by a computer or a data storage device such as a server or 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, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)).
应理解,本申请中提及的处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集 成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。It should be understood that the processor mentioned in this application may be a central processing unit (Central Processing Unit, CPU), or other general-purpose processors, digital signal processors (Digital Signal Processors, DSPs), and application specific integrated circuits (Application Specific Integrated Circuits). Integrated Circuit, ASIC), Field Programmable Gate Array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
还应理解,本申请中的处理器的数量可以是一个,也可以是多个,具体可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。本申请实施例中的存储器的数量可以是一个,也可以是多个,具体可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。It should also be understood that the number of processors in the present application may be one or multiple, and may be specifically adjusted according to actual application scenarios. This is only an exemplary description and is not limited. The number of memories in the embodiments of the present application may be one or multiple, and may be specifically adjusted according to actual application scenarios. This is only an exemplary description and is not limited.
还需要说明的是,当译码装置包括处理器(或处理模块)与存储器时,本申请中的处理器可以是与存储器集成在一起的,也可以是处理器与存储器通过接口连接,具体可以根据实际应用场景调整,并不作限定。It should also be noted that when the decoding device includes a processor (or processing module) and a memory, the processor in the present application may be integrated with the memory, or the processor and the memory may be connected through an interface. It is adjusted according to actual application scenarios and is not limited.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that, for the convenience and conciseness of description, the specific working process of the above-described system, device, and unit can refer to the corresponding process in the foregoing method embodiment, which will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed system, device, and method may be implemented in other ways. For example, the device embodiments described above are only 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. In addition, 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.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, the functional units in each embodiment 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 above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者其他网络设备等)执行本申请图2-11中各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit 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. Based on this understanding, the technical solution of this application essentially or the part that contributes to the existing technology or all or 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 to make a computer device (which can be a personal computer, a server, or other network devices, etc.) execute all or part of the steps of the methods described in the various embodiments in Figures 2-11 of this application. The aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program code .
应理解,本申请中提及的存储介质或存储器可以包括易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)。It should be understood that the storage medium or memory mentioned in this application may include volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. Among them, the non-volatile memory can be read-only memory (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 a random access memory (Random Access Memory, RAM), which is used as an external cache. By way of exemplary but not restrictive description, many forms of RAM are available, such as static random access memory (Static RAM, SRAM), dynamic random access memory (Dynamic RAM, DRAM), 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 Link Dynamic Random Access Memory (Synchlink DRAM, SLDRAM) ) And Direct Rambus RAM (DR RAM).
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。It should be noted that the memories described herein are intended to include, but are not limited to, these and any other suitable types of memories.
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。As mentioned above, the above embodiments are only used to illustrate the technical solutions of the present application, not to limit them; although the present application has been described in detail with reference to the foregoing embodiments, a person of ordinary skill in the art should understand that: The technical solutions recorded in the embodiments are modified, or some of the technical features are equivalently replaced; these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims (25)

  1. 一种数据译码的方法,其特征在于,包括:A method for data decoding, characterized by comprising:
    获取传输数据对应的第一对数似然比LLR序列;Acquiring the first log-likelihood ratio LLR sequence corresponding to the transmission data;
    对所述第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列;Performing perturbation processing on one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences;
    对所述一组或多组第二LLR序列进行译码,得到第一译码数据。The one or more sets of second LLR sequences are decoded to obtain first decoded data.
  2. 根据权利要求1所述的方法,其特征在于,所述对所述一组或多组第二LLR序列进行译码,得到第一译码数据,包括:The method of claim 1, wherein the decoding the one or more sets of second LLR sequences to obtain the first decoded data comprises:
    对其中一组第二LLR序列进行LDPC迭代译码;Perform LDPC iterative decoding on one group of second LLR sequences;
    若所述一组第二LLR序列的译码数据校验成功,则将所述第二LLR序列的译码数据作为所述第一译码数据。If the verification of the decoded data of the second LLR sequence is successful, then the decoded data of the second LLR sequence is used as the first decoded data.
  3. 根据权利要求1所述的方法,其特征在于,所述对所述一组或多组第二LLR序列进行译码,得到第一译码数据,包括:The method of claim 1, wherein the decoding the one or more sets of second LLR sequences to obtain the first decoded data comprises:
    对所述一组或多组第二LLR序列中的各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据;LDPC iterative decoding is performed on each group of second LLR sequences in the one or more groups of second LLR sequences to obtain one or more groups of decoded data with successful verification;
    根据预置规则从所述一组或多组校验成功的译码数据中确定一组译码数据作为所述第一译码数据。A set of decoded data is determined as the first decoded data from the one or more sets of decoded data successfully verified according to a preset rule.
  4. 根据权利要求3所述的方法,其特征在于,所述根据预置规则从所述一组或多组校验成功的译码数据中确定一组译码数据作为所述第一译码数据,包括:The method according to claim 3, wherein said determining a set of decoded data from the one or more sets of successfully verified decoded data as the first decoded data according to a preset rule, include:
    从所述一组或多组校验成功的译码数据中确定出与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为所述第一译码数据。A group of decoded data whose Euclidean metric between the first LLR sequence and the first LLR sequence is less than or equal to a threshold is determined from the one or more sets of decoded data successfully verified as the first decoded data.
  5. 根据权利要求2所述的方法,其特征在于,所述对其中一组第二LLR序列进行LDPC迭代译码,包括:The method according to claim 2, wherein said performing LDPC iterative decoding on one group of second LLR sequences comprises:
    对所述一组第二LLR序列执行N次迭代译码,针对其中的第k次LDPC迭代译码中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,所述N小于或等于预设迭代次数; Perform N iterations of decoding on the set of second LLR sequences, and update the information R ij [k] transmitted from the i-th check node to the j-th variable node in the k-th LDPC iterative decoding among them, And update the information Q ji [k] transmitted from the j-th variable node to the i-th check node through the second LLR sequence, 1≤k≤N, and the N is less than or equal to the preset number of iterations;
    其中,所述一组第二LLR序列的第k次迭代译码的译码数据包括所述R ij[k]和所述Q ji[k]。 Wherein, the decoded data of the k-th iterative decoding of the set of second LLR sequences includes the R ij [k] and the Q ji [k].
  6. 根据权利要求5所述的方法,其特征在于,所述更新第i个校验节点传给第j个变量节点的信息R ij[k],包括: The method according to claim 5, wherein the updating the information R ij [k] transmitted from the i-th check node to the j-th variable node comprises:
    通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k]。 Update the information R ij [k] transmitted from the i-th check node to the j-th variable node through at least one preset correction value.
  7. 根据权利要求5或6所述的方法,其特征在于,所述通过所述第二LLR序列更新第 j个变量节点传给第i个校验节点的信息Q ji[k],包括: The method according to claim 5 or 6, wherein the updating the information Q ji [k] transmitted from the j-th variable node to the i-th check node through the second LLR sequence comprises:
    通过预设的加权值以及所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]。 The information Q ji [k] transmitted from the j-th variable node to the i-th check node is updated by the preset weight value and the second LLR sequence.
  8. 根据权利要求7所述的方法,其特征在于,所述通过预设的加权值以及所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],包括: The method according to claim 7, wherein the information Q ji [k] transmitted from the j-th variable node to the i-th check node is updated by the preset weight value and the second LLR sequence, include:
    若第k次迭代译码得到的Q ji[k]的符号与第k-1次迭代译码得到的Q ji[k-1]的符号不同,则Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],所述ω为所述加权值。 If the sign of Q ji [k] obtained by the k-th iterative decoding is different from the sign of Q ji [k-1] obtained by the k- 1th iterative decoding, then Q ji [k]=ω*Q ji [ k]+(1-ω)*Q ji [k-1], the ω is the weighted value.
  9. 根据权利要求1-8中任一项所述的方法,其特征在于,在所述对所述第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列之前,所述方法还包括:The method according to any one of claims 1-8, wherein the perturbation process is performed on one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences Before, the method also includes:
    对所述第一LLR序列进行LDPC译码失败。LDPC decoding of the first LLR sequence fails.
  10. 一种译码装置,其特征在于,包括:获取单元,处理单元;A decoding device, characterized by comprising: an acquisition unit and a processing unit;
    所述获取单元,用于获取传输数据对应的第一对数似然比LLR序列;The acquiring unit is configured to acquire the first log-likelihood ratio LLR sequence corresponding to the transmission data;
    所述处理单元,用于对所述第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列;The processing unit is configured to perform perturbation processing on one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences;
    所述处理单元,还用于对所述一组或多组第二LLR序列进行译码,得到第一译码数据。The processing unit is also used to decode the one or more sets of second LLR sequences to obtain first decoded data.
  11. 根据权利要求10所述的译码装置,其特征在于,所述处理单元,具体用于:The decoding device according to claim 10, wherein the processing unit is specifically configured to:
    对其中一组第二LLR序列进行LDPC迭代译码;Perform LDPC iterative decoding on one group of second LLR sequences;
    若所述一组第二LLR序列的译码数据校验成功,则将所述第二LLR序列的译码数据作为所述第一译码数据。If the verification of the decoded data of the second LLR sequence is successful, then the decoded data of the second LLR sequence is used as the first decoded data.
  12. 根据权利要求10所述的译码装置,其特征在于,所述处理单元,具体用于:The decoding device according to claim 10, wherein the processing unit is specifically configured to:
    对所述一组或多组第二LLR序列中的各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据;LDPC iterative decoding is performed on each group of second LLR sequences in the one or more groups of second LLR sequences to obtain one or more groups of decoded data with successful verification;
    根据预置规则从所述一组或多组校验成功的译码数据中确定一组译码数据作为所述第一译码数据。A set of decoded data is determined as the first decoded data from the one or more sets of decoded data successfully verified according to a preset rule.
  13. 根据权利要求12所述的译码装置,其特征在于,所述处理单元,具体用于:The decoding device according to claim 12, wherein the processing unit is specifically configured to:
    从所述一组或多组校验成功的译码数据中确定出与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为所述第一译码数据。A group of decoded data whose Euclidean metric between the first LLR sequence and the first LLR sequence is less than or equal to a threshold is determined from the one or more sets of decoded data successfully verified as the first decoded data.
  14. 根据权利要求11所述的译码装置,其特征在于,所述处理单元,具体用于:The decoding device according to claim 11, wherein the processing unit is specifically configured to:
    对所述一组第二LLR序列执行N次迭代译码,针对其中的第k次LDPC迭代译码中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,所述N小于或等于预设迭代次数; Perform N iterations of decoding on the set of second LLR sequences, and update the information R ij [k] transmitted from the i-th check node to the j-th variable node in the k-th LDPC iterative decoding among them, And update the information Q ji [k] transmitted from the j-th variable node to the i-th check node through the second LLR sequence, 1≤k≤N, and the N is less than or equal to the preset number of iterations;
    其中,所述一组第二LLR序列的第k次迭代译码的译码数据包括所述R ij[k]和所述Q ji[k]。 Wherein, the decoded data of the k-th iterative decoding of the set of second LLR sequences includes the R ij [k] and the Q ji [k].
  15. 根据权利要求14所述的译码装置,其特征在于,所述处理单元,具体用于:The decoding device according to claim 14, wherein the processing unit is specifically configured to:
    通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k]。 Update the information R ij [k] transmitted from the i-th check node to the j-th variable node through at least one preset correction value.
  16. 根据权利要求14或15所述的译码装置,其特征在于,所述处理单元,具体用于:The decoding device according to claim 14 or 15, wherein the processing unit is specifically configured to:
    通过预设的加权值以及所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]。 The information Q ji [k] transmitted from the j-th variable node to the i-th check node is updated by the preset weight value and the second LLR sequence.
  17. 根据权利要求16所述的译码装置,其特征在于,所述处理单元,具体用于:The decoding device according to claim 16, wherein the processing unit is specifically configured to:
    若第k次迭代译码得到的Q ji[k]的符号与第k-1次迭代译码得到的Q ji[k-1]的符号不同,则Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],所述ω为所述加权值。 If the sign of Q ji [k] obtained by the k-th iterative decoding is different from the sign of Q ji [k-1] obtained by the k- 1th iterative decoding, then Q ji [k]=ω*Q ji [ k]+(1-ω)*Q ji [k-1], the ω is the weighted value.
  18. 根据权利要求10-17中任一项所述的译码装置,其特征在于,The decoding device according to any one of claims 10-17, wherein:
    所述处理单元,还用于在对所述第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列之前,对所述第一LLR序列进行LDPC译码失败。The processing unit is further configured to perform LDPC decoding on the first LLR sequence before perturbing one or more LLRs in the first LLR sequence to obtain one or more sets of second LLR sequences failure.
  19. 一种基站,其特征在于,包括如权利要求10至18中任一项所述的译码装置。A base station, characterized by comprising the decoding device according to any one of claims 10 to 18.
  20. 一种终端,其特征在于,包括如权利要求10至18中任一项所述的译码装置。A terminal, characterized by comprising the decoding device according to any one of claims 10 to 18.
  21. 一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-9中任意一项所述的方法。A computer-readable storage medium, comprising instructions, which when run on a computer, causes the computer to execute the method according to any one of claims 1-9.
  22. 一种译码装置,包括处理器和存储器,其特征在于,所述处理器与存储器耦合,用于读取并执行所述存储器中存储的指令,实现如权利要求1-9中任一项的步骤。A decoding device, comprising a processor and a memory, wherein the processor is coupled with the memory, and is used to read and execute the instructions stored in the memory, so as to implement any one of claims 1-9 step.
  23. 如权利要求22所述的装置,其特征在于,所述译码装置为芯片或片上系统。The device of claim 22, wherein the decoding device is a chip or a system on a chip.
  24. 一种包含指令的计算机程序产品,其特征在于,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-9中任一所述的方法。A computer program product containing instructions, characterized in that, when the instructions run on a computer, the computer is caused to execute the method according to any one of claims 1-9.
  25. 一种通信系统,其特征在于,包括如权利要求19所述的基站以及如权利要求20所述的终端。A communication system, characterized by comprising the base station according to claim 19 and the terminal according to claim 20.
PCT/CN2020/084420 2019-05-08 2020-04-13 Data decoding method and apparatus WO2020224386A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910381356.7 2019-05-08
CN201910381356.7A CN111917419B (en) 2019-05-08 2019-05-08 Data decoding method and device

Publications (1)

Publication Number Publication Date
WO2020224386A1 true WO2020224386A1 (en) 2020-11-12

Family

ID=73051444

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/084420 WO2020224386A1 (en) 2019-05-08 2020-04-13 Data decoding method and apparatus

Country Status (2)

Country Link
CN (1) CN111917419B (en)
WO (1) WO2020224386A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595563A (en) * 2021-08-02 2021-11-02 上海金卓科技有限公司 LDPC decoding method, device, equipment and storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112636803A (en) * 2020-12-24 2021-04-09 电子科技大学 Modified vector disturbance soft demodulation method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102754081A (en) * 2010-01-27 2012-10-24 链接媒体设备公司 Ldpc decoding with on the fly error recovery
CN102820064A (en) * 2011-06-07 2012-12-12 马维尔国际贸易有限公司 Identification and mitigation of hard errors in memory systems
US20170149446A1 (en) * 2015-11-24 2017-05-25 Texas Instruments Incorporated Ldpc post-processor architecture and method for low error floor conditions
US20180013445A1 (en) * 2016-07-05 2018-01-11 EpoStar Electronics Corp. Decoding method, and memory storage apparatus and memory control circuit unit using the same
CN107608818A (en) * 2016-07-12 2018-01-19 大心电子股份有限公司 Coding/decoding method, memory storage apparatus and memorizer control circuit unit

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234556B2 (en) * 2008-12-30 2012-07-31 Intel Corporation Broadcast receiver and method for optimizing a scale factor for a log-likelihood mapper
US20160164537A1 (en) * 2014-12-08 2016-06-09 Samsung Electronics Co., Ltd. Method and apparatus for parallel concatenated ldpc convolutional codes enabling power-efficient decoders

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102754081A (en) * 2010-01-27 2012-10-24 链接媒体设备公司 Ldpc decoding with on the fly error recovery
CN102820064A (en) * 2011-06-07 2012-12-12 马维尔国际贸易有限公司 Identification and mitigation of hard errors in memory systems
US20170149446A1 (en) * 2015-11-24 2017-05-25 Texas Instruments Incorporated Ldpc post-processor architecture and method for low error floor conditions
US20180013445A1 (en) * 2016-07-05 2018-01-11 EpoStar Electronics Corp. Decoding method, and memory storage apparatus and memory control circuit unit using the same
CN107608818A (en) * 2016-07-12 2018-01-19 大心电子股份有限公司 Coding/decoding method, memory storage apparatus and memorizer control circuit unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595563A (en) * 2021-08-02 2021-11-02 上海金卓科技有限公司 LDPC decoding method, device, equipment and storage medium
CN113595563B (en) * 2021-08-02 2024-03-29 上海金卓科技有限公司 LDPC decoding method, device, equipment and storage medium

Also Published As

Publication number Publication date
CN111917419B (en) 2022-10-28
CN111917419A (en) 2020-11-10

Similar Documents

Publication Publication Date Title
US10298261B2 (en) Reduced complexity non-binary LDPC decoding algorithm
US10084481B2 (en) GLDPC soft decoding with hard decision inputs
Kim et al. Rate-0.96 LDPC decoding VLSI for soft-decision error correction of NAND flash memory
US10361723B2 (en) Decoding of non-binary LDPC codes
US8522123B1 (en) Iterative decoder memory arrangement
US8667360B2 (en) Apparatus, system, and method for generating and decoding a longer linear block codeword using a shorter block length
WO2020224386A1 (en) Data decoding method and apparatus
WO2020077596A1 (en) Decoding method and apparatus for ldpc codes
CN108988872B (en) LDPC decoding method based on hierarchical minimum sum algorithm
US10484009B2 (en) Decoding method and decoder for low-density parity-check code
US20200044668A1 (en) Method for ldpc decoding, ldpc decoder and storage device
US10892783B2 (en) Apparatus and method for decoding polar codes
CN111130563B (en) Method and device for processing information
WO2014172874A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
CN107872231B (en) LDPC decoding method and device
WO2020088256A1 (en) Decoding method and device
Schláfer et al. A new architecture for high throughput, low latency NB-LDPC check node processing
WO2021073338A1 (en) Decoding method and decoder
WO2020052754A1 (en) Simplified check node processing for ldpc decoding
CN111600613B (en) Verification method, verification device, decoder, receiver and computer storage medium
US11876535B1 (en) Memory controller and method for controlling data in decoding pipeline
US10628259B2 (en) Bit determining method, memory control circuit unit and memory storage device
Lim et al. A novel bit flipping decoder for systematic LDPC codes
TW202410053A (en) Memory controller and method for controlling data in decoding pipeline
CN108322225B (en) LDPC decoding method and device based on mutual information

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: 20802780

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20802780

Country of ref document: EP

Kind code of ref document: A1