diff --git a/lib/ftrsd/ftrsd_paper/ftrsd.lyx b/lib/ftrsd/ftrsd_paper/ftrsd.lyx index df6a765a3..228f13066 100644 --- a/lib/ftrsd/ftrsd_paper/ftrsd.lyx +++ b/lib/ftrsd/ftrsd_paper/ftrsd.lyx @@ -1,1294 +1,1393 @@ -#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 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. - 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 JT65 decoders have used the patented Koetter-Vardy (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 performs 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 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 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 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$ -\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 symbols. - When the BM decoder finds a candidate codeword it is assigned a quality - metric -\begin_inset Formula $d_{s}$ -\end_inset - - defined as the soft distance between the received word and the codeword, - where -\begin_inset Formula -\begin{equation} -d_{s}=\sum_{i=1}^{n}\alpha_{i}\,(1+p_{1,i}).\label{eq:soft_distance} -\end{equation} - -\end_inset - -Here -\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, -\begin_inset Formula $\alpha_{i}=1$ -\end_inset - - if the received symbol and codeword symbol are different, and -\begin_inset Formula $p_{1,i}$ -\end_inset - - is the fractional power associated with received symbol -\begin_inset Formula $i$ -\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 -Technically the FT algorithm is a list decoder, potentially generating a - list of candidate codewords. - Among the list of candidate codewords found by the 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. - FT 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 used 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 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 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 -\begin_inset Quotes eld -\end_inset - -best -\begin_inset Quotes erd -\end_inset - - codeword with -\begin_inset Formula $d_{s,min}\le d_{a}$ -\end_inset - - has been found. - Declare a successful decode and return this 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 successful 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 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 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:Psuccess" - -\end_inset - -Percentage of JT65 messages ( -\begin_inset Quotes eld -\end_inset - -words -\begin_inset Quotes erd -\end_inset - -) successfully decoded as a function of SNR in 2.5 kHz bandwidth. - These results are for the idealized situation of a non-fading signal in - additive white Gaussian noise (AWGN). - Results are shown for the hard-decision Berlekamp-Massey (BM) and soft-decision - Franke-Taylor (FT) decoding algorithms. - Results for the FT algorithm are shown for two different sets of time-out - and acceptance criteria. - FT-1 was obtained with a limit of -\begin_inset Formula $10^{4}$ -\end_inset - - erasure vectors and with acceptance criteria -\begin_inset Formula $d_{a}<72$ -\end_inset - - and -\begin_inset Formula $n_{hard}<42$ -\end_inset - -, and FT-2 corresponds to -\begin_inset Formula $10^{5}$ -\end_inset - - erasure vectors and -\begin_inset Formula $d_{a}<76$ -\end_inset - -, -\begin_inset Formula $n_{hard}<44$ -\end_inset - -. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - -\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_{s}/N_{o}$ -\end_inset - - for non-fading signals in AWGN. - This is the same data that is shown in Figure -\begin_inset CommandInset ref -LatexCommand ref -reference "fig:Psuccess" - -\end_inset - -, but plotted as the fraction of frames that were not decoded vs symbol - SNR. -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -wide false -sideways false -status collapsed - -\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 -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). - Execution time will be roughly proportional to the number of trials. - The mean and variance of the number of trials (and execution time) increase - with the number of errors in the received word. - -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\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_wer2.pdf - lyxscale 120 - scale 120 - -\end_inset - - -\end_layout - -\begin_layout Plain Layout -\begin_inset Caption Standard - -\begin_layout Plain Layout -Word error rate (WER) as a function of -\begin_inset Formula $E_{s}/N_{o}$ -\end_inset - - for Rayleigh-fading with Doppler-spread -\begin_inset Formula $\sigma_{f}=0.2$ -\end_inset - - Hz. -\end_layout - -\end_inset - - -\end_layout - -\end_inset - - -\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 - -"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 +#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 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. + 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 JT65 decoders have used the patented Koetter-Vardy (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 performs 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 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 + +, and the +\begin_inset Quotes eld +\end_inset + +rate +\begin_inset Quotes erd +\end_inset + + of the code is +\begin_inset Formula $k/n$ +\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 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 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$ +\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 symbols. + When the BM decoder finds a candidate codeword it is assigned a quality + metric +\begin_inset Formula $d_{s}$ +\end_inset + + defined as the soft distance between the received word and the codeword, + where +\begin_inset Formula +\begin{equation} +d_{s}=\sum_{i=1}^{n}\alpha_{i}\,(1+p_{1,i}).\label{eq:soft_distance} +\end{equation} + +\end_inset + +Here +\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, +\begin_inset Formula $\alpha_{i}=1$ +\end_inset + + if the received symbol and codeword symbol are different, and +\begin_inset Formula $p_{1,i}$ +\end_inset + + is the fractional power associated with received symbol +\begin_inset Formula $i$ +\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 +Technically the FT algorithm is a list decoder, potentially generating a + list of candidate codewords. + Among the list of candidate codewords found by the 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. + FT 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 criterion +\begin_inset Formula $T$ +\end_inset + + is used 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 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 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 +\begin_inset Formula $T$ +\end_inset + +, the maximum allowed number, go to 2. + Otherwise, declare decoding failure and exit. +\end_layout + +\begin_layout Enumerate +A +\begin_inset Quotes eld +\end_inset + +best +\begin_inset Quotes erd +\end_inset + + codeword with +\begin_inset Formula $d_{s,min}\le d_{a}$ +\end_inset + + has been found. + Declare a successful decode and return this codeword. +\end_layout + +\begin_layout Paragraph +Experience-Based Lists of Candidate Codewords +\end_layout + +\begin_layout Standard +JT65 was designed and developed to facilitate amateur communication via + the Moon as a passive reflector. + Signals propagating over the Earth-Moon-Earth (EME, or +\begin_inset Quotes eld +\end_inset + +moonbounce +\begin_inset Quotes erd +\end_inset + +) path suffer attenuation of order 240 dB or more, so received signals are + always weak. + To be EME-capable an amateur station must have a very sensitive receiver, + reasonably high power, and a reasonably large antenna on a VHF, UHF, or + microwave band. + At a given time the number of stations engaging in this specialized activity + is probably +\begin_inset Formula $M<1000$ +\end_inset + +, world-wide. + EME communications often consist of little more than an exchange of callsigns, + signal reports, and acknowledgments, so most messages being exchanged are + likely to appear in a list no more than a few times +\begin_inset Formula $M^{2}$ +\end_inset + + in length. + Such lists (and subsets thereof) offer potential alternatives to the stochastic + method described above for selecting candidate codewords. + A list of active callsigns can be built up cumulatively from previously + decoded messages. + Candidate codewords derived from the list can be injected into the FT algorithm + at step 5, where the soft distance between the set of received symbols + and the codeword is computed. + A decoder taking advantage of this experience-based approach will have + significant speed and performance advantages over a purely probabilistic + algorithm. + However, it must accept the limitation that these advantages apply only + to messages appearing in the candidate list. + In the open-source program +\shape italic +WSJT-X +\shape default + we generate candidate message lists of several different lengths. + List lengths range from a few times +\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 $M$ +\end_inset + + up to about +\begin_inset Formula $M^{2}$ +\end_inset + +. +\end_layout + +\begin_layout Section +Results and Comparisons +\end_layout + +\begin_layout Standard +We measured performance of the Franke-Taylor soft-decision decoder using + simulations with many thousands of signal realizations at a range of calibrated + signal-to-noise ratios (SNRs). + Our first series of tests assumed an ideal additive white Gaussian noise + (AWGN) channel. + The dotted curve in Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:Psuccess" + +\end_inset + + shows the fraction of raw symbols expected to be received incorrectly over + such a channel. + Filled circles and the short-dashed curve illustrate performance of the + hard-decision Berlekamp-Massey algorithm, while filled squares and a solid + curve give results for the FT algorithm with conservative settings for + the timeout parameter +\begin_inset Formula $T$ +\end_inset + + and maximum acceptable soft distance +\begin_inset Formula $d_{a}$ +\end_inset + +. + Note that sensitivity with soft-decision decoding is about 2 dB better + than with hard decisions. + For comparison, open squares and a long-dashed curve show somewhat looser + settings for timeout and soft distance parameters can gain roughly another + 0.4 dB. + At this setting the rate of false decodes is no doubt slightly higher, + though in our simulations it was still found to be +\begin_inset Formula $<10^{-4}$ +\end_inset + +. +\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 150 + scale 150 + +\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 + +Fraction of JT65 messages ( +\begin_inset Quotes eld +\end_inset + +words +\begin_inset Quotes erd +\end_inset + +) successfully decoded as a function of SNR in 2.5 kHz bandwidth, for a non-fadin +g signal in additive white Gaussian noise (AWGN). + BM: hard-decision Berlekamp-Massey decoder; FT-1: soft-decision Franke-Taylor + decoder with +\begin_inset Formula $T=10^{4}$ +\end_inset + +, +\begin_inset Formula $d_{a}=72$ +\end_inset + +, +\begin_inset Formula $h_{max}=42$ +\end_inset + +; FT-2: soft-decision decoder with +\begin_inset Formula $T=10^{5}$ +\end_inset + +, +\begin_inset Formula $d_{a}=76$ +\end_inset + +, +\begin_inset Formula $h_{max}=44$ +\end_inset + +. + algorithms. + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\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_{s}/N_{o}$ +\end_inset + + for non-fading signals in AWGN. + This is the same data that is shown in Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:Psuccess" + +\end_inset + +, but plotted as the fraction of frames that were not decoded vs symbol + SNR. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status collapsed + +\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 +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). + Execution time will be roughly proportional to the number of trials. + The mean and variance of the number of trials (and execution time) increase + with the number of errors in the received word. + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\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_wer2.pdf + lyxscale 120 + scale 120 + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Word error rate (WER) as a function of +\begin_inset Formula $E_{s}/N_{o}$ +\end_inset + + for Rayleigh-fading with Doppler-spread +\begin_inset Formula $\sigma_{f}=0.2$ +\end_inset + + Hz. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\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 + +"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 diff --git a/lib/jt65a.f90 b/lib/jt65a.f90 index dba9542e1..1690d7ee3 100644 --- a/lib/jt65a.f90 +++ b/lib/jt65a.f90 @@ -147,10 +147,10 @@ subroutine jt65a(dd0,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nsubmode, & 1012 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a22,' JT65',i4) call flush(6) call flush(13) -! write(79,3001) nutc,nint(sync1),nsnr,dtx-1.0,nfreq,ncandidates, & -! nhard_min,ntotal_min,ntry,naggressive,nft,nqual,decoded -!3001 format(i4.4,i3,i4,f6.2,i5,i7,i3,i4,i8,i3,i2,i5,1x,a22) -! flush(79) + write(79,3001) nutc,nint(sync1),nsnr,dtx-1.0,nfreq,ncandidates, & + nhard_min,ntotal_min,ntry,naggressive,nft,nqual,decoded +3001 format(i4.4,i3,i4,f6.2,i5,i7,i3,i4,i8,i3,i2,i5,1x,a22) + flush(79) endif decoded0=decoded freq0=freq diff --git a/plotter.cpp b/plotter.cpp index 8e91198f6..cb0174c20 100644 --- a/plotter.cpp +++ b/plotter.cpp @@ -161,7 +161,7 @@ void CPlotter::draw(float swide[], bool bScroll) //dr } m_sum[i]=sum; } - if(m_bCumulative) y2=2.5*gain2d*(m_sum[i]/m_binsPerPixel + m_plot2dZero); + if(m_bCumulative) y2=gain2d*(m_sum[i]/m_binsPerPixel + m_plot2dZero); if(m_Flatten==0) y2 += 15; //### could do better! ### if(m_bLinearAvg) { //Linear Avg (yellow)