Data verification method and device and data transmission system
By determining the code block according to the size of the transmission block and iteratively processing based on the verification results, the problem of large resource consumption and time delay in the CRC verification process is solved, and more efficient data verification is achieved.
Patent Information
- Application Number
- CN202411217952.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-31
- Publication Date
- 2024-12-24
AI Technical Summary
During the CRC verification process, due to the different sizes of the generated polynomials of different code blocks, multiple decoders need to configure parallel lookup table operations, resulting in large sum-time delays.
By determining the code block according to the size of the transmission block, determining the second verification result based on the relationship between the first verification result and the number of iterations and the preset times, and using or computing to process the correct decoding result, reducing resource consumption and delay.
Improve the efficiency of data verification, reduce resource consumption and delay, and simplify the CRC verification process.
Smart Images

Figure CN119182494A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technology, and in particular to a data verification method and device, and a data transmission system. Background Art
[0002] The communication system generally uses a cyclic redundancy check algorithm (CRC) to perform coding verification on data. The CRC algorithm has been widely used in communication systems due to its advantages such as high performance, simplicity, and easy implementation.
[0003] However, during the CRC verification process, the TB CRC and CB CRC are determined based on the TB generator polynomial and the code block generator polynomial obtained after iterative decoding of the transmission block (TB) to be decoded. Due to the diversity of the TB generator polynomial and the different sizes of the corresponding generator polynomials, and the diversity of the CB generator polynomial and the different sizes of the corresponding generator polynomials, multiple decoders are required to be configured and multiple query table operations are performed in parallel. In this way, the query table operation of the CB CRC takes a long time to implement, and the query table operation of the TB CRC takes a long time to implement, especially the parallel operation of multiple CB CRC query tables, and the query table operation of the TB CRC is performed after the query table operation of the CB CRC, resulting in a large resource consumption and a long delay in the implementation process of the entire CRC verification algorithm. Summary of the invention
[0004] In view of this, the embodiments of the present application provide a CRC verification method and device, a data transmission system, a computer program product, and a computer-readable medium to solve at least one problem existing in the background technology.
[0005] To achieve the above purpose, the technical solution of this application is implemented as follows:
[0006] The first aspect of the embodiment of the present application provides a data verification method, comprising: determining at least one code block of the transmission block according to the size of the transmission block of the user equipment transmitting data. Determining a corresponding first verification result according to the at least one code block. Determining a second verification result of the transmission block based on the first verification result and the relationship between the number of iterations for obtaining the first verification result and the preset number of iterations. The second verification result correctly outputs the transmission data.
[0007] In some examples, the determining the second verification result of the transmission block based on the first verification result and the relationship between the number of iterations for obtaining the first verification result and the preset number of times includes: if the first verification result is correct and the number of iterations of the first verification result is greater than or equal to the preset number of times, determining that the decoding result is correct; otherwise, determining that the decoding result is wrong. The second verification result is obtained by performing an OR operation on the first verification result corresponding to the correct decoding result.
[0008] In some examples, the at least one code block corresponds to a first verification result respectively. If the multiple first verification results are all correct, and the number of iterations of the multiple first verification results is greater than or equal to the preset number, it is determined that the decoding results of the multiple first verification results are correct. The first verification results corresponding to the multiple correct decoding results are respectively ORed to obtain the second verification result. If the second verification result is correct, the transmission data is output.
[0009] In some examples, the determining of the corresponding first check result according to the at least one code block includes: determining a first check matrix according to the transmission block. Obtaining a codeword with a priori probability based on the code block. Obtaining a second check matrix based on the codeword and the first check matrix. Determining a third check matrix under the first condition that the second check matrix satisfies. Determining a posterior probability based on the third check matrix and the a priori probability; the posterior probability includes bit stream information. Determining a decision result according to the posterior probability and the first check matrix; the decision result correctly outputs the first check result.
[0010] In some examples, determining the decision result based on the posterior probability and the first check matrix includes: determining that if the product of the first check matrix and the bit stream information is less than or equal to a decision threshold, the decision result is correct; otherwise, the decision result is wrong.
[0011] In some examples, determining that the second check matrix satisfies a third check matrix under a first condition includes: the first condition includes a log-likelihood ratio algorithm; and performing a log-likelihood ratio operation on the second check matrix to obtain the third check matrix.
[0012] In some examples, determining at least one code block of the transport block according to the size of the transport block transmitted by the user equipment includes: the size of the transport block is greater than a preset value, and the transport block is divided into a plurality of code blocks. The size of the transport block is less than or equal to the preset value, and the transport block is characterized as one code block. The preset value is the maximum bit of data transmitted by the user equipment.
[0013] In a second aspect, the present application also provides a data verification device, comprising: a first verification module, a second verification module and a processing module. The first verification module is used to decode the data transmitted by the user equipment to obtain a first verification result; wherein the transmission block of the transmission data includes at least one code block. The second verification module is coupled to the first verification module, and is used to determine a second verification result based on the first verification result and the relationship between the number of iterations for obtaining the first verification result and a preset number of times. The processing module is coupled to the first verification module and the second verification module, and is used to control the second verification module to work in response to the first verification result being correct, and receive the second verification result.
[0014] In some examples, the CRC check device further includes a receiving module. The receiving module is coupled to the first check module, and is used to receive the transmission data, determine at least one code block according to the size of the transmission block of the transmission data, and transmit it to the first check module. The first check module includes at least one first check submodule, and one first check submodule is used to obtain the corresponding first check result according to at least one code block. The second check module is respectively coupled to multiple first check submodules, and is used to determine the second check result based on multiple first check results, and the number of iterations of multiple first check results is greater than or equal to the preset number. The processing module is also used to output the transmission data in response to the second check result being correct.
[0015] In some examples, the processing module includes a plurality of registers, and the plurality of registers are used to receive a plurality of the first verification results, and to perform OR operations on the plurality of verification results to obtain a plurality of the second verification results.
[0016] In a third aspect, the present application also provides a data transmission system, comprising: a base station and a user equipment. The base station is used to determine the transmission block that the user equipment needs to receive, and send a downlink control message and the transmission block, and is used to receive a first verification result and a second verification result transmitted by the user equipment, and determine whether to retransmit the transmission block according to the first verification result. The user equipment is used to receive the downlink control message and the transmission block sent by the base station, and implement the data verification method provided in any of the above examples, and feed back the first verification result and the second verification result to the base station.
[0017] In a fourth aspect, the present application also provides a computer program product, characterized in that it includes a computer program or instructions; when the computer program or instructions are executed by a data verification device, the steps of the data verification method provided in any of the above examples are implemented.
[0018] In a fifth aspect, the present application also provides a computer-readable medium, characterized in that it includes a stored computer program or instruction; when the computer program or instruction is executed, the device where the computer-readable storage medium is located is controlled to implement a data verification method provided in any of the above examples.
[0019] Additional aspects and advantages of the present application will be given in part in the description below, and in part will become apparent from the description below, or will be learned through the practice of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Figure 1 A schematic diagram of a data verification method provided in an embodiment of the present application Figure 1 ;
[0021] Figure 2 A schematic diagram of a data verification method provided in an embodiment of the present application Figure 2 ;
[0022] Figure 3 A schematic diagram of a data verification method provided in an embodiment of the present application Figure 3 ;
[0023] Figure 4 A schematic diagram of a data verification device provided in an embodiment of the present application Figure 1 ;
[0024] Figure 5 A schematic diagram of a data verification device provided in an embodiment of the present application Figure 2 ;
[0025] Figure 6 A schematic diagram of the structure of a data transmission system provided in one embodiment of the present application. DETAILED DESCRIPTION
[0026] The exemplary embodiments disclosed in the present application will be described in more detail below with reference to the accompanying drawings. Although the exemplary embodiments of the present application are shown in the accompanying drawings, it should be understood that the present application can be implemented in various forms and should not be limited by the specific embodiments described herein. On the contrary, these embodiments are provided to enable a more thorough understanding of the present application and to fully convey the scope disclosed in the present application to those skilled in the art.
[0027] In the following description, a large number of specific details are given to provide a more thorough understanding of the present application. However, it is obvious to those skilled in the art that the present application can be implemented without one or more of these details. In other examples, in order to avoid confusion with the present application, some technical features known in the art are not described; that is, all features of the actual embodiments are not described here, and well-known functions and structures are not described in detail.
[0028] It should be understood that when an element or layer is referred to as "on ...", "adjacent to ...", "connected to" or "coupled to" other elements or layers, it can be directly on, adjacent to, connected to or coupled to other elements or layers, or there can be intervening elements or layers. On the contrary, when an element is referred to as "directly on ...", "directly adjacent to ...", "directly connected to" or "directly coupled to" other elements or layers, there is no intervening element or layer. It should be understood that although the terms first, second, third, etc. can be used to describe various elements, components, regions, layers and / or parts, these elements, components, regions, layers and / or parts should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer or part from another element, component, region, layer or part. Therefore, without departing from the teachings of the present application, the first element, component, region, layer or part discussed below can be represented as the second element, component, region, layer or part. And when the second element, component, region, layer or part is discussed, it does not indicate that the present application necessarily has the first element, component, region, layer or part.
[0029] The purpose of the terms used herein is only to describe specific embodiments and is not intended to be limiting of the present application. When used herein, the singular forms "one", "an" and "said / the" are also intended to include plural forms, unless the context clearly indicates otherwise. It should also be understood that the terms "consisting of" and / or "comprising", when used in this specification, determine the presence of the features, integers, steps, operations, elements and / or parts, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, parts and / or groups. When used herein, the term "and / or" includes any and all combinations of the relevant listed items.
[0030] In order to thoroughly understand the present application, detailed steps and detailed structures will be presented in the following description to illustrate the technical solution of the present application. The preferred embodiments of the present application are described in detail below, but in addition to these detailed descriptions, the present application may also have other implementation methods.
[0031] It can be understood that a transmission block (TB) is a data unit that the media access control (MAC) layer hands over to the physical layer (PHY) for processing. The size of the transmission block can be adjusted according to the quality of the wireless link and the available resources.
[0032] A codeword is a transport block that has been processed by channel coding (such as LDPC or Turbo coding). The purpose of channel coding is to add redundancy so that errors can be detected and corrected during transmission. Codewords are usually larger than the original transport block because additional redundant bits (check bits) are added during the encoding process.
[0033] After channel coding, the transport block TB becomes a codeword. The size (number of bits) of the codeword is usually larger than the size of the transport block because redundant bits are added during the coding process. After rate matching, the size of the codeword is adjusted to match the allocation of radio resources. Rate matching may include the deletion (puncturing) or addition (repetition) of bits.
[0034] In the field of wireless communication of the fifth generation mobile communication technology (5th-Generation, 5G), the protocol stipulates that the data channel usually uses low-density parity check code (Low Density Parity Check Code, LDPC) for data encryption and decryption. In the decoding process, the LDPC check matrix (H matrix) + cyclic redundancy check (Cyclic Redundancy Check, CRC) is used for decoding verification. If the verification passes, the CRC is deemed correct, and the data and CRC verification results are reported to the upper user plane for processing. The user plane entity then parses the data to obtain the Media Access Control (Media Access Control, MAC) header, Radio Link Control (Radio Link Control, RLC) header, Packet Data Convergence Protocol (Packet Data Convergence Protocol, PDCP) header, etc., and sends them to the corresponding components for processing.
[0035] In the 5G communication system, the main process of processing the physical uplink shared channel (PUSCH) signal is generally: air interface data>Inverse Fast Fourier Transform (IFFT) time-frequency transform>Channel estimation>De-layer mapping>Equalization>Demodulation>Descrambling>De-interleaving>De-rate matching>Hybrid Automatic Repeatre Quest (HARQ)>LDPC decoding>H matrix + CB CRC decision>CB code block cascading>TB CRC check>Reporting CRC check results and data.
[0036] According to the LDPC decoding process in the above-mentioned PUSCH signal processing flow, the length of the TB to be decoded is first determined; the number of CBs contained in the TB is determined according to the length of the TB to be decoded. For example, when the length of the TB to be decoded is less than or equal to the preset length, it is determined that the TB to be decoded contains only one CB; when the length of the TB to be decoded is greater than the preset length, it is determined that the TB to be decoded contains multiple CBs. The preset length is the maximum number of bits of the transport block TB (including one CB CRC and one TBCRC).
[0037] For example, when the length of the TB to be decoded is less than or equal to the preset length, it is determined that the TB to be decoded contains only one CB; then, a polynomial is generated based on the current CB (i.e., the TB to be decoded + TB CRC) to obtain the CB CRC. For another example, when the length of the TB to be decoded is greater than the preset length, it is determined that the TB to be decoded contains multiple CBs; then, the current CB (i.e., the TB to be decoded + TB CRC) is divided into multiple sub-CBs, and a polynomial is generated based on each sub-CB to obtain multiple corresponding CBCRCs.
[0038] It can be seen that due to the different sizes of different CBs, the generating polynomials are also different. For example, different CBs use different CRC verification methods. The CRC verification methods include one or more of the verification methods such as CRC24A, CRC24B, and CRC16. In this way, multiple data blocks (such as multiple CBs) obtained by iterative decoding of the TB to be decoded can be subjected to multiple CB CRCs and one TB CRC. Among them, the generating polynomials are different for the different sizes of the TB original data and CB (i.e., TB original data + TB CRC) in a TB; or, in the case where a TB is divided into multiple CBs, the multiple CBs can be different, and the generating polynomials corresponding to the multiple CBs are also different.
[0039] Since a decoder can be configured based on the polynomial of TB or CB and implement a CRC verification method, multiple decoders need to be designed in parallel, for example, to implement multiple CB CRC verification methods in parallel, and multiple CB-connected TB CRC verification methods in parallel. This results in large resource consumption and long delay in the entire CRC verification process, and low verification efficiency.
[0040] Based on this, Figure 1 to Figure 6 As shown, the embodiments of the present application provide a data verification method and device, a data transmission system, a computer program product, and a computer-readable medium, which can reduce resource consumption during data verification, improve verification efficiency, and reduce latency.
[0041] In some embodiments, Figure 1 As shown, the present application provides a data verification method. The data verification method includes: S100-S400.
[0042] S100: Determine at least one code block CB of a transport block TB according to the size of the transport block TB for transmitting data Msg by the user equipment.
[0043] It can be understood that the relationship between the size of the transport block TB and the number of divisible code blocks CB can be considered from the perspective of the length (or number of bits) of the transport block TB and the length (or number of bits) of a code block CB.
[0044] In some examples, such as Figure 2 As shown, step S100: determining at least one code block CB of a transport block TB according to the size of the transport block TB transmitted by the user equipment, including: S110 and S120.
[0045] S110: The size of the transport block TB is greater than a preset value, and the transport block TB is divided into a plurality of code blocks CB, that is, at least two code blocks CB.
[0046] S120: The size of the transport block TB is less than or equal to a preset value, and the transport block TB is represented by a code block CB. The preset value is the maximum bit of data transmitted by the user equipment.
[0047] It can be understood that the maximum bit of the user equipment transmitting data here indicates the maximum code block size that can be transmitted under different channel coding. For example, the preset value can be the maximum code block size that can be processed by LDPC channel coding. Different encoding methods of LDPC signals correspond to code blocks of different sizes, and the maximum code block size when using "Base Graph 2" is 3840 bits. The maximum code block size when using "Base Graph 1" is 3824 bits. The length (or number of bits) of the transmission block TB is less than 1 3840, and the transmission block TB includes one code block CB. Alternatively, the length (or number of bits) of the transmission block TB is greater than 1 3840, and the transmission block TB includes at least two code blocks CB; further, the length (or number of bits) of the transmission block TB is greater than N 3840, that is, N+1 code blocks; the length (or number of bits) of the transmission block TB is equal to N 3840, that is, N code blocks.
[0048] S200: Determine a corresponding first verification result Ver1 according to at least one code block CB.
[0049] For example, the method of checking the code block CB may include: one or more of the checking methods such as cyclic redundancy code check CRC, parity check (Parity Check), low-density parity check LDPC and checksum (Checksum), which can be used in combination according to different levels of misalignment detection and correction capabilities. This application does not impose specific restrictions on this. For example, this application adopts the LDPC+CRC verification method. Among them, the first verification result Ver1 obtained by processing the code block CB can be CB CRC, and CB CRC is used to verify the code block CB to determine whether the decoded code block CB is accurate. Subsequent examples use the CRC verification method as an example to obtain the verification result.
[0050] It is understandable that different code blocks CB (different number of bits) have different generator polynomials for the verification result of the first verification result Ver1. For example, the CRC verification method can generate different polynomials, and the polynomials may include CRC24A, CRC24B, CRC16, etc. Verification of the code block CB and the transport block TB based on different CRC generator polynomials is conducive to improving the accuracy of the CRC verification.
[0051] S300: Determine a second verification result Ver2 of the transmission block TB based on the first verification result Ver1 and the relationship between the number of iterations for obtaining the first verification result Ver1 and a preset number of iterations.
[0052] For example, the first verification result Ver1 includes two cases: correct and incorrect.
[0053] And, the number of iterations for obtaining the first verification result Ver1 refers to the number of repetitions during the verification or testing of each code block to improve the accuracy of determining whether errors are introduced during the transmission of the data of the code block. In this way, the preset number of iterations can be set according to the actual application scenario and transmission requirements. Among them, the preset number of iterations is at least 2 times, for example, the preset number of iterations can be 8 times.
[0054] The second verification result Ver2 includes two cases: correct and incorrect.
[0055] In this way, if the first verification result Ver1 of a code block CB is correct and the number of iterations is greater than or equal to the preset number of times, the first verification result Ver1 is correct. Moreover, if the first verification result Ver1 of at least one code block of the transmission block TB meets the preset number of times and is correct, the second verification result Ver2 of the transmission block TB can be determined to be correct. Otherwise, the second verification result Ver2 of the transmission block TB can be determined to be wrong.
[0056] S400: The second verification result Ver2 correctly outputs the transmission data Msg.
[0057] For example, when the second verification result Ver2 of the transmission block TB is correct, the transmission data Msg is outputted. Otherwise, the transmission data Msg required by the user equipment is received again.
[0058] In the above data verification method, the second verification result Ver2 of the transmission block TB is determined based on whether the first verification result of at least one code block CB that has been determined is correct or wrong, and whether the number of iterations of iteratively processing at least one code block CB to obtain the first verification result Ver1 can achieve the required data accuracy (i.e., the preset number of times). Compared with the method in the related art of directly processing the transmission block TB (including the combined information of the code block and the code block verification result) to obtain the verification result of the transmission block TB, the method of obtaining the second verification result Ver2 based on the first verification result Ver1 of the code block CB in the present application, and the second verification result Ver2 can be used as the verification result of the transmission block TB, has a faster operation speed, a smaller delay in receiving the user equipment transmission data Msg, and can achieve the effect of reducing resource consumption in the data verification process, improving verification efficiency, and reducing delay.
[0059] In some examples, such as Figure 2 As shown, step S200: determining a corresponding first verification result Ver1 according to at least one code block CB, includes: S201-S206.
[0060] S201: Determine a first check matrix H according to a transmission block TB.
[0061] It can be understood that the transmission block TB can be the transmission block TB obtained after the user transmission data Msg is LDPC decoded. According to the application scenario of the transmission block TB (for example, the check matrix needs to have good distance characteristics, signal-to-noise ratio range, etc.) and performance requirements (for example, the code length of the transmission block TB, decoding algorithm, etc.), a specific check matrix can be constructed, such as the first check matrix H provided in the embodiment of the present application. The first check matrix H is a sparse matrix, the rows represent the check equations, and the columns represent the bits of the codewords.
[0062] S202: Obtain a codeword C with a priori probability based on the code block CB.
[0063] It can be understood that the “prior probability” can accurately reflect the actual probability distribution of the received signal and is the initial probability assigned to each bit of the codeword before decoding.
[0064] For example, at least one code block CB is determined according to the transport block TB, the reception probability of each bit can be determined according to the bit information of each code block CB, and a priori probability distribution is determined by a statistical model or channel estimation. In this way, a codeword C with a priori probability is obtained.
[0065] S203: Obtain a second check matrix M based on the codeword C and the first check matrix H.
[0066] For example, the second check matrix M can be a variable matrix obtained from the first check matrix H by Gaussian elimination. Each row of the second check matrix M represents a code word C, and each column represents a specific coding bit. The first check matrix H gives the constraints that the code word C must satisfy, and the second check matrix M with specific coding rules can be constructed through these constraints.
[0067] It can be understood that, at the receiving end (for example, in the user equipment), according to the determined first check matrix H and the code word C, the linear code word C can be checked, for example, by determining whether the product of the transpose of the first check matrix H and the code word C is 0, it is determined that the code word C is correct, otherwise it is determined that the code word C is wrong. Alternatively, at the transmitting end (for example, the base station), a generator matrix G that satisfies the product of the transpose of the first check matrix H to be 0 can be derived based on the first check matrix H, and the generator matrix G is converted into the code word C, and then data is transmitted.
[0068] S204: Determine whether the second check matrix M satisfies the third check matrix E under the first condition. Determine the a posteriori probability based on the third check matrix E and the priori probability; the a posteriori probability includes bit stream information.
[0069] It is understandable that the "posterior probability" is the updated prior probability calculated by combining the prior probability and the new evidence (such as the likelihood ratio), and the new probability that each bit is a logical "0" or a logical "1". The likelihood ratio can be used to compare the goodness of fit of two statistical models relative to the data, that is, one statistical model is a special case of another statistical model. For example, the third check matrix E is a special case of the second check matrix M that satisfies the first condition.
[0070] For example, each row in the second check matrix M represents an observation value (e.g., codeword C), and each column represents a feature. The data probability of the barrier of each observation value in the second check matrix M is calculated (in a manner that satisfies the first condition), and a probability model, i.e., the third check matrix E, is constructed. Among them, the first condition is set according to the actual application scenario of the check method and the performance selection of the codeword. The present application does not make specific restrictions on this, and the determination method of the first condition can be exemplified. For example, the first condition includes a log-likelihood ratio.
[0071] Then, the posterior probability can be calculated using Bayes' theorem based on the third check matrix E and the prior probability. For example, the posterior probability includes bit stream information. The bit stream information includes check bit W1 and information bit W2. Check bit W1 is an extra bit used to ensure that the code word C satisfies the constraints of the first check matrix H. The information bit W2 is the actual data to be transmitted, which is used to generate the complete code word C, and the reliability of data transmission is improved by introducing redundancy by multiplying with the generation matrix.
[0072] In some examples, step 204: determining that the second check matrix E satisfies the third check matrix E under the first condition includes: the first condition includes a log-likelihood ratio algorithm.
[0073] The third check matrix E is obtained by performing a log-likelihood ratio operation on the second check matrix M.
[0074] For example, Wherein, i represents the value of the i-th row of the second check matrix M, j represents the value of the j-th column of the second check matrix M, and M i,j represents the value of the i-th row and j-th column of the second check matrix M, where the maximum value of j is 6.
[0075] S205: Determine a decision result according to the posterior probability and the first check matrix H.
[0076] It can be understood that the "decision result" indicates whether the codeword C that satisfies the posterior probability and the first check matrix H is correct. Error detection and correction are effectively improved according to the decision result.
[0077] In some examples, such as Figure 3 As shown, step S205: determining the decision result according to the posterior probability and the first check matrix, including S2051.
[0078] S2051: Determine that the product of the first check matrix H and the bit stream information is less than or equal to the decision threshold, and the decision result is correct; otherwise, the decision result is wrong.
[0079] It can be understood that the "decision threshold" is used to determine the final value of each bit. In the decoding process of the LDPC code, the value of each bit is determined based on the posterior probability. The decision result refers to whether each bit in the code word C is logical "0" or logical "1" determined by the decoder based on the received code word C and the constraints of the first check matrix H.
[0080] For example, according to Determine a decision result, wherein H represents a first check matrix, W1 represents a check bit W1 of the bit stream information in the posterior probability, and W2 represents an information bit of the bit stream information in the posterior probability.
[0081] For example, the decision threshold includes 0. If the product of the first check matrix H and the bit stream information is less than or equal to 0, the decision result is correct and is "0", otherwise, the decision result is wrong and is "1".
[0082] S206: If the judgment result is correct, the first verification result Ver1 is output.
[0083] For example, the judgment result is "0", indicating that the first verification result Ver1 is correct, and the code block CB verified by the first verification result Ver1 is correct. Outputting the first verification result Ver1 facilitates subsequent determination of the verification result of the transmission block TB.
[0084] Based on the above steps S201 to S206, the first verification result Ver1 can be determined, and the first verification result Ver1 can be output when the code block C is correct. In this way, it is helpful to eliminate the erroneous first verification result Ver1, reduce the amount of calculation on the first verification result Ver1, and reduce the resource overhead and delay of the subsequent calculation of the second verification result Ver2.
[0085] In some examples, such as Figure 2 As shown, step S300: based on the first verification result Ver1 and the relationship between the number of iterations for obtaining the first verification result Ver1 and the preset number, determine the second verification result Ver1 of the transmission block TB, including S310 and S320.
[0086] S310: Determine that the first verification result Ver1 is correct, and the number of iterations of the first verification result Ver1 is greater than or equal to a preset number, and determine that the decoding result is correct; otherwise, determine that the decoding result is wrong.
[0087] For example, “a correct decoding result” means that there is no error in the data after the decoding process of the code block CB.
[0088] A code block CB is iteratively processed, and the first verification result Ver1 obtained each time is correct. In the case of a verification with a number of iterations greater than or equal to a preset number of times, the first verification results Ver1 obtained multiple times are all correct, and the decoding result of the code block CB is determined to be correct. Otherwise, the decoding result of the code block CB is determined to be wrong.
[0089] In this way, when the transport block TB includes multiple code blocks CB, it is necessary to perform iterative processing on each code block CB and determine whether the decoding result of each code block CB is correct.
[0090] For example, the transmission block TB includes 3 code blocks CB. The preset number of iterative processing of the code block CB includes 8 times. A code block CB performs a first check (for example, a CRC check) to determine a first check result Ver1, which is the first check result Ver1. The same code block CB performs a second check (for example, a CRC check) to determine a first check result Ver1, which is the first check result Ver1. The same code block CB performs a third check (for example, a CRC check) to determine a first check result Ver1, which is the first check result Ver1. And so on. When the number of iterations of the same code block CB is 8 times, the 8 first check results Ver1 that have been obtained are all correct, and it is determined that the decoding result of this code block CB is correct. Otherwise, it is determined that the decoding result of this code block CB is wrong.
[0091] Then, another code block CB is iteratively processed, and this code block CB is also checked 8 times in sequence. If the 8 first check results Ver1 obtained are all correct, it is determined that the decoding result of this code block CB is correct. Otherwise, it is determined that the decoding result of this code block CB is wrong.
[0092] Similarly, the third code block is also checked eight times in sequence, and if the eight first check results Ver1 obtained are all correct, the decoding result of this code block CB is determined to be correct. Otherwise, the decoding result of this code block CB is determined to be wrong.
[0093] S320: Perform an OR operation on the first verification result Ver1 corresponding to the correct decoding result to obtain a second verification result Ver2.
[0094] It is understandable that "taking an OR operation on the first verification result Ver1 corresponding to the correct decoding result" can obtain a valid second verification result Ver2. The first verification result Ver1 corresponding to the misaligned decoding result indicates that an error is introduced during the transmission of the code block CB, and no further verification is required.
[0095] For example, the transmission block TB includes 3 code blocks CB. The preset number of iterative processing of the code blocks CB includes 8 times. The decoding results of two code blocks CB of the transmission block Tb are correct, and the decoding result of one code block CB is wrong. The first verification result Ver1 corresponding to the correct decoding result can be ORed to obtain the second verification result Ver2.
[0096] For example, a correct decoding result can be represented by "0", and an erroneous decoding result can be represented by "1". Multiple code blocks CB are cascaded and OR-operated in sequence. For example, the first verification result Ver1 of the first code block CB is OR-operated; then, the result of the OR-operation of the first verification result Ver1 of the first code block CB is OR-operated with the first verification result Ver1 of the second code block CB; then, the result of the OR-operation of the first verification result Ver1 of the first code block CB is OR-operated with the result of the OR-operation of the first verification result Ver1 of the second code block CB; and so on. After all the code blocks CB of the transmission block TB are OR-operated, the second verification result Ver2 is obtained. For example, the correct second verification result Ver2 is represented by "0", and the erroneous second verification result Ver2 is represented by "1", that is, outputting "0" indicates that the second verification result Ver2 is correct, and outputting "1" indicates that the second verification result Ver2 is erroneous.
[0097] In some examples, at least one code block CB corresponds to a first verification result Ver1 respectively. If the multiple first verification results Ver1 are all correct and the number of iterations of the multiple first verification results Ver1 is greater than or equal to a preset number, it is determined that the decoding results of the multiple first verification results Ver1 are correct.
[0098] An OR operation is performed on the first verification results Ver1 corresponding to the multiple correct decoding results to obtain the second verification result Ver2.
[0099] For example, the transport block TB includes 3 code blocks CB. The preset number of iterative processing of the code blocks CB includes 8 times.
[0100] The three code blocks CB are iteratively processed respectively, and each code block CB is checked 8 times in sequence. If the 8 first check results Ver1 obtained for each code block CB are all correct, it is determined that the decoding result of this code block CB is correct. Otherwise, it is determined that the decoding result of this code block CB is wrong.
[0101] Perform an OR operation on the first check codes Ver1 of the three code blocks CB and output the second check result Ver2. Outputting "0" indicates that the second check result Ver2 is correct, and outputting "1" indicates that the second check result Ver2 is wrong. For example, if there is an erroneous first check result Ver1 among the multiple first check results Ver1 of a code block CB, the second check result Ver2 operation may not be performed on this code block CB, which can reduce the amount of calculation and reduce resource overhead. When the eight first check results Ver1 obtained for a code block CB are all correct, an OR operation is performed on the eight first check results Ver1 to obtain a second check result Ver2. The second check result Ver2 represents the check result of the transmission block TB (e.g., TB CRC).
[0102] In this way, the second verification result Ver2 is correct, and the transmission data Msg is output. For example, the second verification result Ver2 is correctly represented as "0", and the second verification result Ver2 is incorrectly represented as "1", that is, outputting "0" indicates that the second verification result Ver2 is correct, and outputting "1" indicates that the second verification result Ver2 is incorrect.
[0103] In the above data verification method, each code block CB of a transmission block TB can be iteratively verified to obtain multiple first verification results Ver1, and the second verification result Ver2 can be obtained based on the first verification result Ver1, so as to reduce the amount of calculation (compared with the method of calculating the second verification result for the entire transmission block TB in the related art), improve the calculation speed, and reduce the delay. Furthermore, the first verification result Ver1 is correctly or-operated to obtain the second verification result Ver2, which further reduces the amount of calculation, reduces the delay, and significantly improves the data verification speed, which is characterized by a significant reduction in the response time of the user equipment receiving data.
[0104] Second, as Figure 4 As shown, the present application further provides a data verification device 200. The data verification device 200 includes: a first verification module 210, a second verification module 220 and a processing module 230.
[0105] The first verification module 210 is used to decode the user equipment transmission data Msg to obtain a first verification result Ver1; wherein the transmission block TB of the transmission data Msg includes at least one code block CB.
[0106] The second verification module 220 is coupled to the first verification module 210 , and is used to determine the second verification result Ver2 based on the first verification result Ver1 and the relationship between the number of iterations of obtaining the first verification result Ver1 and a preset number of iterations.
[0107] The processing module 230 is coupled to the first verification module 210 and the second verification module 220 , and is used to control the second verification module 220 to operate in response to the first verification result Ver1 being correct, and to receive the second verification result Ver2 .
[0108] In some examples, such as Figure 5 As shown, the data verification device 200 further includes a receiving module 240. The receiving module 240 is coupled to the first verification module 210, and is used to receive the transmission data Msg, determine at least one code block CB according to the size of the transmission block TB of the transmission data Msg, and transmit it to the first verification module 210.
[0109] The first verification module 210 includes at least one first verification submodule 211, and the first verification submodule 211 is used to obtain a corresponding first verification result Ver1 according to at least one code block CB.
[0110] The second verification module 220 is coupled to the first verification submodules 211 respectively, and is used to determine the second verification result Ver2 based on the first verification results Ver1 and the number of iterations of the first verification results Ver1 being greater than or equal to a preset number.
[0111] The processing module 230 is further configured to output transmission data Msg in response to the second verification result Ver2 being correct.
[0112] For example, the processing module 230 includes a plurality of registers, and the plurality of registers are used to receive a plurality of first verification results Ver1, and respectively perform an OR operation on the plurality of first verification results Ver1 to obtain a plurality of second verification results Ver2.
[0113] In the related art, after checking each code block CB of the transmission block TB, the CB CRC is obtained. In the calculation process of checking the entire transmission block including the CBCRC to obtain the TB CRC, 8124 lookup tables, 10138 registers, and 2 fixed embedded RAM resources (Block RAM) inside the FPGA are consumed.
[0114] The data verification method provided in the above example of the present application requires 132 lookup tables and 235 registers. The hardware resources of the data verification device 200 using the data verification method provided in the above example of the present application are significantly reduced, and the delay set of data verification can be ignored, which is conducive to wide application in communication systems. The technical effect achieved by the method for data verification by the data verification device 200 provided in this embodiment is not repeated here.
[0115] In some embodiments, Figure 6 As shown, the present application further provides a data transmission system 300. The data transmission system 300 includes: a base station 310 and a user equipment 320.
[0116] The base station 310 is used to determine the transmission block TB that the user equipment 320 needs to receive, and send a downlink control message DCI and the transmission block TB, and to receive a first check result CB CRC and a second check result TBCRC transmitted by the user equipment 320, and determine whether to retransmit the transmission block TB according to the first check result CB CRC.
[0117] The user equipment 320 is used to receive the downlink control message DCI and the transport block TB sent by the base station 310, and implement the data verification method provided in any of the above examples, and feed back the first verification result Ver1 and the second verification result Ver2 to the base station 310. For example, Figure 1As shown, the data verification method includes: determining at least one code block CB of the transmission block TB according to the size of the transmission block TB of the user equipment transmitting data Msg. Determining a corresponding first verification result Ver1 according to the at least one code block CB. Based on the first verification result Ver1, and the relationship between the number of iterations of obtaining the first verification result Ver1 and the preset number of iterations, determining a second verification result Ver2 of the transmission block TB. The second verification result Ver2 correctly outputs the transmission data Msg.
[0118] For example, after determining the transport block TB that the user equipment 320 needs to receive, the base station 310 can directly send the downlink control message DCI and the transport block TB to the user equipment 320 without performing storage backup. Then, after receiving the first verification result Ver1 or the second verification result Ver2 returned by the user equipment 320, it is determined whether there is an error, for example, if the first verification result Ver1 is wrong or the second verification result Ver2 is wrong, the data transmission fails, and the transport block TB needs to be retransmitted.
[0119] After the user equipment 320 receives the downlink control message DCI, the transmission block TB can be obtained according to the downlink control message DCI. In addition, the hybrid repeat request HARQ merging process is performed on each transmission block TB, and the transmission block TB is output after LDPC decoding. Then, at least one code block CB of the transmission block TB is determined according to the size of the transmission block TB of the user equipment transmission data Msg. The corresponding first verification result Ver1 is determined according to at least one code block CB. Based on the first verification result Ver1, and the relationship between the number of iterations of the first verification result Ver1 and the preset number, the second verification result Ver2 of the transmission block TB is determined. The second verification result Ver2 correctly outputs the transmission data Msg. Please refer to the data verification method provided in the above example for details, and the technical effect achieved by the data transmission system 300 provided in this embodiment is the same as the technical effect achieved by the data verification method, which will not be repeated here.
[0120] The base station 310 in the embodiment of the present application can be a device for communicating with a terminal device. The network device can be a base station (Base Transceiver Station, BTS) in a global system of mobile communications (Global System of Mobile communication, GSM) system or code division multiple access (Code Division Multiple Access, CDMA), or a base station (NodeB, NB) in a wideband code division multiple access (Wideband Code Division Multiple Access, WCDMA) system, or an evolved base station (Evolutional NodeB, eNB or eNodeB) in an LTE system, or a wireless controller in a cloud radio access network (Cloud Radio Access Network, CRAN) scenario, or the network device can be a relay station, an access point, a vehicle-mounted device, a wearable device, a network device in a future 5G network, or a network device in a future evolved PLMN network, etc., and the embodiment of the present application is not limited.
[0121] The user equipment 320 in the embodiment of the present application may refer to an access terminal, a user unit, a user station, a mobile station, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, a terminal, a wireless communication device, a user agent or a user device. The terminal device may also be a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a Wireless Local Loop (WLL) station, a Personal Digital Assistant (PDA), a handheld device with wireless communication function, a computing device or other processing device connected to a wireless modem, a vehicle-mounted device, a wearable device, a terminal device in a future 5G network or a terminal device in a future evolved Public Land Mobile Network (PLMN), etc., and the embodiment of the present application is not limited to this.
[0122] The technical solutions of the embodiments of the present application can be applied to various communication systems, for example: Global System of Mobile communication (GSM) system, Code Division Multiple Access (CDMA) system, Wideband Code Division Multiple Access (WCDMA) system, General Packet Radio Service (GPRS), Long Term Evolution (LTE) system, LTE Frequency Division Duplex (FDD) system, LTE Time Division Duplex (TDD), Universal Mobile Telecommunication System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX) communication system, future fifth generation (5G) system or new radio (NR), etc.
[0123] In a fourth aspect, the present application further provides a computer program product. The computer program product includes a computer program or instructions. When the computer program or instructions are executed by a data verification device, the steps of the data verification method provided in any of the above examples are implemented.
[0124] In an example, the computer program or executable instruction is stored in a computer-readable storage medium. The processor of the computer device reads the computer program or executable instruction from the computer-readable storage medium, and the processor executes the computer program or executable instruction, so that the computer device performs the steps of the detection method provided in any one of the above examples of the embodiments of the present application. For example, at least one code block of the transmission block is determined according to the size of the transmission block of the user equipment transmitting data. The corresponding first verification result is determined according to the at least one code block. Based on the first verification result, and the relationship between the number of iterations for obtaining the first verification result and the preset number of iterations, the second verification result of the transmission block is determined. The second verification result correctly outputs the transmission data.
[0125] In a fifth aspect, the present application also provides a computer-readable medium. The computer-readable medium includes a stored computer program or instruction; when the computer program or instruction is executed, the device where the computer-readable storage medium is located is controlled to implement the data verification method provided in any of the above examples.
[0126] For example, a computer-readable storage medium may include a memory of executable instructions or a computer program, and the above instructions or computer program can be executed by a processor of an electronic device, so that the electronic device can perform the steps of the detection method provided in any of the above examples of the present application. For example, at least one code block of a transmission block is determined according to the size of a transmission block of data transmitted by a user device. A corresponding first verification result is determined based on at least one code block. Based on the first verification result and the relationship between the number of iterations for obtaining the first verification result and the preset number of iterations, a second verification result of the transmission block is determined. The second verification result correctly outputs the transmission data.
[0127] For example, the computer readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a compact disc read-only memory (CD-ROM), a magnetic tape, a floppy disk, and an optical data storage device, etc.
[0128] It should be noted that the embodiments of the data verification method provided in the present application and the embodiments of the data verification device and the data transmission system belong to the same concept; the technical features in the technical solutions recorded in the embodiments can be arbitrarily combined without conflict. However, it should be further noted that the data verification method provided in the embodiments of the present application, the combination of its various technical features can already solve the technical problem to be solved by the present application; therefore, the data verification method provided in the embodiments of the present application may not be limited by the data verification device provided in the embodiments of the present application, and any data verification device and data transmission system that can implement the data verification method provided in the embodiments of the present application are within the scope of protection of the present application.
[0129] The above is only a preferred embodiment of the present application and is not intended to limit the scope of protection of the present application. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present application should be included in the scope of protection of the present application.
Claims
1. A data verification method, comprising: Determine at least one code block of the transport block according to the size of the transport block for transmitting data of the user equipment; Determine a corresponding first verification result according to the at least one code block; Determine a second verification result of the transmission block based on the first verification result and a relationship between the number of iterations for obtaining the first verification result and a preset number of iterations; The second verification result correctly outputs the transmission data.
2. The data verification method according to claim 1, wherein the determining the second verification result of the transmission block based on the first verification result and the relationship between the number of iterations for obtaining the first verification result and a preset number of iterations comprises: Determining that the first verification result is correct, and the number of iterations of the first verification result is greater than or equal to the preset number, and determining that the decoding result is correct; Otherwise, it is determined that the decoding result is wrong; An OR operation is performed on the first verification result corresponding to the correct decoding result to obtain the second verification result.
3. The data verification method according to claim 2, wherein the at least one code block corresponds to one of the first verification results; If all of the first verification results are correct and the number of iterations of the first verification results is greater than or equal to the preset number, it is determined that the decoding results of the first verification results are correct; Performing an OR operation on the first verification results corresponding to a plurality of correct decoding results to obtain the second verification result; If the second verification result is correct, the transmission data is output.
4. The data verification method according to claim 1, wherein determining the corresponding first verification result according to the at least one code block comprises: Determine a first check matrix according to the transmission block; Obtaining a codeword with a priori probability based on the code block; Obtain a second check matrix based on the codeword and the first check matrix; Determine that the second check matrix satisfies a third check matrix under the first condition; Determine a posterior probability based on the third check matrix and the prior probability; the posterior probability includes bit stream information; A judgment result is determined according to the posterior probability and the first check matrix; and the judgment result correctly outputs the first check result.
5. The data verification method according to claim 4, wherein determining the judgment result according to the posterior probability and the first check matrix comprises: Determine that the product of the first check matrix and the bit stream information is less than or equal to a decision threshold, and the decision result is correct; Otherwise, the judgment result is wrong.
6. The data verification method according to claim 4, wherein determining that the second check matrix satisfies the third check matrix under the first condition comprises: The first condition includes a log-likelihood ratio algorithm; A log-likelihood ratio operation is performed on the second check matrix to obtain the third check matrix.
7. The data verification method according to claim 1, wherein determining at least one code block of the transport block according to the size of the transport block transmitted by the user equipment comprises: The size of the transmission block is greater than a preset value, and the transmission block is divided into a plurality of code blocks; The size of the transport block is less than or equal to the preset value, and the transport block is represented as a code block; The preset value is the maximum bit of data transmitted by the user equipment.
8. A data verification device, comprising: A first verification module, configured to decode data transmitted by a user equipment to obtain a first verification result; wherein a transmission block of the transmission data includes at least one code block; A second verification module, coupled to the first verification module, for determining a second verification result based on the first verification result and a relationship between the number of iterations for obtaining the first verification result and a preset number of iterations; The processing module is coupled to the first verification module and the second verification module, and is used to control the second verification module to operate in response to the first verification result being correct, and to receive the second verification result.
9. The data checking device according to claim 8, wherein the CRC checking device further comprises: a receiving module, coupled to the first verification module, configured to receive the transmission data, determine at least one code block according to the size of the transmission block of the transmission data, and transmit the code block to the first verification module; The first verification module includes at least one first verification submodule, and the first verification submodule is used to obtain the corresponding first verification result according to at least one code block; The second verification module is coupled to the plurality of the first verification submodules respectively, and is used to determine the second verification result based on the plurality of the first verification results respectively, and the number of iterations of the plurality of the first verification results is greater than or equal to the preset number; The processing module is further configured to output the transmission data in response to the second verification result being correct.
10. A data transmission system, comprising: A base station is used to determine a transmission block that a user equipment needs to receive, and to send a downlink control message and the transmission block, and to receive a first verification result and a second verification result transmitted by the user equipment, and to determine whether to retransmit the transmission block according to the first verification result. A user equipment is used to receive the downlink control message and the transmission block sent by the base station, implement the data verification method according to any one of claims 1 to 7, and feed back the first verification result and the second verification result to the base station.
