mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-04 16:31:17 -05:00
Working toward functionality for sequence lengths other than 60 s.
This commit is contained in:
parent
b68ccee2fa
commit
687d60019e
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user