Fix the oddball values of DT and f0 sometimes being displayed.

This commit is contained in:
Joe Taylor 2021-01-19 14:11:21 -05:00
parent d815eb7592
commit 39024253d2
3 changed files with 23 additions and 11 deletions

View File

@ -211,6 +211,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
params%emedelay,mycall,hiscall,hisgrid,params%nQSOProgress, &
ncontest,logical(params%lapcqonly),navg0)
call timer('dec_q65 ',1)
close(17)
go to 800
endif

View File

@ -118,14 +118,14 @@ contains
call timer('q65_dec0',1)
if(idec.ge.0) then
xdt1=xdt !We have a list-decode result
f1=f0
dtdec=xdt !We have a list-decode result
f0dec=f0
go to 100
endif
if(snr1.lt.2.8) then
xdt1=0. !No reliable sync, abandon decoding attempt
f1=0.
dtdec=0. !No reliable sync, abandon decoding attempt
f0dec=0.
go to 100
endif
@ -163,7 +163,11 @@ contains
xdt,f0,iaptype,xdt1,f1,snr2,dat4,idec)
! idec=-1 !### TEMPORARY ###
call timer('q65loops',1)
if(idec.ge.0) go to 100 !Successful decode, we're done
if(idec.ge.0) then
dtdec=xdt1
f0dec=f1
go to 100 !Successful decode, we're done
endif
enddo ! ipass
if(iand(ndepth,16).eq.0 .or. navg.lt.2) go to 100
@ -176,6 +180,8 @@ contains
emedelay,xdt,f0,snr1,width,dat4,snr2,idec)
call timer('list_avg',1)
if(idec.ge.0) then
dtdec=xdt !We have a list-decode result from averaged data
f0dec=f0
nused=navg
go to 100
endif
@ -189,7 +195,11 @@ contains
call q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, &
emedelay,xdt,f0,snr1,width,dat4,snr2,idec)
call timer('q65_avg ',1)
if(idec.ge.0) nused=navg
if(idec.ge.0) then
dtdec=xdt !We have a q[012]n result
f0dec=f0
nused=navg
endif
100 decoded=' '
if(idec.ge.0) then
@ -206,14 +216,14 @@ contains
1000 format(12b6.6,b5.5)
call unpack77(c77,0,decoded,unpk77_success) !Unpack to get msgsent
nsnr=nint(snr2)
call this%callback(nutc,snr1,nsnr,xdt1,f1,decoded,idec,nused,ntrperiod)
call this%callback(nutc,snr1,nsnr,dtdec,f0dec,decoded,idec,nused,ntrperiod)
if(iand(ndepth,128).ne.0) call q65_clravg !AutoClrAvg after decode
else
! Report snr1, even if no decode.
nsnr=db(snr1) - 35.0
if(nsnr.lt.-35) nsnr=-35
idec=-1
call this%callback(nutc,snr1,nsnr,xdt1,f1,decoded, &
call this%callback(nutc,snr1,nsnr,xdt,f0,decoded, &
idec,0,ntrperiod)
endif
navg0=navg

View File

@ -1,7 +1,7 @@
module q65
parameter (NSTEP=8) !Time bins per symbol, in s1() and s1a()
parameter (PLOG_MIN=-240.0) !List decoding threshold
parameter (PLOG_MIN=-242.0) !List decoding threshold
integer nsave,nlist,LL0,iz0,jz0
integer listutc(10)
integer apsym0(58),aph10(10)
@ -15,7 +15,7 @@ module q65
integer i0,j0
real,allocatable,save :: s1a(:,:) !Cumulative symbol spectra
real sync(85) !sync vector
real df,dtstep
real df,dtstep,dtdec,f0dec
contains
@ -208,7 +208,8 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, &
1100 format(4f10.3)
endif
enddo
close(17)
rewind 17
if(iavg.eq.2) then
call q65_dec_q012(s3,LL,snr2,dat4,idec,decoded)