CN115037415B - CRC-based error correction coding method, CRC-based error correction coding device and CRC-based error correction coding terminal - Google Patents

CRC-based error correction coding method, CRC-based error correction coding device and CRC-based error correction coding terminal Download PDF

Info

Publication number
CN115037415B
CN115037415B CN202210612618.8A CN202210612618A CN115037415B CN 115037415 B CN115037415 B CN 115037415B CN 202210612618 A CN202210612618 A CN 202210612618A CN 115037415 B CN115037415 B CN 115037415B
Authority
CN
China
Prior art keywords
polynomial
sequence
coding
crc
error correction
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN202210612618.8A
Other languages
Chinese (zh)
Other versions
CN115037415A (en
Inventor
孙谦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Yixin Aerospace Technology Co ltd
Original Assignee
Jiangsu Yixin Aerospace Technology Co ltd
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 Jiangsu Yixin Aerospace Technology Co ltd filed Critical Jiangsu Yixin Aerospace Technology Co ltd
Priority to CN202210612618.8A priority Critical patent/CN115037415B/en
Publication of CN115037415A publication Critical patent/CN115037415A/en
Application granted granted Critical
Publication of CN115037415B publication Critical patent/CN115037415B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • H04L1/0063Single parity check

Abstract

The invention discloses a CRC-based error correction coding method, which comprises the following steps: performing CRC coding on an original information sequence with the length of N to obtain a first coding sequence with the length of N+M; grouping the first coding sequences to obtain one or more first groups with equal length; performing parity check coding on each first packet to obtain a second packet; the second packets are combined in order to obtain a second code sequence, and sent to the transmission channel. The invention adds the parity check and error correction coding based on the CRC coding, so that the receiving end does not need to inform the transmitting end to retransmit, but directly corrects errors to obtain correct communication data, thereby improving the reliability and instantaneity of communication, supporting unidirectional communication and reducing the occupation of channel resources.

Description

CRC-based error correction coding method, CRC-based error correction coding device and CRC-based error correction coding terminal
Technical Field
The present invention relates to the field of communications, and in particular, to a method, an apparatus, and a terminal for error correction coding based on CRC.
Background
After the communication data is transmitted through the communication channel, a bad error code is generated by the influence of the channel, and therefore, it is necessary to perform error control by adopting channel coding. Fig. 1 is a schematic diagram of an error control coding communication system. In the figure, X is the output signal of the source encoder (or encryptor, pattern transformer, scrambler), and Y is the output signal of the channel decoder. The channel encoder inserts a number of supervisory symbols (also called check symbols) in the information symbols according to a certain law, resulting in a sequence X'. The effect of the transmission of the encoded channel, i.e., X 'to Y', is often noise and bit errors, which require a decoder to check to see if noise and bit errors are present. Specifically, the channel decoder checks whether the relationship between the information symbol and the parity symbol (also referred to as check symbol) is corrupted, and if so, indicates that there is an error, measures are taken to reduce the error rate.
Cyclic redundancy check (CRC, cyclic Redundancy Check) is an error control coding and decoding method that uses the principle of polynomial division and its remainder for error detection. The data bit sequence to be transmitted is taken as a coefficient of an information polynomial u (x), a contracted generating polynomial g (x) is removed during transmission, a remainder polynomial v (x) is obtained, the remainder polynomial is added to the information polynomial and then is transmitted to a receiving end, the receiving end also removes a received receiving polynomial r (x) by the generating polynomial g (x), if the receiving end can divide the receiving polynomial, no error code is indicated, and if the receiving end cannot divide the receiving polynomial, the receiving end indicates that the receiving end has error code. CRC uses the principle of division and remainder to realize the function of error detection, and has the advantages of clear principle, simple realization and the like.
However, CRC has only a function of detecting errors and cannot correct errors, so if CRC is directly used, both communication parties are required to maintain duplex links, and when a receiving party detects that an error occurs, as shown in fig. 2, the receiving party is notified to retransmit, which results in poor real-time performance of communication and cannot meet the requirements of the communication field with high real-time performance requirements.
Disclosure of Invention
In order to solve the problem that the error control coding and decoding scheme based on the CRC cannot carry out real-time error correction, the invention provides a method, a device and a terminal for error correction coding based on the CRC, which can carry out error correction processing on a receiving end only by a unidirectional channel without notifying a sender to retransmit, and improves the reliability and the real-time performance of communication (the communication principle is shown in figure 3). The technical scheme is as follows:
in one aspect, the present invention provides a method of CRC-based error correction coding, the method comprising the steps of:
s101: performing CRC coding on an original information sequence with the length of N to obtain a first coding sequence with the length of N+M, wherein M is the length of a check element sequence;
s102: grouping the first coding sequences to obtain one or more first groups with equal length;
s103: performing parity check coding on each first packet to obtain a second packet;
s104: the second packets are combined in order to obtain a second code sequence, and sent to the transmission channel.
Further, step S101 further includes:
s1011: acquiring an original information sequence polynomial V (x) according to the original information sequence;
s1012: setting a check element sequence length M;
s1013: generating a polynomial g (x) according to the M setting, wherein the highest order of the polynomial g (x) is equal to M;
s1014: dividing the original information sequence polynomial V (x) with a generator polynomial g (x) to obtain a check element polynomial R (x);
s1015: performing addition calculation on the check element polynomial R (x) and the original information sequence polynomial V (x) to obtain a coding polynomial A (x);
s1016: a first coding sequence a of length n+m is obtained from the coding polynomial a (x).
Further, the original information sequence polynomial V (x) is as follows:
wherein N is the length of the original information sequence, v i Is the coefficient of the ith bit in the original information sequence polynomial V (x), corresponding to the encoded value of the ith bit of the original information sequence.
Further, the method for calculating the check element polynomial R (x) comprises the following steps:
wherein the polynomial P (x) is the part of the original information sequence polynomial V (x) divided by the generator polynomial g (x).
Further, the method for calculating the encoding polynomial A (x) comprises the following steps:
wherein the encoding polynomial A (x) is a polynomial which can be divided by the generator polynomial g (x), a i Is the coefficient of the ith bit in the code polynomial a (x).
Further, step S1016 includes: coefficient a of the polynomial A (x) to be encoded i Sequentially arranging to obtain a first coding sequence a, wherein the first coding sequence a is an original information sequence v 0 v 1 ...v N-1 ]And a check element sequence [ r ] 0 r 1 ...r M-1 ]As follows:
a=[v 0 v 1 ...v N-1 r 0 r 1 ...r M-1 ]=[a 0 a 1 ...a N+M-1 ],
wherein the check element sequence [ r ] 0 r 1 ...r M-1 ]The coefficient of the check element polynomial R (x) is formed by arranging the coefficients in sequence.
Further, step S102 includes:
each first packet has a length Q, and the number of groups H of the first packet is:
and when the last group is less than the Q bits, zero padding is carried out, wherein the number of zero padding is as follows:
c(0)=H*Q-N-M。
further, the parity check coding generator matrix is:
where A is the identity matrix of Q.times.Q and B is the full 1-column vector of length Q.
In another aspect, the present invention provides an apparatus for error correction coding based on CRC, comprising: the CRC coding module, the code grouping module, the parity check coding module and the code merging module;
the CRC coding module performs CRC coding on the original information sequence and converts the original information sequence into a first coding sequence;
the coding grouping module groups the first coding sequence to obtain one to a plurality of first groups with the length of Q, when the length of the last first group is smaller than Q, zero padding is carried out at the end so that the length of the last first group is equal to Q, wherein Q is a positive integer;
the parity check coding module performs parity check coding on each first packet and converts each first packet into a second packet, and the length of the second packet is 1 bit parity check bit more than that of the first packet;
the code combining module combines the plurality of second packets and converts the second packets into a second code sequence, wherein the second code sequence is the code sequence finally fed into the communication channel.
In yet another aspect, the present invention provides a terminal including the above apparatus for CRC-based error correction coding.
The beneficial effects of the invention are as follows: by utilizing the scheme of the invention, on the basis of utilizing CRC coding, parity check and error correction coding are added, so that a receiving end does not need to inform a transmitting end to retransmit, but directly correct errors are carried out, correct communication data is obtained, thereby improving the reliability and instantaneity of communication, supporting unidirectional communication and reducing the occupation of channel resources.
Drawings
FIG. 1 is a schematic diagram of a communication system for error control;
FIG. 2 is a schematic diagram of an error control method with only error detection function;
FIG. 3 is a schematic diagram of an error control method with error correction;
FIG. 4 is a flow chart of a method for CRC-based error correction encoding according to an embodiment of the present invention;
FIG. 4a is a sub-flowchart of FIG. 4;
FIG. 5 is a flow chart of a method for CRC-based error correction decoding according to an embodiment of the present invention;
FIG. 6 is a sub-flowchart of FIG. 5;
FIG. 7 is a schematic diagram illustrating an embodiment of an apparatus for CRC-based error correction coding according to the present invention;
FIG. 8 is a schematic diagram illustrating an embodiment of an apparatus for CRC-based error correction decoding according to the present invention;
Detailed Description
In order that the invention may be readily understood, a more particular description thereof will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Preferred embodiments of the present invention are shown in the drawings. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. The terminology used in the description of the invention herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention.
As shown in fig. 3, the scheme provided by the invention can realize error control of unidirectional communication, and when the receiving end detects an error, the receiving end does not need to inform the transmitting end to retransmit, but directly corrects errors to obtain correct communication data.
Example 1
As shown in fig. 4, in one aspect, the present invention provides a method for error correction coding based on CRC, where parity check and error correction coding are added based on CRC coding, so that a receiving end does not need to notify a transmitting end to retransmit, and error correction is directly performed to obtain correct communication data, thereby improving reliability and instantaneity of communication, supporting unidirectional communication, and reducing occupation of channel resources.
The method comprises the following steps:
s101: performing CRC coding on an original information sequence with the length of N to obtain a first coding sequence with the length of N+M, wherein M is the length of a check element sequence;
s102: grouping the first coding sequences to obtain one or more first groups with equal length;
s103: performing parity check coding on each first packet to obtain a second packet;
s104: the second packets are combined in order to obtain a second code sequence, and sent to the transmission channel.
Further, referring to fig. 4a, step S101 includes:
s1011: acquiring an original information sequence polynomial according to the original information sequence;
s1012: setting the length M of the check element sequence;
s1013: generating a polynomial according to the M setting, wherein the highest order of the generating polynomial is equal to M;
s1014: dividing the original information sequence polynomial and the generating polynomial to obtain a check element polynomial;
s1015: performing addition calculation on the check element polynomial and the original information sequence polynomial to obtain a coding polynomial;
s1016: and obtaining a first coding sequence with the length of N+M according to the coding polynomial.
Specifically, for step S1011: each bit in the original information sequence v to be transmitted has a value of 0 or 1, and different original information sequences v may include different information bits, which is specifically shown in the form of 1001 …. When the length of the original information sequence V is N, the original information sequence V may be represented in a Galois field (Galois field, GF (2)) using an original information polynomial V (x):
specifically, the coding value of each bit in the original information sequence V is sequentially assigned to the coefficients of the original information polynomial V (x).
In the following, taking n=7 as an example, three polynomial embodiments are provided:
original information sequence v= (1001110), its corresponding original information polynomial is: x is x 6 +x 3 +x 2 +x 1
Original information sequence v= (1001111), its corresponding original information polynomial is: x is x 6 +x 3 +x 2 +x 1 +1;
Original information sequence v= (0001111), its corresponding original information polynomial is: x is x 3 +x 2 +x 1 +1;
Specifically, for step S1012: the length M of the check element sequence is set, wherein the value of M is generally an integer, such as 8 bits, 16 bits, 24 bits, 32 bits, etc., preferably M < N, N is the length of the original information sequence v.
For step S1013: the generator polynomial g (x) is set according to M, wherein the highest order of the generator polynomial g (x) is equal to M. For example, when m=16, then its generator polynomial may be:
g(x)=x 16 +x 12 +x 5 +x 0
for step S1014: the check element polynomial R (x) is the remainder of the original information polynomial V (x) divided by the generator polynomial g (x), expressed as:
wherein the polynomial P (x) is the part of the original information sequence polynomial V (x) divided by the generator polynomial g (x).
For step S1015: the encoding polynomial a (x) is as follows:
wherein the encoding polynomial A (x) is a polynomial which can be divided by the generator polynomial g (x), a i Is the coefficient of the ith bit in the polynomial coded polynomial a (x).
Through the above calculation, it can be ensured that the code polynomial a (x) is divisible by the generator polynomial g (x). In practice, when the decoding side decodes the coding polynomial, this coding polynomial is removed using the same generator polynomial g (x) as the encoding side, theoretically indicating that the information was received without error if it could be divided.
For step S1016: a first coding sequence a of length n+m is obtained from the coding polynomial.
Specifically, the coefficient a of the polynomial A (x) i Assigned to the first code sequence a in sequence.
Further, the first coding sequence a is a combination of the original information sequence v and the check element sequence r, expressed as:
a=[v 0 v 1 ...v N-1 r 0 r 1 ...r M-1 ]=[a 0 a 1 ...a N+M-1 ]
thus, the length of the first coding sequence a is n+m. In practice, the first code sequence a is a sequence of M bits of the parity-check elements R added after the original information sequence v, where the parity-check element R is derived from the coefficients of the parity-check element polynomial R (x).
Further, step S102 includes:
grouping a first coding sequence a with the length of N+M to obtain first groups, wherein the length of each first group is Q, and settingFor the round-up operation, a total obtained group number H is:
further, when the last group is less than the Q bits, zero padding is performed, and the number of zero padding is as follows:
c(0)=H*Q-N-M
the data after zero padding is a zero padding sequence b, the total length is h×q, and the packet index is H, then the zero padding sequence b can be expressed as:
b=[a 0 a 1 ...a N+M-1 0...0]=[b 1 b h ...b H ]
b h =[b (h-1)*Q ...b h*Q-1 ]
wherein b h For the first packet, the zero padding sequence b accordingly contains H first packets b h
Further, step S103 includes:
for the first group b h And performing parity check coding to obtain a second packet. The generator matrix used is:
where A is the identity matrix of Q.times.Q and B is the full 1-column vector of length Q. For example, when q=4, the generation matrix is:
further, the second packet obtained after parity encoding is:
c h =b h ·G=[b (h-1)*Q ...b h*Q-1 ]·G=[c (h-1)*(Q+1) ...c h*(Q+1)-1 ],
h=1,2,...,H
wherein the second packet c h Is of length q+1, a total of H second packets c are obtained h
Further, step S104 includes:
h second packets c obtained above h Combining in order, a second coding sequence c is obtained, as follows:
c=c 1 c 2 ...c H
the second code sequence c is fed into the transmission channel.
Example two
On the other hand, referring to fig. 5 and 6, the present invention provides a method for error correction decoding based on CRC, which adds parity check and error correction decoding based on error detection using CRC, so that a receiving end does not need to notify a transmitting end to retransmit, but directly performs error correction, and correct communication data is obtained, thereby improving reliability and instantaneity of communication, supporting unidirectional communication, and reducing occupation of channel resources.
Specifically, referring to fig. 5, the method includes the steps of:
s201: generating a check pattern F;
s202: performing block parity check decoding on the received original bit sequence D to obtain a first check result D and a first decoding sequence e;
s203: performing CRC (cyclic redundancy check) on the first decoding sequence e to obtain a second checking result delta R (x); judging the second checking result delta R (x): if the second check result Δr (x) is zero, indicating that the transmission is error-free, jumping to step S204, and if the second check result Δr (x) is not zero, indicating that the transmission is error-free, jumping to step S205;
s204: extracting a first original information sequence v' in the first decoding sequence e;
s205: and performing error correction processing on the first decoding sequence e according to the check pattern F to obtain a second original information sequence v' after error correction.
Further, step S201 includes:
at the receiving end, multiple groups of check patterns F can be calculated and generated in advance, and each group of check patterns has a length of M. The check pattern is a local sequence sample used for error control at a receiving end in the communication field. The check pattern is generated in advance, so that the time for processing the real-time data can be saved, and the efficiency of data processing is improved. Furthermore, the check patterns can be generated in real time, so that the decoding of sequences with different lengths can be flexibly adapted, and meanwhile, the storage space is saved, and the method is suitable for scenes with smaller storage space because a large number of check patterns do not need to be generated.
Further, the number of the groups of the check pattern F is M+P (P is more than or equal to N), M and P are positive integers, P is more than or equal to N, the length of each group is M, wherein N is the length of an original bit sequence, and the check pattern F comprises two parts of CRC check elements and information data. Corresponding check pattern polynomial F k (x) The method comprises the following steps:
wherein the method comprises the steps ofCorresponding CRC check element part, R k-M (x)-R 0 (x) Corresponding to the information data part, < > and->Is polynomial +.>Coefficient of the i-th bitAlso the ith bit of the CRC check element sequence.
Further, the method for generating the CRC check element part of the check pattern F is as follows:
the pattern nature of the CRC check element portion is the corresponding error pattern when each bit in the M CRC check element information sequences is individually erroneous, thus totaling M groups. For each group f k (k=1, …, M) with the corresponding bit sequence M-k+1 being 1 and the other bits being zero, so that the set of all groups is a diagonal matrix f with a diagonal of 1:
correspondingly, the polynomial corresponding to the check pattern of the CRC check element part is:
further, the information data portion R of the check pattern F k-M (x)-R 0 (x) The generation method comprises the following steps:
the information data used to generate the check pattern is u, and there are p+1 groups, each group having a bit width of P, all groups being put together as a p+1 row P column information data matrix:
wherein the nth group of information dataIs the n+1 th row, first row +.>The values of all columns in the table are 0, which represents no error. Accordingly, the n-th group information data +.>The polynomials in the Galois field GF (2) are:
calculation U n (x) And the remainder R of the generator polynomial g (x) n (x) The generator polynomial g (x) is the same as the generator polynomial g (x) used for the sender-side encoding of the first embodiment. The specific calculation method is as follows:
the remainder R is obtained by the method n (x) The method comprises the following steps:
wherein R is 0 (x) The residual formula obtained when u is zero, namely the corresponding residual formula when the transmission process information data part has no error. The other residual formulas obtained in the above steps are respectively combined with R in GF (2) 0 (x) And performing polynomial subtraction to obtain a check pattern polynomial of the information data part, wherein the check pattern polynomial is as follows:
F n+M (x)=R k (x)-R 0 (x),n=1,2,...,P
the essence is the difference between the residual corresponding to each bit error of the information data and the residual corresponding to the absence of the error. Thus, each set of check patterns F k (x) And the data are in one-to-one correspondence with the information data according to a certain sequence.
Thus, combining the contents of the two parts of CRC check element and information data, the complete check pattern polynomial F k (x) The method comprises the following steps:
further, step S202 includes:
the original bit sequence received by the receiving end is d, correspondingly d is an observation sequence of a second coding sequence c sent by the sending end, the original bit sequence d is grouped, and a third group d is obtained h The following is shown:
d=[d 1 d 2 ...d h ...d H ]
for d h And performing block parity check decoding, wherein a check matrix G' of Q+1 rows and Q+1 columns is as follows:
wherein, the check matrix G' is in one-to-one correspondence with G of the transmitting end.
Set a third group d h The verification result is E h The following steps are:
wherein, C is an information sequence matrix obtained by combining all groups, specifically, an H row and Q column, and if a first decoding sequence obtained after the parity check decoding is completed is e, then:
e=[C 1 C 2 ...C H ]=[e 0 e 1 ...e H*Q-1 ]
wherein, packet C in the first decoding sequence e h Length ratio of the third packet d in the received bit sequence d h One bit less in length because the parity bits are removed.
Let the first check result obtained after the parity decoding is completed be D, then there are:
D=[D 1 D 2 ...D H ]=[d 0 d 1 ...d H-1 ]
wherein the first check result D is a vector of length H.
Further, step S203 includes:
for the first decoding sequence e of parity check decoding, the length of the first decoding sequence e is q×h, and the first original information sequence v 'and the original check element sequence r' are respectively:
v′=[e 0 e 1 ...e N-1 ]
r′=[e N e N+1 ...e N+M-1 ]
correspondingly, the original information polynomial and the original check-element polynomial over GF (2) domain are V (x) and R (x), respectively.
The first original information sequence V' is calculated by dividing the original information polynomial V (x) by g (x) to obtain the remainder R (x "), i.e. the check element polynomial R (x), as follows:
the second check result Δr (x) is obtained by subtracting the original check polynomial R' (x) from the obtained check polynomial R "(x), as follows:
wherein Deltar i Is a polynomialI-th coefficient of (a) in the set.
Judging the second checking result delta R (x), and jumping to the step S204 when the second checking result delta R (x) is zero, which indicates that the transmission is error-free; when the second check result Δr (x) is not zero, indicating that there is an error in transmission, the process goes to step S205.
Further, referring to fig. 6, step S205 further includes:
s2051: determining the sequence number of the error packet according to the first check result D;
s2052: determining the bit of the error in the group of the error packet according to the check pattern F and the second check result delta R (x);
s2053: inverting the bit with error to obtain a corrected second decoding sequence;
s2054: a second original information sequence v "in the second decoded sequence is extracted.
Specifically, step S2051 includes:
the error correction process determines the error codeword group based on a first check result D obtained during parity decoding. Let the set of error groups be T, as follows:
T={t|D(t)=1},
the sequence number of the erroneous packet is obtained, i.e. the bit with value 1 in the first check result D, and correspondingly t is the group number of the erroneous packet.
Step S2052 includes:
let the number of elements of T be J, T j Represents the j-th error packet, z j Representing the error bit in the j-th error packet.
After determining which packets are in error, the check pattern corresponding to each bit may be traversed in a particular packet. As is known from the generation principle of the check pattern F, each set of check patterns corresponds to the information data one by one, and this correspondence can be converted into a function of the erroneous packet and the erroneous bit representation. I.e. when t j When each packet is in error, traversing to z-th in the error packet j When the bits are, the corresponding check pattern groups are as follows:
k=N+M-Q*t j +Q-z j j∈(1,J),z j e (0, Q-1), where Q is Q as previously mentioned.
The proposal of the invention takes the error packet as a big frame, takes the premise that each error packet has only one bit error, respectively takes a check pattern corresponding to one bit in each error packet, adds the check patterns in GF (2), and obtains the sum which is the second check result delta R (x) calculated above when the bit traversed by each group is just all the error bit.
Then the erroneous packet t can be uniquely determined when the following holds j Intra-group error ratio of (2)Bit z j
Wherein DeltaR (x) is the second check result, F k (x) Is a check pattern expression.
Step S2053 includes:
record z 1 ,z 2 ,…,z j To take the value of the corresponding error bit z in the first decoding sequence e j And the value of (2) is inverted to obtain a corrected second decoding sequence e'.
For example, for the first decoded sequence e, the erroneous bits are respectivelyError correction can be completed after bit inversion is carried out on the error correction, and the inversion comprises the following steps: and becomes 1 if it is 0 and becomes 0 if it is 1.
Step S2054 includes:
and extracting a second original information sequence in the second decoding sequence to obtain an original information sequence v after error correction.
Let the data sequence after error correction be g, the information sequence obtained after error correction decoding is the original sequence v of the transmitting end:
v=[g 0 g 1 ...g N-1 ]
further, for step S2053 and step S2054, judgment may be added, and if the sequence number of the original information sequence is not the sequence number of the check element sequence, the next error bit may be directly processed without processing. This is because the final purpose of decoding is to obtain the original information sequence carrying the communication data only, and the check element does not need to be subjected to the inverting operation. Therefore, the data processing time can be saved, and the performance is further improved.
Example III
In order to more intuitively describe the CRC-based error correction decoding method and encoding method of the present invention, the following is a practical example:
and the transmitting end:
the original information sequence v to be transmitted is AA (hexadecimal) of 4 bytes, and then the total bit length n= 8*4 =32 bits, and the corresponding original information polynomial is:
the CRC check element is m=16 bits in length and its generator polynomial is:
g(x)=x 16 +x 12 +x 5 +x 0
the calculated CRC encoding polynomial is:
wherein R (x) =x 12 +x 11 +x 10 +x 9 +x 7 +x 4 +x 2 +1, i.e. the 16-bit CRC check element sequence generated by v is 0001_1110_1001_0101
Thereby obtaining a first coding sequence a:
a=[101010101010101010101010101010100001111010010101]
grouping the first code sequence a every q=5 bits, then the total number of groups
The zero padding number is as follows:
c(0)=H*Q-N-M=10*5-32-16=2
parity check coding is carried out every 5 bits, and the used generation matrix is as follows:
the second packet obtained after parity encoding is:
c h =b h ·G=[b (h-1)*5 …b h*5-1 ]·G=[c (h-1)*6 …c h*6-1 ]h=1,2,…,10
h second packets c obtained above h Sequentially combining to obtain a second coding sequence c as follows:
c=[c 1 c 2 ...c 10 ]
= [101011_010100_101011_010100_101011_010100_100001_111100_100100_101000], and the second code sequence c is transmitted into the transmission channel.
The receiving end:
at the receiving end, a check pattern with a bit width of m=16 is generated for m+p=48 groups (where p=32, m=16), and the information data U for generating the check pattern is a matrix U of 33 rows and 32 columns:
performing CRC (cyclic redundancy check) calculation to obtain R k (x) Wherein
R 0 (x)=0
R 1 (x)=x 12 +x 5 +1
R 32 (x)=x 15 +x 14 +x 12 +x 11 +x 10 +x 8 +x 5 +x 4 +x 3
The verification pattern is:
F k (x)=R k-16 (x)-R 0 (x)k=17,18,…,48
after the CRC check element part is added, the specific data of the check pattern are as follows:
/>
the original bit sequence d received by the receiving end is provided with 10 groups, and the original bit sequence d is grouped to obtain a third group d h The following is shown:
d=[d 1 d 2 …d 10 ]
=[001011_110100_101011_010100_101011_010100_100001_011100_100100_101000]for d h And performing block parity check decoding, wherein the check matrix G' is as follows:
after the parity decoding is completed, the obtained first decoding sequence is e and the first check result D D are respectively:
e=[00101_11010_10101_01010_10101_01010_10000_01110_10010_10100]
D=[1100000100]
then the corresponding set of error groups T is:
T={t|D(t)=1}={1,2,8}
after e is disassembled, the original information sequence received by the receiving end is that
v′=[e 0 e 1 ...e 31 ]=[00101110101010101010101010101010]
The original check element sequence is:
r′=[e 32 e 33 ...e 47 ]=[0000111010010101]
the original check-element polynomial R' (x) is
R′(x)=x 11 +x 10 +x 9 +x 7 +x 4 +x 2 +1
The check elements calculated on the information sequence v' are:
r″=[0000100101011100]
namely, obtaining a check element polynomial R' (x) as follows:
R″(x)=x 11 +x 8 +x 6 +x 4 +x 3 +x 2
thus, the difference between the obtained syndrome polynomial R "(x) and the original syndrome polynomial R' (x) in GF (2) domain is:
ΔR(x)=R″(x)-R′(x)=x 10 +x 9 +x 8 +x 7 +x 6 +x 3 +1
after the traversal algorithm is executed, when the values of the variables are the following values:
t 1 =1,t 2 =2,t 3 =8,z 1 =z 2 =z 3 =0,N=32,M=16,Q=5
the following formula may be established:
finally obtain z 1 =z 2 =z 3 After=0, then for the first decoded sequence e, the error bit position is: e, e 0 、e 5 、e 35 Thus, the error bits of the first decoding sequence e are inverted, so that the data sequence g can be obtained:
g=[10101010101010101010101010101010000111101001010100]
the information sequence obtained after the error correction decoding is completed is the original sequence v of the transmitting end, as follows:
v=[g 0 g 1 …g N-1 ]=[10101010101010101010101010101010]
it can be seen that, by the checksum error correction method of the sending end and the receiving end, the receiving end can directly obtain the correct original data sent by the sending end, and only one communication is needed, and the sending end is not required to be notified to retransmit.
Example IV
In still another aspect, referring to fig. 7, the present invention provides an apparatus for error correction coding based on CRC, including:
the encoding device may implement the method of the first embodiment, and the communication data to be transmitted is encoded using CRC and parity, and is transmitted to the device for error correction decoding based on CRC for communication, and the specific implementation of the device for error correction decoding based on CRC may refer to the fifth embodiment.
Preferably, the CRC-based error correction coding apparatus includes: the CRC coding module, the code grouping module, the parity check coding module and the code merging module.
Specifically, the CRC encoding module performs CRC encoding on the original information sequence and converts the original information sequence into a first encoding sequence.
The coding grouping module groups the first coding sequence to obtain one to a plurality of first groups with the length of Q, when the length of the last first group is smaller than Q, zero padding is carried out at the end so that the length of the last first group is equal to Q, wherein Q is a positive integer;
the parity check coding module performs parity check coding on each first packet and converts each first packet into a second packet, and the length of the second packet is 1 bit parity check bit more than that of the first packet;
the code combining module combines the plurality of second packets and converts the second packets into a second code sequence, and the second code sequence is the code sequence finally fed into the communication channel.
For the specific flow of the method related to the above modules, please refer to the foregoing method embodiment, and the description thereof is omitted herein.
Example five
In still another aspect, referring to fig. 8, the present invention provides an apparatus for decoding an error correction based on a CRC, which can implement the decoding method of the second embodiment, and finally obtain accurate communication data.
Preferably, the CRC-based error correction decoding apparatus includes: the device comprises a check pattern generation module, a decoding grouping module, a parity check decoding module, a decoding merging module, a CRC check decoding module, an error correction module and an extraction module.
Specifically, the check pattern generation module generates a check pattern in advance,
the decoding grouping module groups the original bit sequence acquired by the receiving end, wherein the original bit sequence is the observation sequence of the second coding sequence in the fourth embodiment. Since the second code sequence is encoded by parity check and contains one or more second packets, the decoding packet module also divides the original bit sequence into one or more third packets with the same length as the second packets at the receiving end.
And the parity check decoding module performs parity check on the third packets to obtain a check result and a corresponding decoding sequence of each third packet.
And the decoding and combining module respectively combines the check result and the decoding sequence obtained after the third group parity check in sequence to obtain a first check result and a first decoding sequence. The first check result is used in a subsequent error correction module to calculate the group number of the erroneous packet, and the first decoding sequence is used as an input for a subsequent CRC check.
And the CRC check decoding module performs CRC check on the first decoding sequence to obtain a second check result. Judging the second checking result: if the second check result is zero, the transmission is error-free, and error correction processing is not needed, and the first decoding sequence is directly used for the subsequent operation of extracting the original information sequence. If the second check result is not zero, the transmission is wrong, and the second check result is transmitted to an error correction module for subsequent error correction processing.
The error correction module determines the sequence number of the error packet according to the first check result, determines the error bit in the error packet according to the check pattern F and the second check result, inverts the error bit to obtain a corrected second decoding sequence, and uses the second decoding sequence for the subsequent operation of extracting the original information sequence.
The extraction module performs extraction operation on the input first decoding sequence or second decoding sequence to obtain an original information sequence therein. The original information sequence is the original information sequence of the transmitting end.
For the specific flow of the receiving method related to the above modules, please refer to the foregoing receiving method embodiment, and the description thereof is omitted herein.
Example six
In still another aspect, the present invention provides an error correction terminal, including the apparatus for CRC-based error correction coding of the fourth embodiment and/or the apparatus for CRC-based error correction decoding of the fifth embodiment, where two error correction terminals can communicate with each other by the method for CRC-based error correction coding of the first embodiment and the method for CRC-based error correction decoding of the second embodiment, so as to implement error control.
The foregoing is merely illustrative of the present invention, and the present invention is not limited thereto, and any person skilled in the art will readily recognize that variations or substitutions are within the scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims (9)

