From e7854d6c5b5aa6946d2bc3982c04d2ff92ecc507 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 13 Jun 2016 19:52:23 +0000 Subject: [PATCH] Do not apply reference spectrum in fast modes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- mainwindow.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 1cf4b981e..79030e0dc 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -982,8 +982,6 @@ void MainWindow::dataSink(qint64 frames) QByteArray bafname = fname.toLatin1(); const char *c_fname = bafname.data(); 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) { dec_data.params.ndiskdat=1; @@ -996,6 +994,9 @@ void MainWindow::dataSink(qint64 frames) return; } + m_bUseRef=m_wideGraph->useRef(); + refspectrum_(&dec_data.d2[k-3456],&m_bRefSpec,&m_bUseRef,c_fname,len); + // Get power, spectrum, and ihsym int trmin=m_TRperiod/60; // int k (frames - 1);