diff --git a/lib/fsk4hf/ft8_params.f90 b/lib/fsk4hf/ft8_params.f90 index 6643e7762..510b07b49 100644 --- a/lib/fsk4hf/ft8_params.f90 +++ b/lib/fsk4hf/ft8_params.f90 @@ -2,7 +2,7 @@ parameter (KK=87) !Information bits (75 + CRC12) parameter (ND=58) !Data symbols parameter (NS=21) !Sync symbols (3 @ Costas 7x7) -parameter (NN=NS+ND) !Total symbols (79) +parameter (NN=NS+ND) !Total channel symbols (79) parameter (NSPS=2048) !Samples per symbol at 12000 S/s parameter (N7=7*NSPS) !Samples in Costas 7x7 array (14,336) parameter (NZ=NSPS*NN) !Samples in full 15 s waveform (161,792) diff --git a/lib/fsk4hf/ft8d.f90 b/lib/fsk4hf/ft8d.f90 index 5adbf5ed2..a2a5bd8e6 100644 --- a/lib/fsk4hf/ft8d.f90 +++ b/lib/fsk4hf/ft8d.f90 @@ -51,7 +51,7 @@ program ft8d tstep=0.5*NSPS/12000.0 df=12000.0/NFFT1 i0=nint(f1/df) - j0=nint((xdt+0.5)/tstep) + j0=nint(xdt/tstep) fac=20.0/maxval(s) s=fac*s @@ -59,17 +59,18 @@ program ft8d ia=i0 ib=i0+14 do k=1,NN - n=j0+2*(k-1)+1 if(k.le.7) cycle if(k.ge.37 .and. k.le.43) cycle if(k.gt.72) cycle + n=j0+2*(k-1)+1 + if(n.lt.1) cycle j=j+1 s1(0:7,j)=s(ia:ib:2,n) enddo do j=1,ND ps=s1(0:7,j) -! ps=log(ps) + ps=log(ps) r1=max(ps(1),ps(3),ps(5),ps(7))-max(ps(0),ps(2),ps(4),ps(6)) r2=max(ps(2),ps(3),ps(6),ps(7))-max(ps(0),ps(1),ps(4),ps(5)) r4=max(ps(4),ps(5),ps(6),ps(7))-max(ps(0),ps(1),ps(2),ps(3)) @@ -95,15 +96,12 @@ program ft8d message=' ' if(ifer.eq.0) then call extractmessage174(decoded,message,ncrcflag,recent_calls,nrecent) - nsnr=nint(xsnr) - nfdot=0 - write(13,1110) datetime,0,nsnr,xdt,freq,message,nfdot -1110 format(a11,2i4,f6.2,f12.7,2x,a22,i3) - write(*,1112) datetime(8:11),nsnr,xdt,nint(f1),message -1112 format(a4,i4,f5.1,i6,2x,a22) endif + nsnr=nint(xsnr) + write(13,1110) datetime,0,nsnr,xdt,freq,message,nfdot +1110 format(a11,2i4,f6.2,f12.7,2x,a22,i3) + write(*,1112) datetime(8:11),nsnr,xdt,nint(f1),message +1112 format(a4,i4,f5.1,i6,2x,a22) enddo ! ifile loop -! write(*,1120) -!1120 format("") 999 end program ft8d diff --git a/lib/fsk4hf/ft8sim.f90 b/lib/fsk4hf/ft8sim.f90 index 4991ce6c9..e7575c578 100644 --- a/lib/fsk4hf/ft8sim.f90 +++ b/lib/fsk4hf/ft8sim.f90 @@ -53,7 +53,7 @@ program ft8sim phi=0.0 c0=0. - k=-1 + nint((xdt+0.5)/dt) !Start audio at t=0.5 s + k=-1 + nint(xdt/dt) do j=1,NN !Generate 8-FSK waveform from itone dphi=twopi*(f0+itone(j)*baud)*dt if(k.eq.0) phi=-dphi diff --git a/lib/fsk4hf/genft8.f90 b/lib/fsk4hf/genft8.f90 index 9102d1478..7eec636ab 100644 --- a/lib/fsk4hf/genft8.f90 +++ b/lib/fsk4hf/genft8.f90 @@ -36,8 +36,6 @@ subroutine genft8(msg,msgsent,itone) 1003 format(12b6.6,b3.3,b12.12) read(cbits,1004) msgbits 1004 format(87i1) - print*,cbits - print*,icrc12 call encode174(msgbits,codeword) !Encode the test message diff --git a/lib/fsk4hf/sync8.f90 b/lib/fsk4hf/sync8.f90 index 019f830a3..8edadd467 100644 --- a/lib/fsk4hf/sync8.f90 +++ b/lib/fsk4hf/sync8.f90 @@ -2,17 +2,14 @@ subroutine sync8(iwave,xdt,f1,s) include 'ft8_params.f90' parameter (IZ=10,JZ=20) - character*1 line(-JZ:JZ),mark(0:6) complex cx(0:NH1) real s(NH1,NHSYM) real savg(NH1) real x(NFFT1) real sync2d(-IZ:IZ,-JZ:JZ) integer*2 iwave(NMAX) - integer iloc(1) integer icos7(0:6) data icos7/2,5,6,0,4,1,3/ !Costas 7x7 tone pattern - data mark/' ',' ','.','-','+','X','$'/ equivalence (x,cx) ! Compute symbol spectra at half-symbol steps. @@ -50,7 +47,7 @@ subroutine sync8(iwave,xdt,f1,s) tmax=0. ipk=0 jpk=0 - j0=1 + nint(0.5/tstep) + j0=1 do i=-IZ,IZ do j=-JZ,JZ t=0.