WSJT-X/doc/user_guide/en/measurement_tools.adoc
Bill Somerville 638b021216 Merged from trunk (r8085 thru r8170 inc.):
------------------------------------------------------------------------
r8085 | k9an | 2017-09-13 01:46:16 +0100 (Wed, 13 Sep 2017) | 1 line

Open up DT range to +/- 2.5 s for testing.
------------------------------------------------------------------------
r8086 | bsomervi | 2017-09-16 11:12:38 +0100 (Sat, 16 Sep 2017) | 1 line

Do not allow window manager events to close the astronomical data window
------------------------------------------------------------------------
r8087 | bsomervi | 2017-09-16 21:27:05 +0100 (Sat, 16 Sep 2017) | 4 lines

Fix regression in ADIF parser that caused failure with missing header

Improved  robustness  of  the  ADIF parser  and  re-factored  to  more
idiomatic C++.
------------------------------------------------------------------------
r8088 | bsomervi | 2017-09-16 21:27:13 +0100 (Sat, 16 Sep 2017) | 1 line

Update band limits as per ADIF 3.0.6 specification
------------------------------------------------------------------------
r8089 | bsomervi | 2017-09-16 21:27:20 +0100 (Sat, 16 Sep 2017) | 1 line

Use a single definition of band limits (Bands class)
------------------------------------------------------------------------
r8090 | bsomervi | 2017-09-16 21:27:33 +0100 (Sat, 16 Sep 2017) | 5 lines

Add button to the decoded text window context menu to erase the contents

Right-click  either decoded  text window  to erase  its contents.  The
"Erase" button on the main UI  still operates as before although it is
implemented differently now.
------------------------------------------------------------------------
r8091 | bsomervi | 2017-09-16 23:20:51 +0100 (Sat, 16 Sep 2017) | 1 line

Correct the actions taken when clearing decodes windows
------------------------------------------------------------------------
r8092 | bsomervi | 2017-09-16 23:20:59 +0100 (Sat, 16 Sep 2017) | 8 lines

Restore functionality of sending .WAV playback decodes to UDP

Extended  the Decode  and WSPRDecode  UDP messages  with an  "off air"
boolean  field indicating  the  decode  was derived  from  a .WAV  fle
playback rather than an on air reception.

Extended reference applications to use  the new off air decode message
field.
------------------------------------------------------------------------
r8093 | k9an | 2017-09-17 16:34:32 +0100 (Sun, 17 Sep 2017) | 1 line

Experimental tweak to FT8 decoder. Try a second symbol metric if
the first one fails - currently configured to use max-amplitude
and max-log.
------------------------------------------------------------------------
r8094 | k9an | 2017-09-17 21:43:30 +0100 (Sun, 17 Sep 2017) | 1 line

Restore the use of max-amplitude for ap passes.
------------------------------------------------------------------------
r8095 | k1jt | 2017-09-18 16:42:14 +0100 (Mon, 18 Sep 2017) | 2 lines

Allow specialized use of "x2 Tone Spacing" in FT8 mode.

------------------------------------------------------------------------
r8096 | k1jt | 2017-09-18 16:47:29 +0100 (Mon, 18 Sep 2017) | 2 lines

Allow X2 tone spacing also in JT9 (slow) modes.

------------------------------------------------------------------------
r8097 | k1jt | 2017-09-18 21:42:18 +0100 (Mon, 18 Sep 2017) | 2 lines

Change CRLF line endings to *nix style.

------------------------------------------------------------------------
r8098 | k1jt | 2017-09-19 17:04:10 +0100 (Tue, 19 Sep 2017) | 2 lines

Add a missing step to description of the Frequency Calibration procedure.

------------------------------------------------------------------------
r8099 | k1jt | 2017-09-20 17:31:04 +0100 (Wed, 20 Sep 2017) | 1 line

Insert a link to FT8_Operating_Tips.pdf.
------------------------------------------------------------------------
r8100 | k1jt | 2017-09-20 20:11:04 +0100 (Wed, 20 Sep 2017) | 3 lines

As an experiment, move "NA VHF Contest Mode" checkbox to main screen and
query operator if d>10000 km.

