Preprint
Article

This version is not peer-reviewed.

Design and Performance Analysis of a Localized Maximum-Likelihood Decoder for Binary Goppa Codes over AWGN and Rayleigh Fading Channels

Submitted:

16 October 2026

Posted:

20 October 2026

You are already at the latest version

Abstract
The classical Extended Euclidean Algorithm (EEA)-based decoder for binary Goppa codes is designed to correct up to \( \lfloor w/2 \rfloor \) errors, where \( w \) is the degree of the Goppa polynomial. When the number of errors exceeds this correction capability, the EEA decoding output may contain non-binary symbols, resulting in an invalid estimate of the transmitted binary codeword. This paper proposes an EEA-based decoding framework enhanced by a localized maximum-likelihood (LML) refinement step, referred to as the EEA-LML decoder. In the proposed method, the received vector \( r\in\mathbb{F}_2^n \) is first decoded using the EEA decoder to obtain a tentative estimate \( \hat{\mathbf{c}} \). If \( \hat{\mathbf{c}} \) contains non-binary components, these positions are treated as ambiguous and resolved through a localized likelihood-based search subject to the syndrome constraint, yielding a final binary estimate \( \bar{\mathbf{c}}\in\mathbb{F}_2^n \). Monte Carlo simulations are conducted over additive white Gaussian noise (AWGN) and flat Rayleigh fading channels using BPSK modulation. The bit error rate (BER) performance of the proposed EEA-LML decoder is compared with the locator-only EEA decoder, maximum-likelihood decoding (MLD), and Patterson decoding for selected binary Goppa codes. The simulation results show that the proposed EEA-LML decoder improves the BER performance relative to the locator-only EEA decoder, while maintaining a more practical decoding structure than exhaustive MLD. The comparison with Patterson decoding further illustrates the potential benefit of the localized refinement step in improving the reliability of EEA-based decoding beyond the conventional correction radius.
Keywords: 
;  ;  ;  

1. Introduction

Goppa codes were first introduced by V.D Goppa in 1970 [1]. They are subfield subcodes of Generalized Reed-Solomon (GRS) codes and a special case of alternant codes [2,3,4]. In the same publication [1], Goppa suggested four powerful subclasses of Goppa codes according to the form of Goppa polynomial: Γ ( L , G ) − code is referred to as cyclic when G ( x ) = x f , a separable code when G ( x ) is a separable polynomial, an irreducible code when G ( x ) is an irreducible polynomial, and a cumulative Goppa code if G ( x ) = ( x − β ) f , β ∈ F q . In [3], the four classes are defined as the most important class of alternant codes. Furthermore, some irreducible Γ ( L , G ) − codes reach the Gilbert–Varshamov bound and also many binary Γ ( L , G ) − codes are placed in the table of best known codes [5]. From the original construction of Goppa codes, numerous extensions and variations of Goppa codes have been constructed with the aim of improving the error correcting capability of Goppa codes. In 2009, Bezzateev et al investigated a subclass of non-binary cumulative Goppa codes characterized by reducible polynomials of a specific form and derived improved bounds on both the minimum distance and the code dimension for this class [6]. In [7], the authors described a new type of Γ ( L , G ) − codes known as cumulative-separable Goppa codes and showed that this type of codes has some subclasses with improved estimates on the minimum distance and code dimension, along with the existence of codes within these subclasses whose parameters outperform those listed in the tables of best known codes [5]. As a continuation of the work in [6,7], Bezzateev et al proposed a special class of cumulative separable Γ ( L , G ) − codes referred to as totally decomposed cumulative Goppa (TDCG) codes [8]. They demonstrated that TDCG codes contain subclasses with improved bounds on both the minimum distance and the code dimension. Moreover, they established the existence of quasi-cyclic codes within these subclasses whose parameters are comparable to those of the best known codes. Daniel et al in [9] constructed induced-cyclic TDCG codes Γ ( L , G , f ) of length n = q 2 + q + 1 and applied them in a coded-cooperative diversity scheme.
In recent decades, Goppa codes have received extensive attention in the field of coding theory and communication systems. While Goppa codes gained prominence in post-quantum cryptography through the Classic McEliece cryptosystem [10], their fundamental algebraic structure and efficient encoding and decoding algorithms have also found important applications in wireless communication systems, including cooperative diversity networks [9], coded Orthogonal Frequency Division Multiplexing (OFDM) transmission [11], and next-generation cellular systems [12]. In [13], the authors designed an optimized Goppa coded-cooperative (GCC) diversity scheme for a single relay setting and compared its performance to that of extended BCH (EBCH) coded cooperative scheme. Both schemes had same performance for EBCH codes of larger free distance. Moreover, Daniel et al in [14] applied the induced cyclic TDCG codes in a multi-relay Coded-Cooperative (CC) framework integrating Hybrid Automatic Repeat Request (HARQ) with Coded Cooperative communication strategies.
Consequently, due to the sustained and active research in Goppa codes, there is need to revisit and improve their algebraic decoding techniques. While Patterson’s algorithm [15,16] corrects upto the full w = deg G ( x ) errors guaranteed by the minimum distance, it requires the Goppa polynomial G ( x ) to be separable. Decoding via the Extended Euclidean Algorithm (EEA) applies to any Goppa polynomial, but is limited to correcting atmost ⌊ w / 2 ⌋ erros, and beyond this radius can return error values that are not binary, so that the estimated codeword c ^ is not a valid decoded codeword. As a result, improving and extending these algebraic decoding techniques is essential to ensure that the benefits of recent developments in Goppa codes can be effectively realized in practical applications. Under the binary setting, whenever the number of errors does not exceed ⌊ w / 2 ⌋ , error patterns are modeled as bit flips, since all nonzero error components are provably equal to 1 in this regime. Consequently, the decoding process focuses solely on determining the error locations, and explicit computation of error values is deemed unnecessary. However, when the number of channel-induced errors exceeds ⌊ w / 2 ⌋ , the EEA-based decoding process may no longer yield a valid binary codeword. In this case, the tentative decoded vector may contain non-binary symbols, which are not admissible in a binary Goppa codeword. Therefore, an additional decision mechanism is required to resolve these non-binary components and obtain a valid binary estimate of the transmitted codeword.
Motivated by this limitation, this work extends the EEA-based decoding framework by introducing a refinement stage for cases in which the tentative decoding output contains non-binary components. In the proposed approach, the EEA step first produces an intermediate estimate c ^ , which may not necessarily lie in F 2 n when the error pattern exceeds the conventional correction capability. The non-binary coordinates in c ^ are then treated as ambiguous positions requiring further resolution, rather than being replaced by a fixed binary value. A localized maximum-likelihood (LML) decision rule is applied over these positions to obtain a final binary estimate c ¯ ∈ F 2 n . In this way, the proposed method provides an extension of the classical EEA decoder for binary Goppa codes [15], with the aim of improving decoding performance in cases where the standard hard-decision algebraic procedure does not directly yield a valid binary codeword. More specifically,
  • To design an Extended Euclidean Algorithm (EEA)-based decoding approach for binary Goppa codes, referred to as the EEA-LML decoder. The proposed method extends the conventional algebraic decoding algorithm by incorporating a localized maximum-likelihood (LML) decision step to refine the decoding output when non-binary intermediate values arise.
  • To examine the computational complexity of the proposed EEA-LML decoding method. This includes identifying the main operations contributing to the decoding cost and discussing how the additional LML refinement step affects the overall complexity relative to standard EEA-based decoding.
  • To compare the bit error rate (BER) performance of the proposed EEA-LML decoder with relevant decoding benchmarks for binary Goppa codes, which include the locator-only EEA decoder, maximum-likelihood decoding (MLD), and Patterson decoding. This comparison provides a broader evaluation of the proposed method relative to established algebraic decoding approaches and optimal or near optimal decoding approaches.
