Commit Graph

20 Commits

Author SHA1 Message Date
Bill Somerville 8794bad146
Use local 8-bit strings for paths passed to Fortran
By using  the local 8-bit character  set we can allow  local non-ASCII
characters in file paths, for example user account names on MS Windows
with characters in the default code page.
2021-08-22 13:24:03 +01:00
Steve Franke 096a459ae8 Make sure that msksignalquality is not called on Sh decodes to avoid contamination of recent_calls array and resulting poor SWL performance in MSK144 mode. 2018-10-20 13:55:02 -05:00
Joe Taylor 542f85694c Remove some bcontest stuff associated with MSK144. 2018-07-11 14:42:48 -04:00
Steve Franke fd0ad33028 MSK144: Wholesale changeover to (128,90) code with 77-bit messages. Compiles and doesn't crash, but communication between two instances has not been tested. 2018-07-07 10:35:59 -05:00
Steven Franke ddbfc0da74 Comment out some diagnostic writes.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8114 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-09-23 19:39:42 +00:00
Steven Franke 2636c849bf Reset navg after measuring phase response.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7601 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-03-12 13:02:10 +00:00
Bill Somerville 2131414791 Add reference spectrum to equalization plots and more plotting enhancements
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
2017-02-23 16:21:26 +00:00
Steven Franke 208e7e2d0b Simplify equalization logic - still need to fix & vs ^ display.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7573 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-02-21 20:13:36 +00:00
Steven Franke 4525981f73 Require an average over at least 5 decoded frames when measuring phase response.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7572 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-02-21 17:17:05 +00:00
Bill Somerville cecc098924 First attempt at a UI phase compensation tool for MSK144
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
2017-02-21 02:13:13 +00:00
Steven Franke e45f7eaf67 After measuring phase response, write pcoeff file to the data directory.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7551 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-01-22 03:20:46 +00:00
Steven Franke 2644efc699 More work on Phase Equalization interface.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7506 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-01-15 22:13:59 +00:00
Steven Franke c3d83a207a First steps to enable user control of phase calibration.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7504 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-01-15 21:43:40 +00:00
Steven Franke f0e7bf8033 Only train on DX Call when Rx Equalization is checked.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7502 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-01-15 18:39:18 +00:00
Steven Franke 9582ccd5d5 Lower SWL SNR thresholds by one notch. Note that the xsnr that is compared to the threshold is the nonlinear snr from squared signal spectrum, not 'real' snr.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7441 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-01-02 03:56:29 +00:00
Steven Franke 9c3b30d927 Fix a bug in analytic.f90 and enable amplitude flattening. This version is not intended for general use on MSK144 as it uses hardwired coefficients derived for use with a specific radio.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7428 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-12-29 01:52:55 +00:00
Steven Franke 5ba225f0af Decrease number of frames that must be averaged for valid dynamic equalization.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7427 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-12-27 14:30:00 +00:00
Steven Franke 353c2bb4c3 Tweaks.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7422 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-12-22 17:36:03 +00:00
Steven Franke 02a4cb95a4 Add an option on advanced time to enable MSK144 Rx filter equalizer. Other changes necessary to accommodate coexistence of static (Rx Filter) and dynamic (QSO partner-dependent) phase corrections.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7421 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-12-22 17:21:23 +00:00
Steven Franke f9e6c89847 Calculates # of bit errors and eye-opening on every call, estimates channel phase on startup and whenever DX Call changes.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7411 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-12-20 02:53:57 +00:00