diff --git a/lib/sfrsd2/sfrsd_paper/sfrsd.lyx b/lib/sfrsd2/sfrsd_paper/sfrsd.lyx index 4c567852d..ec421ca26 100644 --- a/lib/sfrsd2/sfrsd_paper/sfrsd.lyx +++ b/lib/sfrsd2/sfrsd_paper/sfrsd.lyx @@ -1,1013 +1,958 @@ -#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 +#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 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 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 not usable + with traditional technologies. + One reason for the success and popularity of JT65 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 2004, most JT65 decoders have used the patented +\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 licensed to K1JT + for use in amateur radio applications. + We describe here a new open-source alternative called the FTRSD (or FT) + algotithm. + It is conceptually simple, is built around the well-known Berlekamp-Massey + errors-and-erasures algorithm, and perform at least as well as 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 transmiss +ion using a Reed-Solomon code. + Reed-Solomon codes are block codes; as such they 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 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 the 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 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 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 ncessarily involved, namely +\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, this information + can be used to reduce the amount of work in step 1 and to allow step 2 + to correct more than +\begin_inset Formula $t$ +\end_inset + + errors. + In the unlikely event that the location of every error can be provided + to the BM decoder, and if no correct symbols are accidentally labeled as + errors, the BM algorithm can correct up to +\begin_inset Formula $d$ +\end_inset + + errors. + +\end_layout + +\begin_layout Standard +The FT algorithm creates a list of symbols suspected of being incorrect + and sends it 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 errors can + be corrected. + When the erasure information is imperfect, some of the erased symbols may + be correct and some other symbols in error. + If +\begin_inset Formula $s$ +\end_inset + + symbols are erased and the remaining unerased 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 and 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 FTRSD algorithm works best when the probability of + erasing a symbol is somewhat larger than the probability that the symbol + is incorrect. + Empirically, we found good decoding performance when the symbol erasure + probability is about 1.3 times the symbol error probability. +\end_layout + +\begin_layout Standard +The FTRSD algorithm tries successively to decode the received word using + educated guesses to select symbols for erasure. + For each iteration an independent stochastic erasure vector is generated + based on the symbol erasure probabilities. + The erasure vector is provided to the BM decoder along with the full set + of 63 received symbols. + If the BM decoder finds a candidate codeword it is assigned a quality metric, + defined as the soft distance, +\begin_inset Formula $d_{s}$ +\end_inset + +, between the received word and the codeword: +\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 + +Here +\begin_inset Formula $p_{1,i}$ +\end_inset + + is the fractional power associated with received symbol +\begin_inset Formula $i$ +\end_inset + +; +\begin_inset Formula $\alpha_{i}=0$ +\end_inset + + if received symbol +\begin_inset Formula $i$ +\end_inset + + is the same as the corresponding symbol in the codeword, and +\begin_inset Formula $\alpha_{i}=1$ +\end_inset + + if the received symbol and codeword symbol 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 FT 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 + retained. + As with all such algorithms, a stopping criterion is necessary. + FTRSD 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 algorithm's execution time if 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 pseudo-code: +\end_layout + +\begin_layout Enumerate +For each received symbol, define the erasure probability to be 1.3 times + the +\emph on +a priori +\emph default + 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 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 with the BM algorithm and the set of + eraseures 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 symbols. + 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 and return the codeword . +\end_layout + +\begin_layout Section +Results and Comparison with KVASD +\end_layout + +\begin_layout Standard +Possible figures: +\end_layout + +\begin_layout Itemize +histogram of +\begin_inset Formula $s$ +\end_inset + + (number of erasures) for succeffsul decodes with HF and EME data +\end_layout + +\begin_layout Itemize +histogram of +\begin_inset Quotes eld +\end_inset + +ntrials +\begin_inset Quotes erd +\end_inset + + (or execution time) +\end_layout + +\begin_layout Itemize +Number of decodes vs. + ntrials +\end_layout + +\begin_layout Itemize +Probability of successful decode vs. + Es/No or S/N in 2500 Hz BW +\end_layout + +\begin_layout Itemize +other... + ? +\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