The remainder of this paper is organized as follows: Section 2 provides an overview of the fundamentals of Goppa codes, highlighting their definition, construction, and examples. Section 3 describes the algebraic decoding of Goppa codes. Section 4 presents the proposed decoding method, complexity analysis of the proposed method and a design example to demonstrate the method. In Section 5, experimental results and performance evaluations are presented, validating the effectiveness of the proposed decoder. Finally, a conclusion of the manuscript is presented in Section 6.

2. Preliminaries

In this section, we review the fundamental theory of Goppa codes and its properties as presented in [3,17].

2.1. Definition and Parity check Matrix of Goppa Codes

Let F q be a finite field with q elements where q = p m is a prime power with m ∈ N . We have the following definition of a Goppa code:
Definition 1. 
Let L = { β i : 0 ≤ i ≤ n − 1 } ⊆ F q , β i ≠ β j ∀ i ≠ j and G ( x ) ∈ F q [ x ] , with deg ( G ( x ) ) = w such that G ( β i ) ≠ 0 ∀ β i ∈ L . The Goppa code Γ ( L , G ) is defined as
Γ ( L , G ) : = c ∈ F p n : ∑ i = 0 n − 1 c i x − β i ≡ 0 ( mod G ( x ) )
If p = 2 , then Γ ( L , G ) − code is a binary goppa code. In this manuscript, we consider only binary Goppa codes.
The set L is known as the locator set and the length n of Γ ( L , G ) − code is n = | L | . The polynomial G ( x ) is called the Goppa polynomial. A Goppa code is characterized by its parity check matrix. From Eq. 1, if the left hand side of ∑ i = 1 n c i x − β i ≡ 0 ( mod G ( x ) ) is expanded as a power series in x mod G ( x ) and its coefficients equated to zero, w = deg ( G ) linear equations over F q are obtained. It’s these equations that define the parity check matrix H Γ ( L , G ) over F q , with entries:
h i j = β i j G ( β j ) , j = 0 , 1 , … , w − 1 ; i = 0 , 1 , … , n − 1 .
Each element h i j ∈ F q is then represented as an m − bit binary column, hence expanding H Γ ( L , G ) to a binary m w × n parity check matrix H ˜ Γ ( L , G ) . The matrix H Γ ( L , G ) is as follows:
H Γ ( L , G ) = 1 G ( β 0 ) 1 G ( β 1 ) … 1 G ( β n − 1 ) β 0 G ( β 0 ) β 1 G ( β 1 ) … β n − 1 G ( β n − 1 ) ⋮ ⋮ ⋱ ⋮ β 0 w − 1 G ( β 0 ) β 1 w − 1 G ( β 1 ) … β n − 1 w − 1 G ( β n − 1 )
Furthermore, it follows that the redundancy of the code with Goppa polynomial G ( x ) is at most w = deg ( G ) . Therefore, Γ ( L , G ) − code has dimension k ≥ n − m w and the true minimal distance d f r e e satisfy d f r e e ≥ 2 w + 1 , called the Goppa bound.

2.2. Example of a Goppa Code

Consider the Goppa polynomial G ( x ) = x 2 + β x + 1 and the set L = F 8 = { 0 , 1 , β , … , β 6 } , where β is a primitive element of F 8 and G ( β i ) ≠ 0 , ∀ i = 0 , 1 , … , 7 . The Goppa code is of length n = | L | = 8 , dimension k ≥ 8 − 2.3 = 2 and minimum distance d ≥ 2.2 + 1 = 5 . Its parity check matrix is
H Γ ( L , G ) = 1 G ( β 0 ) 1 G ( β 1 ) … 1 G ( β n − 1 ) β 0 G ( β 0 ) β 1 G ( β 1 ) … β n − 1 G ( β n − 1 ) = 1 β 6 1 β 5 β 6 β 5 β 2 β 2 0 β 6 β 1 β 2 β 2 1 β
Hence, the H Γ ( L , G ) over F 2 is
H ˜ Γ ( L , G ) = 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 .
The systematic generator matrix G = [ I k | P ] can be derived from H through gaussian elimination. For the ( 8 , 2 , 5 ) Goppa code, this yields:
G = 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1

3. Algebraic Decoding of Goppa Codes

