From d2703eb3e53f41c272bcc5bbb7b9b25576894a72 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 21 Dec 2015 19:48:08 +0000 Subject: [PATCH] New versions of two figures, and some text additions. (More to come!) git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6301 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/ftrsd/ftrsd_paper/fig_psuccess.gnuplot | 26 +- lib/ftrsd/ftrsd_paper/fig_psuccess.pdf | Bin 26050 -> 16816 bytes lib/ftrsd/ftrsd_paper/fig_wer.gnuplot | 16 +- lib/ftrsd/ftrsd_paper/fig_wer.pdf | Bin 0 -> 34245 bytes lib/ftrsd/ftrsd_paper/ftrsd.lyx | 404 +++++++++------------ lib/ftrsd/ftrsd_paper/stats_0.0 | 27 ++ lib/ftrsd/ftrsd_paper/stats_0.2 | 27 ++ lib/ftrsd/ftrsd_paper/stats_1.0 | 27 ++ 8 files changed, 275 insertions(+), 252 deletions(-) create mode 100644 lib/ftrsd/ftrsd_paper/fig_wer.pdf create mode 100644 lib/ftrsd/ftrsd_paper/stats_0.0 create mode 100644 lib/ftrsd/ftrsd_paper/stats_0.2 create mode 100644 lib/ftrsd/ftrsd_paper/stats_1.0 diff --git a/lib/ftrsd/ftrsd_paper/fig_psuccess.gnuplot b/lib/ftrsd/ftrsd_paper/fig_psuccess.gnuplot index 93317ff66..bf12f3c58 100644 --- a/lib/ftrsd/ftrsd_paper/fig_psuccess.gnuplot +++ b/lib/ftrsd/ftrsd_paper/fig_psuccess.gnuplot @@ -2,22 +2,24 @@ # run: gnuplot fig_psuccess.gnuplot # then: pdflatex fig_psuccess.tex # -set term epslatex standalone size 20cm,10cm +set term epslatex standalone size 6in,4in set output "fig_psuccess.tex" -set xlabel "SNR in 2500 Hz BW (dB)" +set xlabel "SNR in 2500 Hz Bandwidth (dB)" set ylabel "Percent copy" set style func linespoints -set key on top outside nobox +set key off set tics in set mxtics 2 set mytics 2 set grid -plot "ftdata-10000.dat" using 1:2 every ::1 with linespoints pt 4 title 'FT-10K', \ - "ftdata-100000.dat" using 1:2 every ::1 with linespoints pt 5 title 'FT-100K', \ - "ftdata-1000-rf.dat" using 1:2 every ::1 with linespoints pt 7 title 'FT-1K-RF', \ - "ftdata-100-rf.dat" using 1:2 every ::1 with linespoints pt 8 title 'FT-100-RF', \ - "bmdata.dat" using 1:2 with linespoints pt 9 title 'BM', \ - "bmdata-rf.dat" using 1:2 with linespoints pt 10 title 'BM-RF', \ - "kvasd-7999-rf.dat" using 1:2 every ::1 with linespoints pt 12 title 'KV-8-RF', \ - "kvasd-11999.dat" using 1:2 every ::1 with linespoints pt 13 title 'KV-12', \ - "kvasd-11999-rf.dat" using 1:2 every ::1 with linespoints pt 14 title 'KV-12-RF' +plot [-30:-18] [0:105] "stats_0.0" using 1:($3)/10.0 with linespoints lt 4 pt 1 title 'Sync', \ + "stats_0.0" using 1:($4)/10.0 with linespoints lt 2 lw 2 pt 2 title 'BB 0', \ + "stats_0.0" using 1:($5)/10.0 with linespoints lt 1 lw 2 pt 3 title 'FT 0', \ + "stats_0.0" using 1:($6)/10.0 with linespoints lt 3 lw 2 pt 4 title 'DS 0', \ + "stats_0.2" using 1:($4)/10.0 with linespoints lt 2 pt 2 title 'BB 0.2', \ + "stats_0.2" using 1:($5)/10.0 with linespoints lt 1 pt 3 title 'FT 0.2', \ + "stats_0.2" using 1:($6)/10.0 with linespoints lt 3 pt 4 title 'DS 0.2', \ + "stats_1.0" using 1:($4)/10.0 with linespoints lt 2 pt 2 title 'BB 1', \ + "stats_1.0" using 1:($5)/10.0 with linespoints lt 1 pt 3 title 'FT 1', \ + "stats_1.0" using 1:($6)/10.0 with linespoints lt 3 pt 4 title 'DS 1', \ + "psuccess.lab" with labels diff --git a/lib/ftrsd/ftrsd_paper/fig_psuccess.pdf b/lib/ftrsd/ftrsd_paper/fig_psuccess.pdf index 47306d11ddcd6ba05b7dd9c98ce2576ff3a298f4..8935edb20a2f210923eef6dabbf06edac868ee05 100644 GIT binary patch literal 16816 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 diff --git a/lib/ftrsd/ftrsd_paper/fig_wer.gnuplot b/lib/ftrsd/ftrsd_paper/fig_wer.gnuplot index 83569f07e..6d4a10bc7 100644 --- a/lib/ftrsd/ftrsd_paper/fig_wer.gnuplot +++ b/lib/ftrsd/ftrsd_paper/fig_wer.gnuplot @@ -2,18 +2,18 @@ # run: gnuplot fig_wer.gnuplot # then: pdflatex fig_wer.tex # -set term epslatex standalone size 12cm,8cm +set term epslatex standalone size 6in,4in set output "fig_wer.tex" -set xlabel "$E_s/N_o$ (dB)" -set ylabel "WER" +set xlabel "$E_b/N_0$ (dB)" +set ylabel "Word Error Rate" set style func linespoints -set key on top outside nobox +set key off set tics in set mxtics 2 set mytics 10 set grid set logscale y -plot "ftdata-10000.dat" using ($1+29.7):(1-$2) every ::1 with linespoints pt 5 title 'FT-10K', \ - "ftdata-100000.dat" using ($1+29.7):(1-$2) every ::1 with linespoints pt 7 title 'FT-100K', \ - "kvasd-11999.dat" using ($1+29.7):(1-$2) every ::1 with linespoints pt 8 title 'KV-11.999', \ - "bmdata.dat" using ($1+29.7):(1-$2) with linespoints pt 7 title 'BM' +plot [3:9] "ftdata-100000.dat" using ($1+29.1):(1-$2) with linespoints pt 7 title 'FT-100K', \ + "kvasd-11999.dat" using ($1+29.1):(1-$2) with linespoints pt 8 title 'KV-11.999', \ + "bmdata.dat" using ($1+29.1):(1-$2) with linespoints pt 7 title 'BM', \ + "wer.lab" with labels diff --git a/lib/ftrsd/ftrsd_paper/fig_wer.pdf b/lib/ftrsd/ftrsd_paper/fig_wer.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e1e320423651e44cf496140161affa1a58e16483 GIT binary patch literal 34245 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 M!;q1Q%8SALf6j>{CIA2c literal 0 HcmV?d00001 diff --git a/lib/ftrsd/ftrsd_paper/ftrsd.lyx b/lib/ftrsd/ftrsd_paper/ftrsd.lyx index 228f13066..74e90f757 100644 --- a/lib/ftrsd/ftrsd_paper/ftrsd.lyx +++ b/lib/ftrsd/ftrsd_paper/ftrsd.lyx @@ -86,21 +86,20 @@ Steven J. \end_layout \begin_layout Abstract -The JT65 mode has revolutionized amateur-radio weak-signal communication +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 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. + 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 performs at least as well as the KV - decoder. + errors-and-erasures algorithm, and performs even better than the KV decoder. \end_layout \begin_layout Section @@ -125,18 +124,6 @@ on with a Reed-Solomon code. \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. @@ -146,7 +133,7 @@ rate message bits. The source-encoded messages conveyed by a 63-symbol JT65 frame thus consist - of 72 bits. + 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. @@ -439,7 +426,7 @@ nchoosek( \begin_inset Quotes erd \end_inset - in the interpreted language GNU Octave, as well as many free online calculators. + in the interpreted language GNU Octave, as well as many free online calculators The hypergeometric probability mass function defined in Eq. ( \begin_inset CommandInset ref @@ -702,9 +689,9 @@ Example 3 shows how reliable information about symbol quality should make \begin_layout Standard The FT algorithm uses two quality indices made available by a noncoherent 64-FSK demodulator. - The demodulator The demodulator computes the power spectrum for each symbol - and identifies the most likely symbol value based on the largest signal-plus-no -ise power in 64 frequency bins. + The demodulator computes the power spectrum for each symbol and identifies + the most likely symbol value based on the largest signal-plus-noise power + in 64 frequency bins. The fractions of total power in the two bins containing the largest and second-largest powers (denoted by \begin_inset Formula $p_{1}$ @@ -862,12 +849,8 @@ Technically the FT algorithm is a list decoder, potentially generating 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 + A timeout is used to limit the algorithm's execution time if no codewords + within soft distance \begin_inset Formula $d_{a}$ \end_inset @@ -930,11 +913,7 @@ If \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. +If the number of trials is less than the maximum allowed number, go to 2. Otherwise, declare decoding failure and exit. \end_layout @@ -952,206 +931,36 @@ best \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 - -. + Declare a successful decode and return this codeword . \end_layout \begin_layout Section -Results and Comparisons +Comparison with Berlekamp-Massey and Koetter-Vardy \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 +Comparisons of decoding performance are usually presented in the professional + literature as plots of word error rate as a function of +\begin_inset Formula $E_{b}/N_{0}$ +\end_inset + +, the signal-to-noise ratio per information bit. + Results for the Berlekamp-Massey, Koetter-Vardy, and Franke-Taylor decoding + algorithms on the (63,12) code are shown in Figure \begin_inset CommandInset ref LatexCommand ref -reference "fig:Psuccess" +reference "fig:WER" -\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. + For these initial 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. + It's easy to see that, as expected, the soft-decision algorithms FT and + KV are about 2 dB better than the hard-decision BM algorithm, and that + FT has a slight edge (about 0.2 dB) over KV. -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - \end_layout \begin_layout Standard @@ -1183,19 +992,11 @@ name "fig:WER" \end_inset Word error rate (WER) as a function of -\begin_inset Formula $E_{s}/N_{o}$ +\begin_inset Formula $E_{b}/N_{0}$ \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 @@ -1208,11 +1009,116 @@ reference "fig:Psuccess" \end_layout +\begin_layout Standard +In the professional literature plots like Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:WER" + +\end_inset + +usually extend downward to even smaller error rates, say +\begin_inset Formula $10^{-6}$ +\end_inset + +or less, because of the importance of error-free transmission. + 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 + +, which shows the percentage of transmissions copied correctly as a function + of signal-to-noise ratio in a standard bandwidth. + +\end_layout + +\begin_layout Standard +In Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:Psuccess" + +\end_inset + + we have plotted the results of simulations for signal-to-noise ratios +\begin_inset Formula $-30\leq SNR\leq-18$ +\end_inset + + 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. + (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 collapsed +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 Standard + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open \begin_layout Plain Layout \align center @@ -1297,6 +1203,40 @@ Word error rate (WER) as a function of \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 Itemize other... ? diff --git a/lib/ftrsd/ftrsd_paper/stats_0.0 b/lib/ftrsd/ftrsd_paper/stats_0.0 new file mode 100644 index 000000000..20341d463 --- /dev/null +++ b/lib/ftrsd/ftrsd_paper/stats_0.0 @@ -0,0 +1,27 @@ + SNR Files Sync BM FT Hint Total False BadSync +-------------------------------------------------------- +-18.0 1000 1000 1000 1000 1000 1000 0 0 +-18.5 1000 1000 1000 1000 1000 1000 0 0 +-19.0 1000 1000 1000 1000 1000 1000 0 0 +-19.5 1000 1000 1000 1000 1000 1000 0 0 +-20.0 1000 1000 1000 1000 1000 1000 0 0 +-20.5 1000 1000 1000 1000 1000 1000 0 0 +-21.0 1000 1000 1000 1000 1000 1000 0 0 +-21.5 1000 1000 991 1000 1000 1000 0 0 +-22.0 1000 1000 918 1000 1000 1000 0 0 +-22.5 1000 1000 631 1000 1000 1000 0 0 +-23.0 1000 1000 261 1000 1000 1000 0 0 +-23.5 1000 1000 57 990 1000 1000 0 0 +-24.0 1000 1000 0 925 1000 1000 0 0 +-24.5 1000 1000 0 737 999 999 1 0 +-25.0 1000 999 0 445 989 989 10 1 +-25.5 1000 996 0 191 988 988 8 4 +-26.0 1000 980 0 68 975 975 7 20 +-26.5 1000 953 0 18 945 945 7 47 +-27.0 1000 904 0 3 890 890 8 96 +-27.5 1000 816 0 2 771 771 8 184 +-28.0 1000 722 0 0 625 625 4 278 +-28.5 1000 590 0 0 432 432 8 410 +-29.0 1000 451 0 0 268 268 8 549 +-29.5 1000 355 0 0 146 146 8 645 +-30.0 1000 277 0 0 86 86 6 723 diff --git a/lib/ftrsd/ftrsd_paper/stats_0.2 b/lib/ftrsd/ftrsd_paper/stats_0.2 new file mode 100644 index 000000000..f79909ee8 --- /dev/null +++ b/lib/ftrsd/ftrsd_paper/stats_0.2 @@ -0,0 +1,27 @@ + SNR Files Sync BM FT Hint Total False BadSync +-------------------------------------------------------- +-18.0 1000 998 973 998 998 998 0 2 +-18.5 1000 1000 960 1000 1000 1000 0 0 +-19.0 1000 1000 917 1000 1000 1000 0 0 +-19.5 1000 1000 849 1000 1000 1000 0 0 +-20.0 1000 1000 725 1000 1000 1000 0 0 +-20.5 1000 1000 549 1000 1000 1000 0 0 +-21.0 1000 1000 373 1000 1000 1000 0 0 +-21.5 1000 1000 216 1000 1000 1000 0 0 +-22.0 1000 1000 100 998 1000 1000 0 0 +-22.5 1000 1000 32 998 1000 1000 0 0 +-23.0 1000 1000 12 991 1000 1000 0 0 +-23.5 1000 998 2 958 996 996 2 2 +-24.0 1000 992 0 878 991 991 1 8 +-24.5 1000 986 0 739 981 981 5 14 +-25.0 1000 977 0 533 963 963 14 23 +-25.5 1000 959 0 324 948 948 14 41 +-26.0 1000 930 0 153 921 921 16 70 +-26.5 1000 874 0 51 874 874 12 126 +-27.0 1000 808 0 14 803 803 12 192 +-27.5 1000 716 0 3 688 688 11 284 +-28.0 1000 610 0 1 568 568 9 390 +-28.5 1000 497 0 0 418 418 12 503 +-29.0 1000 399 0 0 293 293 6 601 +-29.5 1000 300 0 0 171 171 6 700 +-30.0 1000 243 0 0 103 103 8 757 diff --git a/lib/ftrsd/ftrsd_paper/stats_1.0 b/lib/ftrsd/ftrsd_paper/stats_1.0 new file mode 100644 index 000000000..9a9d530d7 --- /dev/null +++ b/lib/ftrsd/ftrsd_paper/stats_1.0 @@ -0,0 +1,27 @@ + SNR Files Sync BM FT Hint Total False BadSync +-------------------------------------------------------- +-18.0 1000 998 917 998 998 998 1 2 +-18.5 1000 998 824 998 998 998 0 2 +-19.0 1000 999 695 999 999 999 0 1 +-19.5 1000 999 504 999 999 999 0 1 +-20.0 1000 1000 300 1000 1000 1000 0 0 +-20.5 1000 1000 148 1000 1000 1000 0 0 +-21.0 1000 1000 56 1000 1000 1000 0 0 +-21.5 1000 1000 10 1000 1000 1000 0 0 +-22.0 1000 999 3 995 999 999 0 1 +-22.5 1000 998 0 972 998 998 0 2 +-23.0 1000 997 0 899 993 993 4 3 +-23.5 1000 996 0 758 990 990 6 4 +-24.0 1000 990 0 545 980 980 10 10 +-24.5 1000 981 0 305 969 969 12 19 +-25.0 1000 964 0 128 949 949 17 36 +-25.5 1000 930 0 43 916 916 19 70 +-26.0 1000 870 0 15 850 850 14 130 +-26.5 1000 810 0 4 780 780 11 190 +-27.0 1000 737 0 0 673 673 13 263 +-27.5 1000 632 0 0 531 531 7 368 +-28.0 1000 522 0 0 366 366 11 478 +-28.5 1000 426 0 0 243 243 15 574 +-29.0 1000 332 0 0 150 150 9 668 +-29.5 1000 260 0 0 64 64 10 740 +-30.0 1000 209 0 0 35 35 10 791