------------------------------------------------------------------------
r8101 | k1jt | 2017-09-20 20:19:47 +0100 (Wed, 20 Sep 2017) | 2 lines

Correct a tool-tip typo.

------------------------------------------------------------------------
r8102 | bsomervi | 2017-09-22 13:31:01 +0100 (Fri, 22 Sep 2017) | 1 line

UI tweaks to improve portability between platforms and font size changes
------------------------------------------------------------------------
r8103 | bsomervi | 2017-09-22 16:36:24 +0100 (Fri, 22 Sep 2017) | 5 lines

Extend UDP Reply message with keyboard modifiers

This allows UDP servers to  emulate keyboard modified double-clicks on
decoded messages,  E.g. ALT+double-click for  replying to a CQ  or QRZ
call without changing ones Tx frequency offset.
------------------------------------------------------------------------
r8104 | bsomervi | 2017-09-22 16:49:42 +0100 (Fri, 22 Sep 2017) | 1 line

Updated AD1C cty.dat file (21st Sept 2017)
------------------------------------------------------------------------
r8105 | k1jt | 2017-09-22 18:38:51 +0100 (Fri, 22 Sep 2017) | 2 lines

Another attempt at eliminating confusion when NA VHF Contest Mode is in use.

------------------------------------------------------------------------
r8106 | k9an | 2017-09-22 21:36:52 +0100 (Fri, 22 Sep 2017) | 1 line

Make sure that fastGrph is properly initialized.
------------------------------------------------------------------------
r8107 | bsomervi | 2017-09-22 23:08:41 +0100 (Fri, 22 Sep 2017) | 1 line

Improve performance of the UDP reference application message_aggregator
------------------------------------------------------------------------
r8108 | bsomervi | 2017-09-22 23:08:49 +0100 (Fri, 22 Sep 2017) | 1 line

Fix a regression in processing incoming Reply UDP messages
------------------------------------------------------------------------
r8109 | bsomervi | 2017-09-22 23:08:56 +0100 (Fri, 22 Sep 2017) | 4 lines

Better handling of worked before and country name display

Appended text is  added at a fixed column unless  the message overlaps
in which case the appended information floats to thr right.
------------------------------------------------------------------------
r8110 | bsomervi | 2017-09-22 23:09:04 +0100 (Fri, 22 Sep 2017) | 4 lines

Restore printing of MSK144 decode quality information

Now that a  way of dealing with worked before  and country information
without losing this information has been found.
------------------------------------------------------------------------
r8111 | bsomervi | 2017-09-22 23:09:11 +0100 (Fri, 22 Sep 2017) | 5 lines

Fix an issue with truncated free text messages being generated

This is an edge case when working  a call like RI9F/GM4WJS where it is
not possible to confirm receipt of the full compound callsign in a Tx5
73 message as "RI9F/GM4WJS 73" is 14 characters.
------------------------------------------------------------------------
r8112 | bsomervi | 2017-09-23 19:09:29 +0100 (Sat, 23 Sep 2017) | 1 line

Tidy up some ugly code
------------------------------------------------------------------------
r8113 | bsomervi | 2017-09-23 19:09:37 +0100 (Sat, 23 Sep 2017) | 1 line

Clean up some main window UI layout
------------------------------------------------------------------------
r8114 | k9an | 2017-09-23 20:39:42 +0100 (Sat, 23 Sep 2017) | 1 line

Comment out some diagnostic writes.
------------------------------------------------------------------------
r8115 | k9an | 2017-09-23 20:56:45 +0100 (Sat, 23 Sep 2017) | 1 line

Add some text for section 13.3 of the User Guide.
------------------------------------------------------------------------
r8116 | k9an | 2017-09-23 21:01:31 +0100 (Sat, 23 Sep 2017) | 1 line

Minor change to new_features.adoc.
------------------------------------------------------------------------
r8117 | bsomervi | 2017-09-23 23:02:24 +0100 (Sat, 23 Sep 2017) | 1 line

Minor additions to MSK144 phase eq docs
------------------------------------------------------------------------
r8118 | k9an | 2017-09-23 23:32:06 +0100 (Sat, 23 Sep 2017) | 1 line

