mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	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
This commit is contained in:
		
							parent
							
								
									61395e9481
								
							
						
					
					
						commit
						2072f6f7c6
					
				@ -53,22 +53,25 @@ subroutine jt65a(dd0,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nsubmode,   &
 | 
				
			|||||||
!  endif
 | 
					!  endif
 | 
				
			||||||
     nfa=nf1
 | 
					     nfa=nf1
 | 
				
			||||||
     nfb=nf2
 | 
					     nfb=nf2
 | 
				
			||||||
!     nfa=max(200,nfqso-ntol)
 | 
					     if(naggressive.gt.0 .and. ntol.lt.1000) then
 | 
				
			||||||
!     nfb=min(4000,nfqso+ntol)
 | 
					        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 = 0: use float ccf. Only if ncand>50 fall back to robust (1-bit) ccf
 | 
				
			||||||
! nrobust = 1: use only robust (1-bit) ccf
 | 
					! nrobust = 1: use only robust (1-bit) ccf
 | 
				
			||||||
    ncand=0
 | 
					    ncand=0
 | 
				
			||||||
    if(nrobust.eq.0) then
 | 
					    if(nrobust.eq.0) then
 | 
				
			||||||
      call timer('sync65  ',0)
 | 
					      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)
 | 
					      call timer('sync65  ',1)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    if(ncand.gt.50) nrobust=1
 | 
					    if(ncand.gt.50) nrobust=1
 | 
				
			||||||
    if(nrobust.eq.1) then
 | 
					    if(nrobust.eq.1) then
 | 
				
			||||||
      ncand=0
 | 
					      ncand=0
 | 
				
			||||||
      call timer('sync65  ',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)
 | 
					      call timer('sync65  ',1)
 | 
				
			||||||
    endif
 | 
					    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)
 | 
					1012      format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a22,' JT65',i4)
 | 
				
			||||||
          call flush(6)
 | 
					          call flush(6)
 | 
				
			||||||
          call flush(13)
 | 
					          call flush(13)
 | 
				
			||||||
          write(79,3001) nutc,nint(sync1),nsnr,dtx-1.0,nfreq,ncandidates,    &
 | 
					!!          write(79,3001) nutc,nint(sync1),nsnr,dtx-1.0,nfreq,ncandidates,    &
 | 
				
			||||||
               nhard_min,ntotal_min,ntry,naggressive,nft,nqual,decoded
 | 
					!          write(79,3001) nutc,sync1,nsnr,dtx-1.0,nfreq,ncandidates,    &
 | 
				
			||||||
3001      format(i4.4,i3,i4,f6.2,i5,i7,i3,i4,i8,i3,i2,i5,1x,a22)
 | 
					!               nhard_min,ntotal_min,ntry,naggressive,nft,nqual,decoded
 | 
				
			||||||
          flush(79)
 | 
					!3001      format(i4.4,f6.2,i4,f6.2,i5,i7,i3,i4,i8,i3,i2,i5,1x,a22)
 | 
				
			||||||
 | 
					!          flush(79)
 | 
				
			||||||
        endif
 | 
					        endif
 | 
				
			||||||
        decoded0=decoded
 | 
					        decoded0=decoded
 | 
				
			||||||
        freq0=freq
 | 
					        freq0=freq
 | 
				
			||||||
 | 
				
			|||||||
@ -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,  &
 | 
					            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/
 | 
					            1,1,1,1,1,1/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					! Default parameters:
 | 
				
			||||||
  csubmode='A'
 | 
					  csubmode='A'
 | 
				
			||||||
  mode65=1
 | 
					  mode65=1
 | 
				
			||||||
  nsigs=10
 | 
					  nsigs=10
 | 
				
			||||||
 | 
				
			|||||||
@ -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:
 | 
					! Input:
 | 
				
			||||||
!  k         pointer to the most recent new data
 | 
					!  k         pointer to the most recent new data
 | 
				
			||||||
 | 
				
			|||||||
