Initial Commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
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
|
||||
Reference in New Issue
Block a user