In this section, we review the standard algebraic decoding of binary Goppa codes [15], which forms the foundation of our proposed EEA - localized maximum likelihood decoding technique as presented in section IV. The decoding of Goppa codes constitutes the solving of the key equation where the key equation is the algebraic relation that links the syndrome polynomial, the error locator polynomial and the error evaluator polynomial.
Suppose that c ∈ Γ ( L , G ) is the transmitted codeword and r is the received vector such that r = c + e , where e is the error vector. The syndrome polynomial is as follows:
S ( x ) ≜ ∑ i = 0 n − 1 r i x − β i mod G ( x ) = ∑ i = 0 n − 1 c i x − β i + ∑ i = 0 n − 1 e i x − β i mod G ( x )
Since c ∈ Γ ( L , G ) the first summation on the right hand side of Eq. 7 vanishes mod G ( x ) , reducing to,
∑ i = 0 n − 1 r i x − β i ≡ ∑ i = 0 n − 1 e i x − β i mod G ( x ) .
From Eqs. 7 and 8, it follows that, the syndrome polynomial S ( x ) is defined as the polynomial of degree less than deg ( G ( x ) ) such that
S ( x ) ≡ ∑ i = 0 n − 1 e i x − β i mod G ( x ) .
Furthermore, let J = { i ∈ N | e i ≠ 0 } ⊂ { 0 , 1 , … , n − 1 } . Then,
S ( x ) ≡ ∑ j ∈ J e j x − β j mod G ( x ) .
Therefore, Eq. 10 is the required syndrome polynomial. The next polynomial is the error locator polynomial which is a polynomial whose roots are the locations of the errors. The error locator polynomial Λ ( x ) is defined as follows;
Λ ( x ) : = ∏ j ∈ J ( x − β j ) .
Now, we define the variant of the error-evaluator polynomial Ω ( x ) as follows;
Ω ( x ) : = ∑ j ∈ J e j ∏ m ∈ J ∖ { j } ( x − β m ) .
The polynomial Ω ( x ) is called the error-evaluator polynomial. Furthermore, from Eqs. 10, 11 and 12,
S ( x ) = ∑ j ∈ J e j ∏ m ∈ J ∖ { j } ( x − β m ) ∏ j ∈ J ( x − β j ) = Ω ( x ) Λ ( x ) mod G ( x ) .
Hence from Eq.13, we have
Ω ( x ) ≡ Λ ( x ) S ( x ) mod G ( x ) .
Eqn. 14 is called the Goppa key equation. Therefore, algebraic decoding of Goppa codes reduces to solving Eq. 14. In this manuscript, Eq. 14 is solved using the Extended Euclidean Algorithm(EEA) [18,19].
It is well known that the polynomials Λ ( x ) and Ω ( x ) are relatively prime [2,3] , which guarantees the uniqueness of the solution to Eq. 14. To compute the error values, we first find the formal derivative of Λ ( x ) . Therefore,
Λ ′ ( x ) = ∑ j ∈ J ∏ m ∈ J ∖ { j } ( x − β m ) .
Hence,
Λ ′ ( β j ) = ∏ m ∈ J ∖ { j } ( β j − β m ) .
From Eq. 12,
Ω ( β j ) = e j ∏ m ∈ J ∖ { j } ( β j − β m ) .
Moreover, from Eqs. 15 and 16, we have
Ω ( β j ) = e j Λ ′ ( β j ) ,
so that,
e j = Ω ( β j ) Λ ′ ( β j )
The summary of the EEA based decoding of binary Goppa codes is presented in Algorithm Section 3.
Algorithm 1 (EEA-based decoding algorithm of Goppa codes) Input: Goppa code Γ ( L , G ) , received vector r ∈ F 2 n
Output: Estimated decoded codeword c ^
1.
Calculate the syndrome polynomial by S ( x ) = ∑ i = 0 n − 1 r i x − β i mod G ( x ) .
2.
Ω ( x ) , Λ ( x ) ← EEA ( G ( x ) , S ( x ) ) with deg Ω ( x ) < deg Λ ( x ) ≤ deg G ( x ) / 2 . (Refer to [18], Sec. 6.4 for the EEA.)
3.
J ← { j : Λ ( β j ) = 0 } .
4.
e j ← 1 if Λ ( β j ) = 0 ; otherwise e j ← 0 .
5.
return c ^ ← r − e .

4. Proposed Extended Euclidean Algorithm(EEA) - Based Decoding of Binary Goppa Codes via Localized Maximum Likelihood(LML)

In this section, we present the proposed decoding technique, provide a design example and analyze the computational complexity of the method.

4.1. Extended Euclidean Algorithm(EEA) - Based Decoding of Binary Goppa Codes via Localized Maximum Likelihood(LML)

