#LyX 2.1 created this file. For more info see http://www.lyx.org/ \lyxformat 474 \begin_document \begin_header \textclass paper \begin_preamble \usepackage{ragged2e} \exhyphenpenalty=10000\hyphenpenalty=10000 \fancyhf{} \fancyhead[L]{Franke \& Taylor: {\it Open Source Soft-Decision Decoder \ldots}} \fancyhead[R]{\thepage} \makeatletter \let\ps@plain\ps@fancy % Plain page style = fancy page style \makeatother \usepackage{nomencl} \usepackage{overcite} \renewcommand{\nomname}{Sidebar: Glossary of Specialized Terms} \end_preamble \use_default_options true \begin_modules boxedfloat \end_modules \maintain_unincluded_children false \language english \language_package default \inputencoding auto \fontencoding global \font_roman lmodern \font_sans lmss \font_typewriter lmtt \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 false \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 skip \defskip bigskip \quotes_language english \papercolumns 1 \papersides 1 \paperpagestyle fancy \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 SubTitle \emph on Under-the-hood description of the JT65 decoding procedure, including a wholly new algorithm for its powerful error-correcting 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 Background and Motivation \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash RaggedRight \end_layout \end_inset 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 \begin_inset CommandInset citation LatexCommand cite key "jt65_protocol" \end_inset , 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. Thousands of amateurs now use JT65 on a regular basis, making contacts on all bands from 160 meters through microwaves. \end_layout \begin_layout Standard JT65 uses timed transmitting and receiving sequences one minute long. Messages are short and structured so as to streamline minimal exchanges between two amateur operators over potentially difficult radio paths. Most messages contain two callsigns and a grid locator, signal report, acknowledgment, or sign-off; one of the tokens CQ, QRZ, or DE may be substitute d for the first callsign. Alternatively, a message may contain up to 13 Latin characters of arbitrary text. All messages are efficiently compressed into exactly 72 bits of digital information. It should be obvious that the JT65 protocol is intended for the basic purpose of completing legitimate, documented two-way contacts, but not for extended conversations. Full details of the message structure and encoding procedure are presented in reference \begin_inset CommandInset citation LatexCommand cite key "jt65_protocol" \end_inset . For a concise description of the overall process of transmitting and receiving a JT65 message, see the accompanying sidebar \series bold JT65 Message Processing \series default . \end_layout \begin_layout Standard A major reason for the success and popularity of JT65 is its use of a strong error-correction code. Before transmission, each 72-bit message is divided into 12 six-bit \emph on symbols \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Symbol: }" description "The information carried in one signalling interval, usually an integral number of bits. JT65 uses 6-bit symbols." \end_inset \emph default and augmented with 51 additional symbols of error-correcting information. These 51 \emph on parity symbols \emph default are computed according to information-theory rules that maximize the probabilit y of correctly decoding the message, even if many symbols are received incorrect ly. The JT65 code is properly described as a short block-length, low-rate Reed-Solo mon code based on a 64-symbol \emph on alphabet. \emph default \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Alphabet: }" description "A sequence of possible symbol values used for signaling. JT65 uses a 64-character alphabet, values in the range 0 to 63." \end_inset Characters in this alphabet are mapped onto 64 different frequencies for transmission. \end_layout \begin_layout Standard Reed Solomon codes are widely used to ensure reliability in data transmission and storage. In hardware implementations, decoding is generally accomplished with a procedure such as the Berlekamp-Massey (BM) algorithm, based on \emph on hard decisions \emph default \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Hard decision: }" description "Received symbols are assigned definite values by the demodulator." \end_inset for each of the symbol values received. \emph on Soft decisions \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Soft decision: }" description "Received symbols are assigned tentative values (most probable, second most probable, etc.) and quality indicators." \end_inset \emph default are potentially more powerful, however. For each received JT65 symbol we can estimate not only the value most likely to be correct, but also the second, third, etc., most likely. Most importantly, we can also estimate the probability that each of those possible values is the correct one. Decoders that make use of such information are called \emph on soft-decision decoders. \end_layout \begin_layout Standard Until now, nearly all programs implementing JT65 have used the patented Kötter-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. \end_layout \begin_layout Standard We describe here a new open-source alternative called the Franke-Taylor (FT, or K9AN-K1JT) soft-decision decoding algorithm. It is conceptually simple, built on top of the BM hard-decision decoder, and in this application it performs even better than the KV decoder. The FT algorithm is implemented in the popular programs \emph on WSJT \emph default , \emph on MAP65 \emph default , and \emph on WSJT-X \emph default , widely used for amateur weak-signal communication using JT65 and other specialized digital protocols. These programs are open-source, 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 start one second into a UTC minute and last for 46.8 seconds. Receiving software therefore has as much as ten seconds to decode a message before the start of the next minute, when the operator will send a reply. With today's personal computers, this relatively long time encourages experimen tation with decoders of high computational complexity. With time to spare, the FT algorithm lowers the decoding threshold on a typical fading channel by many dB over the hard-decision BM 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 computational complexity scale in a convenient way, providing steadily increasing soft-decision decoding gain as a tunable 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 Standard The remainder of this paper is organized as follows. Section 2 presents a brief overview of the nature of Reed Solomon codes and their error-correcting capabilities. Section 3 provides statistical motivation for the FT algorithm, and Section 4 describes the algorithm in full detail. Material in these two sections is important because it documents our approach and underlines its fundamental technical contributions. These sections are heavier in formal mathematics than common in \emph on QEX \emph default ; for this reason, some readers may choose to skip or skim them and proceed more quickly to the results. Most readers will benefit by reviewing the original paper on the JT65 protocol \begin_inset CommandInset citation LatexCommand cite key "jt65_protocol" \end_inset . A procedure for \emph on hinted decoding \emph default --- determining which one, if any, of a list of likely messages matches the one that was received --- is outlined in Section 5. Finally, in Section 6 we present performance measurements of the FT and hinted decoding algorithms and make explicit comparisons to the BM and KV decoders familiar to users of older versions of \emph on WSJT \emph default , \emph on MAP65 \emph default and \emph on WSJT-X \emph default . Section 7 summarizes some on-the-air experiences with the new decoder. Refer to the sidebar \series bold Glossary of Specialized Terms \series default for brief definitions of some potentially unfamiliar language. \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 The JT65 message frame consists of a short, compressed 72-bit message encoded for transmission with a Reed-Solomon code. Reed-Solomon codes are \emph on block codes \emph default \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Block code: }" description "An error-correcting code that treats data in blocks of fixed size." \end_inset characterized by \begin_inset Formula $n$ \end_inset , the length of their \emph on codewords \emph default ; \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Codeword:}" description "For the JT65 code, a vector of 63 symbol values each in the range 0 to 63." \end_inset \begin_inset Formula $k$ \end_inset , the number of message symbols conveyed by the codeword; and the transmission alphabet, or number of possible values for each symbol in a codeword. 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 an alphabet of 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 \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Source encoding: }" description "Compression of a message to use a minimum number or bits. JT65 source-encodes all messages to 72 bits." \end_inset message conveyed by a 63-symbol JT65 frame thus consists of 72 information bits. The JT65 code is \emph on systematic \emph default , 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 \emph on Hamming distance \emph default \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Hamming distance: }" description "The Hamming distance between two codewords, or between a received word and a codeword, is equal to the number of symbol positions in which they differ." \end_inset is used as a measure of disagreement between different codewords, or between a received word \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Received word: }" description "A vector of symbol values, possibly accompanied by soft information on individual reliabilities." \end_inset and a codeword. Hamming distance is the number of code symbols that differ in two words being compared. Reed-Solomon codes have guaranteed 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 With \begin_inset Formula $n=63$ \end_inset and \begin_inset Formula $k=12$ \end_inset the minimum Hamming distance of the JT65 code is \begin_inset Formula $d=52$ \end_inset . With 72 information bits in each message, JT65 can transmit any one of \begin_inset Formula $2^{72}\approx4.7\times10^{21}$ \end_inset possible messages. The codeword for any message differs from every other codeword in at least 52 of the 63 symbol positions. \end_layout \begin_layout Standard A received word containing some \emph on errors \emph default (incorrect symbols) can be decoded into the correct codeword using a determinis tic, \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Deterministic algorithm: }" description "A series of computational steps that for the same input always produces the same output." \end_inset 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 BM algorithm, can carry out this hard-decision 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 \emph on erasures \emph default \begin_inset CommandInset nomenclature LatexCommand nomenclature symbol "{\\bf Erasure: }" description "A received symbol may be ``erased'' when confidence in its value is so low that it is unlikely to provide useful information. " \end_inset . With perfect erasure information up to \begin_inset Formula $n-k=51$ \end_inset 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 \emph on errors-only \emph default decoder. If \begin_inset Formula $0