54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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
 |