From 2072f6f7c6f3393ad2515eb41dc448c04292d963 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 18 Dec 2015 19:58:10 +0000 Subject: [PATCH] Look for weaker Sync indications when naggressive > 0 and ntol < 1000. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6296 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/jt65a.f90 | 20 ++++++++++++-------- lib/jt65sim.f90 | 1 + lib/symspec.f90 | 3 ++- lib/sync65.f90 | 21 ++++++++++++++++----- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/lib/jt65a.f90 b/lib/jt65a.f90 index 1690d7ee3..3ed83549e 100644 --- a/lib/jt65a.f90 +++ b/lib/jt65a.f90 @@ -53,22 +53,25 @@ subroutine jt65a(dd0,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nsubmode, & ! endif nfa=nf1 nfb=nf2 -! nfa=max(200,nfqso-ntol) -! nfb=min(4000,nfqso+ntol) + if(naggressive.gt.0 .and. ntol.lt.1000) then + nfa=max(200,nfqso-ntol) + nfb=min(4000,nfqso+ntol) + thresh0=1.0 + endif ! nrobust = 0: use float ccf. Only if ncand>50 fall back to robust (1-bit) ccf ! nrobust = 1: use only robust (1-bit) ccf ncand=0 if(nrobust.eq.0) then call timer('sync65 ',0) - call sync65(ss,nfa,nfb,nhsym,ca,ncand,0) + call sync65(ss,nfa,nfb,naggressive,ntol,nhsym,ca,ncand,0) call timer('sync65 ',1) endif if(ncand.gt.50) nrobust=1 if(nrobust.eq.1) then ncand=0 call timer('sync65 ',0) - call sync65(ss,nfa,nfb,nhsym,ca,ncand,1) + call sync65(ss,nfa,nfb,naggressive,ntol,nhsym,ca,ncand,1) call timer('sync65 ',1) endif @@ -147,10 +150,11 @@ subroutine jt65a(dd0,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nsubmode, & 1012 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a22,' JT65',i4) call flush(6) call flush(13) - write(79,3001) nutc,nint(sync1),nsnr,dtx-1.0,nfreq,ncandidates, & - nhard_min,ntotal_min,ntry,naggressive,nft,nqual,decoded -3001 format(i4.4,i3,i4,f6.2,i5,i7,i3,i4,i8,i3,i2,i5,1x,a22) - flush(79) +!! write(79,3001) nutc,nint(sync1),nsnr,dtx-1.0,nfreq,ncandidates, & +! write(79,3001) nutc,sync1,nsnr,dtx-1.0,nfreq,ncandidates, & +! nhard_min,ntotal_min,ntry,naggressive,nft,nqual,decoded +!3001 format(i4.4,f6.2,i4,f6.2,i5,i7,i3,i4,i8,i3,i2,i5,1x,a22) +! flush(79) endif decoded0=decoded freq0=freq diff --git a/lib/jt65sim.f90 b/lib/jt65sim.f90 index f580cae55..af8edb298 100644 --- a/lib/jt65sim.f90 +++ b/lib/jt65sim.f90 @@ -38,6 +38,7 @@ program jt65sim 0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,1, & 1,1,1,1,1,1/ +! Default parameters: csubmode='A' mode65=1 nsigs=10 diff --git a/lib/symspec.f90 b/lib/symspec.f90 index 41181453d..9e081007c 100644 --- a/lib/symspec.f90 +++ b/lib/symspec.f90 @@ -1,4 +1,5 @@ -subroutine symspec(shared_data,k,ntrperiod,nsps,ingain,nminw,pxdb,s,df3,ihsym,npts8) +subroutine symspec(shared_data,k,ntrperiod,nsps,ingain,nminw,pxdb,s, & + df3,ihsym,npts8) ! Input: ! k pointer to the most recent new data diff --git a/lib/sync65.f90 b/lib/sync65.f90 index 3921ae7b0..11e6059a7 100644 --- a/lib/sync65.f90 +++ b/lib/sync65.f90 @@ -1,4 +1,4 @@ -subroutine sync65(ss,nfa,nfb,nhsym,ca,ncand,nrobust) +subroutine sync65(ss,nfa,nfb,naggressive,ntol,nhsym,ca,ncand,nrobust) parameter (NSZ=3413,NFFT=8192,MAXCAND=300) real ss(322,NSZ) @@ -15,23 +15,28 @@ subroutine sync65(ss,nfa,nfb,nhsym,ca,ncand,nrobust) common/steve/thresh0 call setup65 - df=12000.0/NFFT !df = 12000.0/16384 = 0.732 Hz + df=12000.0/NFFT !df = 12000.0/8192 = 1.465 Hz ia=max(2,nint(nfa/df)) ib=min(NSZ-1,nint(nfb/df)) lag1=-11 lag2=59 nsym=126 -!! thresh0=5.5 ncand=0 fdot=0. ccfred=0. ccfblue=0. + ccfmax=0. + ipk=0 do i=ia,ib call xcor(ss,i,nhsym,nsym,lag1,lag2,ccfblue,ccf0,lagpk0,flip,fdot,nrobust) ! Remove best-fit slope from ccfblue and normalize so baseline rms=1.0 call slope(ccfblue(lag1),lag2-lag1+1,lagpk0-lag1+1.0) ccfred(i)=ccfblue(lagpk0) + if(ccfred(i).gt.ccfmax) then + ccfmax=ccfred(i) + ipk=i + endif enddo call pctile(ccfred(ia:ib),ib-ia+1,35,xmed) ccfred(ia:ib)=ccfred(ia:ib)-xmed @@ -41,10 +46,16 @@ subroutine sync65(ss,nfa,nfb,nhsym,ca,ncand,nrobust) do i=ia,ib freq=i*df itry=0 - if(ccfred(i).gt.thresh0 .and. ccfred(i).gt.ccfred(i-1) .and. & - ccfred(i).gt.ccfred(i+1)) then + if(naggressive.gt.0 .and. ntol.lt.1000 .and. ccfmax.ge.thresh0) then + if(i.ne.ipk) cycle itry=1 ncand=ncand+1 + else + if(ccfred(i).ge.thresh0 .and. ccfred(i).gt.ccfred(i-1) .and. & + ccfred(i).gt.ccfred(i+1)) then + itry=1 + ncand=ncand+1 + endif endif ! write(76,1010) i,freq,ccfred(i),itry,ncand !1010 format(i6,2f10.2,i5,i6)