Under bounded-distance decoding, whenever the number of errors does not exceed ⌊ w / 2 ⌋ , the error-evaluator and error-locator polynomials satisfy Ω ( x ) = Λ ′ ( x ) , so every recovered error value e j equals 1 and the decoded word c ^ is automatically binary. However, when the number of errors exceeds this bound, the EEA can still terminate with a valid pair ( Λ ( x ) , Ω ( x ) ) satisfying the key equation, but the corresponding error values e j = Ω ( β j ) / Λ ′ ( β j ) need not equal 1. In this case, c ^ contains symbols in GF ( 2 m ) ∖ { 0 , 1 } , which cannot belong to a binary codeword. The classical decoder (Algorithm Section 3) sidesteps this issue by using only the error locations and flipping the corresponding bits, discarding the error values entirely. This discards useful information and degrades performance of the code. The proposed EEA-LML decoder instead exploits these non-binary symbols rather than discarding them. Each non-binary position is treated as an unresolved bit, and both possible binary values are tested by direct syndrome verification: a substitution is retained only if it yields a valid codeword. If exactly one substitution passes this test, it is adopted as the correction. If none passes, a small, exhaustive, syndrome-verified search restricted to the handful of suspect positions, rather than an arbitrary bit assignment is induced.
Formally, let r ∈ F 2 n be the received vector and let c ^ be the estimate obtained from the EEA decoder with error values (Steps 1–5 of Algorithm Section 4.1), so that c ^ = r − e with e j = Ω ( β j ) / Λ ′ ( β j ) . Some entries of c ^ may lie in F 2 m ∖ { 0 , 1 } . We denote by c ^ t the tentative decoded vector c ^ containing t non-binary symbols in c ^ . Let
T = { j 1 < j 2 < … < j t } = { j : c ^ j ∉ F 2 } ,
be the positions of the non-binary symbols in c ^ t , so that c ^ i ∉ F 2 if and only if i ∈ T , with 1 ≤ t ≤ n . Each non-binary symbol is an m-bit vector, c ^ j ℓ = ( c ^ j ℓ , 0 , … , c ^ j ℓ , m − 1 ) ∈ F 2 m , and we define the binary reference vector
b ^ t = ( c ^ j 1 , 0 , c ^ j 2 , 0 , … , c ^ j t , 0 ) ∈ F 2 t .
Since the code is binary, every non-binary symbol must be replaced by a bit. Let c ˜ t be the vector obtained from c ^ t by replacing each c ^ j ℓ with a binary symbol c ˜ j ℓ ∈ F 2 , ℓ = 1 , … , t , that is,
c ˜ t = ( c ^ 0 , c ^ 1 , … , c ˜ j 1 , … , c ˜ j 2 , … , c ˜ j t , … , c ^ n − 1 ) ,
and denote the replaced part by
d ˜ t = ( c ˜ j 1 , c ˜ j 2 , … , c ˜ j t ) ∈ F 2 t .
There are 2 t possible choices of d ˜ t , and hence 2 t possible vectors c ˜ t . Among these, we keep only those that produce a zero syndrome vector. The set of valid candidates is therefore
D = { c ˜ t : H Γ ( L , G ) e c ˜ t T = 0 } , 0 ≤ | D | ≤ 2 t .
The final decision ( s j 1 , s j 2 , … , s j t ) is obtained according to the size of D .
1.
If | D | = 0 , then D is an empty set and we have:
( s j 1 , s j 2 , … , s j t ) = arg min d ˜ t ∈ F 2 t d H ( d ˜ t , b ^ t ) .
2.
If | D | = 1 , the decision is read directly from the unique element c ˜ t ∈ D :
( s j 1 , s j 2 , … , s j t ) = ( c ˜ j 1 , c ˜ j 2 , … , c ˜ j t ) .
3.
If 2 ≤ | D | ≤ 2 t , the candidate whose binary part is closest to the reference is chosen:
( s j 1 , s j 2 , … , s j t ) = arg min c ˜ t ∈ D d H ( d ˜ t , b ^ t ) .
The final decoded codeword is
c ¯ = ( c ^ 0 , c ^ 1 , … , s j 1 , … , s j 2 , … , s j t , … , c ^ n − 1 ) ,
that is, c ¯ equals c ^ t except that c ¯ j ℓ = s j ℓ for ℓ = 1 , … , t . The EEA-LML decoder is summarized in Algorithm Section 4.1.
Algorithm 2 (EEA-LML decoding for binary Goppa codes) Input: Goppa code Γ ( L , G ) , received vector r ∈ F 2 n , parity-check matrix H Γ ( L , G )
Output: Estimated codeword c ¯ ∈ F 2 n
1.
Calculate the syndrome polynomial: S ( x ) ← ∑ i = 0 n − 1 r i x − β i ( mod G ( x ) ) .
2.
Ω ( x ) , Λ ( x ) ← EEA ( G ( x ) , S ( x ) ) with deg Ω ( x ) < deg Λ ( x ) ≤ deg G ( x ) / 2 .
3.
J ← { j : Λ ( β j ) = 0 } .
4.
e j ← Ω ( β j ) / Λ ′ ( β j ) if j ∈ J ; otherwise e j ← 0 .
5.
c ^ t ← r − e .
6.
T = { j 1 < j 2 < … < j t } ← { j : c ^ j ∈ F 2 m ∖ { 0 , 1 } } .
7.
if T = ∅ then
(a)
return c ^ t .
8.
for ℓ = 1 totdo
(a)
c ^ j ℓ , 0 ← first bit of c ^ j ℓ .
9.
b ^ t ← ( c ^ j 1 , 0 , c ^ j 2 , 0 , … , c ^ j t , 0 ) ∈ F 2 t .
10.
Define c ˜ t where each c ^ j ℓ is replaced by binary c ˜ j ℓ ∈ F 2 .
11.
d ˜ t ← ( c ˜ j 1 , c ˜ j 2 , … , c ˜ j t ) ∈ GF ( 2 ) t .
12.
D ← { c ˜ t : H Γ ( L , G ) e c ˜ t T = 0 } .
13.
if | D | = 0 then
(a)
( s j 1 , … , s j t ) ← arg min d ˜ t ∈ F 2 t d H ( d ˜ t , b ^ t ) .
14.
else if | D | = 1 then
(a)
c ˜ t * ← the unique element in D .
(b)
Extract ( s j 1 , … , s j t ) ← the replaced part of c ˜ t * .
15.
else
(a)
c ˜ t * ← arg min c ˜ t ∈ D d H ( d ˜ t , b ^ t ) .
(b)
Extract ( s j 1 , … , s j t ) ← the replaced part of c ˜ t * .
16.
c ¯ ← ( c ^ 0 , … , s j 1 , … , s j 2 , … , s j t , … , c ^ n − 1 ) .
17.
return c ¯ .
Table 1, Table 2 and Table 3 shows different syndrome patterns for t = 1 non-binary symbol, t = 2 non-binary symbols and 3 ≤ t ≤ ⌊ d − 1 2 ⌋ non-binary symbols respectively. we shall denote a non zero syndrome vector as Σ . i.e., H c ˜ t T ≜ Σ if H c ˜ t T ≠ 0 .

4.2. Decoding Example