1. A method of CRC-based error correction coding, the method comprising the steps of:
s101: performing CRC coding on an original information sequence with the length of N to obtain a first coding sequence with the length of N+M, wherein M is the length of a check element sequence;
s102: grouping the first coding sequences to obtain one or more first groups with equal length;
s103: performing parity check coding on each first packet to obtain a second packet;
s104: sequentially combining the second packets to obtain a second coding sequence, and sending the second coding sequence to a transmission channel;
wherein, step S101 further includes:
s1011: acquiring an original information sequence polynomial V (x) according to the original information sequence;
s1012: setting the length M of the check element sequence;
s1013: generating a polynomial g (x) according to the M setting, wherein the highest order of the generator polynomial g (x) is equal to M;
s1014: dividing the original information sequence polynomial V (x) and the generator polynomial g (x) to obtain a check element polynomial R (x);
s1015: performing addition calculation on the check element polynomial R (x) and the original information sequence polynomial V (x) to obtain a coding polynomial A (x);
s1016: a first coding sequence a of length n+m is obtained from the coding polynomial a (x).
2. The CRC-based error correction coding method according to claim 1, characterized in that the original information sequence polynomial V (x) is as follows:
wherein N is the length of the original information sequence, v i Is the coefficient of the ith bit in the original information sequence polynomial V (x), and corresponds to the coding value of the ith bit of the original information sequence.
3. The method for CRC-based error correction coding according to claim 2, characterized in that the method for calculating the check element polynomial R (x) is:
wherein the polynomial P (x) is the part of the original information sequence polynomial V (x) divided by the generator polynomial g (x).
4. A method of CRC-based error correction coding according to claim 3, characterized in that the method of calculation of the coding polynomial a (x) is:
wherein the encoding polynomial A (x) is a polynomial which can be divided by the generator polynomial g (x), a i Is the coefficient of the ith bit in the coding polynomial a (x).
5. The method of CRC-based error correction coding according to claim 4, characterized in that step S1016 includes: coefficient a of the polynomial A (x) to be encoded i Sequentially arranging to obtain a first coding sequence a, wherein the first coding sequence a is the original information sequence [ v ] 0 v 1 …v N-1 ]And a check element sequence [ r ] 0 r 1 …r M-1 ]As follows:
a=[v 0 v 1 …v N-1 r 0 r 1 …r M-1 ]=[a 0 a 1 …a N+M-1 ],
wherein the check element sequence [ r ] 0 r 1 …r M-1 ]The coefficients of the check element polynomial R (x) are arranged in sequence.
6. The method of CRC-based error correction coding according to claim 5, characterized in that step S102 comprises:
the length of each first packet is Q, and the number of groups H of the first packet is:
and when the last group is less than the Q bits, zero padding is carried out, wherein the number of zero padding is as follows:
c(0)=H*Q-N-M。
7. the method of CRC-based error correction coding according to claim 6, characterized in that the parity check coding generator matrix is:
where A is the identity matrix of Q.times.Q and B is the full 1-column vector of length Q.
8. An apparatus for CRC-based error correction coding, for implementing the CRC-based error correction coding method of claim 1, comprising: the CRC coding module, the code grouping module, the parity check coding module and the code merging module;
the CRC encoding module performs CRC encoding on the original information sequence, and converts the original information sequence into a first encoding sequence, and specifically comprises the following steps: acquiring an original information sequence polynomial V (x) according to the original information sequence; setting the length M of the check element sequence; generating a polynomial g (x) according to the M setting, wherein the highest order of the generator polynomial g (x) is equal to M; dividing the original information sequence polynomial V (x) and the generator polynomial g (x) to obtain a check element polynomial R (x); performing addition calculation on the check element polynomial R (x) and the original information sequence polynomial V (x) to obtain a coding polynomial A (x); obtaining a first coding sequence a with a length of N+M according to the coding polynomial A (x);
the coding grouping module groups the first coding sequence to obtain one to a plurality of first groups with the length of Q, when the length of the last first group is smaller than Q, zero padding is carried out at the end so that the length of the last first group is equal to Q, wherein Q is a positive integer;
the parity check coding module performs parity check coding on each first packet and converts each first packet into a second packet, wherein the length of the second packet is 1 bit parity check bit more than that of the first packet;
the code combining module combines the plurality of second packets and converts the second packets into a second code sequence, wherein the second code sequence is the code sequence finally fed into a communication channel.
9. A terminal comprising the apparatus of CRC-based error correction coding as claimed in claim 8.
CN202210612618.8A 2022-05-31 2022-05-31 CRC-based error correction coding method, CRC-based error correction coding device and CRC-based error correction coding terminal Active CN115037415B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210612618.8A CN115037415B (en) 2022-05-31 2022-05-31 CRC-based error correction coding method, CRC-based error correction coding device and CRC-based error correction coding terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210612618.8A CN115037415B (en) 2022-05-31 2022-05-31 CRC-based error correction coding method, CRC-based error correction coding device and CRC-based error correction coding terminal

