diff --git a/lib/superfox/sfox_params.f90 b/lib/superfox/sfox_params.f90 new file mode 100644 index 000000000..b96a1eda5 --- /dev/null +++ b/lib/superfox/sfox_params.f90 @@ -0,0 +1,12 @@ + parameter (KK=49) !Information bits + parameter (ND1=62) !Data symbols before sync waveform + parameter (ND2=63) !Data symbols after sync waveform + parameter (ND=ND1+ND2) !Total data symbols (125) + parameter (NS=23) !Sync symbols (for length) + parameter (NN=NS+ND) !Total channel symbols (148) + parameter (NSPS=1024) !Samples per symbol at 12000 S/s + parameter (NSYNC=NS*NSPS) !Samples in sync waveform (23,552) + parameter (NZ=NSPS*NN) !Samples in full Tx waveform (151,552) + parameter (NMAX=15*12000) !Samples in iwave (180,000) + parameter (NFFT=32768) !Length of FFT for sync waveform + parameter (NFFT1=2*NSPS) !Length of FFTs for symbol spectra diff --git a/lib/superfox/synctest.f90 b/lib/superfox/synctest.f90 index d1143e18b..e10ca59ca 100644 --- a/lib/superfox/synctest.f90 +++ b/lib/superfox/synctest.f90 @@ -3,8 +3,7 @@ program synctest ! Generate and test sync waveforms for possible use in SuperFox signal. use wavhdr - parameter (NMAX=15*12000) !Total samples in .wav file - parameter (NFFT=32768) + include "sfox_params.f90" parameter (MMAX=150,JMAX=300) type(hdr) h !Header for .wav file integer*2 iwave(NMAX) !Generated i*2 waveform @@ -37,28 +36,19 @@ program synctest call getarg(4,arg) read(arg,*) snrdb - ntrperiod=15 rms=100. fsample=12000.0 !Sample rate (Hz) - npts=fsample*ntrperiod !Total samples in .wav file twopi=8.0*atan(1.0) - - nsps=1024 - ns1=62 - nsync=23 - ns2=63 - tsync=nsync*nsps/fsample - nsym=125 !Number of channel symbols - nsync=tsync*fsample - + tsync=NS*nsps/fsample baud=12000.0/nsps !Keying rate, 11.719 baud for nsps=1024 - h=default_header(12000,npts) + h=default_header(12000,NMAX) fname='000000_000001.wav' open(10,file=trim(fname),access='stream',status='unknown') + xnoise=0. cnoise=0. if(snrdb.lt.90) then - do i=1,npts !Generate Gaussian noise + do i=1,NMAX !Generate Gaussian noise x=gran() y=gran() xnoise(i)=x @@ -96,9 +86,9 @@ program synctest dat=aimag(cdat(1:NMAX)) + xnoise !Add generated AWGN noise fac=32767.0 - if(snrdb.ge.90.0) iwave(1:npts)=nint(fac*dat(1:npts)) - if(snrdb.lt.90.0) iwave(1:npts)=nint(rms*dat(1:npts)) - write(10) h,iwave(1:npts) !Save the .wav file + if(snrdb.ge.90.0) iwave(1:NMAX)=nint(fac*dat(1:NMAX)) + if(snrdb.lt.90.0) iwave(1:NMAX)=nint(rms*dat(1:NMAX)) + write(10) h,iwave(1:NMAX) !Save the .wav file close(10) crcvd=0.