Consider the Goppa polynomial G ( x ) = x 2 + x + 1 ∈ F 2 3 [ x ] and the Goppa set L = F 8 = { 0 , 1 , … , β 6 } where β is a primitive element of F 8 and G ( β i ) ≠ 0 ∀ i = 0 , 1 , … , β 6 . The Goppa Γ ( L , G ) − code is of length n = 8 and k ≥ 8 − 3 · 2 = 2 . It has a parity check matrix
H Γ ( L , G ) = 1 G ( 0 ) 1 G ( 1 ) 1 G ( β ) … 1 G ( β 6 ) 0 G ( 0 ) 1 G ( 1 ) β G ( β ) … β 6 G ( β 6 ) = 1 1 β 2 β 4 β 2 β β β 4 0 1 β 3 β 6 β 5 β 5 β 6 β 3
and
H ˜ Γ ( L , G ) = 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0
Suppose c = ( 0 0 0 0 0 0 0 0 ) ∈ F 2 8 was the transmitted codeword and r = ( 0 1 0 0 0 1 0 0 ) ∈ F 2 8 the received vector.
Step 1
Decode r to obtain the estimated codeword c ^ = ( 0 0 0 β 0 0 β 2 0 ) . The set J = { j 1 , j 2 } = { 3 , 6 } and
{ c ^ 3 , c ^ 6 } = { β , β 2 } = { ( 0 1 0 ) , ( 0 0 1 ) }
Step 2
Extract binary reference vector:
b ^ = ( 0 , 0 ) ∈ F 2 2
Step 3
Generate candidate set: replace β , β 2 in c ^ with both 0 and 1 . The following 4 updated vectors are obtained;
( 0 0 0 0 0 0 0 0 ) , ( 0 0 0 0 0 0 1 0 ) , ( 0 0 0 1 0 0 0 0 ) , ( 0 0 0 1 0 0 1 0 )
Moreover, the syndromes of the above 4 vectors are shown in Table 4.
From Table 4,
D = { c ˜ t | H ˜ Γ ( L , G ) c ˜ t T = 0 } = { ( 0 0 0 0 0 0 0 0 ) }
Step 4
Select optimal correction: since | D | = 1 , ( s 3 , s 6 ) = ( 0 , 0 ) .
Step 5
Construct final codeword:
c ¯ = ( 0 0 0 0 0 0 0 0 ) .
Evidently, the final estimated codeword c ¯ = c which was the transmitted codeword. Therefore, correct decoding has occured.

4.3. Complexity Analysis of the Proposed Decoding Method

For a received vector r ∈ F 2 n , an estimated vector c ^ (see Eqn. (20)) is computed using the Extended Euclidean decoding algorithm, where t non-binary symbols are identified for further refinement. This involves: syndrome computations, requiring O ( n t ) operations, solving the key equation via EEA, O ( t 2 ) operations, and Chien search, O ( n t ) operations. Hence, at this stage, the complexity is O ( n t + t 2 ) . Constructing D requires O ( 2 t · n t ) operations. Selection via minimum distance requires 0 ( | D | · t ) operations with the worst case being O ( 2 t · t ) . Therefore, the overall computational complexity of the EEA-LML decoding algorithm is O ( n t + t 2 ) + O ( 2 t · n t ) + O ( 2 t · t ) with O ( 2 t · n t ) = O ( 2 t · n t ) . Although the worst-case complexity is O ( 2 t · n t ) , the cardinality of the candidate set D is typically very small in practice. In particular, when the restricted parity-check matrix has full rank, the solution is unique, and the complexity reduces to polynomial complexity.

5. Numerical Analysis and Simulation Results

To evaluate the effectiveness of the proposed decoding method EEA-LML, Monte Carlo simulations are conducted over the additive white Gaussian noise (AWGN) channel and flat Rayleigh fading channel, where each fading coefficient is an independent and identically distributed (i.i.d) complex Gaussian random variable following C N ( 0 , 1 ) in the flat Rayleigh fading channel. The Binary Phase Shift Keying (BPSK) modulation is employed, where the encoded binary symbols are mapped onto { + 1 , − 1 } and transmitted over the noisy channel. The proposed EEA-LML method is compared with the existing classical EEA for binary Goppa codes and the EEA with any non-binary symbol(s) in the estimated codeword c ^ substituted with bit 1. The finite fields F 8 , F 16 and F 32 are constructed using the polynomials 1 + x + x 2 , 1 + x + x 4 , and 1 + x 2 + x 5 with γ , β and α being the roots of 1 + x + x 2 , 1 + x + x 4 , and 1 + x 2 + x 5 , respectively. The specific simulated codes are listed in Table 5.

5.1. BER Performance Comparison of the Proposed Decoding Algorithm (EEA-LML) with the Classical EEA for Binary Goppa Codes

This subsection presents the bit-error-rate (BER) performance of the proposed EEA-LML decoding scheme (Algorithm Section 4.1) in comparison with the classical EEA-based decoder for binary Goppa codes (Algorithm Section 3) and with uncoded transmission, across the four codes in Table 5. As shown in Figure 1, Figure 2, Figure 3 and Figure 4, the proposed decoder consistently outperforms the classical EEA decoder, uncoded and theoretical simulations over the entire range of signal-to-noise ratios examined, confirming that the additional post-processing introduced in Algorithm Section 4.1 contributes a tangible and measurable coding gain rather.
The coding gain is attributed to how the two decoders treat the intermediate estimate produced by the Extended Euclidean Algorithm. The classical EEA decoder locates the error positions from the roots of the error-locator polynomial Λ ( x ) and corrects the received word by simply flipping the bits at these positions, implicitly assuming that every detected error is binary, i.e., each error value equals one. This assumption holds only when the number of errors is within the guaranteed correction radius ⌊ w / 2 ⌋ of the code; beyond this radius, the computed error values e j = Ω ( β j ) / Λ ′ ( β j ) are no longer restricted to { 0 , 1 } and may instead take on other values in GF ( 2 m ) . Since the classical decoder disregards this information and performs a blind bit flip regardless of the true error value, it necessarily mis-corrects the received word whenever a non-binary symbol arises, propagating rather than removing the error. The proposed EEA-LML decoder, by contrast, explicitly computes these error values and identifies the positions at which the intermediate estimate c ^ contains a non-binary symbol. Rather than discarding this information, it resolves each such position through a localized, syndrome-consistent search that returns the most likely binary completion of the codeword, thereby converting a decoding failure of the classical approach into a correct, or at least closer-to-correct, output. This distinction is precisely what separates the two curves in Figure 1, Figure 2, Figure 3 and Figure 4 at moderate-to-high SNR, where the error weight begins to exceed the EEA’s correction radius with non-negligible probability and the handling of non-binary symbols becomes decisive.

5.2. BER Performance Comparisson of the Proposed Decoding Algorithm with Maximum-Likelihood Decoding (MLD)

