Now generates a filename for 15s periods that works with averaging

This commit is contained in:
Charlie Suckling 2021-02-07 16:48:24 +01:00 committed by Bill Somerville
parent d91404bbb1
commit b58ce90a9f
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F

View File

@ -9,11 +9,13 @@ program q65sim
integer*2 iwave(NMAX) !Generated waveform integer*2 iwave(NMAX) !Generated waveform
integer itone(85) !Channel symbols (values 0-65) integer itone(85) !Channel symbols (values 0-65)
integer y(63) !Codeword integer y(63) !Codeword
integer ifilenum(1) !new period lenth adjusted filenumber to work with averaging integer istart !averaging compatible start seconds
integer imins !minutes for 15s period timestamp
integer isecs !seconds for 15s period timestamp
real*4 xnoise(NMAX) !Generated random noise real*4 xnoise(NMAX) !Generated random noise
real*4 dat(NMAX) !Generated real data real*4 dat(NMAX) !Generated real data
complex cdat(NMAX) !Generated complex waveform complex cdat(NMAX) !Generated complex waveform
complex cspread(0:NMAX-1) !Complex amplitude for Rayleigh fading complex cspread(0:NMAX-1) !Complex amplitude for Rayleigh fading
complex z complex z
real*8 f0,dt,twopi,phi,dphi,baud,fsample,freq real*8 f0,dt,twopi,phi,dphi,baud,fsample,freq
character msg*37,fname*17,csubmode*1,arg*12 character msg*37,fname*17,csubmode*1,arg*12
@ -27,7 +29,7 @@ program q65sim
print*,' f1 = Drift or Doppler rate (Hz/min)' print*,' f1 = Drift or Doppler rate (Hz/min)'
print*,' Stp = Step size (Hz)' print*,' Stp = Step size (Hz)'
print*,' Stp = 0 implies no Doppler tracking' print*,' Stp = 0 implies no Doppler tracking'
print*,' Modified version for timestamp incrementing for 30-300s periods' print*,' Creates filenames which increment to permit averaging in first period'
go to 999 go to 999
endif endif
call getarg(1,msg) call getarg(1,msg)
@ -96,15 +98,17 @@ program q65sim
h=default_header(12000,npts) h=default_header(12000,npts)
write(*,1004) write(*,1004)
1004 format('File TR Freq Mode S/N Dop DT f1 Stp Message'/70('-')) 1004 format('File TR Freq Mode S/N Dop DT f1 Stp Message'/70('-'))
do ifile=1,nfiles !Loop over requested number of files do ifile=1,nfiles !Loop over requested number of files
ifilenum = (ifile*ntrperiod/30) - (ntrperiod/30) istart = (ifile*ntrperiod*2) - (ntrperiod*2)
if(ntrperiod.lt.30) then !wdg was 60 if(ntrperiod.lt.30) then !wdg was 60
write(fname,1005) ifile !Output filename imins=istart/60
1005 format('000000_',i6.6,'.wav') isecs=istart-(60*imins)
write(fname,1005) imins,isecs !Construction of output filename for 15s periods with averaging
1005 format('000000_',i4.4, i2.2,'.wav')
else else
write(fname,1106) ifilenum !Output filename to be compatible with averaging write(fname,1106) istart/60 !Output filename to be compatible with averaging 30-300s periods
1106 format('000000_',i4.4,'.wav') 1106 format('000000_',i4.4,'.wav')
endif endif
@ -121,7 +125,7 @@ program q65sim
sig=sqrt(2*bandwidth_ratio)*10.0**(0.05*snrdb) sig=sqrt(2*bandwidth_ratio)*10.0**(0.05*snrdb)
if(snrdb.gt.90.0) sig=1.0 if(snrdb.gt.90.0) sig=1.0
write(*,1020) ifile,ntrperiod,f0,csubmode,snrdb,fspread,xdt,f1,nstp,trim(msgsent) write(*,1020) ifile,ntrperiod,f0,csubmode,snrdb,fspread,xdt,f1,nstp,trim(msgsent)
1020 format(i4,i6,f7.1,2x,a1,2x,f5.1,f6.2,2f6.1,i4,2x,a) 1020 format(i4,i6,f7.1,2x,a1,2x,f5.1,1x,f6.2,2f6.1,i4,2x,a)
phi=0.d0 phi=0.d0
dphi=0.d0 dphi=0.d0
k=(xdt+0.5)*12000 !Start audio at t=xdt+0.5 s (TR=15 and 30 s) k=(xdt+0.5)*12000 !Start audio at t=xdt+0.5 s (TR=15 and 30 s)