Hi Joe,

> look suggests to me that line 3507 in mainwindow.cpp (r7328) is probably the 
> root cause:
> 
>  if(m_config.quick_call()) auto_tx_mode(true);
> 
> This statement comes at the end of the long routine 
> MainWindow::processMessage().
> 
> Executing the step "auto_tx_mode(true)" probably should happen only if we 
> entered processMessage() as a result of an operator double-clicking a line of 
> decoded text.  In particular, NOT as a result of a decode with 
> auto-sequencing activated.
> 
> Revision 7329 has a fix.

Thanks Joe. The statement that you identified would seem to be the likely cause 
of the reported behavior.

Regarding the equalization project — I thought you might be interested in 
seeing some early results from a pilot analysis of a single 15s recording of 
your signal.

The analysis is based on 24 received data frames from your signal. All frames 
in the average had SNR of at least 14 dB and decoded to the same message: “CQ 
K1JT FN20”. None of the frames had any errors in the “hard” bits derived from 
the received signal.

Using the known message, I created a “model” spectrum by creating an ideal 
constant-envelope passband signal centered on 1500 Hz. Then I used analytic 
followed by tweak1 to convert the model signal to complex baseband. This 
ensures that the model is filtered the same way as the received data.

The attached plot includes 4 figures:

top left: average received spectrum (red) and model spectrum (blue).

top right: blue line is difference between model and received spectrum 
(model-received), in dB. Red curves show the reference spectrum (from 
refspec.dat) and the reference spectrum squared. The latter is included to show 
what would be expected if the TX filter on your end was identical to the RX 
filter on my end.

bottom left: normalized coherence spectrum between received and model.

bottom right: phase angle derived from average cross-spectrum between model and 
reference. 

The phase angle results look believable, if somewhat noisy. This would be a 
much easier problem if we had the luxury of being able to average over a large 
ensemble of different messages. The average cross spectrum would then be much 
smoother.

I guess that the next step should be to figure out how to fit a smooth function 
to the amplitude and phase responses without being unduly biased by the spiky 
parts of the amplitude ratio. 

In my professional life, I would probably use vector fitting to find a 
low-order rational function to approximate the measured complex response 
function (https://www.sintef.no/projectweb/vectfit/). I don’t know if we’ll 
want to deal with that level of complexity or not — more playing is necessary!

Ideas/suggestions/questions that occur to you will be most welcome!

Steve

Attachment: Equalization_case_study.pdf
Description: Adobe PDF document


due to the noise floor that is present only in the received spectrum.
------------------------------------------------------------------------------
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to