Inorder to establish the performance gap between the proposed low complexity proposed decoder and optimal decoding, we compare the EEA-LML against the exhaustive maximum-likelihood decoding (MLD) which is feasible here for the Goppa codes [ 8 , 2 , 5 ] and [ 16 , 8 , 5 ] . MLD correlates the received signal against all 2 k codewords and is optimal in the sense of maximizing frame error probability. It serves as a performance bound rather than a practical decoder, since its O ( 2 k n ) complexity is infeasible for codes of practical length. Both the [ 8 , 2 , 5 ] and [ 16 , 8 , 5 ] are simulated under both AWGN channel and a flat Rayleigh fading channel with coherent detection and perfect channel state information at the receiver, giving four scenarios in total.
Figure 5, Figure 6, Figure 7 and Figure 8 compare the BER performance of the proposed EEA-LML decoder with maximum-likelihood decoding (MLD) for the binary Goppa codes [ 8 , 2 , 5 ] and [ 16 , 8 , 5 ] over flat Rayleigh fading and AWGN channels. As expected, MLD provides better BER performance than the proposed EEA-LML decoder across the considered SNR range. This is because MLD performs an exhaustive search over the entire codebook and selects the codeword that maximizes the likelihood of the received vector. Therefore, it represents the optimal decoding rule in terms of error probability for the given channel observations. In contrast, the proposed EEA-LML decoder relies on an algebraic EEA-based decoding stage followed by a localized likelihood-based refinement over the ambiguous non-binary positions. Although this approach does not achieve the full optimality of MLD, it avoids the prohibitive complexity of exhaustive codeword search and still provides improved BER performance through the localized decision step. Hence, the comparison with MLD serves as a useful benchmark for assessing how closely the proposed EEA-LML decoder approaches optimal decoding performance while maintaining a more practical decoding structure.

5.3. BER Performance Comparison of the Proposed Decoder with Patterson’s Decoder

Patterson’s algorithm [16] is a classical algebraic decoder for binary Goppa codes. It is generally applicable in separable Goppa codes where it can correct up to the designed error-correction capability of the code, namely up to deg ( G ( x ) ) errors for a binary Goppa code defined by a Goppa polynomial G ( x ) . Thus, it a useful reference decoder when assessing the performance of the proposed EEA-LML decoder. The proposed EEA-LML decoder is motivated by the limitations of the locator-only EEA decoder (Algorithm Section 3), whose direct error-locator approach corrects up to approximately ⌊ deg ( G ) / 2 ⌋ errors. In the case where the EEA output c ^ contains non-binary error values, the LML step is triggered to select the most likely binary correction vector from the admissible candidates. On the other hand, the Patterson’s decoder uses the special algebraic structure of separable binary Goppa codes to achieve a larger correction radius. However, it is important to note that Patterson decoding is not used here as a universal replacement for the proposed method. This is due to the fact that its standard form requires the Goppa polynomial to be separable, equivalently gcd ( G ( x ) , G ′ ( x ) ) = 1 . Thus, it is directly applicable only to the cases where the Goppa codes are separable. Therefore, Patterson decoder provides a meaningful classical benchmark for the separable setting, while the proposed EEA-LML decoder remains relevant in the broader context where the same separability assumption may not hold.
Figure 9, Figure 10 and Figure 11 presents the BER performance of Patterson’s algorithm and the proposed EEA-LML decoder for the [ 8 , 2 , 5 ] , [ 16 , 8 , 5 ] and [ 31 , 11 , 9 ] binary Goppa codes, respectively, under BPSK modulation over a flat Rayleigh fading channel. In the three cases, Patterson’s decoder consistently outperforms EEA-LML, with a coding-gain gap of approximately 0.9 dB 1.0 dB and 1.2 dB at BER = 10 − 4 , respectively. This performance difference can be explained by the fundamental structural difference between the two decoders rather than by any deficiency in the proposed post-processing step. Patterson’s algorithm exploits the fact that, for a separable Goppa polynomial G ( x ) , the code Γ ( L , G ) is also equal to the code defined by G ( x ) 2 , which has degree 2 w . This lets Patterson’s decoder solve a modified key equation that uses the full minimum distance of the code, correcting up to w errors exactly. The classical EEA, by contrast, solves the ordinary key equation with respect to G ( x ) itself, and is therefore only guaranteed to correct up to ⌊ w / 2 ⌋ errors; beyond this radius it returns a valid-looking but incorrect ( Λ , Ω ) pair, which is precisely the mechanism that produces the non-binary intermediate symbols resolved by the proposed LML post-processing step (Section 4). EEA-LML therefore operates in a strictly harder regime than Patterson’s algorithm: it is recovering information that Patterson’s decoder never loses in the first place, using only local, syndrome-consistency arguments around the positions flagged as non-binary, rather than a globally valid algebraic correction. It is thus expected, and consistent with Figure 9 and Figure 10, that Patterson’s decoder achieves a small but consistent SNR advantage over EEA-LML at equal target BER.
However, this does not diminish the practical relevance of the proposed EEA-LML decoder. Patterson’s algorithm requires G ( x ) to be separable, i.e. gcd ( G , G ′ ) = 1 ; while this condition holds for the codes considered in this paper (Table 5), it is not guaranteed in general, particularly for Goppa polynomials chosen for other design criteria, in which case Patterson’s algorithm is not applicable at all and the classical EEA, augmented with the proposed LML post-processing, remains a viable decoder. Moreover, EEA-LML requires no modification to the key equation or the parity-check construction, and its additional cost over the classical EEA is confined to the post-processing of the non-binary positions which are typically few, making it an attractive low-complexity option when the modest SNR penalty observed here is acceptable.

6. Conclusion

This paper proposes an extended decoding framework for binary Goppa codes based on a modification of the conventional Extended Euclidean Algorithm (EEA) decoder. The proposed EEA-LML decoder enhances the standard algebraic decoding process by introducing a likelihood-motivated decision refinement step for cases in which the initial estimated decoded codeword extends beyond the conventional binary setting. Numerical simulations were carried out over AWGN and flat Rayleigh fading channels using BPSK modulation. The proposed EEA-LML decoder was evaluated against the locator-only EEA decoder, maximum-likelihood decoding (MLD), and Patterson decoding. The obtained BER results show that the proposed decoder consistently outperforms the locator-only EEA decoder. Moreover, the proposed method achieves performance close to MLD while avoiding the high computational complexity of exhaustive maximum-likelihood search. The comparison with Patterson decoding further confirms the effectiveness of the proposed likelihood-based refinement in improving the decoding performance of binary Goppa codes.

Author Contributions

Conceptualization, L.M.P. and F.Y.; methodology, L.M.P. and F.Y.; validation, L.M.P., F.Y. and D.K.W.; formal analysis, L.M.P., F.Y., D.K.W., V.A.O. and S.Y.Y.; investigation, L.M.P. and F.Y.; writing—original draft preparation, L.M.P.; writing—review and editing, L.M.P., D.K.W., V.A.O. and S.Y.Y. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by the National Natural Science Foundation of China grant number 61771241.