Fix up Table 2 caption.
------------------------------------------------------------------------
r8119 | bsomervi | 2017-09-24 22:14:10 +0100 (Sun, 24 Sep 2017) | 1 line

Fix issues processing free text 73 messages
------------------------------------------------------------------------
r8120 | k1jt | 2017-09-25 18:02:52 +0100 (Mon, 25 Sep 2017) | 3 lines

First tests of "RR73 NOW ..." and "NIL NOW ..." (i3bit=1, 2) messages in FT8.
DO NOT USE THIS FEATURE ON THE AIR!

------------------------------------------------------------------------
r8121 | k1jt | 2017-09-25 20:21:25 +0100 (Mon, 25 Sep 2017) | 2 lines

Make bDXped a member variable, default to false.

------------------------------------------------------------------------
r8122 | bsomervi | 2017-09-26 00:38:19 +0100 (Tue, 26 Sep 2017) | 1 line

Fix regression in handling double-clicked CQ and QRZ calls
------------------------------------------------------------------------
r8123 | bsomervi | 2017-09-26 00:38:27 +0100 (Tue, 26 Sep 2017) | 1 line

Fix a regression handling compound calls in 73 messages
------------------------------------------------------------------------
r8124 | k1jt | 2017-09-27 13:26:33 +0100 (Wed, 27 Sep 2017) | 2 lines

Additions to Section 13.3 of WSJT-X User Guide: "Phase Equalkization".

------------------------------------------------------------------------
r8125 | k1jt | 2017-09-27 13:39:50 +0100 (Wed, 27 Sep 2017) | 31 lines

Experimental new behavior for "Lock Tx=Rx" and for clicking on waterfall and decoded text.

1. Checkbox "Lock Tx=Rx" is now labeled "Lock Tx Freq", and its meaning is
quite different.  If checked, the audio Tx frequency cannot be changed.
It's like the "Lock" function on some transceivers.

2. Clicking on the Wide Graph waterfall and on lines of decoded text now
behave as follows:

Click on       Action
---------------------------------------------------------------------
Waterfall:     Click to set Rx frequency
               Shift-click to set Tx frequency
               Ctrl-click to set Rx and Tx frequencies
               If Lock Tx Freq is checked, Tx freq does not move
               Double-click to set Rx frequency and decode there

Decoded Text:  Double-click to copy transmitting callsign to DX Call
               and locator to DX Grid; change Rx frequency to decoded
               signal's frequency; generate standard messages.
               Tx frequency is not changed unless Ctrl is held down
               and Lock Tx Freq not checked.

If this experimental behavior is adopted, some descriptions in the
User Guide and Special Mouse Commands will need to be updated.

3. Starting to implement a new function on the Tools menu,
"Solve for calibration parameters".  This is not yet finished;
DO NOT USE in its present form.


------------------------------------------------------------------------
r8126 | k1jt | 2017-09-27 13:50:21 +0100 (Wed, 27 Sep 2017) | 2 lines

Add missing routine.

------------------------------------------------------------------------
r8127 | k1jt | 2017-09-28 02:35:09 +0100 (Thu, 28 Sep 2017) | 1 line

Functional 'Solve for calibration parameters' on Tools menu.
------------------------------------------------------------------------
r8128 | k1jt | 2017-09-28 13:30:52 +0100 (Thu, 28 Sep 2017) | 1 line

dummy
------------------------------------------------------------------------
r8129 | k9an | 2017-09-28 16:00:57 +0100 (Thu, 28 Sep 2017) | 1 line

Correct a typo in the docs.
------------------------------------------------------------------------
r8130 | k1jt | 2017-09-28 16:05:41 +0100 (Thu, 28 Sep 2017) | 1 line

Minor edits in User Guide.
------------------------------------------------------------------------
r8131 | k1jt | 2017-09-28 16:09:46 +0100 (Thu, 28 Sep 2017) | 3 lines

Fix two ways that Loxk Tx Freq could be circumvented; display Echo Graph
automatically when Echo mode is started; clean up display of FreqCal parameters.

