Reed-Solomon (RS) codes are currently used in a wide variety of applications, ranging from data storage systems, mobile communications, to satellite communications. The third-generation (3G) wireless standard utilizes RS codes as outer codes. For CDMA2000 high-rate broadcast packet data air interface [1], they are expected to be adopted as outer codes in concatenated coding schemes for future fourth-generation (4G) wireless systems.

Algorithms for hard decision decoding of RS codes are typically classified into two well-known types, namely, syndrome-based decoding and interpolation-based decoding. Well-developed algorithms in the first category include the Peterson-Gorenstein-Zierler algorithm [2], Berlekamp-Massey algorithm [2, 3], Euclidean algorithm [2, 3], frequency domain algorithm [2, 3], and step-by-step algorithm [4–7]. Algorithms in the second category include the Welch-Berlekamp algorithms [8, 9] and list decoding algorithms [10–12], as Koetter-Vardy algorithm [13] is also a list decoding algorithm but with soft decision approaching.

Sudan's algorithm [10] decodes GRS codes in two steps involved, namely, interpolation and factorization. An interpolation is performed on a received word , producing a nonzero bivariate polynomial with at least points , such that and . Factorization is then performed on , yielding linear factors (or called -root polynomials) . The codewords are then generated from these distinct factors via an evaluation mapping. A decoded codeword is chosen if the Hamming distance between and is or less.

Because solving these interpolation equations of Sudan's algorithm with a naïve Gaussian elimination requires the time complexity , an EKE algorithm has been presented to decrease this complexity [12]. The EKE algorithm employs generalized Berlekamp-Massy algorithm (or the Feng-Tzeng algorithm in [14]) that obtains the shortest recurrence that generates a given sequence, and the time complexity of EKE to solve these interpolation equations is . represents a design parameter, typically a small constant, which is an upper bound on the size of the list of decoded codewords.

Guruswami and Sudan (GS) presented an improvement on Sudan's algorithm [11], by introducing a multiplicity at each interpolation point. A nonzero polynomial exists that interpolates the points , with multiplicity , and is formed by , where , and the expression of denotes the number of ways to choose from . In comparison with Sudan's work, the GS algorithm provides more linear homogeneous equations in interpolation, thus improving the decoding correction distance. Increasing improves the decoding performance but also increases the required complexity. The asymptotical decoding correction fraction is given by , and the code rate is given by . The increase in decoding capability is substantial, especially for low-rate GRS codes.

Koetter and Vardy [13] extended the GS algorithm by incorporating the soft information received from a channel into the interpolation process. With a complexity that is a polynomial of the code length, the Koetter-Vardy (KV) algorithm can achieve a substantial coding gain over the GS algorithm. For instance, at a frame-error-rate (FER) of , the KV algorithm can achieve a coding gain of about 1 dB over the GS algorithm, for a (255, 144) GRS code transmitted over an additive white Gaussian noise (AWGN) channel using 256-QAM modulation [13].

However, those approaches have a drawback, that is codeword checking is absent during decoding. In other words, regardless of whether the received sequence is correct or not, the decoding algorithm proceeds to decode it. This work overcomes this drawback by presenting a modified EKE algorithm with codeword checking. Additionally, a matrix operation is also proposed to obtain the transmission information from the received codeword. As in syndrome-based decoding, if the syndrome vector is all-zero, then the decoding process is terminated and the received sequence is output as a decoded codeword. The rest of this paper is organized as follows. Section 2 introduces the EKE algorithm. Section 3 then presents the modified EKE algorithm with the proposed codeword checking method and the matrix operation to obtain the transmission information from the received codeword. Finally, simulations and conclusions are presented in Section 4.