Data Availability Statement

All the source codes and mathematical models used in this study are available from the corresponding author upon reasonable request.

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Goppa, V.D. A new class of linear error-correcting codes. Probl. Inf. Transm. 1970, 6, 300–304. [Google Scholar]
  2. Huffman, W.C.; Pless, V. Fundamentals of Error-Correcting Codes; Cambridge University Press: Cambridge, UK, 2003. [Google Scholar] [CrossRef]
  3. MacWilliams, F.J.; Sloane, N.J.A. The Theory of Error-Correcting Codes; North-Holland: Amsterdam, The Netherlands, 1977. [Google Scholar] [CrossRef]
  4. Ling, S.; Xing, C. Coding Theory: A First Course; Cambridge University Press: Cambridge, UK, 2004. [Google Scholar] [CrossRef]
  5. Grassl, M. Bounds on the minimum distance of linear codes and quantum codes. Available online: http://www.codetables.de (accessed on 15 October 2026).
  6. Bezzateev, S.; Shekhunova, N. Subclass of non-binary cumulative Goppa codes. In Proceedings of the 9th International Conference on Finite Fields and Their Applications (Fq9), Dublin, Ireland, 13–17 July 2009. [Google Scholar]
  7. Bezzateev, S.; Shekhunova, N. Cumulative-separable codes. arXiv 2010, arXiv:1005.1524. [Google Scholar]
  8. Bezzateev, S.; Shekhunova, N. Totally decomposed cumulative Goppa codes with improved estimations. Des. Codes Cryptogr. 2019, 87, 569–587. [Google Scholar] [CrossRef]
  9. Waweru, D.K.; Yang, F.; Zhao, C.; Paul, L.M.; Xu, H. Distributed totally decomposed cumulative Goppa coded-cooperative communication with optimized selection in the relay. J. Commun. Netw. 2023, 25, 182–196. [Google Scholar] [CrossRef]
  10. Bernstein, D.J.; Lange, T.; Peters, C. Attacking and defending the McEliece cryptosystem. In Proceedings of the 2nd International Workshop on Post-Quantum Cryptography (PQCrypto 2008) Lecture Notes in Computer Science, Cincinnati, OH, USA, 17–19 October 2008; Springer: Berlin, Germany, 2008; Vol. 5299, pp. 31–46. [Google Scholar] [CrossRef]
  11. Sengupta, S.; Lande, B.K. An approach to PAPR reduction in OFDM using Goppa codes. Procedia Comput. Sci. 2020, 167, 1268–1280. [Google Scholar] [CrossRef]
  12. Gautam, A.; Thakur, P.; Singh, G. Advanced channel coding schemes for B5G/6G networks: State-of-the-art analysis, research challenges and future directions. Int. J. Commun. Syst. 2024, 37, e5855. [Google Scholar] [CrossRef]
  13. Waweru, D.K.; Yang, F.; Zhao, C.; Paul, L.M.; Xu, H. Design of optimized distributed Goppa codes and joint decoding at the destination. Telecommun. Syst. 2022, 81, 341–355. [Google Scholar] [CrossRef]
  14. Waweru, D.K.; Yang, F.; Zhao, C.; Paul, L.M. Cooperative H-ARQ employing powerful totally decomposed cumulative Goppa codes. Telecommun. Syst. 2024, 86, 103–115. [Google Scholar] [CrossRef]
  15. Berlekamp, E. Goppa codes. IEEE Trans. Inf. Theory 1973, 19, 590–592. [Google Scholar] [CrossRef]
  16. Patterson, N. The algebraic decoding of Goppa codes. IEEE Trans. Inf. Theory 1975, 21, 203–207. [Google Scholar] [CrossRef]
  17. Pellikaan, R. Algebraic curves over finite fields (Cambridge Tracts in Mathematics 97). Bull. Lond. Math. Soc. 1992, 24, 497–499. [Google Scholar] [CrossRef]
  18. Roth, R.M. Introduction to Coding Theory; Cambridge University Press: Cambridge, UK, 2006. [Google Scholar] [CrossRef]
  19. Sugiyama, Y.; Kasahara, M.; Hirasawa, S.; Namekawa, T. A method for solving key equation for decoding Goppa codes. Inf. Control 1975, 27, 87–99. [Google Scholar] [CrossRef]