------------------------------------------------------------------------
r8132 | k1jt | 2017-09-28 16:46:36 +0100 (Thu, 28 Sep 2017) | 2 lines

Clean up the display of "Controls" checkbox on Wide Graph.

------------------------------------------------------------------------
r8133 | k1jt | 2017-09-28 16:55:24 +0100 (Thu, 28 Sep 2017) | 2 lines

Display "NIL NOW ", etc., only for test cases.

------------------------------------------------------------------------
r8134 | k1jt | 2017-09-28 20:51:04 +0100 (Thu, 28 Sep 2017) | 2 lines

Add some FreqCal info to User Guide.

------------------------------------------------------------------------
r8135 | k1jt | 2017-09-29 00:34:13 +0100 (Fri, 29 Sep 2017) | 1 line

Move 'Controls' checkbox a few pixels to the right.
------------------------------------------------------------------------
r8136 | bsomervi | 2017-09-29 11:46:43 +0100 (Fri, 29 Sep 2017) | 1 line

Fix accidental regression in UDP Reply message handling
------------------------------------------------------------------------
r8137 | bsomervi | 2017-09-29 11:57:22 +0100 (Fri, 29 Sep 2017) | 1 line

Minor clarification for the User Guide waterfall controls description
------------------------------------------------------------------------
r8138 | k1jt | 2017-09-29 14:27:55 +0100 (Fri, 29 Sep 2017) | 2 lines

Minor change to make shift/ctrl double-click logic more consistent.

------------------------------------------------------------------------
r8139 | k1jt | 2017-09-29 14:47:26 +0100 (Fri, 29 Sep 2017) | 1 line

Remove a diagnostic qDebug().
------------------------------------------------------------------------
r8140 | k1jt | 2017-09-29 14:59:16 +0100 (Fri, 29 Sep 2017) | 2 lines

Additional instructions for using the FreqCal procedure.

------------------------------------------------------------------------
r8141 | k1jt | 2017-09-29 17:53:28 +0100 (Fri, 29 Sep 2017) | 2 lines

Many updates to User Guide, mostly to reflect changes in "click behavior".

------------------------------------------------------------------------
r8142 | k1jt | 2017-09-29 17:53:57 +0100 (Fri, 29 Sep 2017) | 1 line

Update mouse_sommands.txt.
------------------------------------------------------------------------
r8143 | k1jt | 2017-09-29 17:58:05 +0100 (Fri, 29 Sep 2017) | 3 lines

Previous commit message should have mentioned a fix to "stdmsg.f90" that was
preventing double-click on a JT65 "OOO" message from populating message fields.

------------------------------------------------------------------------
r8144 | k1jt | 2017-09-29 18:40:30 +0100 (Fri, 29 Sep 2017) | 2 lines

Add an option to enforce simplex operation (moving both Tx and Rx
frequency) when double-clicking on a decoded text line.

------------------------------------------------------------------------
r8145 | k1jt | 2017-09-30 14:56:33 +0100 (Sat, 30 Sep 2017) | 1 line

Fix a regression that prevented double-click on call from working as in r8123.
------------------------------------------------------------------------
r8146 | k1jt | 2017-09-30 18:48:46 +0100 (Sat, 30 Sep 2017) | 21 lines

Another try at optimizing the GUI for simplex and split behavior.  Details below:

1. Checkbox "Double-click on call sets Tx and Rx freqs" has been removed
from the Settings -> General tab.

2. Checkbox "Lock Tx Freq" on main window is relabled "Hold Tx Freq".

3. Behavior now defaults to the "simplex" behavior in use up to code
revision r8123.  In particular, double-clicking on decoded mesages
that do not contain your own call moves both Rx and Tx frequencies.
If the first callsign is your own call, only Rx freq moves.

4. If "Hold Tx Freq" is checked, double-clicking on decoded messages
moves the Rx frequency; Tx frequency is moved only if CTRL was held
down.

5. Clicking on the waterfall moves Rx and Tx frequencies as before:
Rx only on a simple click, Tx only on SHIFT-click, and both on
CTRL-click.  This happens even if "Hold Tx Freq" is checked (which
is why this box is no longer labeled "Lock Tx Freq").

