mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-09-19 19:56:33 -04:00
40 lines
1.8 KiB
Plaintext
40 lines
1.8 KiB
Plaintext
|
// Status=review
|
|||
|
.Algorithms and Source Code
|
|||
|
|
|||
|
- For those wishing to study the program’s algorithms and source code,
|
|||
|
perhaps with an eye toward future improvements, the blocks are labeled
|
|||
|
here with the names of functional procedures in the code:
|
|||
|
|
|||
|
.Block Steps
|
|||
|
[width="80%",cols="<2,60",options="header",valign="middle"]
|
|||
|
|========
|
|||
|
|Block/Step|Functional Procedure
|
|||
|
|sync9:|Use sync symbols to find candidate JT9 signals in the specified frequency range. +
|
|||
|
Then, at the frequency of each plausible candidate
|
|||
|
|downsam9:|Mix, filter and down-sample to 16 complex samples/symbol
|
|||
|
|peakdt9:|Using sync symbols, time-align to start of JT9 symbol sequence
|
|||
|
|afc9:|Measure frequency offset and any possible drift
|
|||
|
|twkfreq:|Remove frequency offset and drift
|
|||
|
|symspec2:|Compute 8-bin spectra for 69 information-carrying symbols, using the +
|
|||
|
time- and frequency-aligned data transform to yield 206 single-bit soft symbols
|
|||
|
|interleave9:|Remove single-bit symbol interleaving imposed at the transmitter
|
|||
|
|decode9:|Retrieve a 72-bit user message using the sequential ``Fano'' algorithm +
|
|||
|
for convolutional codes
|
|||
|
|unpackmsg:|Unpack a human-readable message from the 72-bit compressed format
|
|||
|
|========
|
|||
|
|
|||
|
:shannonfano: http://en.wikipedia.org/wiki/Shannon%E2%80%93Fano_coding[ Fano Algorithm]
|
|||
|
|
|||
|
- With marginal or unrecognizable signals the sequential {shannonfano}
|
|||
|
can take exponentially long times to completion.
|
|||
|
|
|||
|
- If the first step in the above sequence finds many seemingly worthy
|
|||
|
candidate signals, and if many of them turn out to be undecodable, the
|
|||
|
decoding loop could take a very long time.
|
|||
|
|
|||
|
- For this reason the decode9 step is programmed to “time out” and
|
|||
|
report failure if it takes too long.
|
|||
|
|
|||
|
- The choice Fast | Normal | Deepest on the Decode menu provides a
|
|||
|
three-step control of this timeout limit.
|