Make AP decoding baseline llrs depend on hmod. Center the DT search window on emedelay.

This commit is contained in:
Steven Franke 2020-06-30 11:39:51 -05:00
parent 53e7941c7c
commit d916f315d3
1 changed files with 27 additions and 22 deletions

View File

@ -223,17 +223,19 @@ contains
endif endif
if(ndeep.eq.3) then if(ndeep.eq.3) then
ntmax=4 ! number of block sizes to try nblock=1
if(hmod.eq.1) nblock=4 ! number of block sizes to try
jittermax=2 jittermax=2
norder=3 norder=3
elseif(ndeep.eq.2) then elseif(ndeep.eq.2) then
ntmax=3 nblock=1
jittermax=2 if(hmod.eq.1) nblock=3
jittermax=0
norder=3 norder=3
elseif(ndeep.eq.1) then elseif(ndeep.eq.1) then
ntmax=1 nblock=1
jittermax=2 jittermax=0
norder=2 norder=3
endif endif
! The big fft is done once and is used for calculating the smoothed spectrum ! The big fft is done once and is used for calculating the smoothed spectrum
@ -269,8 +271,13 @@ contains
do isync=0,1 do isync=0,1
if(isync.eq.0) then if(isync.eq.0) then
fc1=0.0 fc1=0.0
is0=1.5*nint(fs2) if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s
ishw=is0 is0=1.5*nspsec
ishw=1.5*nspsec
else ! search plus or minus 1.5 s centered on emedelay
is0=nint(emedelay*nspsec)
ishw=1.5*nspsec
endif
isst=4*hmod isst=4*hmod
ifhw=12 ifhw=12
df=.1*baud df=.1*baud
@ -310,12 +317,10 @@ contains
if(smax8/smax1 .lt. 0.65 ) then if(smax8/smax1 .lt. 0.65 ) then
fc2=fc21 fc2=fc21
isbest=isbest1 isbest=isbest1
if(hmod.gt.1) ntmax=1
njitter=2 njitter=2
else else
fc2=fc28 fc2=fc28
isbest=isbest8 isbest=isbest8
if(hmod.gt.1) ntmax=1
njitter=2 njitter=2
endif endif
fc_synced = fc0 + fc2 fc_synced = fc0 + fc2
@ -367,7 +372,7 @@ contains
if(is0.lt.0) cycle if(is0.lt.0) cycle
cframe=c2(is0:is0+160*nss-1) cframe=c2(is0:is0+160*nss-1)
bitmetrics=0 bitmetrics=0
call get_fst240_bitmetrics(cframe,nss,hmod,4,bitmetrics,s4,badsync) call get_fst240_bitmetrics(cframe,nss,hmod,nblock,bitmetrics,s4,badsync)
if(badsync) cycle if(badsync) cycle
hbits=0 hbits=0
@ -403,29 +408,29 @@ contains
llrd=scalefac*llrd llrd=scalefac*llrd
apmag=maxval(abs(llra))*1.1 apmag=maxval(abs(llra))*1.1
ntmax=4+nappasses(nQSOProgress) ntmax=nblock+nappasses(nQSOProgress)
if(lapcqonly) ntmax=5 if(lapcqonly) ntmax=nblock+1
if(ndepth.eq.1) ntmax=3 if(ndepth.eq.1) ntmax=nblock
apmask=0 apmask=0
do itry=1,ntmax do itry=1,ntmax
if(itry.eq.1) llr=llra if(itry.eq.1) llr=llra
if(itry.eq.2) llr=llrb if(itry.eq.2.and.itry.le.nblock) llr=llrb
if(itry.eq.3) llr=llrc if(itry.eq.3.and.itry.le.nblock) llr=llrc
if(itry.eq.4) llr=llrd if(itry.eq.4.and.itry.le.nblock) llr=llrd
if(itry.le.4) then if(itry.le.nblock) then
apmask=0 apmask=0
iaptype=0 iaptype=0
endif endif
napwid=1.2*(4.0*baud*hmod) napwid=1.2*(4.0*baud*hmod)
if(itry.gt.4) then if(itry.gt.nblock) then
llr=llra if(nblock.eq.1) llr=llra
iaptype=naptypes(nQSOProgress,itry-4) if(nblock.gt.1) llr=llrc
iaptype=naptypes(nQSOProgress,itry-nblock)
if(lapcqonly) iaptype=1 if(lapcqonly) iaptype=1
if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall
if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall
if(iaptype.eq.1) then ! CQ if(iaptype.eq.1) then ! CQ
apmask=0 apmask=0
apmask(1:29)=1 apmask(1:29)=1