------------------------------------------------------------------------
r8147 | k1jt | 2017-09-30 20:25:01 +0100 (Sat, 30 Sep 2017) | 1 line

Fix behavior with double-click on 'CQ <AA-ZZ> <call> <grid>.'
------------------------------------------------------------------------
r8148 | k1jt | 2017-10-01 13:35:43 +0100 (Sun, 01 Oct 2017) | 1 line

Correct an improper disabling of TxFreqSpinBox.
------------------------------------------------------------------------
r8149 | k1jt | 2017-10-01 15:03:16 +0100 (Sun, 01 Oct 2017) | 1 line

Update mouse_commands.txt and tool tips.
------------------------------------------------------------------------
r8150 | k1jt | 2017-10-01 15:58:10 +0100 (Sun, 01 Oct 2017) | 1 line

Update 'blank line' band ID at 4*TRperiod/5.
------------------------------------------------------------------------
r8151 | bsomervi | 2017-10-01 22:43:59 +0100 (Sun, 01 Oct 2017) | 1 line

Fix an invalid iterator increment when there are no FreqCal frequencies
------------------------------------------------------------------------
r8152 | bsomervi | 2017-10-01 22:44:07 +0100 (Sun, 01 Oct 2017) | 1 line

Fix cty.dat lookups that were not honouring exact match flags
------------------------------------------------------------------------
r8153 | bsomervi | 2017-10-01 22:44:15 +0100 (Sun, 01 Oct 2017) | 6 lines

Add "Apply" button to calibration solution message box

Make calibration  solution application iterative so  that calibrations
can be applied sequentially if desired.

Tidy up calibration solution messages boxes and make i18n friendly.
------------------------------------------------------------------------
r8154 | k1jt | 2017-10-02 14:49:37 +0100 (Mon, 02 Oct 2017) | 2 lines

Update User Guide and "mouse_commands".

------------------------------------------------------------------------
r8155 | k1jt | 2017-10-02 15:15:15 +0100 (Mon, 02 Oct 2017) | 2 lines

Special DXpedition messages must not have the FreeText bit set.

------------------------------------------------------------------------
r8156 | k1jt | 2017-10-02 19:27:08 +0100 (Mon, 02 Oct 2017) | 2 lines

Add more on Copyright protections.

------------------------------------------------------------------------
r8157 | k1jt | 2017-10-02 19:33:17 +0100 (Mon, 02 Oct 2017) | 2 lines

Update the list of keyboard shortcuts.

------------------------------------------------------------------------
r8158 | k1jt | 2017-10-02 19:35:06 +0100 (Mon, 02 Oct 2017) | 2 lines

Minor edits.

------------------------------------------------------------------------
r8159 | k1jt | 2017-10-03 02:23:24 +0100 (Tue, 03 Oct 2017) | 1 line

Correct a misspelling; add quote marks; push 'About' to bottom of Tools menu.
------------------------------------------------------------------------
r8160 | k1jt | 2017-10-03 16:59:47 +0100 (Tue, 03 Oct 2017) | 2 lines

Add KA9Q to the copyright notice.

------------------------------------------------------------------------
r8161 | k1jt | 2017-10-04 14:14:51 +0100 (Wed, 04 Oct 2017) | 2 lines

Update an image; fix a typo.

------------------------------------------------------------------------
r8162 | k1jt | 2017-10-05 19:27:34 +0100 (Thu, 05 Oct 2017) | 2 lines

Fix a bug involving "firstcall contains mycall" but not equal to mycall.

------------------------------------------------------------------------
r8163 | bsomervi | 2017-10-06 17:18:17 +0100 (Fri, 06 Oct 2017) | 1 line

Add an accessor method to Configuration to get the current calibration parameters
------------------------------------------------------------------------
r8164 | bsomervi | 2017-10-06 17:18:25 +0100 (Fri, 06 Oct 2017) | 5 lines

Rename the fmt.all calibration measurements file after accepting a solution

This  allows those  who want  to keep  their calibration  measurements
after finding a solution to  calibrate their station. The fmt.all file
used to find and accept a solution is renamed to fmt.bak.
------------------------------------------------------------------------
r8165 | k1jt | 2017-10-13 15:36:10 +0100 (Fri, 13 Oct 2017) | 2 lines

