#LyX 2.1 created this file. For more info see http://www.lyx.org/ \lyxformat 474 \begin_document \begin_header \textclass paper \use_default_options true \maintain_unincluded_children false \language english \language_package default \inputencoding auto \fontencoding global \font_roman default \font_sans default \font_typewriter default \font_math auto \font_default_family default \use_non_tex_fonts false \font_sc false \font_osf false \font_sf_scale 100 \font_tt_scale 100 \graphics default \default_output_format default \output_sync 0 \bibtex_command default \index_command default \paperfontsize default \spacing single \use_hyperref false \papersize default \use_geometry true \use_package amsmath 1 \use_package amssymb 1 \use_package cancel 1 \use_package esint 1 \use_package mathdots 1 \use_package mathtools 1 \use_package mhchem 1 \use_package stackrel 1 \use_package stmaryrd 1 \use_package undertilde 1 \cite_engine basic \cite_engine_type default \biblio_style plain \use_bibtopic false \use_indices false \paperorientation portrait \suppress_date false \justification true \use_refstyle 1 \index Index \shortcut idx \color #008000 \end_index \leftmargin 1in \topmargin 1in \rightmargin 1in \bottommargin 1in \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \paragraph_indentation default \quotes_language english \papercolumns 1 \papersides 1 \paperpagestyle default \tracking_changes false \output_changes false \html_math_output 0 \html_css_as_file 0 \html_be_strict false \end_header \begin_body \begin_layout Title A stochastic successive erasures soft-decision decoder for the JT65 (63,12) Reed-Solomon code \end_layout \begin_layout Author Steven J. Franke, K9AN and Joseph H. Taylor, K1JT \end_layout \begin_layout Abstract The JT65 mode has revolutionized amateur-radio weak-signal communication by enabling amateur radio operators with small antennas and relatively low-power transmitters to communicate over propagation paths that could not be utilized using traditional technologies. One reason for the success and popularity of the JT65 mode is its use of strong error-correction coding. The JT65 code is a short block-length, low-rate, Reed-Solomon code based on a 64-symbol alphabet. Since 200?, decoders for the JT65 code have used the \begin_inset Quotes eld \end_inset Koetter-Vardy \begin_inset Quotes erd \end_inset (KV) algebraic soft-decision decoder. The KV decoder is implemented in a closed-source program that is licensed to K1JT for use in amateur applications. This note describes a new open-source alternative to the KV decoder called the SFRSD decoder. The SFRSD decoding algorithm is shown to perform at least as well as the KV decoder. The SFRSD algorithm is conceptually simple and is built around the well-known Berlekamp-Massey errors-and-erasures decoder. \end_layout \begin_layout Section Introduction \end_layout \begin_layout Standard JT65 message frames consist of a short, compressed, message that is encoded for transmission using a Reed-Solomon code. Reed-Solomon codes are block codes and, like all block codes, are characterized by the length of their codewords, \begin_inset Formula $n$ \end_inset , the number of message symbols conveyed by the codeword, \begin_inset Formula $k$ \end_inset , and the number of possible values for each symbol in the codewords. The codeword length and the number of message symbols are specified as a tuple in the form \begin_inset Formula $(n,k)$ \end_inset . JT65 uses a (63,12) Reed-Solomon code with 64 possible values for each symbol, so each symbol represents \begin_inset Formula $\log_{2}64=6$ \end_inset message bits. The source-encoded messages conveyed by a 63-symbol JT65 frame consist of 72 bits. The JT65 code is systematic, which means that the 12 message symbols are embedded in the codeword without modification and another 51 parity symbols derived from the message symbols are added to form the codeword consisting of 63 total symbols. \end_layout \begin_layout Standard The concept of Hamming distance is used as a measure of \begin_inset Quotes eld \end_inset distance \begin_inset Quotes erd \end_inset between different codewords, or between a received word and a codeword. Hamming distance is the number of code symbols that differ in the two words that are being compared. Reed-Solomon codes have minimum Hamming distance \begin_inset Formula $d$ \end_inset , where \begin_inset Formula \begin{equation} d=n-k+1.\label{eq:minimum_distance} \end{equation} \end_inset The minimum Hamming distance of the JT65 code is \begin_inset Formula $d=52$ \end_inset , which means that any particular codeword differs from all other codewords in at least 52 positions. \end_layout \begin_layout Standard Given only a received word containing some incorrect symbols (errors), the received word can be decoded into the correct codeword using a deterministic, algebraic, algorithm provided that no more than \begin_inset Formula $t$ \end_inset symbols were received incorrectly, where \begin_inset Formula \begin{equation} t=\left\lfloor \frac{n-k}{2}\right\rfloor .\label{eq:t} \end{equation} \end_inset For the JT65 code, \begin_inset Formula $t=25$ \end_inset , which means that it is always possible to efficiently decode a received word that contains no more than 25 symbol errors. \end_layout \begin_layout Standard There are a number of well-known algebraic algorithms that can carry out the process of decoding a received codeword that contains no more than \begin_inset Formula $t$ \end_inset errors. One such algorithm is the Berlekamp-Massey (BM) decoding algorithm. \end_layout \begin_layout Standard A decoder, such as BM, must carry out two tasks: \end_layout \begin_layout Enumerate determine which symbols were received incorrectly \end_layout \begin_layout Enumerate determine the correct value of the incorrect symbols \end_layout \begin_layout Standard If it is somehow known that certain symbols are incorrect, such information can be used in the decoding algorithm to reduce the amount of work required in step 1 and to allow step 2 to correct more than \begin_inset Formula $t$ \end_inset errors. In fact, in the unlikely event that the location of each and every error is known and is provided to the BM decoder, and if no correct symbols are accidentally labeled as errors, then the BM decoder can correct up to \begin_inset Formula $d$ \end_inset errors! \end_layout \begin_layout Standard In the decoding algorithm described herein, a list of symbols that are known or suspected to be incorrect is sent to the BM decoder. Symbols in the received word that are flagged as being incorrect are called \begin_inset Quotes eld \end_inset erasures \begin_inset Quotes erd \end_inset . Symbols that are not erased and that are incorrect will be called \begin_inset Quotes eld \end_inset errors \begin_inset Quotes erd \end_inset . The BM decoder accepts erasure information in the form of a list of indices corresponding to the incorrect, or suspected incorrect, symbols in the received word. As already noted, if the erasure information is perfect, then up to 51 errors will be corrected. When the erasure information is imperfect, then some of the erased symbols will actually be correct, and some of the unerased symbols will be in error. If a total of \begin_inset Formula $n_{e}$ \end_inset symbols are erased and the remaining unerased symbols contain \begin_inset Formula $x$ \end_inset errors, then the BM algorithm can find the correct codeword as long as \begin_inset Formula \begin{equation} n_{e}+2x\le d-1\label{eq:erasures_and_errors} \end{equation} \end_inset If \begin_inset Formula $n_{e}=0$ \end_inset , then the decoder is said to be an \begin_inset Quotes eld \end_inset errors-only \begin_inset Quotes erd \end_inset decoder and it can correct up to \begin_inset Formula $t$ \end_inset errors ( \begin_inset Formula $t$ \end_inset =25 for JT65). If \begin_inset Formula $0X$ \end_inset . Correspondingly, the SFRSD algorithm works best when the probability of erasing a symbol is somewhat larger than the probability that the symbol is incorrect. Empirically, it was determined that good performance of the SFRSD algorithm is obtained when the symbol erasure probability is a factor of \begin_inset Formula $1.3$ \end_inset larger than the symbol error probability. \end_layout \begin_layout Standard The SFRSD algorithm successively tries to decode the received word using educated guesses at the symbols that should be erased. In each iteration, an independent stochastic erasure vector is generated based on the symbol erasure probabilities. The guessed erasure vector is provided to the BM decoder along with the received word. If the BM decoder finds a candidate codeword, then the codeword is assigned a quality metric, defined to be the soft distance, \begin_inset Formula $d_{s}$ \end_inset , between the received word and the codeword, where \begin_inset Formula \begin{equation} d_{s}=\sum_{i=1}^{n}(1+p_{1,i})\alpha_{i}.\label{eq:soft_distance} \end{equation} \end_inset and \begin_inset Formula $p_{1,i}$ \end_inset is the fractional power associated with the i'th received symbol and \begin_inset Formula $\alpha_{i}=0$ \end_inset if the i'th received symbol is the same as the corresponding symbol in the codeword, and \begin_inset Formula $\alpha_{i}=1$ \end_inset if the i'th symbol in the received word and the codeword are different. This soft distance can be written as two terms, the first of which is just the Hamming distance between the received word and the codeword. The second term ensures that if two candidate codewords have the same Hamming distance from the received word, a smaller distance will be assigned to the one where the different symbols occurred in lower quality symbols. \end_layout \begin_layout Standard Technically, the algorithm is a list-decoder, potentially generating a list of candidate codewords. Among the list of candidate codewords found by this stochastic search algorithm , only the one with the smallest soft-distance from the received word is kept. As with all such algorithms, a stopping criterion is necessary. SFRSD accepts a codeword unconditionally if its soft distance is smaller than an empirically determined acceptance threshold, \begin_inset Formula $d_{a}$ \end_inset . A timeout is employed to limit the execution time of the algorithm in cases where no codewords within soft distance \begin_inset Formula $d_{a}$ \end_inset of the received word are found in a reasonable number of trials. \end_layout \begin_layout Paragraph Algorithm \end_layout \begin_layout Enumerate For each symbol in the received word, define the erasure probability to be 1.3 times the a priori symbol-error probability determined by the soft-symbol information \begin_inset Formula $\{p_{1}\textrm{-rank},p_{2}/p_{1}\}$ \end_inset . \end_layout \begin_layout Enumerate Make independent decisions about whether or not to erase each symbol in the word using the symbol's erasure probability. Allow a total of up to 51 symbols to be erased. \end_layout \begin_layout Enumerate Attempt BM errors-and-erasures decoding with the set of erased symbols that was determined in step 2. If the BM decoder is successful go to step 5. \end_layout \begin_layout Enumerate If decoding is not successful, go to step 2. \end_layout \begin_layout Enumerate Calculate the soft distance, \begin_inset Formula $d_{s}$ \end_inset , between the candidate codeword and the received word. Set \begin_inset Formula $d_{s,min}=d_{s}$ \end_inset if the soft distance is the smallest one encountered so far. \end_layout \begin_layout Enumerate If \begin_inset Formula $d_{s,min}\le d_{a}$ \end_inset , go to 8. \end_layout \begin_layout Enumerate If the number of trials is less than the maximum allowed number, go to 2. Otherwise, declare decoding failure and exit. \end_layout \begin_layout Enumerate A codeword with \begin_inset Formula $d_{s}\le d_{a}$ \end_inset has been found. Declare a successful decode. Return the best codeword found so far. \end_layout \begin_layout Section Results \end_layout \begin_layout Section Summary \end_layout \begin_layout Bibliography \begin_inset CommandInset bibitem LatexCommand bibitem key "key-1" \end_inset \end_layout \end_body \end_document