Publications (2)

Publication Number Publication Date
CN115037415A CN115037415A (en) 2022-09-09
CN115037415B true CN115037415B (en) 2024-02-09

Family

ID=83122996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210612618.8A Active CN115037415B (en) 2022-05-31 2022-05-31 CRC-based error correction coding method, CRC-based error correction coding device and CRC-based error correction coding terminal

Country Status (1)

Country Link
CN (1) CN115037415B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116346530B (en) * 2023-05-25 2023-08-18 合肥健天电子有限公司 Method for reducing transmission frame error omission rate based on Bosch CAN2.0 protocol

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101502002A (en) * 2006-08-25 2009-08-05 松下电器产业株式会社 Wireless communication device and error detection coding method
CN103312458A (en) * 2013-06-25 2013-09-18 合肥金星机电科技发展有限公司 Hybrid coding method
CN106788456A (en) * 2016-12-14 2017-05-31 电子科技大学 One kind polarization code coding/decoding method
CN107370488A (en) * 2016-05-13 2017-11-21 中兴通讯股份有限公司 Error correction/encoding method and device
CN110535560A (en) * 2019-08-05 2019-12-03 杭州电子科技大学 A kind of polarization code combines coding and interpretation method
CN111628780A (en) * 2020-05-07 2020-09-04 中国科学院微电子研究所 Data encoding method, data decoding method and data processing system
CN113067584A (en) * 2021-03-23 2021-07-02 重庆邮电大学 Coding method for common auxiliary polarization code of CRC (Cyclic redundancy check) code and PC (personal computer) code

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005520469A (en) * 2002-07-03 2005-07-07 ヒューズ・エレクトロニクス・コーポレーション Bit labeling for amplitude phase shift constellation used by low density parity check (LDPC) codes
WO2020075240A1 (en) * 2018-10-10 2020-04-16 Nec Corporation Polar coding with distributed-crc and crc-aided successive cancellation decoding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101502002A (en) * 2006-08-25 2009-08-05 松下电器产业株式会社 Wireless communication device and error detection coding method
CN103312458A (en) * 2013-06-25 2013-09-18 合肥金星机电科技发展有限公司 Hybrid coding method
CN107370488A (en) * 2016-05-13 2017-11-21 中兴通讯股份有限公司 Error correction/encoding method and device
CN106788456A (en) * 2016-12-14 2017-05-31 电子科技大学 One kind polarization code coding/decoding method
CN110535560A (en) * 2019-08-05 2019-12-03 杭州电子科技大学 A kind of polarization code combines coding and interpretation method
CN111628780A (en) * 2020-05-07 2020-09-04 中国科学院微电子研究所 Data encoding method, data decoding method and data processing system
CN113067584A (en) * 2021-03-23 2021-07-02 重庆邮电大学 Coding method for common auxiliary polarization code of CRC (Cyclic redundancy check) code and PC (personal computer) code

