2024-02-22 13:41:09 -05:00
|
|
|
subroutine sfox_sync(crcvd,nv,f,t)
|
2024-01-31 16:38:22 -05:00
|
|
|
|
2024-02-08 10:45:43 -05:00
|
|
|
use sfox_mod
|
2024-02-22 13:41:09 -05:00
|
|
|
parameter (NFFT2=2048,NH=NFFT2/2)
|
|
|
|
parameter (NSZ=562) !Number of 1/8-symbol steps
|
2024-01-31 16:38:22 -05:00
|
|
|
complex clo(NMAX) !Complex Local Oscillator
|
|
|
|
complex crcvd(NMAX) !Signal as received
|
2024-02-22 13:41:09 -05:00
|
|
|
complex c(0:NFFT2-1) !Work array
|
|
|
|
real s(NH/2,NSZ)
|
|
|
|
! character*1 line(-30:30),mark(0:5)
|
|
|
|
! data mark/' ','.','-','+','X','$'/
|
2024-01-31 16:38:22 -05:00
|
|
|
|
2024-02-22 13:41:09 -05:00
|
|
|
df=12000.0/NFFT2 !5.86 Hz
|
|
|
|
istep=NH/8
|
|
|
|
tstep=istep/12000.0 !0.0107 s
|
|
|
|
ia=1-istep
|
|
|
|
fac=1.0/NFFT2
|
|
|
|
do j=1,NSZ
|
|
|
|
ia=ia+istep
|
|
|
|
ib=ia+NH-1
|
|
|
|
c(0:NSPS-1)=fac*crcvd(ia:ib)
|
|
|
|
c(NSPS:)=0.
|
|
|
|
call four2a(c,NFFT2,1,-1,1)
|
|
|
|
do i=1,NH/2
|
|
|
|
s(i,j)=real(c(i))**2 + aimag(c(i))**2
|
2024-01-31 16:38:22 -05:00
|
|
|
enddo
|
|
|
|
enddo
|
|
|
|
|
2024-02-22 13:41:09 -05:00
|
|
|
pmax=0.
|
|
|
|
ntol=100
|
|
|
|
iz=nint(ntol/df)
|
|
|
|
i0=nint(1500.0/df)
|
|
|
|
ipk=-999
|
|
|
|
jpk=-999
|
|
|
|
do j=1,NSZ-8*NS
|
|
|
|
do i=-iz,iz
|
|
|
|
p=0.
|
|
|
|
do k=1,NS
|
|
|
|
ii=i0+i+(2*(isync(k)-NQ/2))
|
|
|
|
jj=j + 8*(k-1)
|
|
|
|
p=p + s(ii,jj)
|
2024-01-31 18:59:41 -05:00
|
|
|
enddo
|
2024-02-22 13:41:09 -05:00
|
|
|
if(p.gt.pmax) then
|
|
|
|
pmax=p
|
|
|
|
ipk=i
|
|
|
|
jpk=j
|
|
|
|
endif
|
2024-01-31 16:38:22 -05:00
|
|
|
enddo
|
2024-02-22 13:41:09 -05:00
|
|
|
enddo
|
|
|
|
|
|
|
|
dfreq=ipk*df
|
2024-01-31 16:38:22 -05:00
|
|
|
f=1500.0+dfreq
|
2024-02-22 13:41:09 -05:00
|
|
|
t=(jpk-201)*128.0/12000.0
|
|
|
|
! write(*,4001) ipk,jpk,pmax,dfreq,t
|
|
|
|
!4001 format(2i8,3f10.3)
|
2024-01-31 16:38:22 -05:00
|
|
|
|
|
|
|
return
|
2024-02-10 19:51:36 -05:00
|
|
|
end subroutine sfox_sync
|