Update the Tool Tip displayed for Frequency Calibration parameters.

------------------------------------------------------------------------
r8166 | bsomervi | 2017-10-13 23:34:10 +0100 (Fri, 13 Oct 2017) | 1 line

Fix an issue with editing IARU regions in the working frequencies table
------------------------------------------------------------------------
r8167 | bsomervi | 2017-10-13 23:34:21 +0100 (Fri, 13 Oct 2017) | 32 lines

Improved frequency calibration

Measure check  box added to FreqCal  mode, check to record  to fmt.all
with  current  calibration correction  disabled,  uncheck  to see  the
impact of the current calibration parameters.

The  fmt.all  file  is  now  optionally  renamed  to  fmt.bak  when  a
calibration solution  is accepted.  This allows  users to  preserve an
fmt.all file that they might have edited for best fit.

A calibration procedure might proceed thus:-

1) select FreqCal mode,

2) step through suggested  calibration test frequencies deleting those
that have no usable signal,

3) enable "Menu->Tools->Execute frequency calibration cycle" and check
that suitable signals are present,

4) select a suitable FTol and T/R period,

5) check  "Measure" and let the  cycle complete a few  times to gather
data,

6) uncheck "Measure" to complete the data capture, optionally tidy the
fmt.all file with your favourite editor,

7) push "Menu->Tools->Solve for  calibration parameters" and accept if
you like what you see,

8) sit back and admire your accurately frequency calibrated station.
------------------------------------------------------------------------
r8168 | bsomervi | 2017-10-13 23:34:36 +0100 (Fri, 13 Oct 2017) | 4 lines

Generic handling of keyboard modifiers via UDP and double-clicks

This  change opens  up  all  keyboard modifier  options  to UDP  Reply
messages as well as double-clicks of decoded messages.
------------------------------------------------------------------------
r8169 | bsomervi | 2017-10-13 23:34:48 +0100 (Fri, 13 Oct 2017) | 3 lines

User guide updates for frequency calibration mode

Also some instances of non-italicized WSJT-X fixed.
------------------------------------------------------------------------
r8170 | k9an | 2017-10-14 02:02:38 +0100 (Sat, 14 Oct 2017) | 1 line

Don't open the false_decodes.txt file.
------------------------------------------------------------------------



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx-1.8@8171 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-10-14 09:09:10 +00:00

227 lines
11 KiB
Plaintext

