Merge branch 'feat-fst280' of bitbucket.org:k1jt/wsjtx into feat-fst280

This commit is contained in:
Joe Taylor 2020-07-11 15:25:37 -04:00
commit 5b804d90a3
2 changed files with 24 additions and 17 deletions

View File

@ -101,7 +101,7 @@ write(*,'(24i1)') msgbits(51:74)
llr=2.0*rxdata/(ss*ss) llr=2.0*rxdata/(ss*ss)
apmask=0 apmask=0
dmin=0.0 dmin=0.0
maxosd=2 maxosd=0
call decode240_74(llr, Keff, maxosd, norder, apmask, message74, cw, ntype, nharderror, dmin) call decode240_74(llr, Keff, maxosd, norder, apmask, message74, cw, ntype, nharderror, dmin)
if(nharderror.ge.0) then if(nharderror.ge.0) then
n2err=0 n2err=0

View File

@ -217,7 +217,6 @@ contains
if(ndepth.eq.3) then if(ndepth.eq.3) then
nblock=4 nblock=4
if(hmod.eq.1) nblock=4 ! number of block sizes to try
jittermax=2 jittermax=2
norder=3 norder=3
elseif(ndepth.eq.2) then elseif(ndepth.eq.2) then
@ -259,8 +258,8 @@ contains
endif endif
else else
if(hmod.eq.2) nsyncoh=1 if(hmod.eq.2) nsyncoh=1
if(hmod.eq.4) nsyncoh=1 if(hmod.eq.4) nsyncoh=-2
if(hmod.eq.8) nsyncoh=1 if(hmod.eq.8) nsyncoh=-4
endif endif
do iqorw=itype1,itype2 ! iqorw=1 for QSO mode and iqorw=2 for wspr-type messages do iqorw=itype1,itype2 ! iqorw=1 for QSO mode and iqorw=2 for wspr-type messages
@ -284,7 +283,7 @@ contains
if(ntrperiod.eq.15) minsync=1.15 if(ntrperiod.eq.15) minsync=1.15
if(ntrperiod.gt.15) minsync=1.20 if(ntrperiod.gt.15) minsync=1.20
elseif(hmod.gt.1) then elseif(hmod.gt.1) then
minsync=1.5 minsync=1.2
endif endif
! Get first approximation of candidate frequencies ! Get first approximation of candidate frequencies
@ -391,7 +390,6 @@ contains
fc_synced=candidates(icand,3) fc_synced=candidates(icand,3)
isbest=nint(candidates(icand,4)) isbest=nint(candidates(icand,4))
xdt=(isbest-nspsec)/fs2 xdt=(isbest-nspsec)/fs2
if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2
call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2)
@ -419,7 +417,6 @@ contains
ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/))
nsync_qual=ns1+ns2+ns3+ns4+ns5 nsync_qual=ns1+ns2+ns3+ns4+ns5
! if(nsync_qual.lt. 46) cycle !### Value ?? ### ! if(nsync_qual.lt. 46) cycle !### Value ?? ###
scalefac=2.83 scalefac=2.83
llra( 1: 60)=bitmetrics( 17: 76, 1) llra( 1: 60)=bitmetrics( 17: 76, 1)
llra( 61:120)=bitmetrics( 93:152, 1) llra( 61:120)=bitmetrics( 93:152, 1)
@ -462,11 +459,15 @@ contains
apmask=0 apmask=0
iaptype=0 iaptype=0
endif endif
napwid=1.2*(4.0*baud*hmod)
if(itry.gt.nblock) then if(itry.gt.nblock) then
if(nblock.eq.1) llr=llra llr=llra
if(nblock.gt.1) llr=llrc if(nblock.gt.1) then
if(hmod.eq.1) llr=llrd
if(hmod.eq.2) llr=llrb
if(hmod.eq.4) llr=llrc
if(hmod.eq.8) llr=llrd
endif
iaptype=naptypes(nQSOProgress,itry-nblock) 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
@ -563,7 +564,7 @@ contains
nsnr=nint(xsnr) nsnr=nint(xsnr)
qual=0. qual=0.
fsig=fc_synced - 1.5*hmod*baud fsig=fc_synced - 1.5*hmod*baud
! write(21,'(i6,8i6,f7.1,f9.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & ! write(21,'(i6.6,8i6,f7.1,f10.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') &
! nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg ! nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg
! flush(21) ! flush(21)
call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, &
@ -676,16 +677,22 @@ contains
do i=1,8 do i=1,8
do isub=1,nsub do isub=1,nsub
is=(i-1)*nss+(isub-1)*nps is=(i-1)*nss+(isub-1)*nps
z1=0.0
if(i1+is.ge.1) then if(i1+is.ge.1) then
s1=s1+abs(sum(cd0(i1+is:i1+is+nps-1)*conjg(csynct1(is+1:is+nps)))) z1=sum(cd0(i1+is:i1+is+nps-1)*conjg(csynct1(is+1:is+nps)))
endif endif
s2=s2+abs(sum(cd0(i2+is:i2+is+nps-1)*conjg(csynct1(is+1:is+nps)))) z2=sum(cd0(i2+is:i2+is+nps-1)*conjg(csynct2(is+1:is+nps)))
s3=s3+abs(sum(cd0(i3+is:i3+is+nps-1)*conjg(csynct1(is+1:is+nps)))) z3=sum(cd0(i3+is:i3+is+nps-1)*conjg(csynct1(is+1:is+nps)))
s4=s4+abs(sum(cd0(i4+is:i4+is+nps-1)*conjg(csynct1(is+1:is+nps)))) z4=sum(cd0(i4+is:i4+is+nps-1)*conjg(csynct2(is+1:is+nps)))
s5=0 z5=0.0
if(i5+is+ncoh*nss-1.le.np) then if(i5+is+ncoh*nss-1.le.np) then
s5=s5+abs(sum(cd0(i5+is:i5+is+nps-1)*conjg(csynct1(is+1:is+nps)))) z5=sum(cd0(i5+is:i5+is+nps-1)*conjg(csynct1(is+1:is+nps)))
endif endif
s1=s1+abs(z1)/(8*nss)
s2=s2+abs(z2)/(8*nss)
s3=s3+abs(z3)/(8*nss)
s4=s4+abs(z4)/(8*nss)
s5=s5+abs(z5)/(8*nss)
enddo enddo
enddo enddo
endif endif