Working toward functionality for sequence lengths other than 60 s.

This commit is contained in:
Joe Taylor 2020-10-22 15:56:20 -04:00
parent b68ccee2fa
commit 687d60019e
5 changed files with 14 additions and 19 deletions

View File

@ -2,20 +2,17 @@ subroutine ana64(dd,npts,c0)
use timer_module, only: timer
parameter (NMAX=60*12000) !Max size of raw data at 12000 Hz
real dd(NMAX) !Raw data
complex c0(0:720000) !Complex spectrum of dd()
real dd(npts) !Raw data at 12000 Hz
complex c0(0:npts-1) !Complex data at 6000 Hz
save
! nfft1=672000
nfft1=720000
nfft1=npts
nfft2=nfft1/2
df1=12000.0/nfft1
fac=2.0/nfft1
c0(0:npts-1)=fac*dd(1:npts)
c0(npts:nfft1)=0.
call four2a(c0,nfft1,1,-1,1) !Forward c2c FFT
c0(nfft2/2+1:nfft2)=0.
c0(nfft2/2+1:nfft2-1)=0.
c0(0)=0.5*c0(0)
call four2a(c0,nfft2,1,1,1) !Inverse c2c FFT; c0 is analytic sig

View File

@ -61,8 +61,9 @@ subroutine qra64a(dd,npts,nf1,nf2,nfqso,ntol,mode64,minsync,ndepth, &
nfreq=nint(f0)
if(mode64.eq.1 .and. minsync.ne.-1 .and. (sync-7.0).lt.minsync) go to 900
nsps=6912
call timer('qraloops',0)
call qra_loops(c00,npts/2,64,mode64,nsubmode,nFadingModel, &
call qra_loops(c00,npts/2,nsps,64,mode64,nsubmode,nFadingModel, &
ndepth,nc1,nc2,ng2,naptype,jpk0,dtx,f0,width,snr2,irc,dat4)
call timer('qraloops',1)

View File

@ -127,7 +127,7 @@ contains
nmode=65
call ana64(dd,npts,c00)
call timer('qraloops',0)
call qra_loops(c00,npts/2,nmode,mode65,nsubmode,nFadingModel, &
call qra_loops(c00,npts/2,nsps/2,nmode,mode65,nsubmode,nFadingModel, &
ndepth,nc1,nc2,ng2,naptype,jpk0,xdt,f0,width,snr2,irc,dat4)
call timer('qraloops',1)
snr2=snr2 + db(6912.0/nsps)

View File

@ -1,4 +1,4 @@
subroutine qra_loops(c00,npts2,mode,mode64,nsubmode,nFadingModel, &
subroutine qra_loops(c00,npts2,nsps,mode,mode64,nsubmode,nFadingModel, &
ndepth,nc1,nc2,ng2,naptype,jpk0,xdt,f0,width,snr2,irc,dat4)
use packjt
@ -26,8 +26,6 @@ subroutine qra_loops(c00,npts2,mode,mode64,nsubmode,nFadingModel, &
NN=63
napmin=99
ncall=0
nsps=3456 !QRA64
if(mode.eq.65) nsps=3840 !QRA65 ### Is 3840 too big? ###
maxdist=5
if(ndepth.eq.2) maxdist=10
if(ndepth.eq.3) maxdist=30
@ -121,7 +119,7 @@ subroutine qra_loops(c00,npts2,mode,mode64,nsubmode,nFadingModel, &
ndist=ndistx
endif
200 if(mode.eq.65) xdt=xdt+0.4 !### Empirical -- WHY ??? ###
200 if(mode.eq.65 .and. nsps.eq.7680/2) xdt=xdt+0.4 !### Empirical -- WHY ??? ###
if(irc.ge.0) then
navg=nsave

View File

@ -18,7 +18,7 @@ subroutine sync_qra65(iwave,nmax,mode65,nsps,nfqso,ntol,xdt,f0,snr1)
integer ijpk(2) !Indices i and j at peak of ccf
real, allocatable :: s1(:,:) !Symbol spectra, quarter-symbol steps
real sync(85) !sync vector
real ccf(-64:64,-26:107) !CCF(freq,time)
real ccf(-64:64,-53:214) !CCF(freq,time)
complex, allocatable :: c0(:) !Complex spectrum of symbol
data isync/1,9,12,13,15,22,23,26,27,33,35,38,46,50,55,60,62,66,69,74,76,85/
data sync(1)/99.0/
@ -94,10 +94,10 @@ subroutine sync_qra65(iwave,nmax,mode65,nsps,nfqso,ntol,xdt,f0,snr1)
ijpk=maxloc(ccf)
ipk=ijpk(1)-65
jpk=ijpk(2)-27
jpk=ijpk(2)-54
f0=nfqso + ipk*df
xdt=jpk*dtstep
sq=0.
nsq=0
do j=lag1,lag2
@ -115,10 +115,9 @@ subroutine sync_qra65(iwave,nmax,mode65,nsps,nfqso,ntol,xdt,f0,snr1)
!3055 format(i5,f8.3,f10.3)
! enddo
! ncall=ncall+1
! do i=-ia,ia
! write(56,3056) ncall,i*df,ncall+0.3*ccf(i,0)/rms
!3056 format(i6,f7.2,f10.3)
! write(56,3056) i*df,ccf(i,0)/rms
!3056 format(2f10.3)
! enddo
return