Initial Commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
subroutine msk40_freq_search(cdat,fc,if1,if2,delf,nframes,navmask,cb, &
|
||||
cdat2,xmax,bestf,cs,xccs)
|
||||
|
||||
parameter (NSPM=240,NZ=7*NSPM)
|
||||
complex cdat(NZ)
|
||||
complex cdat2(NZ)
|
||||
complex c(NSPM) !Coherently averaged complex data
|
||||
complex ct2(2*NSPM)
|
||||
complex cs(NSPM)
|
||||
complex cb(42) !Complex waveform for sync word
|
||||
complex cc(0:NSPM-1)
|
||||
real xcc(0:NSPM-1)
|
||||
real xccs(0:NSPM-1)
|
||||
integer navmask(nframes) !Tells which frames to average
|
||||
|
||||
navg=sum(navmask)
|
||||
n=nframes*NSPM
|
||||
! fac=1.0/(48.0*sqrt(float(navg)))
|
||||
fac=1.0/(24.0*sqrt(float(navg)))
|
||||
|
||||
do ifr=if1,if2 !Find freq that maximizes sync
|
||||
ferr=ifr*delf
|
||||
call tweak1(cdat,n,-(fc+ferr),cdat2)
|
||||
c=0
|
||||
do i=1,nframes
|
||||
ib=(i-1)*NSPM+1
|
||||
ie=ib+NSPM-1
|
||||
if( navmask(i) .eq. 1 ) c=c+cdat2(ib:ie)
|
||||
enddo
|
||||
|
||||
cc=0
|
||||
ct2(1:NSPM)=c
|
||||
ct2(NSPM+1:2*NSPM)=c
|
||||
|
||||
do ish=0,NSPM-1
|
||||
cc(ish)=dot_product(ct2(1+ish:42+ish),cb(1:42))
|
||||
enddo
|
||||
|
||||
xcc=abs(cc)
|
||||
xb=maxval(xcc)*fac
|
||||
if(xb.gt.xmax) then
|
||||
xmax=xb
|
||||
bestf=ferr
|
||||
cs=c
|
||||
xccs=xcc
|
||||
endif
|
||||
enddo
|
||||
|
||||
! write(71,3001) fc,delf,if1,if2,nframes,bestf,xmax
|
||||
!3001 format(2f8.3,3i5,2f8.3)
|
||||
|
||||
return
|
||||
end subroutine msk40_freq_search
|
||||
Reference in New Issue
Block a user