diff --git a/lib/ana64.f90 b/lib/ana64.f90 index faebb84e5..1f3b54820 100644 --- a/lib/ana64.f90 +++ b/lib/ana64.f90 @@ -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 diff --git a/lib/qra64a.f90 b/lib/qra64a.f90 index 1a9728a8f..45e44d8cf 100644 --- a/lib/qra64a.f90 +++ b/lib/qra64a.f90 @@ -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) diff --git a/lib/qra65_decode.f90 b/lib/qra65_decode.f90 index ea021e4cb..4762e8419 100644 --- a/lib/qra65_decode.f90 +++ b/lib/qra65_decode.f90 @@ -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) diff --git a/lib/qra_loops.f90 b/lib/qra_loops.f90 index d6e2072f1..21dbc863d 100644 --- a/lib/qra_loops.f90 +++ b/lib/qra_loops.f90 @@ -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 diff --git a/lib/sync_qra65.f90 b/lib/sync_qra65.f90 index c58241dbc..3b608f20a 100644 --- a/lib/sync_qra65.f90 +++ b/lib/sync_qra65.f90 @@ -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