2016-11-07 11:47:40 -05:00
|
|
|
subroutine spec64(c0,npts2,mode64,jpk,s3,LL,NN)
|
2016-07-26 13:51:13 -04:00
|
|
|
|
2016-11-14 14:56:13 -05:00
|
|
|
parameter (NSPS=3456) !Samples per symbol at 6000 Hz
|
2016-07-26 13:51:13 -04:00
|
|
|
complex c0(0:360000) !Complex spectrum of dd()
|
|
|
|
complex cs(0:NSPS-1) !Complex symbol spectrum
|
2016-11-07 11:47:40 -05:00
|
|
|
real s3(LL,NN) !Synchronized symbol spectra
|
2016-07-26 13:51:13 -04:00
|
|
|
|
2016-11-07 11:47:40 -05:00
|
|
|
nfft6=nsps
|
2016-11-14 14:56:13 -05:00
|
|
|
fac=1.0/nfft6
|
2016-07-26 13:51:13 -04:00
|
|
|
do j=1,63
|
2016-11-07 11:47:40 -05:00
|
|
|
jj=j+7 !Skip first Costas array
|
|
|
|
if(j.ge.32) jj=j+14 !Skip middle Costas array
|
|
|
|
ja=jpk + (jj-1)*nfft6
|
2016-07-26 13:51:13 -04:00
|
|
|
jb=ja+nfft6-1
|
2016-11-14 14:56:13 -05:00
|
|
|
cs(0:nfft6-1)=fac*c0(ja:jb)
|
2016-07-26 13:51:13 -04:00
|
|
|
call four2a(cs,nfft6,1,-1,1)
|
2016-11-14 14:56:13 -05:00
|
|
|
smax=0.
|
2016-11-07 11:47:40 -05:00
|
|
|
do ii=1,LL
|
|
|
|
i=ii-65
|
|
|
|
if(i.lt.0) i=i+nfft6
|
|
|
|
s3(ii,j)=real(cs(i))**2 + aimag(cs(i))**2
|
2016-11-14 14:56:13 -05:00
|
|
|
if(s3(ii,j).gt.smax) then
|
|
|
|
smax=s3(ii,j)
|
|
|
|
ipk=ii-65
|
|
|
|
endif
|
2016-07-26 13:51:13 -04:00
|
|
|
enddo
|
|
|
|
enddo
|
|
|
|
|
|
|
|
return
|
|
|
|
end subroutine spec64
|