SVN r8748
This commit is contained in:
@@ -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     ?     ?
|
||||
|a2 | MyCall     ?     ?
|
||||
|a3 | MyCall DxCall     ?
|
||||
|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     ?     ?
|
||||
|a2 | MyCall     ?     ?
|
||||
|a3 | MyCall DxCall     ?
|
||||
|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 | ~ | | ?   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 | ?     ?     ?
|
||||
|1 | CQ     ?     ?
|
||||
|2 | CQ     ?
|
||||
|3 | MyCall     ?     ?
|
||||
|4 | MyCall     ?
|
||||
|5 | MyCall DxCall     ?
|
||||
|6 | ?     DxCall     ?
|
||||
|7 | ?     DxCall
|
||||
|8 | MyCall DxCall DxGrid
|
||||
|9 | CQ DxCall     ?
|
||||
|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/
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user