Do not apply reference spectrum in fast modes

Using the reference spectrum discards a short part of the front of the
period's received samples which may have contained a decode candidate.

As  far  as  the  MSK  modes  are  concerned  the  reference  spectrum
correction is probably not applicable anyway.

Comment from Steve K9AN after offline discussions about this:

"In any  case, I  don’t think that  there is any  reason to  apply the
reference spectrum correction to the MSK modes. I do think that we are
paying a  performance penalty  in the MSK  modes for  non-ideal filter
responses at  the TX and RX  ends of the link  — but we would  need to
implement an  equalizer that  looks at  the received  sync words  as a
“training  sequence” in  order to  come  up with  anything that  could
improve the  results. This  would take into  account the  receiver and
transmitter  filters,  and  would  probably  be  different  for  every
TX/RX/meteor burst. My current thinking is  that for the low SNRs that
we are most interested in, and with  the short sync words that we use,
we  wouldn’t  be  able  to  do  a very  good  job  of  estimating  the
coefficients of the equalizer..."

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6776 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Bill Somerville 2016-06-13 19:52:23 +00:00
parent cb65abbb56
commit e7854d6c5b

View File

@ -982,8 +982,6 @@ void MainWindow::dataSink(qint64 frames)
QByteArray bafname = fname.toLatin1(); QByteArray bafname = fname.toLatin1();
const char *c_fname = bafname.data(); const char *c_fname = bafname.data();
int len=fname.length(); int len=fname.length();
m_bUseRef=m_wideGraph->useRef();
refspectrum_(&dec_data.d2[k-3456],&m_bRefSpec,&m_bUseRef,c_fname,len);
if(m_diskData) { if(m_diskData) {
dec_data.params.ndiskdat=1; dec_data.params.ndiskdat=1;
@ -996,6 +994,9 @@ void MainWindow::dataSink(qint64 frames)
return; return;
} }
m_bUseRef=m_wideGraph->useRef();
refspectrum_(&dec_data.d2[k-3456],&m_bRefSpec,&m_bUseRef,c_fname,len);
// Get power, spectrum, and ihsym // Get power, spectrum, and ihsym
int trmin=m_TRperiod/60; int trmin=m_TRperiod/60;
// int k (frames - 1); // int k (frames - 1);