Figure 1. BER performance of the proposed EEA-LML decoder for the [ 8 , 2 , 5 ] binary Goppa code over a flat Rayleigh fading channel with BPSK modulation, compared with the locator-only EEA decoder, simulated uncoded BPSK, and theoretical uncoded BPSK.
Figure 1. BER performance of the proposed EEA-LML decoder for the [ 8 , 2 , 5 ] binary Goppa code over a flat Rayleigh fading channel with BPSK modulation, compared with the locator-only EEA decoder, simulated uncoded BPSK, and theoretical uncoded BPSK.
Preprints 238738 g001
Figure 2. BER performance of the proposed EEA-LML decoder for the [ 16 , 8 , 5 ] binary Goppa code over a flat Rayleigh fading channel with BPSK modulation, compared with the locator-only EEA decoder, simulated uncoded BPSK, and theoretical uncoded BPSK.
Figure 2. BER performance of the proposed EEA-LML decoder for the [ 16 , 8 , 5 ] binary Goppa code over a flat Rayleigh fading channel with BPSK modulation, compared with the locator-only EEA decoder, simulated uncoded BPSK, and theoretical uncoded BPSK.
Preprints 238738 g002
Figure 3. BER performance of the proposed EEA-LML decoder for the [ 31 , 11 , 9 ] binary Goppa code over a flat Rayleigh fading channel with BPSK modulation, compared with the locator-only EEA decoder, simulated uncoded BPSK, and theoretical uncoded BPSK.
Figure 3. BER performance of the proposed EEA-LML decoder for the [ 31 , 11 , 9 ] binary Goppa code over a flat Rayleigh fading channel with BPSK modulation, compared with the locator-only EEA decoder, simulated uncoded BPSK, and theoretical uncoded BPSK.
Preprints 238738 g003
Figure 4. BER performance of the proposed EEA-LML decoder for the [ 32 , 12 , 9 ] binary Goppa code over a flat Rayleigh fading channel with BPSK modulation, compared with the locator-only EEA decoder, simulated uncoded BPSK, and theoretical uncoded BPSK.
Figure 4. BER performance of the proposed EEA-LML decoder for the [ 32 , 12 , 9 ] binary Goppa code over a flat Rayleigh fading channel with BPSK modulation, compared with the locator-only EEA decoder, simulated uncoded BPSK, and theoretical uncoded BPSK.
Preprints 238738 g004
Figure 5. BER performance comparison of the proposed EEA-LML decoder and maximum-likelihood decoding (MLD) for the binary Goppa code [ 8 , 2 , 5 ] over a flat Rayleigh fading channel with BPSK modulation.
Figure 5. BER performance comparison of the proposed EEA-LML decoder and maximum-likelihood decoding (MLD) for the binary Goppa code [ 8 , 2 , 5 ] over a flat Rayleigh fading channel with BPSK modulation.
Preprints 238738 g005
Figure 6. BER performance comparison of the proposed EEA-LML decoder and maximum-likelihood decoding (MLD) for the binary Goppa code [ 16 , 8 , 5 ] over a flat Rayleigh fading channel with BPSK modulation.
Figure 6. BER performance comparison of the proposed EEA-LML decoder and maximum-likelihood decoding (MLD) for the binary Goppa code [ 16 , 8 , 5 ] over a flat Rayleigh fading channel with BPSK modulation.
Preprints 238738 g006
Figure 7. BER performance comparison of the proposed EEA-LML decoder and maximum-likelihood decoding (MLD) for the binary Goppa code [ 8 , 2 , 5 ] over an AWGN channel with BPSK modulation.
Figure 7. BER performance comparison of the proposed EEA-LML decoder and maximum-likelihood decoding (MLD) for the binary Goppa code [ 8 , 2 , 5 ] over an AWGN channel with BPSK modulation.
Preprints 238738 g007
Figure 8. BER performance comparison of the proposed EEA-LML decoder and maximum-likelihood decoding (MLD) for the binary Goppa code [ 16 , 8 , 5 ] over an AWGN channel with BPSK modulation.
Figure 8. BER performance comparison of the proposed EEA-LML decoder and maximum-likelihood decoding (MLD) for the binary Goppa code [ 16 , 8 , 5 ] over an AWGN channel with BPSK modulation.
Preprints 238738 g008
Figure 9. BER performance comparison between Patterson’s algorithm and the proposed EEA-LML decoder for the [ 8 , 2 , 5 ] binary separable Goppa code over a flat Rayleigh fading channel.
Figure 9. BER performance comparison between Patterson’s algorithm and the proposed EEA-LML decoder for the [ 8 , 2 , 5 ] binary separable Goppa code over a flat Rayleigh fading channel.
Preprints 238738 g009
Figure 10. BER performance comparison between Patterson’s algorithm and the proposed EEA-LML decoder for the [ 16 , 8 , 5 ] binary separable Goppa code over a flat Rayleigh fading channel.
Figure 10. BER performance comparison between Patterson’s algorithm and the proposed EEA-LML decoder for the [ 16 , 8 , 5 ] binary separable Goppa code over a flat Rayleigh fading channel.
Preprints 238738 g010
Figure 11. BER performance comparison between Patterson’s algorithm and the proposed EEA-LML decoder for the [ 31 , 11 , 9 ] binary separable Goppa code over a flat Rayleigh fading channel.
Figure 11. BER performance comparison between Patterson’s algorithm and the proposed EEA-LML decoder for the [ 31 , 11 , 9 ] binary separable Goppa code over a flat Rayleigh fading channel.
Preprints 238738 g011
Table 1. Syndrome patterns for t = 1 symbol.
Table 1. Syndrome patterns for t = 1 symbol.
c ˜ j 1 Syndromes
0 0 Σ 0 Σ
1 0 0 Σ Σ
Table 2. Syndrome patterns for t = 2 symbols.
Table 2. Syndrome patterns for t = 2 symbols.
c ˜ j 1 c ˜ j 2 Syndromes
0 0 0 Σ 0 Σ 0 Σ 0 … 0 Σ
1 0 0 0 Σ Σ 0 0 Σ … Σ Σ
0 1 0 0 0 0 Σ Σ Σ … Σ Σ
1 1 0 0 0 0 0 0 0 … Σ Σ
Table 3. Syndrome patterns for 3 ≤ t ≤ ⌊ d − 1 2 ⌋ symbols.
Table 3. Syndrome patterns for 3 ≤ t ≤ ⌊ d − 1 2 ⌋ symbols.
c ˜ j 1 c ˜ j 2 c ˜ j 3 … c ˜ j t Syndromes
0 0 0 … 0 0 Σ 0 0 0 … 0 0 0 Σ
1 0 0 … 0 0 0 Σ Σ 0 … 0 0 Σ Σ
0 1 0 … 0 0 0 0 Σ Σ … 0 Σ Σ Σ
0 0 1 … 0 0 0 0 0 Σ … Σ Σ Σ Σ
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ … ⋮ ⋮ ⋮ ⋮
1 1 1 … 1 0 0 0 0 0 … Σ Σ Σ Σ
Table 4. Syndrome vectors when c ˜ j 1 = β and c ˜ j 2 = β 2 .
Table 4. Syndrome vectors when c ˜ j 1 = β and c ˜ j 2 = β 2 .
β β 2 Syndromes
0 0 0
1 0 Σ
0 1 Σ
1 1 Σ
Table 5. Simulation parameters of the proposed EEA-LML decoder.
Table 5. Simulation parameters of the proposed EEA-LML decoder.
Rate Goppa Code Field G ( x ) L
0.2500 [ 8 , 2 , 5 ] F 8 x 2 + x + γ 3 F 8
0.5000 [ 16 , 8 , 5 ] F 16 x 2 + x + β 3 F 16
0.3548 [ 31 , 11 , 9 ] F 32 x 4 + x + 1 F 32 ∖ { 0 }
0.3750 [ 32 , 12 , 9 ] F 32 x 4 + x + 1 F 32
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.
Copyright: This open access article is published under a Creative Commons CC BY 4.0 license, which permit the free download, distribution, and reuse, provided that the author and preprint are cited in any reuse.