diff --git a/lib/fsk4hf/ft8_downsample.f90 b/lib/fsk4hf/ft8_downsample.f90 index 98544b969..791914166 100644 --- a/lib/fsk4hf/ft8_downsample.f90 +++ b/lib/fsk4hf/ft8_downsample.f90 @@ -2,7 +2,7 @@ subroutine ft8_downsample(dd,newdat,f0,c1) ! Downconvert to complex data sampled at 200 Hz ==> 32 samples/symbol - parameter (NMAX=15*12000) + parameter (NMAX=15*12000,NSPS=1920) parameter (NFFT1=192000,NFFT2=3200) !192000/60 = 3200 logical newdat @@ -21,7 +21,7 @@ subroutine ft8_downsample(dd,newdat,f0,c1) endif df=12000.0/NFFT1 - baud=12000.0/1920.0 + baud=12000.0/NSPS i0=nint(f0/df) ft=f0+8.0*baud it=min(nint(ft/df),NFFT1/2) diff --git a/lib/fsk4hf/ft8_params.f90 b/lib/fsk4hf/ft8_params.f90 index 48018b00c..8441fdb42 100644 --- a/lib/fsk4hf/ft8_params.f90 +++ b/lib/fsk4hf/ft8_params.f90 @@ -7,4 +7,5 @@ parameter (NSPS=1920) !Samples per symbol at 12000 S/s parameter (NZ=NSPS*NN) !Samples in full 15 s waveform (151,680) parameter (NMAX=15*12000) !Samples in iwave (180,000) parameter (NFFT1=2*NSPS, NH1=NFFT1/2) !Length of FFTs for symbol spectra -parameter (NHSYM=2*NMAX/NH1-1) !Number of symbol spectra (1/2-symbol steps) +parameter (NHSYM=2*NMAX/NH1-1) !Number of symbol spectra (1/2-sym steps) +parameter (NDOWN=60) !Downsample factor diff --git a/lib/fsk4hf/ft8b.f90 b/lib/fsk4hf/ft8b.f90 index 789a0727a..0dc026de9 100644 --- a/lib/fsk4hf/ft8b.f90 +++ b/lib/fsk4hf/ft8b.f90 @@ -19,7 +19,7 @@ subroutine ft8b(dd0,newdat,nfqso,f1,xdt,nharderrors,dmin,nbadcrc,message,xsnr) max_iterations=40 norder=2 - fs2=12000.0/60.0 + fs2=12000.0/NDOWN dt2=1.0/fs2 twopi=8.0*atan(1.0) delfbest=0. diff --git a/lib/fsk4hf/sync8d.f90 b/lib/fsk4hf/sync8d.f90 index eb7eeaf0f..d0d1c63b8 100644 --- a/lib/fsk4hf/sync8d.f90 +++ b/lib/fsk4hf/sync8d.f90 @@ -2,7 +2,7 @@ subroutine sync8d(cd0,i0,ctwk,itwk,sync) ! Compute sync power for a complex, downsampled FT8 signal. - parameter(NP2=2812) + parameter(NP2=2812,NDOWN=60) complex cd0(3125) complex csync(0:6,32) complex csync2(32) @@ -19,10 +19,10 @@ subroutine sync8d(cd0,i0,ctwk,itwk,sync) ! Set some constants and compute the csync array. if( first ) then twopi=8.0*atan(1.0) - fs2=12000.0/60.0 !Sample rate after downsampling + fs2=12000.0/NDOWN !Sample rate after downsampling dt2=1/fs2 !Corresponding sample interval taus=32*dt2 !Symbol duration - baud=1.0/taus !Keying rate + baud=1.0/taus !Keying rate do i=0,6 phi=0.0 dphi=twopi*icos7(i)*baud*dt2