SVN r8748

This commit is contained in:
Jordan Sherer
2018-06-14 21:27:34 -04:00
parent 419c039d08
commit 4f1fe4fc94
581 changed files with 69338 additions and 39836 deletions
@@ -1,33 +0,0 @@
make-pchk ex-ham7a.pchk 3 7 0:0 0:3 0:4 0:5 1:1 1:3 1:4 1:6 2:2 2:4 2:5 2:6
make-gen ex-ham7a.pchk ex-ham7a.gen dense
Number of 1s per check in Inv(A) X B is 3.0
transmit 7x100000 ex-ham7a.rec 1 awgn 0.5
Transmitted 700000 bits
# DECODE BY ENUMERATION TO MINIMIZE BLOCK ERROR PROBABILITY
decode ex-ham7a.pchk ex-ham7a.rec ex-ham7a.dec-blk awgn 0.5 \
enum-block ex-ham7a.gen
Decoded 100000 blocks, 100000 valid. Average 16.0 iterations, 2% bit changes
verify ex-ham7a.pchk ex-ham7a.dec-blk ex-ham7a.gen
Block counts: tot 100000, with chk errs 0, with src errs 186, both 0
Bit error rate (on message bits only): 7.950e-04
# DECODE BY ENUMERATION TO MINIMIZE BIT ERROR PROBABILITY
decode ex-ham7a.pchk ex-ham7a.rec ex-ham7a.dec-bit awgn 0.5 \
enum-bit ex-ham7a.gen
Decoded 100000 blocks, 99988 valid. Average 16.0 iterations, 2% bit changes
verify ex-ham7a.pchk ex-ham7a.dec-bit ex-ham7a.gen
Block counts: tot 100000, with chk errs 12, with src errs 186, both 7
Bit error rate (on message bits only): 7.775e-04
# DECODE BY PROBABILITY PROPAGATION
decode ex-ham7a.pchk ex-ham7a.rec ex-ham7a.dec-prp awgn 0.5 \
prprp 200
Decoded 100000 blocks, 99927 valid. Average 0.3 iterations, 2% bit changes
verify ex-ham7a.pchk ex-ham7a.dec-prp ex-ham7a.gen
Block counts: tot 100000, with chk errs 73, with src errs 276, both 52
Bit error rate (on message bits only): 1.290e-03
@@ -0,0 +1,155 @@
=== AP Decoding
The _WSJT-X_ decoders for JT65, QRA64, and FT8 include optional
procedures that use naturally accumulating information during a
minimal QSO. This _a priori_ (AP) information increases sensitivity
of the decoder by up to 4 dB, at the cost of a slightly higher rate of
false decodes.
For example: when you decide to answer a CQ, you already know your own
callsign and that of your potential QSO partner. The software
therefore "`knows`" what to expect for 57 of the 72 message bits (28
bits for each of two callsigns, 1 bit for message type) in the next
received message. The decoder's task can thus be reduced to
determining the remaining 15 bits of the message and ensuring that the
resulting solution is reliable.
AP decoding starts by setting AP bits to the hypothesized values, as
if they had been received correctly. We then determine whether the
remaining message and parity bits are consistent with the hypothesized
AP bits, with a specified level of confidence. Successful AP decodes
are labeled with an end-of-line indicator of the form `aP`, where `P`
is one of the single-digit AP decoding types listed in Table 1. For
example, `a2` indicates that the successful decode used MyCall as
hypothetically known information.
[[FT8_AP_INFO_TABLE]]
.FT8 AP information types
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|===============================================
|aP | Message components
|a1 | CQ &#160; &#160; ? &#160; &#160; ?
|a2 | MyCall &#160; &#160; ? &#160; &#160; ?
|a3 | MyCall DxCall &#160; &#160; ?
|a4 | MyCall DxCall RRR
|a5 | MyCall DxCall 73
|a6 | MyCall DxCall RR73
|===============================================
If a codeword is found that is judged to have high (but not
overwhelmingly high) probability of being correct, a `?` character is
appended when the decoded message is displayed. To avoid misleading
spots of occasional false decodes, messages so marked are not
forwarded to {pskreporter}.
Table 2 lists the six possible QSO states that are tracked by the
_WSJT-X_ auto-sequencer, along with the type of AP decoding that would
be attempted in each state.
[[FT8_AP_DECODING_TYPES_TABLE]]
.FT8 AP decoding types for each QSO state
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|===========================================
|State |AP type
|CALLING STN | 2, 3
|REPORT | 2, 3
|ROGER_REPORT | 3, 4, 5, 6
|ROGERS | 3, 4, 5, 6
|SIGNOFF | 3, 1, 2
|CALLING CQ | 1, 2
|===========================================
Decoding with _a priori_ information behaves slightly differently
in JT65. Some details are provided in Tables 3 and 4.
[[JT65_AP_INFO_TABLE]]
.JT65 AP information types
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|===============================================
|aP | Message components
|a1 | CQ &#160; &#160; ? &#160; &#160; ?
|a2 | MyCall &#160; &#160; ? &#160; &#160; ?
|a3 | MyCall DxCall &#160; &#160; ?
|a4 | MyCall DxCall RRR
|a5 | MyCall DxCall 73
|a6 | MyCall DxCall DxGrid
|a7 | CQ DxCall DxGrid
|===============================================
[[JT65_AP_DECODING_TYPES_TABLE]]
.JT65 AP decoding types for each QSO state
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|===========================================
|State |AP type
|CALLING STN | 2, 3, 6, 7
|REPORT | 2, 3
|ROGER_REPORT | 3, 4, 5
|ROGERS | 3, 4, 5
|SIGNOFF | 2, 3, 4, 5
|CALLING CQ | 1, 2, 6
|===========================================
=== Decoded Lines
Displayed information accompanying decoded messages generally includes UTC,
signal-to-noise ratio in dB, time offset DT in seconds, and
audio frequency in Hz. Some modes include additional information such
as frequency offset from nominal (DF), frequency drift (Drift or F1),
or distance (km or mi).
There may also be some cryptic characters with special meanings
summarized in the following Table:
[[DECODED_LINES_TABLE]]
.Notations used on decoded text lines
[width="50%",cols="h,3*^",frame=topbot,options="header"]
|===========================================
|Mode |Mode character|Sync character|End of line information
|FT8 | ~ | | ? &#160; aP
|JT4 | $ | *, # | f, fN, dNC
|JT9 | @ | |
|JT65 | # | |
|JT65 VHF| # | *, # | f, fN, dNC
|QRA64 | : | * | R
|ISCAT | | * | M N C T
|MSK144 | & | | N H E
|===========================================
Sync character::
`*` - Normal sync +
`#` - Alternate sync
End of line information::
`?` - Decoded with lower confidence +
`a` - Decoded with aid of some a priori (AP) information +
`C` - Confidence indicator [ISCAT and Deep Search; (0-9,*)] +
`d` - Deep Search algorithm +
`E` - Size of MSK eye diagram opening - if negative, the eye is closed +
`f` - Franke-Taylor or Fano algorithm +
`H` - Number of bit errors corrected +
`M` - Message length (characters) +
`N` - Number of Rx intervals or frames averaged +
`P` - Number indicating type of AP information (Table 1, above) +
`R` - Return code from QRA64 decoder +
`T` - Length of analyzed region (s)
Table 6 below shows the meaning of the return codes R in QRA64 mode.
[[QRA64_AP_INFO_TABLE]]
.QRA64 AP return codes
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|===============================================
|rc | Message components
|0 | ? &#160; &#160; ? &#160; &#160; ?
|1 | CQ &#160; &#160; ? &#160; &#160; ?
|2 | CQ &#160; &#160; ?
|3 | MyCall &#160; &#160; ? &#160; &#160; ?
|4 | MyCall &#160; &#160; ?
|5 | MyCall DxCall &#160; &#160; ?
|6 | ? &#160; &#160; DxCall &#160; &#160; ?
|7 | ? &#160; &#160; DxCall
|8 | MyCall DxCall DxGrid
|9 | CQ DxCall &#160; &#160; ?
|10 | CQ DxCall
|11 | CQ DxCall DxGrid
|===============================================
@@ -1,51 +0,0 @@
128
48
8
1 17 34 51 66 81 99 113
2 18 35 50 67 82 100 114
3 19 36 52 68 82 101 115
2 20 36 51 69 83 102 116
4 19 37 53 66 84 103 117
5 21 38 54 70 85 92 114
6 22 39 55 66 85 96 118
7 23 32 56 71 86 103 119
8 20 40 55 72 86 104 120
9 19 41 57 73 87 105 121
10 24 36 56 74 88 106 122
10 17 33 47 75 89 107 119
11 21 42 51 76 87 108 123
1 25 40 58 74 84 109 124
12 22 42 49 77 90 110 122
13 26 43 59 68 89 104 113
13 22 44 57 75 91 106 125
12 23 37 46 78 88 109 113
3 27 34 60 65 87 111 126
6 27 45 61 79 89 98 114
14 28 34 62 72 92 107 125
8 27 42 59 71 92 112 117
15 20 46 57 79 93 101 117
9 29 45 62 74 94 108 127
8 30 38 63 73 95 110 125
16 29 47 64 69 96 110 128
16 23 48 63 76 94 111 121
7 25 39 52 70 97 108 116
4 26 45 63 67 83 90 126
15 28 39 50 76 88 103 115
15 26 33 58 65 97 102 127
14 31 47 52 77 81 93 121
14 24 37 61 71 82 99 116
4 31 40 54 80 91 107 122
5 32 41 58 77 98 111 120
9 18 49 65 79 85 104 123
10 30 43 60 69 84 112 123
1 18 43 48 73 91 98 119
3 21 46 64 67 86 112 118
5 24 48 55 75 93 105 128
2 32 44 62 80 95 99 124
16 28 41 59 80 83 100 118
11 33 35 53 72 96 109 115
11 25 44 60 78 90 100 128
6 31 35 56 70 95 102 126
12 17 50 54 68 94 106 120
13 29 38 53 78 97 105 124
7 30 49 61 64 81 101 127
@@ -0,0 +1,23 @@
parameter (NN=162)
parameter (NSPS0=8192) !Samples per symbol at 12000 S/s
parameter (NDOWN=32)
parameter (NSPS=NSPS0/NDOWN)
parameter (NZ=NSPS*NN) !Samples in waveform at 12000 S/s
parameter (NZ0=NSPS0*NN) !Samples in waveform at 375 S/s
parameter (NMAX=120*12000) !Samples in waveform at 375 S/s
! Define the sync vector:
integer*1 sync(162)
data sync/ &
1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0, &
0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,0,1,0,1, &
0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,0,0,0,1, &
1,0,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1, &
0,0,1,0,1,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0, &
0,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1,0,0,1,1, &
0,1,0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,0,1,1, &
0,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,1,1,0, &
0,0/