Echo spectrum appears OK; must test Doppler corrections in both modes.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5559 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2015-06-09 00:43:07 +00:00
parent f8e62046a3
commit 4b1c3c319f
3 changed files with 25 additions and 13 deletions

View File

@ -18,7 +18,6 @@ subroutine avecho(id2,ndop,nfrit,nqual,f1,rms0,sigdb,snr,dfreq,width)
save dop0,sa,sb save dop0,sa,sb
dop=ndop dop=ndop
doppler=dop
sq=0. sq=0.
do i=1,TXLENGTH do i=1,TXLENGTH
x(i)=id2(i) x(i)=id2(i)
@ -27,9 +26,8 @@ subroutine avecho(id2,ndop,nfrit,nqual,f1,rms0,sigdb,snr,dfreq,width)
rms0=sqrt(sq/TXLENGTH) rms0=sqrt(sq/TXLENGTH)
if(nclearave.ne.0) nsum=0 if(nclearave.ne.0) nsum=0
nclearave=0
if(nsum.eq.0) then if(nsum.eq.0) then
dop0=doppler !Remember the initial Doppler dop0=dop !Remember the initial Doppler
sa=0. !Clear the average arrays sa=0. !Clear the average arrays
sb=0. sb=0.
endif endif
@ -44,7 +42,7 @@ subroutine avecho(id2,ndop,nfrit,nqual,f1,rms0,sigdb,snr,dfreq,width)
fnominal=1500.0 !Nominal audio frequency w/o doppler or dither fnominal=1500.0 !Nominal audio frequency w/o doppler or dither
ia=nint((fnominal+dop0-nfrit)/df) ia=nint((fnominal+dop0-nfrit)/df)
ib=nint((f1+doppler-nfrit)/df) ib=nint((f1+dop-nfrit)/df)
if(ia.lt.600 .or. ib.lt.600) go to 900 if(ia.lt.600 .or. ib.lt.600) go to 900
if(ia.gt.7590 .or. ib.gt.7590) go to 900 if(ia.gt.7590 .or. ib.gt.7590) go to 900
@ -112,8 +110,8 @@ subroutine avecho(id2,ndop,nfrit,nqual,f1,rms0,sigdb,snr,dfreq,width)
enddo enddo
900 continue 900 continue
write(*,3001) ia,ib,nclearave,nsum,width,snr,nqual write(*,3001) ia*df,ib*df,dop,r0,r1,nfrit,nclearave,nsum
3001 format('avecho:',4i6,2f7.1,i5) 3001 format(5f10.1,3i6)
return return
end subroutine avecho end subroutine avecho

View File

@ -833,9 +833,10 @@ void MainWindow::dataSink(qint64 frames)
float dfreq=0.0; float dfreq=0.0;
float width=0.0; float width=0.0;
echocom_.nclearave=m_nclearave; echocom_.nclearave=m_nclearave;
avecho_(&jt9com_.d2[0],&m_nDop00,&nfrit,&nqual,&f1,&rms,&sigdb, int nDop=0;
avecho_(&jt9com_.d2[0],&nDop,&nfrit,&nqual,&f1,&rms,&sigdb,
&snr,&dfreq,&width); &snr,&dfreq,&width);
qDebug() << "A" << echocom_.nclearave << echocom_.nsum << rms << sigdb; qDebug() << "A" << m_nDopr << nDop;
if(m_echoGraph->isVisible()) m_echoGraph->plotSpec(); if(m_echoGraph->isVisible()) m_echoGraph->plotSpec();
m_nclearave=0; m_nclearave=0;
return; return;
@ -2142,6 +2143,8 @@ void MainWindow::guiUpdate()
Q_EMIT m_config.transceiver_tx_frequency (m_dialFreqTx); Q_EMIT m_config.transceiver_tx_frequency (m_dialFreqTx);
} else { } else {
f=m_freqNominal + 1000*m_astroWidget->m_kHz + m_astroWidget->m_Hz; f=m_freqNominal + 1000*m_astroWidget->m_kHz + m_astroWidget->m_Hz;
// m_dialFreq=f;
// ui->labDialFreq->setText (Radio::pretty_frequency_MHz_string (m_dialFreq));
Q_EMIT m_config.transceiver_frequency(f); Q_EMIT m_config.transceiver_frequency(f);
} }
} }
@ -2170,10 +2173,16 @@ void MainWindow::guiUpdate()
if(m_astroWidget->m_bDopplerTracking) { if(m_astroWidget->m_bDopplerTracking) {
m_nDopr=0;
if(m_DopplerMethod==1) { if(m_DopplerMethod==1) {
// All Doppler correction done here; DX station stays at nominal dial frequency. // All Doppler correction done here; DX station stays at nominal dial frequency.
m_nDopr=m_astroWidget->m_stepHz*qRound(double(m_nDop)/double( if(m_mode=="Echo") {
m_nDopr=m_astroWidget->m_stepHz*qRound(double(m_nDop00)/double(
m_astroWidget->m_stepHz)); m_astroWidget->m_stepHz));
} else {
m_nDopr=m_astroWidget->m_stepHz*qRound(double(m_nDop)/double(
m_astroWidget->m_stepHz));
}
} }
if(m_DopplerMethod==2) { if(m_DopplerMethod==2) {
// Doppler correction to constant frequency on Moon // Doppler correction to constant frequency on Moon
@ -2188,9 +2197,14 @@ void MainWindow::guiUpdate()
m_dialFreqTx)); m_dialFreqTx));
Q_EMIT m_config.transceiver_tx_frequency (m_dialFreqTx); Q_EMIT m_config.transceiver_tx_frequency (m_dialFreqTx);
} else { } else {
m_dialFreq=m_freqNominal + 1000*m_astroWidget->m_kHz + if(m_mode=="Echo" and m_DopplerMethod==1) {
m_astroWidget->m_Hz + m_nDopr; m_dialFreq=m_freqNominal + 1000*m_astroWidget->m_kHz +
ui->labDialFreq->setText (Radio::pretty_frequency_MHz_string ( m_astroWidget->m_Hz;
} else {
m_dialFreq=m_freqNominal + 1000*m_astroWidget->m_kHz +
m_astroWidget->m_Hz + m_nDopr;
}
ui->labDialFreq->setText (Radio::pretty_frequency_MHz_string (
m_dialFreq)); m_dialFreq));
Q_EMIT m_config.transceiver_frequency(m_dialFreq); Q_EMIT m_config.transceiver_frequency(m_dialFreq);
} }

View File

@ -335,7 +335,7 @@ private:
qint32 m_nseq; qint32 m_nseq;
qint32 m_nDop; //Doppler shift of EME DX station qint32 m_nDop; //Doppler shift of EME DX station
qint32 m_nDop00; //EME self-Doppler qint32 m_nDop00; //EME self-Doppler
qint32 m_nDopr; //Applied Doppler, rounded to nearest 1, 10 or 100 Hz qint32 m_nDopr; //Applied Doppler (rounded to nearest 1, 10 or 100 Hz)
bool m_btxok; //True if OK to transmit bool m_btxok; //True if OK to transmit
bool m_diskData; bool m_diskData;