#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 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 protocol 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 not usable with traditional technologies. 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. Since 2004, most programs implementing JT65 have used the patented Koetter-Vard y (KV) algebraic soft-decision decoder, licensed to K1JT and implemented in a closed-source program for use in amateur radio applications. 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. \end_layout \begin_layout Section Introduction \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 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 efficiently decode a received word having no more than 25 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, namely \end_layout \begin_layout Enumerate Determine which symbols were received incorrectly. \end_layout \begin_layout Enumerate Find the correct value of the incorrect symbols. \end_layout \begin_layout Standard If we somehow know that certain symbols are incorrect, this 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$ \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 As already noted, with perfect erasure information up to 51 incorrect symbols can be corrected. 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. 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 \begin_inset Quotes eld \end_inset educated guesses \begin_inset Quotes erd \end_inset 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 received hard-decision symbols. 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 power units, or \begin_inset Formula $E_{s}/N_{0}\apprge6$ \end_inset dB. We also find that weaker signals can often 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 \begin_inset Formula $n$ \end_inset symbols according to a candidate codeword's symbol values: \end_layout \begin_layout Standard \begin_inset Formula \[ u=\frac{1}{n}\sum_{j=1}^{n}S(c_{j},\,j). \] \end_inset Here the \begin_inset Formula $c_{j}$ \end_inset 's are the symbol values for the candidate codeword being tested. \end_layout \begin_layout Standard The correct codeword produces a value for \begin_inset Formula $u$ \end_inset equal to average of \begin_inset Formula $n=63$ \end_inset bins of signal-plus-noise, while incorrect codewords have at most \begin_inset Formula $k=12$ \end_inset bins with signal-plus-noise and at least \begin_inset Formula $n-k=51$ \end_inset bins containing noise only. Thus, if the spectral array \begin_inset Formula $S(i,\,j)$ \end_inset is normalized so that its median value (essentially the average noise level) is unity, the correct codeword is expected to yield \end_layout \begin_layout Standard \begin_inset Formula \[ u=(1\pm n^{-\frac{1}{2}})(1+y)\approx(1.0\pm0.13)(1+y), \] \end_inset where \begin_inset Formula $y$ \end_inset is the signal-to-noise ratio in power units and the quoted one standard deviation uncertainty range assumes Gaussian statistics. Incorrect codewords will yield at most \end_layout \begin_layout Standard \begin_inset Formula \[ u=\frac{n-k\pm\sqrt[]{n-k}}{n}+\frac{k\pm\sqrt[]{k}}{n}(1+y)\approx1\pm0.13+(0.19\pm0.06)\,y. \] \end_inset \end_layout \begin_layout Standard As a specific example, consider signal strength \begin_inset Formula $y=4$ \end_inset , corresponding to \begin_inset Formula $E_{s}/N_{0}=6$ \end_inset dB. (For JT65, the corresponding SNR in 2500 Hz bandwidth is \begin_inset Formula $-23.7$ \end_inset dB.) The correct codeword is then expected to yield \begin_inset Formula $u\approx5.0\pm$ \end_inset 0.6, while incorrect codewords will give \begin_inset Formula $u\approx2.0\pm0.3$ \end_inset or less. A threshold set at \begin_inset Formula $u_{0}=4.4$ \end_inset , about 8 standard deviations above the expected maximum for incorrect codewords , serves reliably to distinguish the correct codeword from all other candidates, with a very small probability of false decodes. \end_layout \begin_layout Standard Technically the FT algorithm is a list decoder. Among the list of candidate codewords found by the stochastic search algorithm, only the one with the largest \begin_inset Formula $u$ \end_inset is retained. As with all such algorithms, a stopping criterion is necessary. FT accepts a codeword unconditionally if \begin_inset Formula $u>u_{0}$ \end_inset . A timeout is used to limit the algorithm's execution time if no acceptable codeword is found in a reasonable number of trials, \begin_inset Formula $T$ \end_inset . Today's personal computers are fast enough that \begin_inset Formula $T$ \end_inset can be set as large as \begin_inset Formula $10^{5},$ \end_inset or even higher. \end_layout \begin_layout Paragraph Algorithm pseudo-code: \end_layout \begin_layout Enumerate For each received symbol, define the erasure probability as 1.3 times the \emph on a priori \emph default symbol-error probability determined from soft-symbol information \begin_inset Formula $\{p_{1}\textrm{-rank},\,p_{2}/p_{1}\}$ \end_inset . \end_layout \begin_layout Enumerate Make independent stochastic decisions about whether to erase each symbol by using the symbol's erasure probability, allowing a maximum of 51 erasures. \end_layout \begin_layout Enumerate Attempt errors-and-erasures decoding by using the BM algorithm and the set of erasures determined in step 2. If the BM decoder produces a candidate codeword, go to step 5. \end_layout \begin_layout Enumerate If BM decoding was not successful, go to step 2. \end_layout \begin_layout Enumerate Calculate the hard-decision Hamming distance between the candidate codeword and the received symbols, the corresponding soft distance \begin_inset Formula $d_{s}$ \end_inset , and the quality metric \begin_inset Formula $u$ \end_inset . If \begin_inset Formula $u$ \end_inset is the largest one encountered so far, set \begin_inset Formula $u_{max}=u$ \end_inset . \end_layout \begin_layout Enumerate If \begin_inset Formula $u_{max}>u_{0}$ \end_inset , go to step 8. \end_layout \begin_layout Enumerate If the number of trials is less than the timeout limit \begin_inset Formula $T,$ \end_inset go to 2. Otherwise, declare decoding failure and exit. \end_layout \begin_layout Enumerate An acceptable codeword with \begin_inset Formula $u_{max}>u_{0}$ \end_inset has been found. Declare a successful decode and return this codeword . \end_layout \begin_layout Section Theory and Simulations \end_layout \begin_layout Standard The fraction of time that \begin_inset Formula $X$ \end_inset , the number of symbols received incorrectly, is less than some number \begin_inset Formula $D$ \end_inset depends of course on signal-to-noise ratio. For the case of additive white Gaussian noise (AWGN) and noncoherent 64-FSK demodulation this probability is easily calculated, and representative examples for \begin_inset Formula $D=25,$ \end_inset \family roman \series medium \shape up \size normal \emph off \bar no \strikeout off \uuline off \uwave off \noun off \color none \begin_inset Formula $D=40$ \end_inset \family default \series default \shape default \size default \emph default \bar default \strikeout default \uuline default \uwave default \noun default \color inherit , and \begin_inset Formula $D=43$ \end_inset are plotted in Figure \begin_inset CommandInset ref LatexCommand ref reference "fig:bodide" \end_inset as filled squares with connecting lines. The rightmost curve with solid squares shows that on the AWGN channel the hard-decision BM decoder should succeed about 90% of the time at \begin_inset Formula $E_{s}/N_{0}=7.5$ \end_inset dB, 99% of the time at 8 dB, and 99.98% at 8.5 dB. The righmost curve with open squares shows that simulated results agree with theory to within 0.2 dB. \end_layout \begin_layout Standard \begin_inset Float figure wide false sideways false status open \begin_layout Plain Layout \align center \begin_inset Graphics filename fig_bodide.pdf \end_inset \begin_inset Caption Standard \begin_layout Plain Layout \begin_inset CommandInset label LatexCommand label name "fig:bodide" \end_inset Word error rates as a function of \begin_inset Formula $E_{s}/N_{0},$ \end_inset the signal-to-noise ratio in bandwidth equal to the symbol rate. Filled squares illustrate theoretical values for \begin_inset Formula $D=25,$ \end_inset \family roman \series medium \shape up \size normal \emph off \bar no \strikeout off \uuline off \uwave off \noun off \color none \begin_inset Formula $D=40$ \end_inset \family default \series default \shape default \size default \emph default \bar default \strikeout default \uuline default \uwave default \noun default \color inherit , and \begin_inset Formula $D=43$ \end_inset . Open squares illustrate measured results for the BM and FT ( \begin_inset Formula $T=10^{5}$ \end_inset ) decoders in program \emph on WSJT-X \emph default . \end_layout \end_inset \end_layout \end_inset \end_layout \begin_layout Standard Received JT65 words with \begin_inset Formula $X>25$ \end_inset incorrect symbols can be decoded if sufficient information is available concerning individual symbol reliabilities. Using values of \begin_inset Formula $T$ \end_inset that are practical with today's personal computers and the soft-symbol information described above, we find that the FT algorithm produces correct decodes most of the time up to \begin_inset Formula $X\approx40$ \end_inset , with some additional decodes in the range \begin_inset Formula $X=41$ \end_inset to 43. As a specific example, Figure \begin_inset CommandInset ref LatexCommand ref reference "fig:N_vs_X" \end_inset plots the number of stochastic erasure trials required to find the correct codeword versus the number of hard-decision errors. This result was obtained with 1000 simulated frames at \begin_inset Formula $SNR=-24$ \end_inset dB, just slightly above the decoding threshold. Note that the mean and variance of the required number of trials both increase steeply with the number of errors in the received word. Execution time of the FT algorithm is roughly proportional to the number of trials. \end_layout \begin_layout Standard \begin_inset Float figure wide false sideways false status open \begin_layout Plain Layout \align center \begin_inset Graphics filename fig_ntrials_vs_nhard.pdf lyxscale 120 scale 120 \end_inset \end_layout \begin_layout Plain Layout \begin_inset Caption Standard \begin_layout Plain Layout \begin_inset CommandInset label LatexCommand label name "fig:N_vs_X" \end_inset The number of trials needed to decode a received word vs the Hamming distance between the received word and the decoded codeword plotted for 1000 simulated frames with no fading. The SNR in 2500 Hz bandwidth is -24 dB ( \begin_inset Formula $E_{s}/N_{o}=5.7$ \end_inset dB). \end_layout \end_inset \end_layout \end_inset \end_layout \begin_layout Section Comparison with Berlekamp-Massey and Koetter-Vardy \end_layout \begin_layout Standard Comparisons of decoding performance are usually presented in the professional literature as plots of word error rate versus \begin_inset Formula $E_{b}/N_{0}$ \end_inset , the signal-to-noise ratio per information bit. Results of simulations using the Berlekamp-Massey, Koetter-Vardy, and Franke-Ta ylor decoding algorithms on the (63,12) code are shown inthis way in Figure \begin_inset CommandInset ref LatexCommand ref reference "fig:WER" \end_inset . For these tests we generated 1000 signals at each signal-to-noise ratio, assuming the additive white gaussian noise (AWGN) channel, and processed the data using each algorithm. As expected, the soft-decision algorithms FT and KV are about 2 dB better than the hard-decision BM algorithm. FT has a slight edge (about 0.2 dB) over KV with the default settings for each algorithm, as implemented in our JT65 decoders. \end_layout \begin_layout Standard \begin_inset Float figure wide false sideways false status open \begin_layout Plain Layout \align center \begin_inset Graphics filename fig_wer.pdf lyxscale 120 scale 120 \end_inset \end_layout \begin_layout Plain Layout \begin_inset Caption Standard \begin_layout Plain Layout \begin_inset CommandInset label LatexCommand label name "fig:WER" \end_inset Word error rate (WER) as a function of \begin_inset Formula $E_{b}/N_{0}$ \end_inset for non-fading signals in AWGN. \end_layout \end_inset \end_layout \end_inset \end_layout \begin_layout Standard Plots like Figure \begin_inset CommandInset ref LatexCommand ref reference "fig:WER" \end_inset often extend downward to much smaller error rates, say \begin_inset Formula $10^{-6}$ \end_inset or less, because of the importance of error-free transmission in commercial applications. The circumstances for minimal amateur-radio QSOs are very different, however. Error rates on the order of 0.1, or ever higher, may be acceptable. In this case the essential information is better presented in a plot like Figure \begin_inset CommandInset ref LatexCommand ref reference "fig:Psuccess" \end_inset showing the percentage of transmissions copied correctly as a function of signal-to-noise ratio. \end_layout \begin_layout Standard In Figure \begin_inset CommandInset ref LatexCommand ref reference "fig:Psuccess" \end_inset we plot the results of simulations for signal-to-noise ratios ranging from -18 to -30 dB, again using 1000 simulated signals for each point. For each decoding algorithm we include three curves: one for the AWGN channel and no fading, and two more for Doppler spreads of 0.2 and 1.0 Hz. (For reference, we note that the JT65 symbol rate is about 2.69 Hz. The simulated Doppler spreads are comparable to those encountered on HF ionospheric paths and for EME at VHF and lower UHF bands.) \end_layout \begin_layout Standard \begin_inset Float figure wide false sideways false status open \begin_layout Plain Layout \align center \begin_inset Graphics filename fig_psuccess.pdf lyxscale 90 scale 90 \end_inset \end_layout \begin_layout Plain Layout \begin_inset Caption Standard \begin_layout Plain Layout \begin_inset CommandInset label LatexCommand label name "fig:Psuccess" \end_inset Percentage of JT65 messages successfully decoded as a function of SNR in 2500 Hz bandwidth. Results are shown for the hard-decision Berlekamp-Massey (BM) and soft-decision Franke-Taylor (FT) decoding algorithms. Curves labeled DS correspond to the hinted-decode ( \begin_inset Quotes eld \end_inset Deep Search \begin_inset Quotes erd \end_inset ) matched-filter algorithm. \end_layout \end_inset \end_layout \end_inset \end_layout \begin_layout Section Hinted Decoding \end_layout \begin_layout Standard ... TBD ... \end_layout \begin_layout Section Summary \end_layout \begin_layout Bibliography \begin_inset CommandInset bibitem LatexCommand bibitem key "key-1" \end_inset "Stochastic Chase Decoding of Reed-Solomon Codes", Camille Leroux, Saied Hemati, Shie Mannor, Warren J. Gross, IEEE Communications Letters, Vol. 14, No. 9, September 2010. \end_layout \begin_layout Bibliography \begin_inset CommandInset bibitem LatexCommand bibitem key "key-2" \end_inset "Soft-Decision Decoding of Reed-Solomon Codes Using Successive Error-and-Erasure Decoding," Soo-Woong Lee and B. V. K. Vijaya Kumar, IEEE \begin_inset Quotes eld \end_inset GLOBECOM \begin_inset Quotes erd \end_inset 2008 proceedings. \end_layout \begin_layout Bibliography \begin_inset CommandInset bibitem LatexCommand bibitem key "key-3" \end_inset \begin_inset Quotes erd \end_inset Stochastic Erasure-Only List Decoding Algorithms for Reed-Solomon Codes, \begin_inset Quotes erd \end_inset Chang-Ming Lee and Yu T. Su, IEEE Signal Processing Letters, Vol. 16, No. 8, August 2009. \end_layout \begin_layout Bibliography \begin_inset CommandInset bibitem LatexCommand bibitem key "key-4" \end_inset “Algebraic soft-decision decoding of Reed-Solomon codes,” R. Köetter and A. Vardy, IEEE Trans. Inform. Theory, Vol. 49, Nov. 2003. \end_layout \begin_layout Bibliography \begin_inset CommandInset bibitem LatexCommand bibitem key "key-5" \end_inset Berlekamp-Massey decoder written by Phil Karn, http://www.ka9q.net/code/fec/ \end_layout \end_body \end_document