mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-29 23:58:39 -05:00
fd1c6daf51
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6579 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
82 lines
2.1 KiB
Fortran
82 lines
2.1 KiB
Fortran
subroutine sync9w(ss,nzhsym,lag1,lag2,ia,ib,ccfred,ccfblue,ipkbest,lagpk,nadd)
|
|
|
|
include 'constants.f90'
|
|
real ss(184,NSMAX)
|
|
real ss1(184),ss1save(184)
|
|
real ccfred(NSMAX)
|
|
real ccfblue(-9:18)
|
|
real sa(NSMAX),sb(NSMAX)
|
|
include 'jt9sync.f90'
|
|
|
|
! Smooth the symbol spectra (by an amount consistent with measured width??)
|
|
do j=1,nzhsym
|
|
sa=ss(j,1:NSMAX)
|
|
call smo(sa,NSMAX,sb,nadd)
|
|
call smo(sb,NSMAX,sa,nadd)
|
|
ss(j,1:NSMAX)=sa
|
|
enddo
|
|
|
|
ipk=0
|
|
ipkbest=0
|
|
sbest=0.
|
|
ccfred=0.
|
|
df=12000.0/16384.0
|
|
|
|
do i=ia,ib !Loop over specified freq range
|
|
ss1=ss(1:184,i) !Symbol amplitudes at this freq
|
|
call pctile(ss1,nzhsym,50,xmed) !Median level at this freq
|
|
ss1=ss1/xmed - 1.0
|
|
|
|
smax=0. !Find DT in specified range
|
|
do lag=lag1,lag2
|
|
sum1=0.
|
|
nsum=nzhsym
|
|
do j=1,16 !Sum over 16 sync symbols
|
|
k=ii2(j) + lag
|
|
if(k.ge.1 .and. k.le.nzhsym) then
|
|
sum1=sum1 + ss1(k)
|
|
nsum=nsum-1
|
|
endif
|
|
enddo
|
|
if(sum1.gt.smax) then
|
|
smax=sum1
|
|
ipk=i
|
|
endif
|
|
enddo
|
|
|
|
ccfred(i)=smax !Best at this freq, over all lags
|
|
if(smax.gt.sbest) then
|
|
sbest=smax
|
|
ipkbest=ipk
|
|
ss1save=ss1
|
|
endif
|
|
enddo
|
|
|
|
call pctile(ccfred(ia),ib-ia+1,50,xmed)
|
|
if(xmed.le.0.0) xmed=1.0
|
|
ccfred=ccfred/xmed
|
|
|
|
ss1=ss1save
|
|
smax=0. !Find DT in specified range
|
|
do lag=lag1,lag2
|
|
sum1=0.
|
|
nsum=nzhsym
|
|
do j=1,16 !Sum over 16 sync symbols
|
|
k=ii2(j) + lag
|
|
if(k.ge.1 .and. k.le.nzhsym) then
|
|
sum1=sum1 + ss1(k)
|
|
nsum=nsum-1
|
|
endif
|
|
enddo
|
|
ccfblue(lag)=sum1
|
|
if(sum1.gt.smax) then
|
|
smax=sum1
|
|
lagpk=lag
|
|
endif
|
|
enddo
|
|
if(lagpk.eq.-9) lagpk=-8 !Protect the ends of ccfblue()
|
|
if(lagpk.eq.18) lagpk=17
|
|
|
|
return
|
|
end subroutine sync9w
|