#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 \float_placement H \paperfontsize 12 \spacing onehalf \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 Open Source 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 Section \begin_inset CommandInset label LatexCommand label name "sec:Introduction-and-Motivation" \end_inset Introduction and Motivation \end_layout \begin_layout Standard The JT65 protocol has revolutionized amateur-radio weak-signal communication by enabling operators with small or compromise antennas and relatively low-power transmitters to communicate over propagation paths not usable with traditional technologies. The protocol was developed in 2003 for Earth-Moon-Earth (EME, or \begin_inset Quotes eld \end_inset moonbounce \begin_inset Quotes erd \end_inset ) communication, where the scattered return signals are always weak. It was soon found that JT65 also enables worldwide communication on the HF bands with low power, modest antennas, and efficient spectral usage. \end_layout \begin_layout Standard A major reason for the success and popularity of JT65 is its use of a strong error-correction code: a short block-length, low-rate Reed-Solomon code based on a 64-symbol alphabet. Until now, nearly all programs implementing JT65 have used the patented Koetter-Vardy (KV) algebraic soft-decision decoder \begin_inset CommandInset citation LatexCommand cite key "kv2001" \end_inset , licensed to and implemented by K1JT as a closed-source executable for use only in amateur radio applications. Since 2001 the KV decoder has been considered the best available soft-decision decoder for Reed Solomon codes. We describe here a new open-source alternative called the Franke-Taylor (FT, or K9AN-K1JT) algorithm. It is conceptually simple, built around the well-known Berlekamp-Massey errors-and-erasures algorithm, and in this application it performs even better than the KV decoder. The FT algorithm is implemented in the popular program \emph on WSJT-X \emph default , widely used for amateur weak-signal communication with JT65 and other specialized digital modes. The program is freely available \begin_inset CommandInset citation LatexCommand cite key "wsjt" \end_inset and licensed under the GNU General Public License. \end_layout \begin_layout Standard The JT65 protocol specifies transmissions that normally start one second into a UTC minute and last for 46.8 seconds. Receiving software therefore has up to several seconds to decode a message before the start of the next minute, when the operator sends a reply. With today's personal computers, this relatively long time available for decoding a short message encourages experimentation with decoders of high computational complexity. As a result, on a typical fading channel the FT algorithm can extend the decoding threshold by many dB over the hard-decision Berlekamp-Massey decoder, and by a meaningful amount over the KV decoder. In addition to its excellent performance, the new algorithm has other desirable properties, not least of which is its conceptual simplicity. Decoding performance and complexity scale in a convenient way, providing steadily increasing soft-decision decoding gain as a tunable computational complexity parameter is increased over more than five orders of magnitude. Appreciable gain is available from our decoder even on very simple (and relatively slow) computers. On the other hand, because the algorithm benefits from a large number of independent decoding trials, further performance gains should be achievable through parallelization on high-performance computers. \end_layout \begin_layout Section \begin_inset CommandInset label LatexCommand label name "sec:JT65-messages-and" \end_inset JT65 messages and Reed Solomon Codes \end_layout \begin_layout Standard JT65 message frames consist of a short compressed message encoded for transmissi on with a Reed-Solomon code. Reed-Solomon codes are block codes characterized by \begin_inset Formula $n$ \end_inset , the length of their codewords, \begin_inset Formula $k$ \end_inset , the number of message symbols conveyed by the codeword, and the number of possible values for each symbol in the codewords. The codeword length and the number of message symbols are specified with the notation \begin_inset Formula $(n,k)$ \end_inset . JT65 uses a (63,12) Reed-Solomon code with 64 possible values for each symbol. Each of the 12 message symbols represents \begin_inset Formula $\log_{2}64=6$ \end_inset message bits. The source-encoded messages conveyed by a 63-symbol JT65 frame thus consist of 72 information 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 a codeword of 63 symbols. \end_layout \begin_layout Standard In coding theory 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 two words 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 symbol positions. \end_layout \begin_layout Standard Given 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 , so it is always possible to decode a received word having 25 or fewer symbol errors. Any one of several well-known algebraic algorithms, such as the widely used Berlekamp-Massey (BM) algorithm, can carry out the decoding. Two steps are necessarily involved in this process. We must (1) determine which symbols were received incorrectly, and (2) find the correct value of the incorrect symbols. If we somehow know that certain symbols are incorrect, that information can be used to reduce the work involved in step 1 and allow step 2 to correct more than \begin_inset Formula $t$ \end_inset errors. In the unlikely event that the location of every error is known and if no correct symbols are accidentally labeled as errors, the BM algorithm can correct up to \begin_inset Formula $d-1=n-k$ \end_inset errors. \end_layout \begin_layout Standard The FT algorithm creates lists of symbols suspected of being incorrect and sends them to the BM decoder. Symbols flagged in this way are called \begin_inset Quotes eld \end_inset erasures, \begin_inset Quotes erd \end_inset while other incorrect symbols will be called \begin_inset Quotes eld \end_inset errors. \begin_inset Quotes erd \end_inset With perfect erasure information up to 51 incorrect symbols can be corrected for the JT65 code. Imperfect erasure information means that some erased symbols may be correct, and some other symbols in error. If \begin_inset Formula $s$ \end_inset symbols are erased and the remaining \begin_inset Formula $n-s$ \end_inset symbols contain \begin_inset Formula $e$ \end_inset errors, the BM algorithm can find the correct codeword as long as \begin_inset Formula \begin{equation} s+2e\le d-1.\label{eq:erasures_and_errors} \end{equation} \end_inset If \begin_inset Formula $s=0$ \end_inset , the decoder is said to be an \begin_inset Quotes eld \end_inset errors-only \begin_inset Quotes erd \end_inset decoder. If \begin_inset Formula $0X$ \end_inset . Correspondingly, the FT algorithm works best when the probability of erasing a symbol is somewhat larger than the probability that the symbol is incorrect. For the JT65 code we found empirically that good decoding performance is obtained when the symbol erasure probability is about 1.3 times the symbol error probability. \end_layout \begin_layout Standard The FT algorithm tries successively to decode the received word using independen t educated guesses to select symbols for erasure. For each iteration a stochastic erasure vector is generated based on the symbol erasure probabilities. The erasure vector is sent to the BM decoder along with the full set of 63 hard-decision symbol values. When the BM decoder finds a candidate codeword it is assigned a quality metric \begin_inset Formula $d_{s}$ \end_inset , the soft distance between the received word and the codeword: \begin_inset Formula \begin{equation} d_{s}=\sum_{j=1}^{n}\alpha_{j}\,(1+p_{1,\, j}).\label{eq:soft_distance} \end{equation} \end_inset Here \begin_inset Formula $\alpha_{j}=0$ \end_inset if received symbol \begin_inset Formula $j$ \end_inset is the same as the corresponding symbol in the codeword, \begin_inset Formula $\alpha_{j}=1$ \end_inset if the received symbol and codeword symbol are different, and \begin_inset Formula $p_{1,\, j}$ \end_inset is the fractional power associated with received symbol \begin_inset Formula $j$ \end_inset . Think of the soft distance as made up of two terms: the first is the Hamming distance between the received word and the codeword, and the second ensures that if two candidate codewords have the same Hamming distance from the received word, a smaller soft distance will be assigned to the one where differences occur in symbols of lower estimated reliability. \end_layout \begin_layout Standard In practice we find that \begin_inset Formula $d_{s}$ \end_inset can reliably indentify the correct codeword if the signal-to-noise ratio for individual symbols is greater than about 4 in linear power units. We also find that significantly weaker signals can be decoded by using soft-symbol information beyond that contained in \begin_inset Formula $p_{1}$ \end_inset and \begin_inset Formula $p_{2}$ \end_inset . To this end we define an additional metric \begin_inset Formula $u$ \end_inset , the average signal-plus-noise power in all symbols according to a candidate codeword's symbol values: \end_layout \begin_layout Standard \begin_inset Formula \begin{equation} u=\frac{1}{n}\sum_{j=1}^{n}S(c_{j},\, j).\label{eq:u-metric} \end{equation} \end_inset Here the \begin_inset Formula $c_{j}$ \end_inset 's are the symbol values for the candidate codeword being tested. The correct JT65 codeword produces a value for \begin_inset Formula $u$ \end_inset equal to the average of \begin_inset Formula $n=63$ \end_inset bins containing both signal and noise power. Incorrect codewords have at most \begin_inset Formula $k-1=11$ \end_inset such bins and at least \begin_inset Formula $n-k+1=52$ \end_inset bins containing noise only. Thus, if the spectral array \begin_inset Formula $S(i,\, j)$ \end_inset has been normalized so that the average value of the noise-only bins is unity, \begin_inset Formula $u$ \end_inset for the correct codeword has expectation value (average over many random realizations) \end_layout \begin_layout Standard \begin_inset Formula \begin{equation} \bar{u}_{1}=1+y,\label{eq:u1-exp} \end{equation} \end_inset where \begin_inset Formula $y$ \end_inset is the signal-to-noise ratio in linear power units. If we assume Gaussian statistics and a large number of trials, the standard deviation of measured values of \begin_inset Formula $u_{1}$ \end_inset is \end_layout \begin_layout Standard \begin_inset Formula \begin{equation} \sigma_{1}=\left(\frac{1+2y}{n}\right)^{1/2}.\label{eq:sigma1} \end{equation} \end_inset In contrast, worst-case incorrect codewords will yield \begin_inset Formula $u$ \end_inset -metrics with expectation value and standard deviation given by \end_layout \begin_layout Standard \begin_inset Formula \begin{equation} \bar{u}_{2}=1+\left(\frac{k-1}{n}\right)y,\label{eq:u2-exp} \end{equation} \end_inset \end_layout \begin_layout Standard \begin_inset Formula \begin{equation} \sigma_{2}=\frac{1}{n}\left[n+2y(k-1)\right]^{1/2}.\label{eq:sigma2} \end{equation} \end_inset \end_layout \begin_layout Standard If tests on a number of tested candidate codewords yield largest and second-larg est metrics \begin_inset Formula $u_{1}$ \end_inset and \begin_inset Formula $u_{2},$ \end_inset respectively, we expect the ratio \begin_inset Formula $r=u_{2}/u_{1}$ \end_inset to be significantly smaller in cases where the candidate associated with \begin_inset Formula $u_{1}$ \end_inset is in fact the correct codeword. On the other hand, if none of the tested candidates is correct, \begin_inset Formula $r$ \end_inset will likely be close to 1. We therefore apply a ratio threshold test, say \begin_inset Formula $r