@ -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)
 | 
					  parameter (NSZ=3413,NFFT=8192,MAXCAND=300)
 | 
				
			||||||
  real ss(322,NSZ)
 | 
					  real ss(322,NSZ)
 | 
				
			||||||
@ -15,23 +15,28 @@ subroutine sync65(ss,nfa,nfb,nhsym,ca,ncand,nrobust)
 | 
				
			|||||||
  common/steve/thresh0
 | 
					  common/steve/thresh0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  call setup65
 | 
					  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))
 | 
					  ia=max(2,nint(nfa/df))
 | 
				
			||||||
  ib=min(NSZ-1,nint(nfb/df))
 | 
					  ib=min(NSZ-1,nint(nfb/df))
 | 
				
			||||||
  lag1=-11
 | 
					  lag1=-11
 | 
				
			||||||
  lag2=59
 | 
					  lag2=59
 | 
				
			||||||
  nsym=126
 | 
					  nsym=126
 | 
				
			||||||
!!  thresh0=5.5
 | 
					 | 
				
			||||||
  ncand=0
 | 
					  ncand=0
 | 
				
			||||||
  fdot=0.
 | 
					  fdot=0.
 | 
				
			||||||
  ccfred=0.
 | 
					  ccfred=0.
 | 
				
			||||||
  ccfblue=0.
 | 
					  ccfblue=0.
 | 
				
			||||||
 | 
					  ccfmax=0.
 | 
				
			||||||
 | 
					  ipk=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  do i=ia,ib
 | 
					  do i=ia,ib
 | 
				
			||||||
     call xcor(ss,i,nhsym,nsym,lag1,lag2,ccfblue,ccf0,lagpk0,flip,fdot,nrobust)
 | 
					     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
 | 
					! Remove best-fit slope from ccfblue and normalize so baseline rms=1.0
 | 
				
			||||||
     call slope(ccfblue(lag1),lag2-lag1+1,lagpk0-lag1+1.0)
 | 
					     call slope(ccfblue(lag1),lag2-lag1+1,lagpk0-lag1+1.0)
 | 
				
			||||||
     ccfred(i)=ccfblue(lagpk0)
 | 
					     ccfred(i)=ccfblue(lagpk0)
 | 
				
			||||||
 | 
					     if(ccfred(i).gt.ccfmax) then
 | 
				
			||||||
 | 
					        ccfmax=ccfred(i)
 | 
				
			||||||
 | 
					        ipk=i
 | 
				
			||||||
 | 
					     endif
 | 
				
			||||||
  enddo
 | 
					  enddo
 | 
				
			||||||
  call pctile(ccfred(ia:ib),ib-ia+1,35,xmed)
 | 
					  call pctile(ccfred(ia:ib),ib-ia+1,35,xmed)
 | 
				
			||||||
  ccfred(ia:ib)=ccfred(ia:ib)-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
 | 
					  do i=ia,ib
 | 
				
			||||||
     freq=i*df
 | 
					     freq=i*df
 | 
				
			||||||
     itry=0
 | 
					     itry=0
 | 
				
			||||||
     if(ccfred(i).gt.thresh0 .and. ccfred(i).gt.ccfred(i-1) .and.       &
 | 
					     if(naggressive.gt.0 .and. ntol.lt.1000 .and. ccfmax.ge.thresh0) then
 | 
				
			||||||
          ccfred(i).gt.ccfred(i+1)) then
 | 
					        if(i.ne.ipk) cycle
 | 
				
			||||||
        itry=1
 | 
					        itry=1
 | 
				
			||||||
        ncand=ncand+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
 | 
					     endif
 | 
				
			||||||
!     write(76,1010) i,freq,ccfred(i),itry,ncand
 | 
					!     write(76,1010) i,freq,ccfred(i),itry,ncand
 | 
				
			||||||
!1010 format(i6,2f10.2,i5,i6)
 | 
					!1010 format(i6,2f10.2,i5,i6)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user