diff --git a/lib/ftrsd/ftrsd_paper/ftrsd.lyx b/lib/ftrsd/ftrsd_paper/ftrsd.lyx index fa55cf70a..61ffe9089 100644 --- a/lib/ftrsd/ftrsd_paper/ftrsd.lyx +++ b/lib/ftrsd/ftrsd_paper/ftrsd.lyx @@ -1,2342 +1,2343 @@ -#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 its median value (essentially the average noise - level) 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 $rX$ +\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