A fast soft decoding method and device for RS code
By constructing the interpolation vector of the RS code and sorting it using a reliability function, and performing same-element and fast hetero-element interpolation, the problems of insufficient information utilization in hard decision and high complexity in soft decision of the RS code decoder are solved, and efficient and low-complexity decoding is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SUN YAT SEN UNIV
- Filing Date
- 2022-03-30
- Publication Date
- 2026-07-03
AI Technical Summary
Existing RS code decoding algorithms suffer from performance degradation due to the inability of hard-decision decoders to fully utilize channel information, and high complexity and inability of soft-decision decoders to adapt to channel conditions, thus limiting the application of RS codes in practical industrial fields.
Construct the interpolation vector of the symbols in the RS code, sort and filter the decoding priority through the reliability function, perform same-symbol and fast hetero-symbol interpolation, and output the decoding result.
This improves the reliability of RS code decoding and reduces its complexity, enabling efficient decoding under different channel conditions.
Smart Images

Figure CN114665891B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of channel coding technology, and in particular to a fast soft decoding method and apparatus for RS codes. Background Technology
[0002] Channel coding, as a crucial component of communication systems, adds redundancy to transmitted information to correct errors. There are numerous types of channel coding, each with its own application scenarios. Among them, Reed-Solomon (RS) codes are structurally superior non-binary algebraic codes widely used in modern digital communication and storage systems, including wireless communication, deep space satellite communication, digital video broadcasting, and optical disc burning. The widespread application of RS codes is primarily due to their maximum distance-separable (MDS) nature, possessing optimal distance characteristics at a given transmission cost, effectively correcting errors during data transmission. For an (n,k) RS code of length n and dimension k, its minimum Hamming distance can reach d = n – k + 1. The widely used Berlekamp-Massey (BM) decoding algorithm can correct these errors. One symbol is incorrect.
[0003] Given the current state of error correction coding technology, further in-depth research on RS codes remains necessary. This is mainly due to the following reasons: 1) Compared to binary codes, RS codes are better able to handle situations where errors are concentrated during data transmission, meaning they have stronger error correction capabilities when sudden, continuous errors occur, making them suitable for scenarios with sudden fluctuations in channel conditions; 2) Some mainstream modern codes (such as Turbo codes and LDPC codes) suffer from suboptimal decoding algorithms and rely on ideal assumptions, leading to error stratification in practical applications and affecting their use in high signal-to-noise ratio scenarios. RS codes, however, utilize their own algebraic structure to avoid error stratification, ensuring high-precision communication; 3) Due to the excessively long decoding delays of long codes and their iterative decoding, and the poor performance of most modern codes in the short to medium code length domain, novel short to medium codes will play a crucial role in high-reliability, low-latency wireless communication scenarios. RS codes are a good choice of master code for structurally constructing short to medium codes. In conclusion, RS codes still have enormous application potential, and designing efficient decoding algorithms for them is of great research value.
[0004] Currently, the main algorithms for decoding RS codes are as follows. The BM algorithm, as a hard-decision decoding algorithm, has low decoding complexity but can only provide a single decoded output and its performance is limited. The generalized minimum-distance (GMD) algorithm and the Chase algorithm both utilize soft information provided by the channel, improving decoding performance. GMD decoding treats unreliable symbols as deleted symbols for decoding, while Chase decoding generates multiple decoding events by modifying unreliable symbols. The Guruswami-Sudan (GS) algorithm is a list-based hard-decision decoding method. Its error correction capability exceeds half of the minimum Hamming distance for RS codes, which is a milestone. This algorithm transforms the RS code decoding problem into a curve fitting problem over a finite field, including two steps: interpolation and factorization, achieving over-limit decoding with polynomial time complexity. Subsequently, The KV (Knowledge, Value, and Transform) algorithm, a soft-decision algebraic decoding algorithm, was proposed. This algorithm utilizes the soft information provided by the channel to convert the reliability of the received symbols into an interpolated multiplicity, significantly improving decoding performance. Low-complexity Chase (LCC) decoding generates a 2^n multiplicity by determining η unreliable symbols. η The algorithm uses test vectors and unfolds the interpolation process in the form of a binary tree, maintaining good performance while ensuring low decoding complexity. Furthermore, the backward-forward LCC (BF-LCC) algorithm utilizes backward interpolation techniques, making the LCC algorithm more efficient in hardware implementation.
[0005] The existing decoding algorithms for RS codes mainly have the following problems:
[0006] 1. For all hard-decision decoders, because the decoding input information is quantized, the decoder cannot make full use of the information received from the channel, resulting in a significant loss in decoding performance.
[0007] 2. Existing soft-decision decoders all suffer from high average decoding complexity. For example, the complexity of Chase-type decoding increases exponentially with the number of unreliable symbols selected. Furthermore, most decoding algorithms cannot achieve lower decoding costs as channel conditions improve, which limits the further application of RS codes in practical industrial fields. Summary of the Invention
[0008] In view of this, embodiments of the present invention provide a fast soft decoding method and apparatus for RS codes that is highly reliable and has low complexity.
[0009] One aspect of the present invention provides a fast soft decoding method for RS codes, comprising:
[0010] Construct the interpolation vectors for the symbols in the RS code;
[0011] The interpolation vectors of each symbol are sorted according to the reliability function, and interpolation vectors with different decoding priorities are selected.
[0012] Perform common-element interpolation on the common symbols of each interpolation vector to obtain the common-element interpolation result;
[0013] Based on the same-element interpolation results and the decoding priorities of different interpolation vectors, fast hetero-element interpolation processing is performed on each interpolation vector, and the target transmission information corresponding to the decoding results is output.
[0014] Optionally, constructing the interpolation vector for the symbols in the RS code includes:
[0015] For RS codewords transmitted during information transmission on a memoryless channel, the receiving end obtains the receiving vector and reliability matrix based on the channel information; wherein, each RS code has multiple code elements, and each code element has multiple possible symbol values; the dimension of the reliability matrix is equal to the product of the number of code elements and the number of symbol values;
[0016] Find the largest and second largest elements in a column of the reliability matrix, and determine the maximum and second largest probabilities of that column.
[0017] The measurement parameter is calculated based on the maximum probability and the second highest probability; wherein the measurement parameter is used to measure the reliability of the received symbol.
[0018] Sort all the calculated metric parameters to determine a new symbol index sequence;
[0019] Based on the symbol index sequence, obtain the set of most reliable symbols;
[0020] Determine the complement of the set of most reliable symbols, and obtain the set of least reliable symbols from the complement;
[0021] Construct an interpolation vector based on the set of most reliable symbols and the set of least reliable symbols.
[0022] Optionally, the step of sorting the interpolation vectors of each symbol according to the reliability function and filtering the interpolation vectors with different decoding priorities includes:
[0023] Define a reliability function based on the interpolation vector;
[0024] The reliability value of each interpolation vector is determined by the reliability function, and the interpolation vectors are sorted according to the reliability value to obtain a new set of interpolation vector indices; wherein, the decoding order of each interpolation vector in the interpolation vector index is determined according to the sorting result, and the first interpolation vector to be decoded is determined as the hard decision receive codeword.
[0025] Optionally, the step of performing common-element interpolation on the common symbols of each interpolation vector to obtain the common-element interpolation result includes:
[0026] Each interpolation vector is subjected to a recoding transformation to obtain a recoded interpolation vector;
[0027] The polynomial set is initialized based on the recoded interpolation vector; new interpolation points can be formed based on the polynomial set.
[0028] Interpolation transformation is performed based on the new interpolation point to obtain the same-variable interpolation result.
[0029] Optionally, the step of performing fast heterogeneous interpolation processing on each interpolation vector based on the same-column interpolation result and the decoding priority of different interpolation vectors, and outputting the target transmission information corresponding to the decoding result, includes:
[0030] The set of polynomials in the interpolation process is expanded into a binary tree, where each path in the binary tree corresponds to a different set of polynomials; each level of the binary tree corresponds to one interpolation point processing.
[0031] Based on the sorting results of the interpolation vectors, the search path order of the binary tree is determined, and a depth-first search is performed starting from the most reliable path.
[0032] Based on the interpolation operation performed on each complete path, a set of polynomials is obtained, and it is determined whether the obtained set of polynomials satisfies the preset conditions. If it does, the decoding ends; otherwise, the interpolation continues on the next path until the decoding ends.
[0033] Optionally, the step of performing fast heterogeneous interpolation processing on each interpolation vector based on the same-column interpolation result and the decoding priority of different interpolation vectors, and outputting the target transmission information corresponding to the decoding result, further includes:
[0034] Select candidate polynomials from the set of polynomials;
[0035] The candidate polynomial is decomposed to obtain the information polynomial;
[0036] The original information polynomial is obtained by performing the inverse operation on the information polynomial.
[0037] Another aspect of the present invention provides a fast soft decoding apparatus for RS codes, comprising:
[0038] The first module is used to construct the interpolation vector of the symbols in the RS code;
[0039] The second module is used to sort the interpolation vectors of each symbol according to the reliability function and filter the interpolation vectors with different decoding priorities.
[0040] The third module is used to perform homologous interpolation on the common symbols of each interpolation vector to obtain homologous interpolation results.
[0041] The fourth module is used to perform fast heterogeneous interpolation processing on each interpolation vector according to the same-column interpolation result and the decoding priority of different interpolation vectors, and output the target transmission information corresponding to the decoding result.
[0042] Another aspect of the present invention provides an electronic device, including a processor and a memory;
[0043] The memory is used to store programs;
[0044] The processor executes the program to implement the method described above.
[0045] Another aspect of the present invention provides a computer-readable storage medium storing a program.
[0046] The program is executed by the processor to implement the method described above.
[0047] Another aspect of this invention provides a computer program product, including a computer program that, when executed by a processor, implements the method described above.
[0048] In embodiments of the present invention, interpolation vectors for symbols in RS codes are constructed; the interpolation vectors of each symbol are sorted according to a reliability function, and interpolation vectors with different decoding priorities are selected; common symbols of each interpolation vector are subjected to same-element interpolation processing to obtain same-element interpolation results; based on the same-element interpolation results and the decoding priorities of different interpolation vectors, fast hetero-element interpolation processing is performed on each interpolation vector, and the target transmission information corresponding to the decoding results is output, thereby improving reliability and reducing complexity. Attached Figure Description
[0049] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0050] Figure 1 A flowchart illustrating the overall steps of an embodiment of the present invention;
[0051] Figure 2 A schematic diagram of a binary tree for the heterogeneous interpolation process provided in an embodiment of the present invention;
[0052] Figure 3 Another schematic diagram of a binary tree for the heterogeneous interpolation process provided in an embodiment of the present invention;
[0053] Figure 4 A schematic diagram illustrating the decoding performance of the fast soft decoding algorithm for the (15,11) RS code provided in this embodiment of the invention;
[0054] Figure 5 A schematic diagram illustrating the decoding performance of the fast soft decoding algorithm for the (31,27) RS code provided in this embodiment of the invention;
[0055] Figure 6 A schematic diagram comparing the average complexity of the fast soft decoding algorithm for (15,11) RS codes provided in this embodiment of the invention with that of the LCC algorithm;
[0056] Figure 7 A schematic diagram comparing the average complexity of the fast soft decoding algorithm for (31,27) RS codes provided in this embodiment of the invention with that of the LCC algorithm;
[0057] Figure 8 This diagram illustrates a comparison of the average complexity of the fast soft decoding algorithm for the (15,11) RS code provided in this embodiment of the invention with other algorithms. Detailed Implementation
[0058] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0059] To address the problems existing in the prior art, one aspect of the present invention provides a fast soft decoding method for RS codes, comprising:
[0060] Construct the interpolation vectors for the symbols in the RS code;
[0061] The interpolation vectors of each symbol are sorted according to the reliability function, and interpolation vectors with different decoding priorities are selected.
[0062] Perform common-element interpolation on the common symbols of each interpolation vector to obtain the common-element interpolation result;
[0063] Based on the same-element interpolation results and the decoding priorities of different interpolation vectors, fast hetero-element interpolation processing is performed on each interpolation vector, and the target transmission information corresponding to the decoding results is output.
[0064] Optionally, constructing the interpolation vector for the symbols in the RS code includes:
[0065] For RS codewords transmitted during information transmission on a memoryless channel, the receiving end obtains the receiving vector and reliability matrix based on the channel information; wherein, each RS code has multiple code elements, and each code element has multiple possible symbol values; the dimension of the reliability matrix is equal to the product of the number of code elements and the number of symbol values;
[0066] Find the largest and second largest elements in a column of the reliability matrix, and determine the maximum and second largest probabilities of that column.
[0067] The measurement parameter is calculated based on the maximum probability and the second highest probability; wherein the measurement parameter is used to measure the reliability of the received symbol.
[0068] Sort all the calculated metric parameters to determine a new symbol index sequence;
[0069] Based on the symbol index sequence, obtain the set of most reliable symbols;
[0070] Determine the complement of the set of most reliable symbols, and obtain the set of least reliable symbols from the complement;
[0071] Construct an interpolation vector based on the set of most reliable symbols and the set of least reliable symbols.
[0072] Optionally, the step of sorting the interpolation vectors of each symbol according to the reliability function and filtering the interpolation vectors with different decoding priorities includes:
[0073] Define a reliability function based on the interpolation vector;
[0074] The reliability value of each interpolation vector is determined by the reliability function, and the interpolation vectors are sorted according to the reliability value to obtain a new set of interpolation vector indices; wherein, the decoding order of each interpolation vector in the interpolation vector index is determined according to the sorting result, and the first interpolation vector to be decoded is determined as the hard decision receive codeword.
[0075] Optionally, the step of performing common-element interpolation on the common symbols of each interpolation vector to obtain the common-element interpolation result includes:
[0076] Each interpolation vector is subjected to a recoding transformation to obtain a recoded interpolation vector;
[0077] The polynomial set is initialized based on the recoded interpolation vector; new interpolation points can be formed based on the polynomial set.
[0078] Interpolation transformation is performed based on the new interpolation point to obtain the same-variable interpolation result.
[0079] Optionally, the step of performing fast heterogeneous interpolation processing on each interpolation vector based on the same-column interpolation result and the decoding priority of different interpolation vectors, and outputting the target transmission information corresponding to the decoding result, includes:
[0080] The set of polynomials in the interpolation process is expanded into a binary tree, where each path in the binary tree corresponds to a different set of polynomials; each level of the binary tree corresponds to one interpolation point processing.
[0081] Based on the sorting results of the interpolation vectors, the search path order of the binary tree is determined, and a depth-first search is performed starting from the most reliable path.
[0082] Based on the interpolation operation performed on each complete path, a set of polynomials is obtained, and it is determined whether the obtained set of polynomials satisfies the preset conditions. If it does, the decoding ends; otherwise, the interpolation continues on the next path until the decoding ends.
[0083] Optionally, the step of performing fast heterogeneous interpolation processing on each interpolation vector based on the same-column interpolation result and the decoding priority of different interpolation vectors, and outputting the target transmission information corresponding to the decoding result, further includes:
[0084] Select candidate polynomials from the set of polynomials;
[0085] The candidate polynomial is decomposed to obtain the information polynomial;
[0086] The original information polynomial is obtained by performing the inverse operation on the information polynomial.
[0087] Another aspect of the present invention provides a fast soft decoding apparatus for RS codes, comprising:
[0088] The first module is used to construct the interpolation vector of the symbols in the RS code;
[0089] The second module is used to sort the interpolation vectors of each symbol according to the reliability function and filter the interpolation vectors with different decoding priorities.
[0090] The third module is used to perform homologous interpolation on the common symbols of each interpolation vector to obtain homologous interpolation results.
[0091] The fourth module is used to perform fast heterogeneous interpolation processing on each interpolation vector according to the same-column interpolation result and the decoding priority of different interpolation vectors, and output the target transmission information corresponding to the decoding result.
[0092] Another aspect of the present invention provides an electronic device, including a processor and a memory;
[0093] The memory is used to store programs;
[0094] The processor executes the program to implement the method described above.
[0095] Another aspect of the present invention provides a computer-readable storage medium storing a program.
[0096] The program is executed by the processor to implement the method described above.
[0097] Another aspect of this invention provides a computer program product, including a computer program that, when executed by a processor, implements the method described above.
[0098] The specific implementation principle of the present invention will be described in detail below with reference to the accompanying drawings:
[0099] like Figure 1 As shown, the decoding process of the fast soft decoding algorithm for RS codes of the present invention can be divided into the construction of interpolation vectors, the sorting of interpolation vectors, same-cell interpolation, and fast hetero-cell interpolation. Among them, same-cell interpolation is supplemented by recoding transformation, and fast hetero-cell interpolation realizes the decomposition of the interpolation result of each interpolation vector and the verification decision of the corresponding output.
[0100] First, let's introduce the encoding of RS code.
[0101] Given a k-dimensional information vector Using the elements of its vector as the coefficients of the polynomial, the corresponding information polynomial can be expressed as:
[0102]
[0103] make Representing a finite field The non-zero element in RS codeword. It can be generated through assignment encoding, that is, by arranging in a certain order... Substituting the zero elements of the Chinese and African languages into the information polynomial u(x) sequentially yields the corresponding code elements, thus forming the codeword:
[0104]
[0105] The complete implementation steps of the embodiments of the present invention are described in detail below:
[0106] Step 1: Construction of interpolation vector
[0107] Assuming information transmission occurs over a memoryless channel, for the transmitted RS codeword The receiver can obtain the reception vector based on the channel information. and reliability matrix Π, where Represents the set of real numbers. An RS code has n code elements, and each code element has q possible symbol values. Therefore, the dimension of the reliability matrix Π is q×n, specifically expressed as...
[0108]
[0109] The elements
[0110] And j = 0, 1, 2, ..., n-1.
[0111] use and Let C represent the largest and second largest elements in the j-th column of the reliability matrix Π, i.e., the maximum and second largest probabilities in the j-th column. Then, from the receiver's perspective, C... j Most likely
[0112]
[0113] as well as
[0114]
[0115] Right now The largest in the j-th column of the corresponding matrix Π Corresponding to the second largest Corresponding to C j The reliability of the received symbols can be determined by γ. j measure:
[0116]
[0117] For all γ j Sorting them yields a new symbol index sequence j0,j1,…,j k-1 ,…,j n-1 ,satisfy Define a set
[0118]
[0119] Its elements are all the symbol indices of an RS code. Taking the indices of the k most reliable symbols, we can define a set.
[0120] Θ={j0,j1,…,j l-1}
[0121] Clearly, set Θ has k elements, and |Θ| = k. The complement of Θ is defined as... These are the indices of the remaining nk relatively unreliable symbolic units. From set Θ c Select the η least reliable symbols, and their indices form another set.
[0122] Φ={j n-η ,j n-η+1 ,…,j n-1}
[0123] Obviously, For the corresponding symbol in set Φ, we consider the two cases with the highest and second-highest reception probability, that is, we assume that the transmitted symbol C... j for or Similarly, the complement of Φ is defined as For set Φ c Regarding the corresponding symbol, due to its high reliability, we only consider the case with the highest reception probability, that is, we assume that the transmitted symbol C... j for Therefore, the interpolation vector can be constructed as
[0124]
[0125] in
[0126]
[0127] For the η least reliable symbols, both cases were considered when constructing the interpolation vector, so there are a total of 2 η There are interpolation vectors, v = 1, 2, ..., 2 η .
[0128] Step 2: Sorting the interpolation vectors
[0129] In these 2 η Among the interpolation vectors, we aim to decode the interpolation vectors most likely to correctly decode the transmitted information first, so that the decoding of the codeword can be completed as early as possible. To measure this decoding probability of the interpolation vectors, for each interpolation vector... Define the following reliability function:
[0130]
[0131] Larger Ω v The value means the interpolation vector More reliable, for Decoding is more likely to yield the correct information. Therefore, 2η Each interpolation vector will be based on its corresponding Ω. v The values are sorted, and those with a large Ω v The interpolated vector of the value will be decoded first. Because Ω v It can be represented as
[0132]
[0133] The reliability function of all interpolation vectors has a common part. Therefore, the ranking metric for interpolation vectors can be simplified to:
[0134]
[0135] For all Ω′ v Sort the values to obtain a new set of interpolation vector indices v1, v2, ..., v 2η ,mean In fast soft decoding algorithms, the interpolation vector is first processed. Decode, and then And so on. Based on the order of the interpolation vectors, the first interpolation vector to be decoded is the hard-decision receive codeword, i.e.
[0136] Step 3: Same-variable interpolation
[0137] For an interpolation vector In other words, the result of interpolation is to obtain a least-two-variable polynomial Q(x,y) that satisfies and To avoid overly complex interpolation calculations, the interpolation multiplicity of each interpolation vector is always 1 in the fast soft decoding algorithm. For the set Φ c For all interpolation vectors, the code points corresponding to the elements are the same. Therefore, interpolation starts from the interpolation points corresponding to these identical code points, and the interpolation result can be shared by all interpolation vectors. Thus, in fast soft decoding algorithms, interpolation can be divided into same-ary interpolation and fast dissimilar interpolation. Here, dissimilar interpolation is called fast dissimilar interpolation because the algorithm can terminate decoding after deciding on the output result of a certain interpolation vector. It is important to note that for an interpolation vector... The n interpolation points are arranged in the following order: That is, based on the γ corresponding to each symbol j The values are sorted to ensure that the first n-η interpolation points are shared by all interpolation vectors.
[0138] Same-variable interpolation is accomplished with the aid of recoding transformation. The recoding polynomial is constructed from the k most reliable symbols and is defined as:
[0139]
[0140] Where ψ j (x) is the fundamental Lagrange polynomial:
[0141]
[0142] The recoded polynomial Ψ(x) means Where j∈Θ. Therefore, given a symbol, it is already based on its corresponding γ. j Interpolation vectors sorted by their values
[0143]
[0144] Since for j∈Θ we have The interpolation vector can be written as:
[0145]
[0146] Through the following recoding transformation:
[0147]
[0148] interpolation vector Can be converted to:
[0149]
[0150] For the k points with the highest reliability (x) j For any $\mathbf{j}$, where $j \in \mathbf{j}$, the interpolation can be performed using the following formula:
[0151]
[0152] After recoding and transformation, interpolation will begin by initializing the following set of polynomials:
[0153]
[0154] because By changing V(x) from It is proposed that the initial set of polynomials can be simplified to:
[0155]
[0156] After this transformation, the remaining interpolation points And j∈Θ c Convert to:
[0157]
[0158] After recoding and conversion The polynomial in the middle will further be applied to the point And j∈Θ c Perform interpolation. Since η≤nk, these 2 η There are more than or equal to k identical symbols among the interpolation vectors. Let
[0159] A c =Θ c ∩Φ c ={j k ,j k+1 ,…,j n-η-1},
[0160] This represents the set of indices of the remaining identical symbolic units. Similarly, let...
[0161] A u =Θ c ∩Φ={j n-η ,j n-η+1 ,…,j n-1},
[0162] This is the set of indices for the remaining η distinct code symbols. In same-column interpolation, Will satisfy j∈A c point Perform interpolation.
[0163] When the interpolation multiplicity m = 1, determine Whether a polynomial in a given expression passes through a point can also be determined by calculation. and Implementation. If the calculation result is 0, then the corresponding polynomial passes through this point. If the calculation result is not 0, then the polynomial needs to be updated to satisfy the interpolation property corresponding to this point, that is, this point is the zero of the updated polynomial. Therefore, for the point... Where j∈A c ,make
[0164]
[0165] and
[0166]
[0167] Update via transformation
[0168]
[0169] as well as
[0170] f′(x,y)=(xx j )·f(x,y),
[0171] The updated polynomial is then inserted through that point. This is achieved by considering j∈A.c Corresponding points By performing interpolation, the same-variable interpolation result can be obtained as follows:
[0172]
[0173] Specifically, the same-variable interpolation process in this embodiment of the invention can be described in the following three main steps: Step 1: Recoding transformation; Step 2: Initialization of the set. Step 3: Interpolation transformation.
[0174] Step 1: Recoding Transformation
[0175] The purpose is to change the interpolation vector. The expression is easy to use, and the most crucial step is...
[0176]
[0177] Will Subtract a value from each element in the vector to obtain a new interpolation vector. The transformation is now complete.
[0178] Step 2: Initialize the collection
[0179] according to A set of polynomials can be initialized.
[0180]
[0181] It has already satisfied the first k interpolation points, but to simplify subsequent operations, the term V(x) was extracted, becoming...
[0182]
[0183] Initialization is now complete. However, due to this extraction operation, subsequent interpolation points also need to be extracted from V(x) to form new interpolation points.
[0184]
[0185] Step 3: Interpolation transformation, interpolating the remaining n-η-k interpolation points.
[0186] It should be noted that the interpolation transformation in this embodiment involves taking g0(x,y) and g1(x,y), updating them respectively using the following two formulas, and then putting them back into the set. middle
[0187]
[0188] f′(x,y)=(xx j f(x,y)
[0189] After completing all the above steps, we obtain a temporary same-variable interpolation result, i.e., a set.
[0190]
[0191] Step 4: Fast heterogeneous interpolation
[0192] Fast heteroelement interpolation first processes the interpolation vector. Decode the data and insert the interpolation vector through η points. Where j∈A u If the decoding result of the interpolated vector satisfies the output decision condition, the decoding process ends. Otherwise, The interpolated vectors are decoded sequentially. For an interpolated vector... definition
[0193]
[0194] This is the first time that τ A's have been inserted. u Corresponding points The set of polynomials, where 0 ≤ τ ≤ η. When τ = 0, we have
[0195]
[0196] This is because fast heteroelement interpolation of all interpolation vectors begins with the result of homoelement interpolation. Based on the above definition and the order of the interpolation vectors, the computation order of the polynomial set is: Generally speaking, these polynomial sets are denoted as in If all 2 η If all interpolation vectors are decoded, then there are a total of η·2 η The following proposition will show that this η·2 is generated from a set of polynomials. η The set of polynomials is not unique, and fast soft decoding algorithms can use this property to reduce decoding complexity while achieving fast decoding.
[0197] Proposition 1: For two interpolation vectors and if Where j = j n-η ,j n-η+1 ,…,j n-η+τ-1 ,but
[0198] The set of polynomials without referring to the order of the interpolation vectors It is based on the set of polynomials The result is obtained by interpolating one of the following two points.
[0199]
[0200]
[0201] If all interpolation vectors are decoded, then as τ increases from 0 to η, the set of polynomials... Expanded in the form of a binary tree, such as Figure 2 As shown. Note that, as described in the section on same-variable interpolation, for a given interpolation vector, the interpolation order of the n interpolation points is determined by their corresponding γ. j The value determines that, i.e. In fast heteroelement interpolation, the order of the remaining η interpolation points is as follows: There are 2 in the τth layer τ There are 3 distinct sets of polynomials, each set consisting of 2... η-τ The common features of each interpolation vector. We call them For the roots of the tree, For a leaf of this tree, a complete path from the root to the leaf represents a specific interpolation vector. The heteroelement interpolation process.
[0202] In the LCC algorithm, the binary tree for heterogeneous interpolation grows layer by layer. That is, by interpolating all 22 elements in the (τ-1)th layer... τ-1 Interpolation is performed on a set of polynomials, and the τ-th layer has 2... τ A set of polynomials Everything will be calculated. Finally, 2 is generated. η A set of polynomials That is, 2 η The interpolation output of each interpolation vector. Therefore, in the heteroelement interpolation of the LCC algorithm, a total of 2 + 4 + ... + 2 interpolation vectors need to be calculated. η =2(2) η -1) sets of polynomials. If we disregard the commonalities among the different polynomial sets indicated in Proposition 1, then we have η·2 η The set of polynomials requires computation. Therefore, by using a binary tree growth method, η·2 less computation is needed. η -2(2 η -1)=2 η The set of (η-2)+2 polynomials. However, the biggest drawback of this interpolation method is that all nodes in the binary tree need to be computed. The interpolation result can only be decomposed after the interpolation operation of all interpolation vectors has been completed. Among the many decomposition results, only one decomposition output will be selected as the output of the entire decoder. Therefore, the decoding operation of the interpolation vectors that are not selected in other decoding results introduces unnecessary complexity.
[0203] To achieve fast decoding of interpolation vectors by fully utilizing the commonalities among the different polynomial sets indicated in Proposition 1, the fast soft decoding algorithm grows its binary tree in a depth-first manner. The fast soft decoding algorithm first generates a tree from... arrive The complete path. If you can get it from... Decoding ends when information satisfying the decision criterion is obtained from the minimal polynomial decomposition. Otherwise, the fast soft decoding algorithm will generate another path from... arrive The path, and so on. From Proposition 1, we know that for any given interpolation vector... in That is, if the interpolation vector is not the first interpolation vector decoded, then its heteroelement interpolation does not necessarily have to come from... Beginning, and can be utilized in advance. The interpolation polynomial information obtained and stored during the interpolation of each interpolation vector. The stored interpolation polynomial information is defined as follows:
[0204]
[0205] Because the set of polynomials corresponding to the leaf nodes Only corresponding interpolation vectors It does not play a role in the decoding of other interpolation vectors, so it does not need to be stored.
[0206] Without loss of generality, we now discuss any interpolation vector Fast heteroelement interpolation, where if This is the first interpolation vector to be decoded, containing no existing interpolation polynomial information. The fast heteroelement interpolation of this interpolation vector must start from the root of the binary tree, i.e. Then insert A u The corresponding point in Obtain the set of polynomials Subsequently, the existing interpolation polynomial information is updated to... if First, it is necessary to determine the current interpolation polynomial and the translated interpolation polynomial. and Similarity between them. In a binary tree, using express and The number of shared layers, i.e.
[0207]
[0208] In the translated interpolation vector In the process, it is necessary to find the interpolation vector that is most compatible with the current interpolation vector. Interpolation vectors with the most shared layers
[0209]
[0210] Note that the identified pre-translated interpolation vectors are not unique, but these pre-translated interpolation vectors provide the same assistance in decoding the current interpolation vector. Therefore, we only need to select one of them, denoted as . From Proposition 1, we know that in and yes The existing interpolation polynomial information. Therefore, in order to calculate... Initialize first
[0211]
[0212] Subsequently, polynomial sets Will be and Perform interpolation to obtain a set of polynomials. The existing interpolation polynomial information has been updated to For an interpolation vector In other words, after completing the corresponding heteroelement interpolation, a polynomial set is obtained. The smallest polynomial in the set of polynomials will be selected, that is...
[0213]
[0214] because
[0215]
[0216] V(x) is proposed at the beginning of the same-variable interpolation, therefore It needs to be reconstructed as follows:
[0217]
[0218] The polynomial satisfies in In the fast soft decoding algorithm, the interpolation multiplicity is always 1. The highest power of y is no greater than 1, which greatly simplifies the decomposition steps. Since the highest power of y is no greater than 1, only one root can be found in each round of root-finding operations, and there is only one search path for the root, significantly reducing the computational load. The root-finding operation of decomposition can be achieved through division. Let... It is decomposition The obtained information polynomial then has
[0219]
[0220] Right now
[0221]
[0222] From this, we can obtain
[0223]
[0224] Obtained from decomposition The estimate of the transmitted information can be obtained from the polynomial Ψ(x) used for recoding transformation.
[0225]
[0226] right A verification decision is required; if the decision is satisfied, decoding ends. Otherwise, the decoding will proceed based on the stored interpolation polynomial information. For the next interpolation vector Decoding is performed. The maximum likelihood judgment is used for verification. If no case satisfying the maximum likelihood judgment is found after decoding all interpolated vectors, a complete binary tree will be generated. For each interpolated vector, a candidate message is generated. Among these candidates, the one most likely to be the sent message is selected and output.
[0227] Specifically, the heteroequation interpolation process in this embodiment of the invention can be summarized as follows: Since the homoequation interpolation process always has only one set of polynomials... In heteroequation interpolation, the interpolation points must consider two possible values, so the polynomial set is then... The interpolation will be expanded in the form of a binary tree, where each path in the tree will eventually produce a different result.
[0228] like Figure 3 As shown, each level of the tree is equivalent to one interpolation point processing.
[0229] The paths (corresponding to an interpolation vector) are already sorted. We start with the most reliable path and perform a depth-first search.
[0230] Each time a complete path is interpolated, a set of polynomials is obtained. Then, the maximum likelihood criterion is used to determine whether the condition is met and whether the decoding should end.
[0231] If the condition is not met, interpolation continues to the next path to generate another one. And so on.
[0232] It's evident that the search process may involve repetitive operations. Therefore, the interpolation results for each level along each path are stored for later retrieval. This means we don't need to start interpolation from the root node every time; we can start from a certain level along the path. Proposition 1 above states that this approach is feasible. The following formula represents the stored intermediate interpolation results, expressed as a set:
[0233]
[0234] The following formula represents the maximum layer depth of the common path between the previous interpolation vector and the current interpolation vector:
[0235]
[0236] Find the path with the largest common path depth with itself, perform interpolation operation from that position, and take the set of polynomials stored at that position;
[0237]
[0238] Finally, we need to start with the polynomial set. Choose the smaller polynomial
[0239]
[0240] Then to Perform decomposition operations to retrieve the information polynomial.
[0241]
[0242] Finally, because same-variable interpolation involves recoding, we now need to perform the inverse operation to restore the original information polynomial.
[0243]
[0244] In summary, the ultimate goal of this invention is to generate a set of polynomials. It contains exactly two polynomials, g0(x,y) and g1(x,y). Generate... The process is as follows: First, initialize g0(x,y) and g1(x,y). Then, continuously update g0(x,y) and g1(x,y) through interpolation operations. The goal of this update is to ensure that g0(x,y) and g1(x,y) eventually satisfy the condition: passing through all n interpolation points. The interpolation points are processed sequentially, with n-η points processed before homologous interpolation and η points processed after heterologous interpolation.
[0245] This embodiment will also test the performance of the fast soft decoding method proposed in this invention, in conjunction with the accompanying drawings:
[0246] Figure 4 and Figure 5 The decoding performance of fast soft decoding algorithms for (15,11) RS codes and (31,27) RS codes are presented. Simulation results are obtained using BPSK modulation in an additive white Gaussian noise (AWGN) channel. The horizontal axis represents the signal-to-noise ratio (SNR), and the vertical axis represents the frame error rate (FER). Algorithms used for comparison include the BM algorithm, the GS algorithm with interpolation multiplicity m=1, the KV algorithm with output list size OLS=3, and the optimal decoding performance curve of the KV algorithm. For these two RS codes, due to the high code rate, the GS algorithm with interpolation multiplicity m=1 has reached the upper bound of the GS algorithm's decoding performance and has the same decoding performance as the BM algorithm.
[0247] Simulation results show that the decoding performance of the fast soft decoding algorithm improves as the decoding parameter η increases, precisely because a larger η brings more interpolation vectors. For example, when η increases from 1 to 4, the (15,11)RS code and the (31,27)RS code achieve decoding gains of 1.2 dB and 1 dB, respectively. For the (15,11)RS code and the (31,27)RS code, when η = 2, the decoding performance of the fast soft decoding algorithm exceeds that of the KV algorithm when OLS = 3, and even surpasses the best decoding performance of the KV algorithm. For codes with higher code rates, the KV algorithm has poor decoding capability, while the fast soft decoding algorithm performs better. When η is the same, for the same code, the fast soft decoding algorithm and the LCC algorithm generate the same interpolation vectors, and both have the same decoding performance. However, the advantage of the fast soft decoding algorithm lies in its faster decoding, which reduces the average decoding complexity.
[0248] The complexity of the fast soft decoding method proposed in this invention will be tested and analyzed below with reference to the accompanying drawings:
[0249] In this invention, decoding complexity refers to the average number of finite field operations required during the decoding process of RS codes. Figure 6 and Figure 7Simulation results of the average decoding complexity of the fast soft decoding algorithm and the LCC algorithm for (15,11) RS codes and (31,27) RS codes are presented, respectively. The horizontal axis represents SNR, and the vertical axis represents average complexity. Both figures show that the average decoding complexity of the LCC algorithm is not sensitive to channel quality, while the average decoding complexity of the fast soft decoding algorithm decreases as SNR increases. This is mainly because when SNR is high, the received information is more reliable, and the fast soft decoding algorithm can find the information corresponding to the codeword that satisfies the maximum likelihood decision with fewer interpolation vectors, thus terminating the decoding and saving the complexity used to decode the remaining interpolation vectors. For these two RS codes, the average decoding complexity of the fast soft decoding algorithm with different decoding parameters converges at SNR = 7dB, at which point most decoding events can terminate quickly. At high signal-to-noise ratios, most of the decoding by the fast soft decoding algorithm is still slower than that of the LCC algorithm with η=1. This is because at high signal-to-noise ratios, the fast soft decoding algorithm only decodes one interpolation vector, while the LCC algorithm with η=1 still needs to decode two interpolation vectors.
[0250] Figure 8 Simulation results comparing the average decoding complexity of the fast soft decoding algorithm for (15,11) RS codes with those of the GS, KV, LCC, and BF-LCC algorithms are presented. The figures show that the KV algorithm has a significantly higher complexity than the fast soft decoding algorithm. This high complexity stems from its interpolation operations, which become considerably more complex when the interpolation multiplicity is large. It can be seen that for the (15,11) RS code, the KV algorithm with OLS=3 does not perform as well as the fast soft decoding algorithm with η=4, yet its complexity is significantly higher. Therefore, for higher code rates RS codes, the fast soft decoding algorithm achieves better decoding performance with lower complexity compared to the KV algorithm, making it an excellent decoding algorithm.
[0251] In summary, this invention integrates the ideas of depth-first search and LCC decoding, defining a reliability function to measure the potential of a test vector to recover correct information. Test vectors with higher reliability are decoded before those with lower reliability. This invention enables the transmitted information vector to be searched in the early stages of soft decoding, avoiding traversing all test vectors. Furthermore, the average complexity of the algorithm decreases with optimized channel conditions. While ensuring excellent decoding performance, this algorithm has lower complexity than most interpolation-based algebraic decoding algorithms.
[0252] The present invention has the following advantages: 1. High decoding performance: On RS codes with different code lengths and code rates, the decoding performance of the present invention is improved compared with various existing hard-decision and soft-decision decoding algorithms.
[0253] 2. Low average complexity: On RS codes with different code lengths and code rates, the average complexity of this technology is lower than that of various existing soft-decision decoding algorithms, and the decoding complexity can be reduced as the channel conditions are optimized.
[0254] In some alternative embodiments, the functions / operations mentioned in the block diagrams may not occur in the order shown in the operation diagrams. For example, depending on the functions / operations involved, two consecutively shown blocks may actually be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order. Furthermore, the embodiments presented and described in the flowcharts of this invention are provided by way of example to provide a more comprehensive understanding of the technology. The disclosed methods are not limited to the operations and logic flows presented herein. Alternative embodiments are contemplated in which the order of various operations is altered and sub-operations described as part of a larger operation are executed independently.
[0255] Furthermore, although the invention has been described in the context of functional modules, it should be understood that, unless otherwise stated, one or more of the described functions and / or features may be integrated into a single physical device and / or software module, or one or more functions and / or features may be implemented in a separate physical device or software module. It is also understood that a detailed discussion of the actual implementation of each module is unnecessary for understanding the invention. Rather, given the properties, functions, and internal relationships of the various functional modules in the apparatus disclosed herein, the actual implementation of the module will be understood within the scope of conventional skill of an engineer. Therefore, those skilled in the art can implement the invention as set forth in the claims using ordinary techniques without excessive experimentation. It is also understood that the specific concepts disclosed are merely illustrative and not intended to limit the scope of the invention, which is determined by the full scope of the appended claims and their equivalents.
[0256] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, essentially, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0257] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a sequenced list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, apparatus, or device (such as a computer-based system, a processor-included system, or other system that can fetch and execute instructions from, an instruction execution system, apparatus, or device). For the purposes of this specification, "computer-readable medium" can be any means that can contain, store, communicate, propagate, or transmit programs for use by, or in conjunction with, an instruction execution system, apparatus, or device.
[0258] More specific examples of computer-readable media (a non-exhaustive list) include: electrical connections (electronic devices) having one or more wires, portable computer disk drives (magnetic devices), random access memory (RAM), read-only memory (ROM), erasable and editable read-only memory (EPROM or flash memory), fiber optic devices, and portable optical disc read-only memory (CDROM). Furthermore, computer-readable media can even be paper or other suitable media on which the program can be printed, since the program can be obtained electronically, for example, by optically scanning the paper or other medium, followed by editing, interpreting, or otherwise processing as necessary, and then stored in computer memory.
[0259] It should be understood that various parts of the present invention can be implemented in hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented in software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, it can be implemented using any one or a combination of the following techniques known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having suitable combinational logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.
[0260] In the description of this specification, references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of the invention. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.
[0261] Although embodiments of the invention have been shown and described, those skilled in the art will understand that various changes, modifications, substitutions and alterations can be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the claims and their equivalents.
[0262] The above is a detailed description of the preferred embodiments of the present invention, but the present invention is not limited to the embodiments described. Those skilled in the art can make various equivalent modifications or substitutions without departing from the spirit of the present invention, and these equivalent modifications or substitutions are all included within the scope defined by the claims of this application.
Claims
1. A fast soft decoding method for RS codes, characterized in that, include: Construct the interpolation vectors for the symbols in the RS code; The interpolation vectors of each symbol are sorted according to the reliability function, and interpolation vectors with different decoding priorities are selected. Perform common-element interpolation on the common symbols of each interpolation vector to obtain the common-element interpolation result; Based on the same-element interpolation results and the decoding priority of different interpolation vectors, fast hetero-element interpolation processing is performed on each interpolation vector, and the target transmission information corresponding to the decoding result is output. The step of performing fast heterogeneous interpolation processing on each interpolation vector based on the same-column interpolation result and the decoding priority of different interpolation vectors, and outputting the target transmission information corresponding to the decoding result, includes: The set of polynomials in the interpolation process is expanded into a binary tree, where each path in the binary tree corresponds to a different set of polynomials; each level of the binary tree corresponds to one interpolation point processing. Based on the sorting results of the interpolation vectors, the search path order of the binary tree is determined, and a depth-first search is performed starting from the most reliable path. Based on the interpolation operation performed on each complete path, a set of polynomials is obtained, and it is determined whether the obtained set of polynomials satisfies the preset conditions. If it does, the decoding ends; otherwise, the interpolation continues on the next path until the decoding ends.
2. The fast soft decoding method for RS codes according to claim 1, characterized in that, The construction of the interpolation vector for the symbols in the RS code includes: For RS codewords transmitted during information transmission on a memoryless channel, the receiving end obtains the receiving vector and reliability matrix based on the channel information; wherein, each RS code has multiple code elements, and each code element has multiple possible symbol values; the dimension of the reliability matrix is equal to the product of the number of code elements and the number of symbol values; Find the largest and second largest elements in a column of the reliability matrix, and determine the maximum and second largest probabilities of that column. The measurement parameter is calculated based on the maximum probability and the second highest probability; wherein the measurement parameter is used to measure the reliability of the received symbol. Sort all the calculated metric parameters to determine a new symbol index sequence; Based on the symbol index sequence, obtain the set of most reliable symbols; Determine the complement of the set of most reliable symbols, and obtain the set of least reliable symbols from the complement; Construct an interpolation vector based on the set of most reliable symbols and the set of least reliable symbols.
3. The fast soft decoding method for RS codes according to claim 1, characterized in that, The step of sorting the interpolation vectors of each symbol according to the reliability function and filtering the interpolation vectors with different decoding priorities includes: Define a reliability function based on the interpolation vector; The reliability value of each interpolation vector is determined by the reliability function, and the interpolation vectors are sorted according to the reliability value to obtain a new set of interpolation vector indices; wherein, the decoding order of each interpolation vector in the interpolation vector index is determined according to the sorting result, and the first interpolation vector to be decoded is determined as the hard decision receive codeword.
4. The fast soft decoding method for RS codes according to claim 1, characterized in that, The process of performing common-element interpolation on the common symbols of each interpolation vector to obtain the common-element interpolation result includes: Each interpolation vector is subjected to a recoding transformation to obtain a recoded interpolation vector; The polynomial set is initialized based on the recoded interpolation vector; new interpolation points can be formed based on the polynomial set. Interpolation transformation is performed based on the new interpolation point to obtain the same-variable interpolation result.
5. The fast soft decoding method for RS codes according to claim 1, characterized in that, The step of performing fast heterogeneous interpolation processing on each interpolation vector based on the homo-interpolation result and the decoding priority of different interpolation vectors, and outputting the target transmission information corresponding to the decoding result, further includes: Select candidate polynomials from the set of polynomials; The candidate polynomial is decomposed to obtain the information polynomial; The original information polynomial is obtained by performing the inverse operation on the information polynomial.
6. An apparatus for implementing the fast soft decoding method for RS codes as described in any one of claims 1-5, characterized in that, include: The first module is used to construct the interpolation vector of the symbols in the RS code; The second module is used to sort the interpolation vectors of each symbol according to the reliability function and filter the interpolation vectors with different decoding priorities. The third module is used to perform homologous interpolation on the common symbols of each interpolation vector to obtain homologous interpolation results. The fourth module is used to perform fast heterogeneous interpolation processing on each interpolation vector according to the same-column interpolation result and the decoding priority of different interpolation vectors, and output the target transmission information corresponding to the decoding result.
7. An electronic device, characterized in that, Including the processor and memory; The memory is used to store programs; The processor executes the program to implement the method as described in any one of claims 1 to 5.
8. A computer-readable storage medium, characterized in that, The storage medium stores a program that is executed by a processor to implement the method as described in any one of claims 1 to 5.
9. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the method described in any one of claims 1 to 5.