diff --git a/lib/fsk4hf/ft8b.f90 b/lib/fsk4hf/ft8b.f90 index bdbb187e9..75cf4d83d 100644 --- a/lib/fsk4hf/ft8b.f90 +++ b/lib/fsk4hf/ft8b.f90 @@ -236,9 +236,10 @@ subroutine ft8b(dd0,newdat,nfqso,ndepth,lsubtract,iaptype,icand,sync0,f1,xdt, message=' ' xsnr=-99.0 if(count(cw.eq.0).eq.174) cycle !Reject the all-zero codeword -! if( nharderrors.ge.0 .and. dmin.le.30.0 .and. nharderrors .lt. 30) then -!*** These thresholds should probably be dependent on nap - if( nharderrors.ge.0 .and. dmin.le.50.0 .and. nharderrors .lt. 50) then + if(nharderrors.ge.0 .and. nharderrors+dmin.lt.60.0 .and. & + .not.(sync.lt.2.0 .and. nharderrors.gt.35) .and. & + .not.( iap .gt. 0 .and. nharderrors.gt.39) & + ) then call chkcrc12a(decoded,nbadcrc) else nharderrors=-1 diff --git a/lib/fsk4hf/sync8.f90 b/lib/fsk4hf/sync8.f90 index d52765871..cd0c1db81 100644 --- a/lib/fsk4hf/sync8.f90 +++ b/lib/fsk4hf/sync8.f90 @@ -1,7 +1,8 @@ subroutine sync8(dd,nfa,nfb,syncmin,nfqso,s,candidate,ncand) include 'ft8_params.f90' - parameter (JZ=62) !DT up to +/- 1.25 s +! Search over +/- 2.5s relative to start of interval. + parameter (JZ=62) complex cx(0:NH1) real s(NH1,NHSYM) real savg(NH1) @@ -133,7 +134,7 @@ subroutine sync8(dd,nfa,nfb,syncmin,nfqso,s,candidate,ncand) ! do i=ncand,1,-1 do i=1,ncand j=indx(i) - if( candidate0(3,j) .ge. syncmin ) then + if( candidate0(3,j) .ge. syncmin .and. candidate0(2,j).ge.-1.5 ) then candidate(1,k)=abs(candidate0(1,j)) candidate(2,k)=candidate0(2,j) candidate(3,k)=candidate0(3,j) diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index de9bc4fbd..689575642 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -61,10 +61,10 @@ contains if(ipass.eq.1) then lsubtract=.true. if(ndepth.eq.1) lsubtract=.false. - syncmin=1.3 + syncmin=1.5 else lsubtract=.false. - syncmin=1.3 + syncmin=1.5 endif call timer('sync8 ',0) call sync8(dd,nfa,nfb,syncmin,nfqso,s,candidate,ncand)