Also Published As

Publication number Publication date
CN115037415A (en) 2022-09-09

Similar Documents

Publication Publication Date Title
US11201695B2 (en) Forward error correction with compression coding
US7237183B2 (en) Parallel decoding of a BCH encoded signal
US7246294B2 (en) Method for iterative hard-decision forward error correction decoding
JP4366463B2 (en) Encoding apparatus and encoding method
JP4503613B2 (en) Error correction method and apparatus
KR20060052488A (en) Concatenated iterative and algebraic coding
US8136020B2 (en) Forward error correction CODEC
US7231575B2 (en) Apparatus for iterative hard-decision forward error correction decoding
CN115037415B (en) CRC-based error correction coding method, CRC-based error correction coding device and CRC-based error correction coding terminal
WO2007053126A1 (en) Methods and devices for decoding and encoding data
US8631307B2 (en) Method for encoding and/or decoding multimensional and a system comprising such method
CN100589359C (en) A Reed-Solomon code coding method and device
CN115037414B (en) CRC-based error correction decoding method, device and terminal
JP3329053B2 (en) Error correction method
US9705532B2 (en) Parallel low-density parity check (LDPC) accumulation
CN103227693B (en) Supercharged code
WO2020114318A1 (en) Encoding method, decoding method and device
CN115567164A (en) Pipelined forward error correction method and apparatus for vector signaling code channel
JPH08330978A (en) Error correction system
Kim FPGA implementation of overhead reduction algorithm for interspersed redundancy bits using EEDC
Singh et al. To Investigate the Performance of CRC-Aided Polar Coding Scheme
RU2541844C1 (en) Method of decoding production code using weight ordered adjacent class of error vectors and apparatus therefor
KR20190142991A (en) Error correction encoder
Subagja et al. A Simple Experiment of Block Coding Reed Solomon (15, 5) using Matlab Simulink
JPH06104771A (en) Bit-error correction method and decoder for it

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant