mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-09-19 19:56:33 -04:00
d6cf422315
smaller files, by section and sub-section. Also extensive editing up through section 7. Sections 6.2, 8, and beyond definitely need work. Other polishing is also desirable, and maybe also some additions and/or changes. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3656 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
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.
|