=== Frequency Calibration
Many _WSJT-X_ capabilities depend on signal-detection bandwidths no
more than a few Hz. Frequency accuracy and stability are therefore
unusually important. We provide tools to enable accurate frequency
calibration of your radio, as well as precise frequency measurement of
on-the-air signals. The calibration procedure works by automatically
cycling your CAT-controlled radio through a series of preset
frequencies of carrier-based signals at reliably known frequencies,
measuring the error in dial frequency for each signal.
You will probably find it convenient to define and use a special
<<CONFIG-MENU,Configuration>> dedicated to frequency calibration.
Then complete the following steps, as appropriate for your system.
- Switch to FreqCal mode
- In the _Working Frequencies_ box on the *Settings -> Frequencies*
tab, delete any default frequencies for *FreqCal* mode that are not
relevant for your location. You may want to replace some of them with
reliably known frequencies receivable at your location.
TIP: We find major-city AM broadcast stations generally serve well as
frequency calibrators at the low frequency end of the spectrum. In
North America we also use the standard time-and-frequency broadcasts
of WWV at 2.500, 5.000, 10.000, 15.000, and 20.000 MHz, and CHU at
3.330, 7.850, and 14.670 MHz. Similar shortwave signals are available
in other parts of the world.
- In most cases you will want to start by deleting any existing file
`fmt.all` in the directory where your log files are kept.
- To cycle automatically through your chosen list of calibration
frequencies, check *Execute frequency calibration cycle* on the
*Tools* menu. _WSJT-X_ will spend 30 seconds at each
frequency. Initially no measurement data is saved to the `fmt.all`
file although it is displayed on screen, this allows you to check you
current calibration parameters.
- During the calibration procedure, the radio's USB dial frequency is
offset 1500 Hz below each *FreqCal* entry in the default frequencies
list. As shown in the screen shot below, detected signal carriers
therefore appear at about 1500 Hz in the _WSJT-X_ waterfall.
- To start a measurement session check the *Measure* option and let
the calibration cycle run for at least one complete sequence. Note
that, while measuring, any existing calibration parameters are
automatically disabled so you may have to increase the *FTol* range if
your rig is off freqeuncy by more than a few Hertz in order to capture
valid measurements.
image::FreqCal.png[align="left",alt="FreqCal"]
With modern synthesized radios, small measured offsets from 1500 Hz
will exhibit a straight-line dependence on frequency. You can
approximate the calibration of your radio by simply dividing the
measured frequency offset (in Hz) at the highest reliable frequency by
the nominal frequency itself (in MHz). For example, the 20 MHz
measurement for WWV shown above produced a measured tone offset of
24.6 Hz, displayed in the _WSJT-X_ decoded text window. The resulting
calibration constant is 24.6/20=1.23 parts per million. This number
may be entered as *Slope* on the *settings -> Frequencies* tab.
A more precise calibration can be effected by fitting the intercept
and slope of a straight line to the whole sequence of calibration
measurements, as shown for these measurements in the graph plotted
below. Software tools for completing this task are included with the
_WSJT-X_ installation, and detailed instructions for their use are
available at https://physics.princeton.edu/pulsar/k1jt/FMT_User.pdf.
Using these tools and no specialized hardware beyond your
CAT-interfaced radio, you can calibrate the radio to better than 1 Hz
and compete very effectively in the ARRL's periodic Frequency
Measuring Tests.
image::FreqCal_Graph.png[align="left",alt="FreqCal_Graph"]
After running *Execute frequency calibration cycle* at least once with
good results, check and edit the file `fmt.all` in the log directory
and delete any spurious or outlier measurements. The line-fitting
procedure can then be carried out automatically by clicking *Solve for
calibration parameters* on the *Tools* menu. The results will be
displayed as in the following screen shot. Estimated uncertainties
are included for slope and intercept; `N` is the number of averaged
frequency measurements included in the fit, and `StdDev` is the root
mean square deviation of averaged measurements from the fitted
straight line. If the solution seems valid you will be offered an
*Apply* button to push that will automatically set the calibration
parameters in *Settings -> Frequencies -> Frequency Calibration*.
image::FreqCal_Results.png[align="center",alt="FreqCal_Results"]
For a quick visual check of the resulting calibration, stay in
*FreqCal* mode with the *Measure* option cleared. _WSJT-X_ will show
the adjusted results directly on the waterfall and the displayed
records.
=== Reference Spectrum
_WSJT-X_ provides a tool that can be used to determine the detailed
shape of your receiver's passband. Disconnect your antenna or tune to
a quiet frequency with no signals. With _WSJT-X_ running in one of
the slow modes, select *Measure reference spectrum* from the *Tools*
menu. Wait for about a minute and then hit the *Stop* button. A file
named `refspec.dat` will appear in your log directory.
[ ... more to come ... ]
=== Phase Equalization
*Measure phase response* under the *Tools* menu is for advanced MSK144
users. Phase equalization is used to compensate for group-delay
variation across your receiver passband. Careful application of this
facility can reduce intersymbol interference, resulting in improved
decoding sensitivity. If you use a software-defined receiver with
linear-phase filters there is no need to apply phase equalization.
After a frame of received data has been decoded, *Measure phase
response* generates an undistorted audio waveform equal to the one
generated by the transmitting station. Its Fourier transform is then
used as a frequency-dependent phase reference to compare with the
phase of the received frame's Fourier coefficients. Phase differences
between the reference spectrum and received spectrum will include
contributions from the originating station's transmit filter, the
propagation channel, and filters in the receiver. If the received
frame originates from a station known to transmit signals having
little phase distortion (say, a station known to use a properly
adjusted software-defined-transceiver) and if the received signal is
relatively free from multipath distortion so that the channel phase is
close to linear, the measured phase differences will be representative
of the local receiver's phase response.
Complete the following steps to generate a phase equalization curve:
- Record a number of wav files that contain decodable signals from
your chosen reference station. Best results will be obtained when the
signal-to-noise ratio of the reference signals is 10 dB or greater.
- Enter the callsign of the reference station in the DX Call box.
- Select *Measure phase response* from the *Tools* menu, and open each
of the wav files in turn. The mode character on decoded text lines
will change from `&` to `^` while _WSJT-X_ is measuring the phase
response, and it will change back to `&` after the measurement is
completed. The program needs to average a number of high-SNR frames to
accurately estimate the phase, so it may be necessary to process
several wav files. The measurement can be aborted at any time by
selecting *Measure phase response* again to toggle the phase
measurement off.
+
When the measurement is complete _WSJT-X_ will save the measured
phase response in the *Log directory*, in a file with suffix
".pcoeff". The filename will contain the callsign of the reference
station and a timestamp, for example `K0TPP_170923_112027.pcoeff`.
- Select *Equalization tools ...* under the *Tools* menu and click the
*Phase ...* button to view the contents of the *Log directory*. Select
the desired pcoeff file. The measured phase values will be plotted as
filled circles along with a fitted red curve labeled "Proposed". This is
the proposed phase equalization curve. It's a good idea to repeat the
phase measurement several times, using different wav files for each
measurement, to ensure that your measurements are repeatable.
- Once you are satisfied with a fitted curve, push the *Apply* button
to save the proposed response. The red curve will be replaced with a
light green curve labeled "Current" to indicate that the phase
equalization curve is now being applied to the received data. Another
curve labeled "Group Delay" will appear. The "Group Delay" curve shows
the group delay variation across the passband, in ms. Click the
*Discard* button to remove the captured data, leaving only the applied
phase equalization curve and corresponding group delay curve.
- To revert to no phase equalization, push the *Restore Defaults*
button followed by the *Apply* button.
The three numbers printed at the end of each MSK144 decode line can be
used to assess the improvement provided by equalization. These numbers
are: `N` = Number of frames averaged, `H` = Number of hard bit errors
corrected, `E` = Size of MSK eye diagram opening.
Here is a decode of K0TPP obtained while *Measure phase response* was measuring
the phase response:
103900 17 6.5 1493 ^ WA8CLT K0TPP +07 1 0 1.2
The "^" symbol indicates that a phase measurement is being accumulated
but is not yet finished. The three numbers at the end of the line
indicate that one frame was used to obtain the decode, there were no
hard bit errors, and the eye-opening was 1.2 on a -2 to +2
scale. Here's how the same decode looks after phase equalization:
103900 17 6.5 1493 & WA8CLT K0TPP +07 1 0 1.6
In this case, equalization has increased the eye opening from 1.2 to
1.6. Larger positive eye openings are associated with reduced
likelihood of bit errors and higher likelihood that a frame will be
successfully decoded. In this case, the larger eye-opening tells us
that phase equalization was successful, but it is important to note
that this test does not by itself tell us whether the applied phase
equalization curve is going to improve decoding of signals other than
those from the reference station, K0TPP.
It's a good idea to carry out before and after comparisons using a
large number of saved wav files with signals from many different
stations, to help decide whether your equalization curve improves
decoding for most signals. When doing such comparisons, keep in mind
that equalization may cause _WSJT-X_ to successfully decode a frame
that was not decoded before equalization was applied. For this
reason, be sure that the time "T" of the two decodes are the same
before comparing their end-of-line quality numbers.
When comparing before and after decodes having the same "T", keep in
mind that a smaller first number means that decoding has improved,
even if the second and third numbers appear to be "worse". For
example, suppose that the end-of-line quality numbers before
equalization are `2 0 0.2` and after equalization `1 5 -0.5`. These
numbers show improved decoding because the decode was obtained using
only a single frame after equalization whereas a 2-frame average was
needed before equalization. This implies that shorter and/or weaker
pings could be decodable.
NOTE: Further details on phase equalization and examples of fitted
phase curves and eye diagrams can be found in the article on MSK144 by
K9AN and K1JT published in {msk144}.