Use a header format for polynomial coefficients that includes the
valid X range in scaled terms and a count of the number of
coefficients.
Use double precision consistently for polynomial coefficients. This
includes formatting with sufficient DPs when writing to files.
Many changes to the equalization plots, more to come.
Add error handling for reading coefficient, plot and filter
files. This includes being backward compatible for old format
refspec.dat files with no header.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7578 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Moving towards some useful generic plotting templates.
Phase plots are now fixed to +/- Pi range and the phase axis is now in
units of Pi.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7575 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This builds on the static phase compensation in the MSK144 decoder and
the phase analysis and polynomial fitting capabilities also in teh
MSK144 decoder, by allowing captured data to be selected for phase
equalization from the WSJT-X UI.
Reads captured phase compensation curve estimate files containing
fitted polynomial coefficients and measured phase data from MSK144
receptions. Intent is to select a compensation curve that is from a
known transmitter like an SDR which have good phase linearity. Phase
plots and compensation polynomials may be viewed and compared with the
current compensation polynomial. A suitable polynomial can be applied
to be use in all further decoding of MSK144 signals.
Plots of the currently selected polynomial and its modified higher
order terms polynomial which is actually used in equalization (this
plot may be dropped - it is just for kicks at the moment). When a
captured phase analysis file is loaded plots of the measured phase and
the proposed best fit polynomial are shown.
Basic maintenance is also included allowing clearing and loading
captured plots and an option to revert to a flat no equalization
curve.
More to come on this as amplitude equalization is also possible, this
will probably be similar, maybe even plotted on the same graph with
dual axes for phase and amplitude. Amplitude correction from a
measured reference spectrum could be viewed and selected for
equalization for all modes. TBC...
This change also introduces the QCustomPlot 3rd party
widget. Currently this is statically linked from a qcp library built
by the WSJT-X CMake script. This will probably be migrated to a shared
object (DLL) build as a CMake external project, once some CMake script
re-factoring has been completed, which is more in line with the
QCustomPlot author's intentions. This will allow efficient reuse in
other tools shipped with WSJT-X.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7570 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The --config <configuration> (-c for short) command line option can be
used to select an existing configuration at start up. If the
configuration does not exist the last configuration used is selected.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7567 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Because of the way logged QSO times are split and rebuilt in the QSO
logging code the UTC time specification is lost. This change sets them
back to UTC since that is what they are.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7566 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This change is specifically to work around some surprising behaviour
in the Elecraft K3[S] which suffers audio drop outs when null changes
that might effect the internal DSP are processed. This manifests when
a blind mode change is sent through Commander. Here we read the mode
and only subsequently command a mode change if it is not what we
expect. Blind mode changes were preferred with Commander until now
since state queries through Commander are occasionally unreliable.
This issue has been reported to Elecraft so may not be permanent if
they can and will address it in the rig's firmware.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7565 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Commander queues rig control commands and can return stale or invalid
results immediately after state change commands so this change waits a
couple of seconds hoping that Commander gets around to polling the rig
before we read back the state.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7564 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This is no longer necessary as the sample downloader now reverts to
HTTP if SSL libararies are not installed.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7563 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Older rigs like the Yaesu FT-736R only support set commands and
extremely limited query commands (like squelch and S-meter
levels). This change allows them to be supported via Hamlib albeit in
a very minimal way.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7556 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This code was causing the JT9 decoder to fail to decode, maybe due to
high noise levels and the resulting discontinuity introduced by
zeroing out samples.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7555 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
I can't remember exactly why mode tracking was disabled but it doesn't
seem to be necessary to do so. I am expecting some fallout from this
change, when I discover why it was necessary to ignore the rig mode I
will find a better way to do this.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7548 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Fix tab order on Log QSO window. Amend message_aggregator QSOs logged
window to show both time on and time off.
Thanks to Mike W9MDB for this patch.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7532 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Allow band drop down list to be used to select FreqCal frequencies,
also resets position in automatic cycle. Tidy up some unnecessary
code.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7486 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
1. Menu item *Tools -> Execute frequency calibration cycle* is renamed and checkable. Cycling does not start until checked.
2. Ctrl+F10 now allows you to cycle manually through the list of calibration frequencies.
3. Calibration sequence lengths can be set to 5, 10, 15, or 30 s with the sbTR spinBox.
Also: don't set sbTR index to 0 when entering a slow mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7485 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Reduce the tolerance to +-DF in this case to avoid array bounds error.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7470 ab8295b8-cf94-4d9e-aec4-7959e3be5d79